运行基准测试并生成报告,以测量许多AI系统的行为。
项目描述
ModelBench
针对 AI 模型运行安全基准测试,并查看详细报告,以显示其性能表现如何。
徽章
背景
这是一个 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 以进行本地开发。
- 使用以下推荐的其中一种方法安装 Poetry 这些方法。例如
pipx install poetry
- 克隆此存储库。
git clone https://github.com/mlcommons/modelbench.git
- 安装 ModelBench 和依赖项。
cd modelbench
poetry install
在此处,您可以可选地执行 poetry shell
,这将使您进入一个使用已安装包的虚拟环境。如果您这样做,您不必在下面的命令中明确说出 poetry run
。
从 PyPI 安装 ModelBench
- 按照您通常的方式将 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 使用以下工具进行开发、代码质量和打包:
要贡献
- Fork 仓库
- 创建您的功能分支
- 确保您的更改有测试并且通过
- 创建拉取请求
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
构建分发
modelbench-0.6.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d4c1fa7b42e287ff38729b27e1754bfb452e9cc81968e60fc1ac5bf560809a5f |
|
MD5 | 3d7a8ef3fb1f6fe1c686a53ee19307a9 |
|
BLAKE2b-256 | c56ecf5aaca7693075ad249b4a8da1a8471a5f77db5336e5895170ab3246c15b |
modelbench-0.6.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1527c027e0aa3ec8b0974f7c2109ad4d65da923fb987039c705f30d06d859191 |
|
MD5 | 9bd4216fc396fa082a229ae6bfaca3aa |
|
BLAKE2b-256 | 3875a37ffe828789703877fda93f9b4898bcd8dd56cfbef7e4d16917e041ac6c |