🤗 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 專案更加成熟,既服務於核心開發者,也方便了終端使用者。社群反饋將持續推動專案改進。