RuLES(Rule-following Language Evaluation Scenarios)是一个用于评估语言模型规则遵循能力的基准测试。该仓库包含评估代码、测试用例和模型接口,支持通过API或本地模型(如vLLM)运行评估,并提供可视化结果和聚合评分功能。
用途
RuLES 旨在评估语言模型在给定规则下的遵循能力。它提供了一套测试场景,用于衡量模型是否能够按照简单规则执行任务。
主要能力
- 提供规则遵循评估的基准测试,包括 Benign、Basic 和 Redteam 三个测试套件。
- 支持通过 API 包装器(如 OpenAI、Anthropic、Google VertexAI)评估模型。
- 支持本地模型评估,例如使用 vLLM(需要 GPU)。
- 提供可视化工具,用于查看测试用例和评估结果。
- 支持计算聚合 RuLES 分数。
- 包含 GCG 攻击的实现(需要 GPU),用于生成对抗性后缀。
- 支持微调实验,例如在 Llama-2 7B Chat 上使用 basic_like 测试用例进行微调。
使用方式
- 安装:作为可编辑包安装,并安装可选依赖以使用 API 包装器。
- 配置 API 密钥:创建 OpenAI / Anthropic / Google API 密钥并写入 .env 文件。
- 下载模型:使用 snapshot_download 下载 Llama-2 或其他 HuggingFace 模型到本地路径。
- 下载评估日志(可选):从提供的链接下载并解压到 logs/ 目录。
- 探索测试用例:使用可视化工具查看测试用例。
- 运行评估:主评估脚本为 llm_rules/scripts/evaluate.py。可以评估 redteam 测试套件,或使用 vLLM 评估本地模型(需要 GPU)。
- 可视化评估结果:查看单个测试套件的详细结果。
- 计算聚合分数:在评估所有三个测试套件后,计算聚合 RuLES 分数。
- 查看单个测试用例的响应。
- 运行 GCG 攻击(需要 GPU):使用随机场景参数运行 GCG 攻击,输出日志存储在 logs/gcg_attack。然后使用生成的 GCG 后缀评估模型在 direct_request 测试用例上的表现。
- 复现微调实验:使用 4x A100-80G GPU 对 Llama-2 7B Chat 和 Mistral 7B Instruct 进行微调,可调整 deepspeed 设置以适应更小的 GPU。
适用场景
- 研究人员评估语言模型的规则遵循能力。
- 开发人员测试模型在特定规则下的行为。
- 进行对抗性攻击研究(如 GCG 攻击)。
- 微调实验以改进模型的规则遵循能力。
限制
- 评估本地模型使用 vLLM 时需要 GPU。
- GCG 攻击需要 GPU。
- 微调实验需要大量 GPU 资源(如 4x A100-80G)。
- 结果可能因提示词措辞和拼写修正而不可直接比较(v3.0.0 版本说明)。
- 部分功能(如 API 评估)需要相应的 API 密钥。
- 具体收费、价格、平台支持等细节暂未提供。