ML-什么?了解 ML-Bom 概念和用途

所有文章

业界尚未完全掌握 SBOM 的概念,我们已经开始听到一个新术语——ML-BOM——机器学习物料清单。在出现恐慌之前,我们先了解一下为什么要生成这样的 BOM、生成 ML-BOM 的挑战以及这样的 ML-BOM 是什么样的。

当您阅读这篇博客时,您可能会问自己这篇文章是否是人工智能生成的。原因是人工智能就在我们身边,很难将其与人造制品区分开来。然而,人工智能的快速进步也带来了私人、商业和社会风险,并且立法正在开始推出以限制这些风险,例如 欧盟人工智能法案。深入研究这些风险超出了本文的范围,但仅提几点——人工智能驱动的系统以及知识产权、许可和网络存在不安全、歧视和侵犯隐私行为的风险-安全风险。

处理这些风险的第一步是了解每个系统中使用了哪些人工智能技术;这些知识可以使利益相关者能够管理风险(例如,通过了解数据集和模型的许可来管理法律风险)并对有关这些技术的新发现做出回应(例如,如果发现模型具有歧视性,利益相关者可以绘制所有使用此模型来降低风险的系统)。 

纵观不断发展的监管,审查 行政命令13960 关于“促进联邦政府使用值得信赖的人工智能”揭示了问责制、透明度、责任、可追溯性和监管监控等原则——所有这些都需要了解每个系统中使用了哪些人工智能技术。

ML-BOM 是产品中 AI 技术的文档。 CycloneDX 是著名的 SBOM OWASP 格式,版本 1.5 及更高版本支持它,并且现在是 ML-BOM 的标准。

生成 ML-BOM 具有挑战性;有很多方法来表示模型和数据集;人工智能模型和数据集可以即时使用,并且可以以编程方式即时做出使用哪些模型的决定,而不会留下标准组件分析技术检测它们的痕迹。除了这些挑战之外,与软件包管理器的成熟度相比,人工智能仍然是一项新兴技术。因此,业界尚未完全了解 ML-BOM 的需求。  

作为起点,我们决定重点为使用事实上的标准 HuggingFace 的项目生成 ML-BOM。 HuggingFace 是 AI 模型和数据集的“包管理器”,并附带流行的 Python 库。以下是我们从此类产品自动生成的 SBOM 的一些快照。

想象一个由许多组件组成的产品,其中一些组件是机器学习模型。下面的 CycloneDX 组件描述了这样一个模型:

机器学习模型组件

机器学习模型组件(第 1 部分)——标准 CycloneDX 组件数据

该组件标识模型并提供进一步探索有关该模型的信息的链接。此外,它还包括可用于合规目的的许可信息。

CycloneDX V1.5 还定义了一个名为“modelCard”的 AI 特定字段,作为记录机器学习模型属性的标准方式。以下是我们创建的 modelCard 的示例。 

机器学习模型组件

机器学习模型组件(第 2 部分)——数据卡

此类 modelCard 的用例可以是查找使用图像分类模型的所有产品或运行阻止使用特定模型类型的策略。 

CycloneDX 支持组件树 - 子组件层次结构的文档化。由于 HuggingFace 作为 AI 包管理器,将 AI 模型和数据集表示为 git-repos,因此我们决定将 AI 模型/数据集的文件记录为机器学习模型组件的子组件。它看起来是这样的:

机器学习模型组件

机器学习模型组件(第 3 部分)——子组件

除了标准文件信息之外,属性还包括附加信息,例如安全信息。在这种情况下,我们看到两种安全措施:

  1. 病毒扫描 – 在使用易受病毒影响的数据集(例如图像、PDF 和可执行文件)时非常重要。
  2. Pickle 扫描 – 关于“pickle”类型数据集文件的安全风险措施,这些文件更容易出现风险(要了解这种格式的风险,请参阅 拥抱脸网站).

此数据可用于强制执行验证病毒和pickle 扫描是否已成功通过的策略。 

ML-BOM是一个新概念;我们在这里展示的是第一步。但即便如此,鉴于人工智能的采用、监管和风险不断增加,我们也可以理解它所带来的价值。

最后一点,我让我的水晶球(又名 ChatGPT)描述 ML-BOM 的未来,这就是它的答案:

“在不远的将来,ML-BOM 可能会演变成精通网络的自动驾驶大师,以自动化的方式编排机器学习模型的交响曲,同时在复杂的 CI/CD 管道中跳踢踏舞”。

好吧,也许我们需要的不仅仅是 ML-BOM……

此内容由领先的端到端软件供应链安全解决方案提供商 Scribe Security 为您提供 - 为整个软件供应链中的代码工件以及代码开发和交付流程提供最先进的安全性。 了解更多