Hugging Face hat bedeutende Aktualisierungen seines Kernels-Projekts veröffentlicht, darunter einen dedizierten Repository-Typ, verbesserte Sicherheitsmaßnahmen, überarbeitete Befehlszeilenschnittstellen, erweiterte Framework-Unterstützung und die Grundlage für agentengesteuerte Kernel-Entwicklung.
Kernels werden zu einem erstklassigen Repository-Typ
Der Hugging Face Hub bietet jetzt einen neuen Repository-Typ namens „kernel“. Diese Änderung ermöglicht es Benutzern, unterstützte Beschleuniger, Betriebssysteme und Backend-Versionen direkt zu sehen. Beispielsweise werden die Kompatibilitätsdetails eines Kernels jetzt prominent angezeigt:

Alle verfügbaren Kernels können unter https://huggingface.co/kernels durchsucht werden. Indem Kernels zu erstklassigen Bürgern auf dem Hub werden, verbessert sich die Auffindbarkeit und hilft dem KI-Ökosystem, Trends über Kernels, Modelle und Anwendungen hinweg zu erkennen.
Sicherheit erhält einen großen Schub
Kernels führen nativen Code mit denselben Berechtigungen wie der Python-Prozess aus, der sie lädt, was Sicherheit zu einer Priorität macht. Das Projekt hat schon lange Reproduzierbarkeit betont – Benutzer können einen Kernel neu kompilieren und überprüfen, ob er mit dem öffentlichen Quellcode übereinstimmt, indem sie Nix für hermetic Builds und isolierte Sandboxen verwenden. Der Git-SHA1 des Quellcodes ist im Kernel eingebettet, um die Herkunft zu verbessern.
Zu den kürzlichen Ergänzungen gehören vertrauenswürdige Kernel-Herausgeber und Code-Signierung.
Vertrauenswürdige Kernel-Herausgeber
Mit dem neuen Repository-Typ hat Hugging Face „vertrauenswürdige Herausgeber“ eingeführt. Standardmäßig lädt das Kernels-Paket nur Kernels von Organisationen, denen die Community vertraut. Benutzer können sich dafür entscheiden, Kernels aus anderen Quellen zu laden, indem sie das Argument trust_remote_code verwenden:
from kernels import get_kernel
kernel_module = get_kernel(
"Atlas-Inference/gdn", version=1, trust_remote_code=True
)
Das Veröffentlichen von Kernel-Repositories ist standardmäßig eingeschränkt. Benutzer und Organisationen müssen über ihre Kontoeinstellungen Zugriff anfordern, sodass das Team jede Anfrage einzeln prüfen kann.
Kernel-Signierung
Code-Signierung schützt vor kompromittierten Hub-Anmeldeinformationen. Ein Kernel wird mit einem privaten Schlüssel signiert, der nur dem Entwickler bekannt ist, und mit einem öffentlichen Schlüssel validiert. Selbst wenn ein Angreifer die Anmeldeinformationen eines vertrauenswürdigen Herausgebers kompromittiert, kann er ohne den privaten Schlüssel keinen bösartigen Kernel signieren.
Das Projekt verwendet Sigstores Cosign, um mit ephemeren privaten Schlüsseln zu signieren, die für eine begrenzte Zeit gültig sind. Es überprüft auch, dass der Kernel von einem vertrauenswürdigen GitHub-Workflow aus einem vertrauenswürdigen Repository signiert wurde. Kernel-Signierung wird bereits von kernel-builder unterstützt, und der Befehl kernels verify-signature ist verfügbar. Die Signaturüberprüfung beim Laden wird noch nicht erzwungen, weitere Tests stehen aus. Vorläufige Einrichtungshinweise finden Sie in den Versionshinweisen zu kernels 0.16.0: https://github.com/huggingface/kernels/releases/tag/v0.16.0.
Überarbeitete CLIs
Dienstprogramme, die zuvor zwischen Kernels und kernel-builder gemischt waren, wurden getrennt. Die Kernels-Bibliothek konzentriert sich jetzt ausschließlich auf das Laden und Vorbereiten von Kernels, während kernel-builder das Bauen übernimmt. Dadurch werden beide Werkzeuge schlanker und fokussierter.
Die verbesserte CLI legt auch die Grundlage für agentische Kernel-Entwicklung.
Breitere Framework- und Backend-Unterstützung
Die Unterstützung für Frameworks wurde erweitert. Zu den wichtigsten Änderungen gehören:
Unterstützung für die Torch Stable ABI, die es Kernel-Entwicklern ermöglicht, eine bestimmte Torch-Version oder jede Version, die etwa zwei Jahre danach veröffentlicht wurde, anzuvisieren. Beispielsweise unterstützt ein Kernel, der auf Torch 2.9 Stable ABI abzielt, Torch >= 2.9.
Apache TVM FFI wird jetzt neben Torch unterstützt. TVM FFI ist eine standardisierte ABI, die mit PyTorch, Jax, CuPy und anderen funktioniert und es Kernels ermöglicht, über mehrere Frameworks hinweg zu laufen.
Grundlage für agentische Kernel-Entwicklung
kernel-builder und Kernels unterstützen agentische Kernel-Entwicklung, bei der ein Agent einen optimierten Kernel von Grund auf neu erstellt. Zusammen ermöglichen sie einen Workflow für Agenten, um Kernels zu erstellen, zu bauen, zu benchmarken und iterativ zu optimieren.
Agentische Kernel-Entwicklung ist noch neu, daher sind einfache, klare Grundlagen wichtig. kernel-builder erzwingt eine reproduzierbare Struktur für das Erstellen und Bauen von Kernels und gibt Agenten ein vorhersagbares Projektlayout. Seine CLI ist agentenoptimiert mit nicht-interaktiven Befehlen und Ausgaben, die programmatisch leicht zu interpretieren sind. Backend-spezifische Fähigkeiten helfen Agenten, die Eigenheiten verschiedener Backends zu navigieren.
Einen Kernel erfolgreich zu bauen ist nur der erste Schritt – er muss auf der Zielhardware echte Geschwindigkeitssteigerungen gegenüber einer Baseline liefern. Die Integration mit HF Jobs macht das Benchmarking einfach und ermöglicht es Agenten, Benchmark-Suiten auszuführen, Leistungsergebnisse zu sammeln und mit einer Baseline über verschiedene Hardwarekonfigurationen hinweg zu vergleichen.
Nachfolgend einige Beispiele für agentenunterstützte Kernels, die die Arten von Kernels veranschaulichen, die durch diesen Workflow entwickelt und evaluiert werden können.
Verschiedene Aktualisierungen
Umgebungseinrichtung
Ein Installationsskript bietet jetzt eine Ein-Klick-Einrichtung zum Bauen von Kernels mit kernel-builder. Für ephemere Instanzen ist eine Terraform-Einrichtungsanleitung verfügbar.
Systemkarte für Kernels
Nach dem Bauen von Kernels wird für jeden Kernel eine Systemkarte erstellt, die nützliche Informationen preisgibt, einschließlich der Verwendung und seiner Schnittstellen. Wenn sie auf den Hub hochgeladen wird, wird diese Karte zum Front Matter des Kernels:

