113 lines
4.2 KiB
Markdown
113 lines
4.2 KiB
Markdown
# MiniMax-Vendor-Verifier
|
||
|
||
|
||
## 概述
|
||
|
||
MiniMax-Vendor-Verifier 是一个用于验证 MiniMax M2 / M2.5 / M2.7 供应商部署正确性的多验证器基准测试。每条提示行可携带一个可选的 ``check_type`` 标签,用于路由到特定的验证器;此外还始终启用 ``error_only_reasoning`` 检测器,以捕获最常见的部署回归问题。本基准测试改编自 [MiniMax-Provider-Verifier](https://github.com/MiniMax-AI/MiniMax-Provider-Verifier)。
|
||
|
||
## 任务描述
|
||
|
||
- **任务类型**:供应商部署正确性检查(多维度)
|
||
- **输入**:多轮对话消息(可选工具定义)以及每行的路由标签(``check_type``、``expected_tool_call``)
|
||
- **输出**:供应商的聊天补全响应,并根据该行所选的验证器进行评分
|
||
- **分发逻辑**:未指定 ``check_type`` 的行默认使用 ``tool_calls`` 验证器;指定了 ``check_type`` 的行仅运行所列的验证器
|
||
|
||
## 核心特性
|
||
|
||
- 移植了五个上游验证器作为纯函数:
|
||
- ``tool_calls`` — 对参数进行 JSON Schema 验证,并检查数组命令的合理性,同时基于 ``expected_tool_call`` 生成混淆矩阵
|
||
- ``error_only_reasoning``(始终启用)— 标记包含推理但无内容且无工具调用的响应(一种部署回归问题)
|
||
- ``contains_russian_characters_unicode`` — 语言遵循性检查;当响应中出现西里尔字符时判定为失败
|
||
- ``repeat_n_gram`` — 退化重复检测器(任意 3-gram 出现 4 次或以上即视为失败)
|
||
- ``scenario_check`` — 验证模型是否保留声明的 JSON 属性顺序,用于发现会重新排序 ``parameters.properties`` 的供应商
|
||
- 报告中每个验证器的分母:``num=0`` 表示该子集中没有行触发此验证器(并非失败)
|
||
- 托管数据集保留了上游的 sample.jsonl 文件,以及 M2.5 / M2.7 的每轮基线追踪数据
|
||
|
||
## 评估说明
|
||
|
||
- 默认配置使用 **0-shot** 评估;``default`` 子集包含 102 行
|
||
- 评估指标:**tool_calls_match_rate**、**schema_accuracy**、**error_only_reasoning_rate**、**language_following_success_rate**、**repeat_ngram_pass_rate**、**scenario_check_pass_rate**
|
||
- 根据上游指导,正确部署的供应商应达到:``tool_calls_match_rate ≈ 0.98``、``schema_accuracy ≥ 0.98``、``error_only_reasoning_rate = 0`` 以及 ``scenario_check_pass_rate = 1.0``
|
||
- 使用 ``--limit`` 时,较稀有的 ``check_type`` 行(scenario / repeat / language)可能不会全部被采样;请检查各验证器对应的 ``num`` 列
|
||
|
||
## 属性
|
||
|
||
| 属性 | 值 |
|
||
|----------|-------|
|
||
| **基准测试名称** | `minimax_verifier` |
|
||
| **数据集ID** | [evalscope/MiniMaxVendorVerifier](https://modelscope.cn/datasets/evalscope/MiniMaxVendorVerifier/summary) |
|
||
| **论文** | N/A |
|
||
| **标签** | `Agent`, `FunctionCalling` |
|
||
| **指标** | `tool_calls_match_rate`, `schema_accuracy`, `error_only_reasoning_rate`, `language_following_success_rate`, `repeat_ngram_pass_rate`, `scenario_check_pass_rate` |
|
||
| **默认 Shots** | 0-shot |
|
||
| **评估分割** | `test` |
|
||
|
||
|
||
## 数据统计
|
||
|
||
| 指标 | 值 |
|
||
|--------|-------|
|
||
| 总样本数 | 102 |
|
||
| 提示词长度(平均) | 72251.38 字符 |
|
||
| 提示词长度(最小/最大) | 16 / 341252 字符 |
|
||
|
||
## 样例示例
|
||
|
||
**子集**: `default`
|
||
|
||
```json
|
||
{
|
||
"input": [
|
||
{
|
||
"id": "6cc50a79",
|
||
"content": "日本ではどのような時にお年玉を渡しますか?",
|
||
"role": "user"
|
||
}
|
||
],
|
||
"target": "",
|
||
"id": 0,
|
||
"group_id": 0,
|
||
"tools": [],
|
||
"metadata": {
|
||
"check_type": [
|
||
"contains_russian_characters_unicode"
|
||
],
|
||
"expected_tool_call": null,
|
||
"tools_raw": []
|
||
}
|
||
}
|
||
```
|
||
|
||
## 提示模板
|
||
|
||
*未定义提示模板。*
|
||
|
||
## 使用方法
|
||
|
||
### 使用 CLI
|
||
|
||
```bash
|
||
evalscope eval \
|
||
--model YOUR_MODEL \
|
||
--api-url OPENAI_API_COMPAT_URL \
|
||
--api-key EMPTY_TOKEN \
|
||
--datasets minimax_verifier \
|
||
--limit 10 # 正式评估时请删除此行
|
||
```
|
||
|
||
### 使用 Python
|
||
|
||
```python
|
||
from evalscope import run_task
|
||
from evalscope.config import TaskConfig
|
||
|
||
task_cfg = TaskConfig(
|
||
model='YOUR_MODEL',
|
||
api_url='OPENAI_API_COMPAT_URL',
|
||
api_key='EMPTY_TOKEN',
|
||
datasets=['minimax_verifier'],
|
||
limit=10, # 正式评估时请删除此行
|
||
)
|
||
|
||
run_task(task_cfg=task_cfg)
|
||
``` |