Keep K3 suite selection and report-schema scoring in bash, merge K3/vision dataset_args into dpv4 yamls, and pin EvalScope at 735d920ee911 with local patches. Co-authored-by: Cursor <cursoragent@cursor.com>
109 lines
14 KiB
JSON
109 lines
14 KiB
JSON
{
|
||
"meta": {
|
||
"pretty_name": "Kimi-Vendor-Verifier",
|
||
"dataset_id": "kimi_verifier",
|
||
"paper_url": null,
|
||
"tags": [
|
||
"FunctionCalling",
|
||
"Agent"
|
||
],
|
||
"metrics": [
|
||
"param_immutable_reject_rate",
|
||
"param_default_accept_rate",
|
||
"inference_error_rate"
|
||
],
|
||
"primary_metric": {
|
||
"name": "param_immutable_reject_rate",
|
||
"aggregation": null,
|
||
"dimensions": {}
|
||
},
|
||
"few_shot_num": 0,
|
||
"eval_split": "test",
|
||
"train_split": "",
|
||
"subset_list": [
|
||
"kimi",
|
||
"opensource",
|
||
"none"
|
||
],
|
||
"description": "\n## Overview\n\nKimi-Vendor-Verifier is a pre-flight compliance check for Kimi K2 / K2-Thinking deployments. It sends synthetic probe requests to verify that the vendor API correctly **rejects** non-default values of immutable decoding parameters (``temperature``, ``top_p``, ``presence_penalty``, ``frequency_penalty``, ``n``) and **accepts** their defaults. A vendor that silently accepts wrong values risks producing degraded model output that does not match official Moonshot AI behavior. Adapted from [Kimi-Vendor-Verifier/verify_params.py](https://github.com/MoonshotAI/Kimi-Vendor-Verifier/blob/main/verify_params.py).\n\n## Task Description\n\n- **Task Type**: API parameter-compliance probing (deployment health check)\n- **Input**: A minimal chat message plus a single test parameter and thinking-mode `extra_body`\n- **Output**: Whether the vendor accepted (HTTP 200) or rejected (HTTP 400) the request\n- **Dataset**: Fully synthetic — no external dataset is downloaded; probes are generated in code from the K2 spec\n\n## Key Features\n\n- Synthetic probe set: one ``no_param`` sanity probe + 5 default-value (accept) probes + 5 wrong-value (reject) probes per (subset × thinking) combination\n- Three subsets covering all common Kimi deployment shapes:\n - ``kimi`` — official Moonshot SaaS API (``extra_body = {\"thinking\": {\"type\": ...}}``); thinking on/off\n - ``opensource`` — vLLM / SGLang / KTransformers chat-template hook (``extra_body = {\"chat_template_kwargs\": {\"thinking\": ...}}``); thinking on/off\n - ``none`` — non-hybrid model; no thinking parameter sent\n- HTTP 400 responses are treated as the success signal when a reject was expected\n- Single small request per probe; total cost is negligible compared to a full benchmark\n\n## Evaluation Notes\n\n- Default configuration uses **0-shot** synthetic probes\n- Metrics: **param_immutable_reject_rate**, **param_default_accept_rate**, **inference_error_rate**\n- Only HTTP 400 (``BadRequestError``) counts as a real parameter rejection; transport errors (5xx / timeout / 429) are excluded from the reject/accept denominators and surfaced via ``inference_error_rate`` so a flaky vendor doesn't get a free pass\n- A correctly-deployed Kimi K2 vendor should report both rate metrics at **1.0** with ``inference_error_rate = 0``; anything less indicates a parameter-enforcement gap or transport instability\n- For non-Kimi models, expect ``param_immutable_reject_rate = 0`` (no K2 spec to enforce) and ``param_default_accept_rate = 1.0`` (sensible defaults accepted)\n- Select subset via ``dataset_args={'kimi_verifier': {'subset_list': ['kimi']}}`` (or ``opensource`` / ``none``)\n",
|
||
"prompt_template": "",
|
||
"system_prompt": "",
|
||
"few_shot_prompt_template": "",
|
||
"aggregation": "mean",
|
||
"extra_params": {},
|
||
"sandbox_config": {},
|
||
"category": "agent"
|
||
},
|
||
"statistics": {
|
||
"total_samples": 55,
|
||
"subset_stats": [
|
||
{
|
||
"name": "kimi",
|
||
"sample_count": 22,
|
||
"prompt_length_mean": 26,
|
||
"prompt_length_min": 26,
|
||
"prompt_length_max": 26,
|
||
"prompt_length_std": null,
|
||
"target_length_mean": null
|
||
},
|
||
{
|
||
"name": "opensource",
|
||
"sample_count": 22,
|
||
"prompt_length_mean": 26,
|
||
"prompt_length_min": 26,
|
||
"prompt_length_max": 26,
|
||
"prompt_length_std": null,
|
||
"target_length_mean": null
|
||
},
|
||
{
|
||
"name": "none",
|
||
"sample_count": 11,
|
||
"prompt_length_mean": 26,
|
||
"prompt_length_min": 26,
|
||
"prompt_length_max": 26,
|
||
"prompt_length_std": null,
|
||
"target_length_mean": null
|
||
}
|
||
],
|
||
"prompt_length": {
|
||
"mean": 26,
|
||
"min": 26,
|
||
"max": 26,
|
||
"std": null
|
||
},
|
||
"target_length_mean": null,
|
||
"computed_at": "2026-08-04T14:36:44.807117"
|
||
},
|
||
"sample_example": {
|
||
"data": {
|
||
"input": [
|
||
{
|
||
"id": "b2530131",
|
||
"content": "Say 'OK' and nothing else."
|
||
}
|
||
],
|
||
"target": "",
|
||
"id": 0,
|
||
"group_id": 0,
|
||
"subset_key": "kimi",
|
||
"metadata": {
|
||
"think_mode": "kimi",
|
||
"thinking": false,
|
||
"param_name": null,
|
||
"test_value": null,
|
||
"expected_reject": false
|
||
}
|
||
},
|
||
"subset": "kimi",
|
||
"truncated": false
|
||
},
|
||
"readme": {
|
||
"en": "# Kimi-Vendor-Verifier\n\n\n## Overview\n\nKimi-Vendor-Verifier is a pre-flight compliance check for Kimi K2 / K2-Thinking deployments. It sends synthetic probe requests to verify that the vendor API correctly **rejects** non-default values of immutable decoding parameters (``temperature``, ``top_p``, ``presence_penalty``, ``frequency_penalty``, ``n``) and **accepts** their defaults. A vendor that silently accepts wrong values risks producing degraded model output that does not match official Moonshot AI behavior. Adapted from [Kimi-Vendor-Verifier/verify_params.py](https://github.com/MoonshotAI/Kimi-Vendor-Verifier/blob/main/verify_params.py).\n\n## Task Description\n\n- **Task Type**: API parameter-compliance probing (deployment health check)\n- **Input**: A minimal chat message plus a single test parameter and thinking-mode `extra_body`\n- **Output**: Whether the vendor accepted (HTTP 200) or rejected (HTTP 400) the request\n- **Dataset**: Fully synthetic — no external dataset is downloaded; probes are generated in code from the K2 spec\n\n## Key Features\n\n- Synthetic probe set: one ``no_param`` sanity probe + 5 default-value (accept) probes + 5 wrong-value (reject) probes per (subset × thinking) combination\n- Three subsets covering all common Kimi deployment shapes:\n - ``kimi`` — official Moonshot SaaS API (``extra_body = {\"thinking\": {\"type\": ...}}``); thinking on/off\n - ``opensource`` — vLLM / SGLang / KTransformers chat-template hook (``extra_body = {\"chat_template_kwargs\": {\"thinking\": ...}}``); thinking on/off\n - ``none`` — non-hybrid model; no thinking parameter sent\n- HTTP 400 responses are treated as the success signal when a reject was expected\n- Single small request per probe; total cost is negligible compared to a full benchmark\n\n## Evaluation Notes\n\n- Default configuration uses **0-shot** synthetic probes\n- Metrics: **param_immutable_reject_rate**, **param_default_accept_rate**, **inference_error_rate**\n- Only HTTP 400 (``BadRequestError``) counts as a real parameter rejection; transport errors (5xx / timeout / 429) are excluded from the reject/accept denominators and surfaced via ``inference_error_rate`` so a flaky vendor doesn't get a free pass\n- A correctly-deployed Kimi K2 vendor should report both rate metrics at **1.0** with ``inference_error_rate = 0``; anything less indicates a parameter-enforcement gap or transport instability\n- For non-Kimi models, expect ``param_immutable_reject_rate = 0`` (no K2 spec to enforce) and ``param_default_accept_rate = 1.0`` (sensible defaults accepted)\n- Select subset via ``dataset_args={'kimi_verifier': {'subset_list': ['kimi']}}`` (or ``opensource`` / ``none``)\n\n\n## Properties\n\n| Property | Value |\n|----------|-------|\n| **Benchmark Name** | `kimi_verifier` |\n| **Dataset ID** | `kimi_verifier` |\n| **Paper** | N/A |\n| **Tags** | `Agent`, `FunctionCalling` |\n| **Metrics** | `param_immutable_reject_rate`, `param_default_accept_rate`, `inference_error_rate` |\n| **Default Shots** | 0-shot |\n| **Evaluation Split** | `test` |\n\n\n## Data Statistics\n\n| Metric | Value |\n|--------|-------|\n| Total Samples | 55 |\n| Prompt Length (Mean) | 26 chars |\n| Prompt Length (Min/Max) | 26 / 26 chars |\n\n**Per-Subset Statistics:**\n\n| Subset | Samples | Prompt Mean | Prompt Min | Prompt Max |\n|--------|---------|-------------|------------|------------|\n| `kimi` | 22 | 26 | 26 | 26 |\n| `opensource` | 22 | 26 | 26 | 26 |\n| `none` | 11 | 26 | 26 | 26 |\n\n## Sample Example\n\n**Subset**: `kimi`\n\n```json\n{\n \"input\": [\n {\n \"id\": \"b2530131\",\n \"content\": \"Say 'OK' and nothing else.\"\n }\n ],\n \"target\": \"\",\n \"id\": 0,\n \"group_id\": 0,\n \"subset_key\": \"kimi\",\n \"metadata\": {\n \"think_mode\": \"kimi\",\n \"thinking\": false,\n \"param_name\": null,\n \"test_value\": null,\n \"expected_reject\": false\n }\n}\n```\n\n## Prompt Template\n\n*No prompt template defined.*\n\n## Usage\n\n### Using CLI\n\n```bash\nevalscope eval \\\n --model YOUR_MODEL \\\n --api-url OPENAI_API_COMPAT_URL \\\n --api-key EMPTY_TOKEN \\\n --datasets kimi_verifier \\\n --limit 10 # Remove this line for formal evaluation\n```\n\n### Using Python\n\n```python\nfrom evalscope import run_task\nfrom evalscope.config import TaskConfig\n\ntask_cfg = TaskConfig(\n model='YOUR_MODEL',\n api_url='OPENAI_API_COMPAT_URL',\n api_key='EMPTY_TOKEN',\n datasets=['kimi_verifier'],\n dataset_args={\n 'kimi_verifier': {\n # subset_list: ['kimi', 'opensource', 'none'] # optional, evaluate specific subsets\n }\n },\n limit=10, # Remove this line for formal evaluation\n)\n\nrun_task(task_cfg=task_cfg)\n```\n\n\n",
|
||
"zh": "# Kimi-Vendor-Verifier\n\n\n## 概述\n\nKimi-Vendor-Verifier 是 Kimi K2 / K2-Thinking 部署的预检合规性检查工具。它会发送合成探测请求,验证供应商 API 是否正确地**拒绝**不可变解码参数(``temperature``、``top_p``、``presence_penalty``、``frequency_penalty``、``n``)的非默认值,并**接受**其默认值。如果供应商静默接受错误值,则可能导致模型输出质量下降,无法匹配官方 Moonshot AI 的行为。本工具改编自 [Kimi-Vendor-Verifier/verify_params.py](https://github.com/MoonshotAI/Kimi-Vendor-Verifier/blob/main/verify_params.py)。\n\n## 任务描述\n\n- **任务类型**:API 参数合规性探测(部署健康检查)\n- **输入**:一条最小化聊天消息,加上一个测试参数和 thinking-mode 的 `extra_body`\n- **输出**:供应商是否接受(HTTP 200)或拒绝(HTTP 400)该请求\n- **数据集**:完全合成 —— 无需下载外部数据集;探测请求根据 K2 规范在代码中生成\n\n## 核心特性\n\n- 合成探测集:每个 (子集 × thinking) 组合包含 1 个 ``no_param`` 健康检查探测 + 5 个默认值(应接受)探测 + 5 个错误值(应拒绝)探测\n- 三个子集覆盖所有常见的 Kimi 部署形态:\n - ``kimi`` —— 官方 Moonshot SaaS API(``extra_body = {\"thinking\": {\"type\": ...}}``);开启/关闭 thinking\n - ``opensource`` —— vLLM / SGLang / KTransformers 的 chat-template 钩子(``extra_body = {\"chat_template_kwargs\": {\"thinking\": ...}}``);开启/关闭 thinking\n - ``none`` —— 非混合模型;不发送 thinking 参数\n- 当预期应拒绝时,HTTP 400 响应被视为成功信号\n- 每个探测仅发送一个小型请求;总开销相比完整基准测试可忽略不计\n\n## 评估说明\n\n- 默认配置使用 **0-shot** 合成探测\n- 评估指标:**param_immutable_reject_rate**、**param_default_accept_rate**、**inference_error_rate**\n- 仅 HTTP 400(``BadRequestError``)被视为真正的参数拒绝;传输错误(5xx / 超时 / 429)不计入拒绝/接受的分母,而是通过 ``inference_error_rate`` 单独体现,避免不稳定的供应商获得“免费通行证”\n- 正确部署的 Kimi K2 供应商应报告两个比率指标均为 **1.0**,且 ``inference_error_rate = 0``;任何低于此标准的结果均表明存在参数强制执行漏洞或传输不稳定\n- 对于非 Kimi 模型,预期 ``param_immutable_reject_rate = 0``(无 K2 规范可强制执行),而 ``param_default_accept_rate = 1.0``(合理默认值被接受)\n- 可通过 ``dataset_args={'kimi_verifier': {'subset_list': ['kimi']}}``(或 ``opensource`` / ``none``)选择子集\n\n## 属性\n\n| 属性 | 值 |\n|----------|-------|\n| **基准测试名称** | `kimi_verifier` |\n| **数据集ID** | `kimi_verifier` |\n| **论文** | N/A |\n| **标签** | `Agent`, `FunctionCalling` |\n| **指标** | `param_immutable_reject_rate`, `param_default_accept_rate`, `inference_error_rate` |\n| **默认 Shots** | 0-shot |\n| **评估 Split** | `test` |\n\n\n## 数据统计\n\n| 指标 | 值 |\n|--------|-------|\n| 总样本数 | 55 |\n| 提示词长度(平均) | 26 字符 |\n| 提示词长度(最小/最大) | 26 / 26 字符 |\n\n**各子集统计信息:**\n\n| 子集 | 样本数 | 提示词平均长度 | 提示词最小长度 | 提示词最大长度 |\n|--------|---------|-------------|------------|------------|\n| `kimi` | 22 | 26 | 26 | 26 |\n| `opensource` | 22 | 26 | 26 | 26 |\n| `none` | 11 | 26 | 26 | 26 |\n\n## 样例示例\n\n**子集**: `kimi`\n\n```json\n{\n \"input\": [\n {\n \"id\": \"b2530131\",\n \"content\": \"Say 'OK' and nothing else.\"\n }\n ],\n \"target\": \"\",\n \"id\": 0,\n \"group_id\": 0,\n \"subset_key\": \"kimi\",\n \"metadata\": {\n \"think_mode\": \"kimi\",\n \"thinking\": false,\n \"param_name\": null,\n \"test_value\": null,\n \"expected_reject\": false\n }\n}\n```\n\n## 提示模板\n\n*未定义提示模板。*\n\n## 使用方法\n\n### 使用 CLI\n\n```bash\nevalscope eval \\\n --model YOUR_MODEL \\\n --api-url OPENAI_API_COMPAT_URL \\\n --api-key EMPTY_TOKEN \\\n --datasets kimi_verifier \\\n --limit 10 # 正式评估时请删除此行\n```\n\n### 使用 Python\n\n```python\nfrom evalscope import run_task\nfrom evalscope.config import TaskConfig\n\ntask_cfg = TaskConfig(\n model='YOUR_MODEL',\n api_url='OPENAI_API_COMPAT_URL',\n api_key='EMPTY_TOKEN',\n datasets=['kimi_verifier'],\n dataset_args={\n 'kimi_verifier': {\n # subset_list: ['kimi', 'opensource', 'none'] # 可选,用于评估特定子集\n }\n },\n limit=10, # 正式评估时请删除此行\n)\n\nrun_task(task_cfg=task_cfg)\n```",
|
||
"content_hash": "9791985dafbb05225cec00a9e7a80686",
|
||
"needs_translation": false
|
||
},
|
||
"updated_at": "2026-08-11T15:30:53.553392",
|
||
"translation_updated_at": "2026-08-04T14:37:04"
|
||
}
|