🤗 Kernels:重大更新
Hugging Face 的 Kernels 項目旨在標準化自定義內核的打包、分發和使用方式。本文總結了近期重大更新:引入新的“內核”倉庫類型以提升可發現性;通過受信任的發佈者和代碼簽名增強安全性;重構 CLI 以明確職責劃分;擴展對 Torch Stable ABI 和 Apache TVM FFI 等框架的支持;為 AI 代理開發內核奠定基礎;以及改進環境配置和兼容性檢查工具。
Hugging Face 的 Kernels 項目自發布以來,一直致力於為自定義內核的打包、分發和使用提供標準化方案。在最近幾個月裏,團隊對項目進行了近乎完全的重構,並推出了一系列重大更新。
新的倉庫類型 最顯著的變化是 Hub 上新增了“kernel”倉庫類型。這使得用户能夠更直觀地瞭解某個內核支持的加速器、操作系統和後端版本。所有內核現在都集中展示在 https://huggingface.co/kernels,大大提高了可發現性。
安全性強化
由於內核以與 Python 進程相同的權限運行原生代碼,惡意內核可能造成嚴重破壞。為此,項目早期就通過 Nix 實現了可重複構建,確保用户能自行編譯驗證。最近又增加了兩層防禦:受信任的發佈者和代碼簽名。默認情況下,kernels 包只加載來自受信任組織的內核。要加載其他來源,需顯式設置 trust_remote_code=True。此外,代碼簽名使用 Sigstore 的 cosign 和臨時私鑰,即使 Hub 憑證泄露,攻擊者也無法為惡意內核簽名。目前簽名驗證尚在測試階段,但內核構建工具已支持。
CLI 重構 之前 kernels 和 kernel-builder 的功能有些混雜。現在明確了分工:kernels 專注於加載和準備內核;kernel-builder 專注於構建。兩者 CLI 更加精簡和專用。
框架與後端擴展 新支持 Torch Stable ABI,使內核可兼容 Torch >=2.9 版本約兩年。同時,Apache TVM FFI 成為繼 Torch 之後第二個支持的框架,它提供標準化的 ABI,使內核能在 PyTorch、Jax、CuPy 等框架間互操作。
代理式內核開發基礎 kernel-builder 和 kernels 為 AI 代理開發內核提供了完整工作流:代理可以自動搭建項目結構、進行可重複構建、基準測試並迭代優化。與 HF Jobs 的緊密集成讓跨硬件評估變得簡單。
其他改進
環境配置方面,提供了一鍵安裝腳本和 Terraform 設置指南。內核構建後會自動生成系統卡片,展示接口和使用方法。新增 has_kernel() 和 get_kernel_variants() 方法,方便用户檢查內核兼容性並獲取拒絕原因。最後,改進了 manylinux_2_28 支持,動態鏈接 libstdc++ 以避免全局初始化導致的問題。
這些更新使 Kernels 項目更加成熟,既服務於內核開發者,也方便了終端用户。社區反饋將持續推動項目改進。