跳转到主要内容

运行基准测试并生成报告,以测量许多AI系统的行为。

项目描述

ModelBench

针对 AI 模型运行安全基准测试,并查看详细报告,以显示其性能表现如何。

徽章

License Python Version from PEP 621 TOML GitHub Actions Workflow Status

背景

这是一个 MLCommons 项目,是 AI 安全工作组 的一部分。项目处于早期阶段,这应被视为一个概念验证。结果并不旨在表明 AI 系统安全水平的实际水平。您可以在 此处 查看样本基准,并在 此处 阅读白皮书。

ModelBench 与 ModelGauge 密切相关。ModelGauge 执行大部分针对 SUT(待测试系统,即机器学习模型)的测试工作,然后使用注释器来衡量每个响应。本项目 ModelBench 聚合这些衡量标准,将它们与特定的危害相关联,将这些危害汇总成基准,并生成报告。如果您想为您的模型运行基准测试,请先通过 添加 SUT 来与 ModelGauge 配合使用。

要求

当前基准使用 LlamaGuard 评估响应的安全性。目前您需要一个 TogetherAI 账户才能使用它。对于 0.5 版本,所有包含的模型也通过 TogetherAI 运行。如果您正在添加 SUT,可以使用您喜欢的任何服务,包括自己托管。

请注意,通过 TogetherAI 运行所有包含模型的完整基准测试目前需要大约一周时间。根据响应时间,运行您自己的 SUT 可能更快。我们旨在在 1.0 版本中将速度提高很多。然而,您可以通过使用 --max-instances-m 标志运行包含较少项目的基准测试来在几分钟内获得低保真度报告。

安装

由于该项目正在积极开发中,最好的运行方法是将其从 GitHub 检出。但是,您也可以将 ModelBench 作为 CLI 工具或库安装到您的项目中。

使用 Poetry 安装 ModelBench 以进行本地开发。

  1. 使用以下推荐的其中一种方法安装 Poetry 这些方法。例如
pipx install poetry
  1. 克隆此存储库。
git clone https://github.com/mlcommons/modelbench.git
  1. 安装 ModelBench 和依赖项。
cd modelbench
poetry install

在此处,您可以可选地执行 poetry shell,这将使您进入一个使用已安装包的虚拟环境。如果您这样做,您不必在下面的命令中明确说出 poetry run

从 PyPI 安装 ModelBench

  1. 按照您通常的方式将 ModelBench 安装到本地环境或项目中。例如
pip install modelbench

运行测试

为了验证您的机器上一切运行正常,您可以运行所有测试:

poetry run pytest tests

尝试使用它

我们鼓励有兴趣的各方尝试它并给我们反馈。目前,ModelBench 只是一个概念验证,但随着时间的推移,我们希望其他人能够测试自己的模型以及创建自己的测试和基准。

运行第一个基准

在运行任何基准之前,您需要创建一个包含任何必要的API密钥和其他敏感信息的秘密文件。在当前工作目录中创建一个名为 config/secrets.toml 的文件(如果您已从 PyPi 安装 ModelBench)。您可以使用以下内容作为模板。

[together]
api_key = "<your key here>"

要获取 Together 的 API 密钥,您可以在 这里 创建账户。

在设置好密钥后,您现在可以运行第一个基准!注意:如果您已从 PyPi 安装 ModelBench,则以后的所有示例命令中都可以省略 poetry run

poetry run modelbench benchmark -m 10

您应该会立即看到进度指示器,并且根据 TogetherAI 的负载情况,整个运行可能需要大约 15 分钟。

[!IMPORTANT] 有时,由于网络问题、API 停机等原因导致的临时错误,运行基准可能会失败。虽然我们正在努力优雅地处理这些错误,但当前的最佳解决方案是在基准失败时简单地重新尝试。

查看分数

在基准运行成功后,将生成静态 HTML 页面,显示基准和测试的分数。您可以通过在网页浏览器中打开 web/index.html 来查看这些页面。例如,firefox web/index.html

如果您想转储原始分数,可以这样做

poetry run modelbench grid -m 10 > scoring-grid.csv

要查看所有原始请求、响应和注释,请这样做

poetry run modelbench responses -m 10 response-output-dir

这将在给定的输出目录中生成一系列 CSV 文件,每个文件对应一个 Harm。请注意,许多提示可能令人不适或有害,尤其是对于与我们测试的任何 Harm 相关的创伤史的人来说。请仔细考虑是否需要查看提示和响应,限制暴露在必要的范围内,定期休息,并在感到不适时停止。有关风险的信息,请参阅 这篇关于替代创伤的文献综述

管理缓存

为了加快运行速度,ModelBench 缓存对 SUT 和注释器的调用。这对于基准运行者来说是正常情况。但如果你以 ModelBench 无法检测的方式更改了 SUT,比如将新版本的模型部署到同一端点,你可能需要手动删除缓存。在 run/suts 中查找与您的 SUT 名称匹配的 sqlite 文件,要么删除它,要么将其移动到其他地方。下次运行时将重新创建缓存。

在您的 SUT 上运行基准

ModelBench 使用 ModelGauge 库来发现和管理 SUT。有关如何针对自定义 SUT 运行基准的示例,请查看这个 教程

贡献

ModelBench 使用以下工具进行开发、代码质量和打包:

  1. Poetry - 依赖关系管理和打包
  2. Black - 代码格式化和样式
  3. MyPy - 静态类型

要贡献

  1. Fork 仓库
  2. 创建您的功能分支
  3. 确保您的更改有测试并且通过
  4. 创建拉取请求

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

modelbench-0.6.0.tar.gz (73.3 kB 查看哈希值)

上传时间

构建分发

modelbench-0.6.0-py3-none-any.whl (82.8 kB 查看哈希值)

上传时间 Python 3

支持