Hugging Face, Kernels projesinde önemli güncellemeler yayınladı: özel bir depo türü, gelişmiş güvenlik önlemleri, yeniden tasarlanmış komut satırı arayüzleri, genişletilmiş çerçeve desteği ve ajan odaklı kernel geliştirmenin temellerini tanıttı.
Kerneller Birinci Sınıf Depo Türü Haline Geldi
Hugging Face Hub artık "kernel" adında yeni bir depo türü sunuyor. Bu değişiklik, kullanıcıların desteklenen hızlandırıcıları, işletim sistemlerini ve arka uç sürümlerini doğrudan görmesini sağlıyor. Örneğin, bir kernelin uyumluluk detayları artık belirgin bir şekilde görüntüleniyor:

Tüm mevcut kerneller https://huggingface.co/kernels adresinde gezilebilir. Kernelleri Hub'da birinci sınıf vatandaşlar haline getirmek, keşfedilebilirliği artırıyor ve AI ekosisteminin kerneller, modeller ve uygulamalar arasındaki trendleri görmesine yardımcı oluyor.
Güvenlik Büyük Bir Destek Aldı
Kerneller, onları yükleyen Python süreciyle aynı ayrıcalıklara sahip yerel kod çalıştırır, bu da güvenliği en önemli öncelik haline getirir. Proje uzun süredir tekrarlanabilirliği vurguluyor—kullanıcılar bir kerneli yeniden derleyebilir ve Nix kullanarak hermetik yapılar ve izole edilmiş sandbox'lar ile genel kaynakla eşleştiğini doğrulayabilir. Kaynak Git SHA1, kaynağı iyileştirmek için kernele gömülüdür.
Son eklemeler arasında güvenilir kernel yayıncıları ve kod imzalama yer alıyor.
Güvenilir Kernel Yayıncıları
Yeni depo türüyle Hugging Face, "güvenilir yayıncılar" özelliğini tanıttı. Varsayılan olarak, kerneller paketi yalnızca topluluğun güvendiği kuruluşlardan kernel yükler. Kullanıcılar, trust_remote_code argümanını kullanarak diğer kaynaklardan kernel yüklemeyi tercih edebilir:
from kernels import get_kernel
kernel_module = get_kernel(
"Atlas-Inference/gdn", version=1, trust_remote_code=True
)
Kernel depolarını yayınlamak varsayılan olarak kısıtlıdır. Kullanıcılar ve kuruluşlar, hesap ayarlarından erişim talep etmelidir; bu sayede ekip her talebi ayrı ayrı inceleyebilir.
Kernel İmzalama
Kod imzalama, ele geçirilmiş Hub kimlik bilgilerine karşı koruma sağlar. Bir kernel, yalnızca geliştirici tarafından bilinen özel bir anahtarla imzalanır ve genel bir anahtarla doğrulanır. Bir saldırgan, güvenilir bir yayıncının kimlik bilgilerini ele geçirse bile, özel anahtar olmadan kötü niyetli bir kerneli imzalayamaz.
Proje, sınırlı bir süre için geçerli olan geçici özel anahtarlarla imzalamak için Sigstore'un cosign'ını kullanır. Ayrıca, kernelin güvenilir bir depodan güvenilir bir GitHub iş akışı tarafından imzalandığını doğrular. Kernel imzalama, kernel-builder tarafından zaten destekleniyor ve kernels verify-signature komutu mevcut. Yükleme sırasında imza doğrulama henüz zorunlu değil, daha fazla test bekleniyor. Ön hazırlık notları, kernels 0.16.0 sürüm notlarında yer alıyor: https://github.com/huggingface/kernels/releases/tag/v0.16.0.
Yenilenmiş CLI'lar
Daha önce kernels ve kernel-builder arasında karışık olan yardımcı programlar ayrıldı. kernels kütüphanesi artık yalnızca kernelleri yüklemeye ve hazırlamaya odaklanırken, kernel-builder derleme işini üstleniyor. Bu, her iki aracı daha hafif ve daha odaklı hale getiriyor.
Geliştirilmiş CLI ayrıca ajan tabanlı kernel geliştirmenin temelini oluşturuyor.
Daha Geniş Çerçeve ve Arka Uç Desteği
Çerçeveler için destek genişletildi. Önemli değişiklikler şunları içeriyor:
Torch Stable ABI desteği, kernel geliştiricilerinin belirli bir Torch sürümünü veya ondan sonraki yaklaşık iki yıl boyunca yayınlanan herhangi bir sürümü hedeflemesine olanak tanır. Örneğin, Torch 2.9 Stable ABI'yi hedefleyen bir kernel, Torch >= 2.9'u destekler.
Apache TVM FFI artık Torch'un yanında destekleniyor. TVM FFI, PyTorch, Jax, CuPy ve diğerleriyle çalışan standart bir ABI'dir ve kernellerin birden çok çerçevede çalışmasını sağlar.
Ajan Tabanlı Kernel Geliştirmenin Temeli
kernel-builder ve kernels, bir ajanın sıfırdan optimize edilmiş bir kernel oluşturduğu ajan tabanlı kernel geliştirmeyi destekler. Birlikte, ajanların kernelleri iskele kurmasına, derlemesine, kıyaslamasına ve yinelemeli olarak optimize etmesine olanak tanıyan bir iş akışı sağlarlar.
Ajan tabanlı kernel geliştirme henüz yeni olduğundan, basit ve net temeller önemlidir. kernel-builder, kernelleri iskele kurmak ve derlemek için tekrarlanabilir bir yapı uygular ve ajanlara öngörülebilir bir proje düzeni sağlar. CLI'sı, etkileşimli olmayan komutlar ve programlı olarak yorumlanması kolay çıktılarla ajanlar için optimize edilmiştir. Arka uca özgü beceriler, ajanların farklı arka uçların tuhaflıklarında gezinmesine yardımcı olur.
Bir kerneli başarıyla derlemek yalnızca ilk adımdır—hedef donanımda bir taban çizgisine göre gerçek hızlanmalar sağlamalıdır. HF Jobs ile entegrasyon, kıyaslamayı kolaylaştırarak ajanların kıyaslama paketleri çalıştırmasına, performans sonuçları toplamasına ve farklı donanım yapılandırmalarında bir taban çizgisiyle karşılaştırma yapmasına olanak tanır.
Aşağıda, bu iş akışıyla geliştirilebilecek ve değerlendirilebilecek kernel türlerini gösteren ajan destekli kernellere bazı örnekler verilmiştir.
Çeşitli Güncellemeler
Ortam Kurulumu
Bir kurulum betiği artık kernel-builder ile kernelleri derlemek için tek tıklamalı kurulum sağlıyor. Geçici örnekler için bir Terraform kurulum kılavuzu mevcut.
Kerneller için Sistem Kartı
Kernelleri derledikten sonra, her kernel için nasıl kullanılacağı ve arayüzleri dahil olmak üzere yararlı bilgileri gösteren bir sistem kartı oluşturulur. Hub'a gönderildiğinde, bu kart kernelin ön yüzü haline gelir:

Kernel Uyumluluk Kontrolleri
Sisteminizde bir kernelin uyumlu olup olmadığını kontrol etmek için has_kernel() yöntemini kullanın:
from kernels import has_kernel
print(has_kernel("kernels-community/activation", version=1))
Bir bool döndürür. Bir kernelin neden desteklenmediğine dair daha fazla ayrıntı için get_kernel_variants() kullanın:
from kernels import get_kernel_variants, VariantAccepted
for decision in get_kernel_variants("kernels-community/activation", version=1):
name = decision.variant.variant_str
if isinstance(decision, VariantAccepted):
print(f"{name}: compatible")
else:
print(f"{name}: rejected ({decision.reason})")
Şunu yazdırmalıdır (makinenize bağlı olarak):
torch212-cxx11-cu130-aarch64-linux: compatible
torch210-cu128-x86_64-windows: rejected (CPU (x86_64) does not match system CPU (aarch64))
torch211-cu128-x86_64-windows: rejected (CPU (x86_64) does not match system CPU (aarch64))
torch212-metal-aarch64-darwin: rejected (OS (darwin) does not match system OS (linux))
torch211-metal-aarch64-darwin: rejected (OS (darwin) does not match system OS (linux))
torch210-metal-aarch64-darwin: rejected (OS (darwin) does not match system OS (linux))
torch29-metal-aarch64-darwin: rejected (OS (darwin) does not match system OS (linux))
…
Geliştirilmiş manylinux_2_28 Desteği
Kernel-builder, neredeyse başından beri manylinux_2_28'i hedeflemiştir. Daha önce, glibc 2.28 ile derlenmiş ve libstdc++'ı statik olarak bağlayan modern bir gcc araç zinciri kullanıyordu. Ancak bu, birden çok libstdc++ sürümü söz konusu olduğunda sorunlara neden oldu—örneğin PyTorch tarafından dinamik olarak bağlanan ve bir kernel tarafından statik olarak bağlanan. C++ regex'leri gibi işlevsellik kullanan bazı kerneller, bozuk verilere ve segmentasyon hatalarına yol açan global başlatmaları tetikledi.
Bunu düzeltmek için ekip, bu tür çakışmaları önleyecek şekilde yaklaşımı güncelleyerek daha fazla kararlılık sağladı.
Bu güncellemeler, Kernels projesini daha geniş benimseme ve ajan odaklı optimizasyon iş akışları da dahil olmak üzere daha gelişmiş kullanım durumları için konumlandırıyor. Geliştirilmiş güvenlik, keşfedilebilirlik ve çapraz çerçeve desteği ile Hugging Face, daha sağlam ve esnek bir kernel ekosistemi için zemin hazırlıyor.



