以下是您要求的英文文章的中文翻译,已按照要求保留原文结构、技术术语和代码块,并输出为 Markdown 格式。
🤗 Kernels:重大更新
发布日期:2026 年 7 月 6 日 在 GitHub 上更新 赞 11 +5 Sayak Paul sayakpaul 关注 Daniël de Kok danieldk 关注 David Holtz drbh 关注
- Kernels – 一种新的仓库类型
- 改进的安全性
- 受信任的 kernel 发布者
- Kernel 签名
- 重新设计的 CLI
- 更多框架和后端支持
- 为 agentic kernel 开发奠定基础
- 杂项
- 环境设置
- Kernel 系统卡
- 我的系统上是否兼容该 kernel?
- 改进的 manylinux_2_28 支持
- 结论
在我们之前的文章(《从零到 GPU》)中,我们介绍了 🤗 Kernels 项目,该项目旨在标准化自定义 kernel 的打包、分发和使用方式。我们希望该项目既流畅又安全,同时尽可能与 Hub 友好兼容。在过去的几个月里,我们一直朝着这个目标努力。在此过程中,我们几乎完全重新设计了该项目。本文将总结我们已发布的主要更新以及未来的规划。
目录
- Kernels – 一种新的仓库类型
- 改进的安全性
- 重新设计的 CLI
- 更多框架和后端支持
- 为 agentic kernel 开发奠定基础
- 杂项
- 结论
Kernels – 一种新的仓库类型
我们在 Hub 上引入了一种名为“kernel”的新仓库类型。这使我们能够满足用户与计算相关的特定需求。例如,用户可以了解某个 kernel 支持哪些加速器、操作系统和后端版本:
Kernel 页面:kernels-community/flash-attn3
用户可以在以下地址浏览 Hub 上所有可用的 kernel:https://huggingface.co/kernels。将这些 kernel 作为 Hub 的一等公民也有利于 AI 生态系统。用户现在可以查看 kernel、模型以及使用它们的应用程序之间的趋势。kernel 对用户来说也更容易被发现。
改进的安全性
Kernel 以与加载它们的 Python 进程相同的权限运行原生代码,因此恶意 kernel 可能造成实际危害。因此,安全性一直是 Kernels 项目的重中之重。这就是我们早期专注于可重现性的原因:您应该能够自己重新编译 kernel,并验证其是否与公开可用的源代码一致。我们使用 Nix 来实现这一点,因为它通过封闭式评估构建配方和强隔离沙箱来保持构建的纯净性。我们通过将源代码的 Git SHA1 嵌入到 kernel 本身中,进一步改进了来源追溯。
在最近几个月,我们增加了额外的防御层:受信任的 kernel 发布者和代码签名。
受信任的 kernel 发布者
随着新仓库类型的引入,我们还推出了“受信任的发布者”。由于 kernel 在机器上以与它们所使用的 Python 进程相同的权限执行代码,攻击者可以通过上传恶意 kernel 并诱使您使用该 kernel 来危害机器。为了帮助您避免此类恶意 kernel,kernel 包现在默认只加载来自受信任发布者的 kernel。受信任的发布者是社区信任其诚信行事的组织。我们仍然支持加载来自非受信任发布者的组织或用户的 kernel,但您必须在使用 trust_remote_code 参数从 Hub 加载 kernel 时明确选择加入:
from kernels import get_kernel
kernel_module = get_kernel(
"Atlas-Inference/gdn",
version=1,
trust_remote_code=True
)
默认情况下,用户不能在 Hub 上发布 kernel 仓库。他们必须申请成为 kernel 发布者。用户和组织可以在其账户设置中申请访问权限。这让我们有时间逐案处理这些请求。
Kernel 签名
我们正在添加的另一层安全措施是代码签名。代码签名可以防止攻击者利用受信任发布者被攻破的 Hub 凭据,向该发布者的 kernel 仓库上传恶意 kernel。在代码签名中,kernel 使用只有 kernel 开发者知道的私钥进行签名,并使用公开可用的公钥进行验证。在 Hub 被攻破的情况下,攻击者无法对恶意 kernel 进行签名,因为他们不拥有签名所需的私钥。为了进一步提高安全性,我们使用 Sigstore 的 cosign 通过临时私钥进行签名。由于这些签名密钥仅在有限时间内有效,攻击者即使泄露了私钥,通常也无法使用它。我们还会验证 kernel 是否由来自受信任 GitHub 仓库的受信任 GitHub 工作流签名。
Kernel 签名已得到 kernel-builder 的支持,并且我们提供了 kernels verify-signature 来验证 kernel。目前,Kernels 在加载 kernel 时尚未验证签名,因为我们希望在全面推出之前进一步测试这一新功能。有关为自定义 kernel 设置代码签名的初步说明,请参见 kernels 0.16.0 发布说明:https://github.com/huggingface/kernels/releases/tag/v0.16.0。
重新设计的 CLI
以前,许多实用程序在 kernels 和 kernel-builder 之间相互交织。我们已经在 kernels 和 kernel-builder 的 CLI 之间建立了更好的关注点分离。这里的心智模型是:kernels 是一个用于加载和准备 kernel 以供使用的库。因此,它不应包含任何与“构建”kernel 相关的内容。因此,kernels 和 kernel-builder 现在都更加精简和专注。请参考文档了解更多信息:
- kernels CLI
- kernel-builder CLI
这种改进的 CLI 体验也使我们能够更好地适应 agentic kernel 开发的兴起。稍后将详细介绍这一点。
更多框架和后端支持
我们扩展了对框架的支持,最显著的变化包括:
- 我们在
kernels和kernel-builder中添加了对 Torch Stable ABI 的支持。Torch Stable ABI 允许 kernel 开发者针对特定的 Torch 版本或其后大约两年内发布的任何版本进行开发。例如,针对 Torc
(注:原文在“Torc”处截断,翻译也在此处结束。)