MiniMax-Vendor-Verifier#
Overview#
MiniMax-Vendor-Verifier is a multi-validator deployment-correctness check for MiniMax M2 / M2.5 / M2.7 vendors. Each prompt row carries an optional check_type tag that routes it through specific validators, plus an always-on error_only_reasoning detector for the most common deployment regression. Adapted from MiniMax-Provider-Verifier.
Task Description#
Task Type: Vendor-deployment correctness check (multi-dimensional)
Input: Multi-turn chat messages with optional tool definitions, plus per-row routing tags (
check_type,expected_tool_call)Output: Vendor’s chat-completion response, scored against the validator(s) selected for that row
Dispatch: Rows without
check_typedefault to thetool_callsvalidator; rows withcheck_typerun only the listed validators
Key Features#
Five upstream validators ported as pure functions:
tool_calls— JSON-schema validation of arguments + array-command soundness check, plus a confusion matrix overexpected_tool_callerror_only_reasoning(always-on) — flags responses with reasoning but no content and no tool calls (a deployment regression)contains_russian_characters_unicode— language-following check; fails when Cyrillic codepoints leak into the responserepeat_n_gram— degenerate-repetition detector (any 3-gram appearing 4 or more times)scenario_check— verifies the model preserves the declared JSON property order, catching providers that re-sortparameters.properties
Per-validator denominator in the report:
num=0indicates no row in the subset triggered that validator (not a failure)Hosted dataset preserves the upstream sample.jsonl plus per-loop baseline traces for M2.5 / M2.7
Evaluation Notes#
Default configuration uses 0-shot evaluation; the
defaultsubset has 102 rowsMetrics: tool_calls_match_rate, schema_accuracy, error_only_reasoning_rate, language_following_success_rate, repeat_ngram_pass_rate, scenario_check_pass_rate
Per upstream guidance, a correctly-deployed vendor should hit
tool_calls_match_rate ≈ 0.98,schema_accuracy ≥ 0.98,error_only_reasoning_rate = 0, andscenario_check_pass_rate = 1.0When using
--limit, the rarercheck_typerows (scenario / repeat / language) may not all be sampled; check the per-validatornumcolumn
Properties#
Property |
Value |
|---|---|
Benchmark Name |
|
Dataset ID |
|
Paper |
N/A |
Tags |
|
Metrics |
|
Default Shots |
0-shot |
Evaluation Split |
|
Data Statistics#
Metric |
Value |
|---|---|
Total Samples |
102 |
Prompt Length (Mean) |
72251.38 chars |
Prompt Length (Min/Max) |
16 / 341252 chars |
Sample Example#
Subset: default
{
"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": []
}
}
Prompt Template#
No prompt template defined.
Usage#
Using CLI#
evalscope eval \
--model YOUR_MODEL \
--api-url OPENAI_API_COMPAT_URL \
--api-key EMPTY_TOKEN \
--datasets minimax_verifier \
--limit 10 # Remove this line for formal evaluation
Using 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, # Remove this line for formal evaluation
)
run_task(task_cfg=task_cfg)