Kernel-Kompatibilitätsprüfungen
Verwenden Sie die Methode has_kernel(), um zu prüfen, ob ein Kernel auf Ihrem System kompatibel ist:
from kernels import has_kernel
print(has_kernel("kernels-community/activation", version=1))
Sie gibt einen booleschen Wert zurück. Für weitere Details, warum ein Kernel nicht unterstützt wird, verwenden Sie get_kernel_variants():
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})")
Es sollte (abhängig von Ihrem Rechner) Folgendes ausgeben:
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))
…
Verbesserte manylinux_2_28-Unterstützung
Kernel-builder hat von Anfang an auf manylinux_2_28 abgezielt. Zuvor wurde eine moderne gcc-Toolchain verwendet, die mit glibc 2.28 kompiliert und libstdc++ statisch gelinkt wurde. Dies verursachte jedoch Probleme, wenn mehrere libstdc++-Versionen beteiligt waren – wie die von PyTorch dynamisch gelinkte und die von einem Kernel statisch gelinkte. Einige Kernels, die Funktionalitäten wie C++-Regexe verwendeten, lösten globale Initialisierungen aus, was zu beschädigten Daten und Segfaults führte.
Um dies zu beheben, hat das Team den Ansatz aktualisiert, um solche Konflikte zu vermeiden und eine größere Stabilität zu gewährleisten.
Diese Aktualisierungen positionieren das Kernels-Projekt für eine breitere Akzeptanz und fortgeschrittenere Anwendungsfälle, einschließlich agentengesteuerter Optimierungsworkflows. Mit verbesserter Sicherheit, Auffindbarkeit und Cross-Framework-Unterstützung legt Hugging Face den Grundstein für ein robusteres und flexibleres Kernel-Ökosystem.



