Skip to content

Add lightweight tool-use verifier evaluations / 添加轻量级工具调用验证评估 - #2634

Draft
adibarra wants to merge 74 commits into
mainfrom
experiment/tool-use-eval-full
Draft

Add lightweight tool-use verifier evaluations / 添加轻量级工具调用验证评估#2634
adibarra wants to merge 74 commits into
mainfrom
experiment/tool-use-eval-full

Conversation

@adibarra

@adibarra adibarra commented Aug 17, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Integrate the stock Kimi Vendor Verifier and MiniMax Provider Verifier with the existing InferenceX eval pipeline.
  • Add pinned BFCL V4 smoke and model-quality suites without introducing a parallel eval framework.
  • Reuse the existing eval dispatch, launcher, artifact upload, result collection, threshold validation, and dashboard paths.
  • Add deterministic artifact cleanup, bounded retries and timeouts, single-node and multi-node staging, and normalized inferencex-eval-v1 results.
  • Preserve the default GSM8K behavior. Kimi, MiniMax, and BFCL suites remain opt-in.

Validation

Pass rates

  • Selected Kimi and MiniMax hardware runs on ancestor revisions: 7/7 passed, 100%.
  • Selected post-integration Kimi and MiniMax runs listed below, including the DeepSeek V4 cross-model diagnostic: 7/8 passed, 87.5%.
  • Local focused test suite: 549/549 passed, 100%.
  • Kimi K3 full schema suite: 400/408 cases passed, 98.0%. This full suite is diagnostic and currently has a 0.0 threshold.
  • MiniMax M3 full suite: 102/102 requests completed, 100%, with a final compatibility score of 96%.

Ancestor-revision hardware results

Hardware Backend and model Suite Result
H100 SGLang, Qwen3.5 MiniMax smoke 1.0, passed
H200 vLLM, MiniMax M3 MiniMax full 102/102 completed, score 0.96, passed
B200 Dynamo vLLM, Kimi K3 Kimi full 400/408 cases, score 0.980392, diagnostic workflow passed
B300 vLLM, Kimi K3 MiniMax smoke 1.0, passed
GB200 Dynamo vLLM, Kimi K3 MiniMax smoke 1.0, passed
MI325X vLLM, MiniMax M3 MiniMax smoke 1.0, passed
MI355X vLLM, Kimi K3 MiniMax smoke 1.0, passed

These runs are on ancestor commits 7b6160322 or f020a8e27. The current PR head, b57d8bb679c332e30e408d79490e4f38a2093c12, has no GPU end-to-end run. Historical BFCL runs are excluded because bfcl_adapter.py and its shell dispatch were substantially rewritten afterward; the current BFCL path has no hardware proof.

All changed Python files compiled, all changed shell files passed bash -n, and a mock OpenAI-compatible endpoint exercised the MiniMax adapter end to end with score 1.0.

Known outcomes and remaining coverage

  • The GB200 DeepSeek V4 diagnostic returned prose with finish_reason: stop instead of a tool call. The adapter correctly produced artifacts and failed the threshold with score 0.0 in run 32057478178. This is a model-behavior result, not an integration failure.
  • The redundant GB300 DeepSeek V4 run was cancelled after 70 minutes in its multi-node launch stage and is excluded from pass-rate calculations.
  • Kimi K3 produced a 98.0% full-suite score, but the suite currently has a diagnostic 0.0 threshold and eight JSON Schema edge cases remain model compatibility failures.
  • ATOM and TensorRT-LLM launch plumbing is implemented but does not yet have end-to-end hardware validation in this PR.
  • The current BFCL adapter, including both smoke and model-quality suites, remains opt-in with diagnostic full-suite thresholds and has not yet passed a post-rewrite hardware run.

Type of change

  • New feature
  • Documentation update
  • Configuration change
  • Bug fix

Checklist

  • I have tested my changes locally.
  • I have updated documentation.
  • The performance changelog requirement is not applicable. This PR adds opt-in eval behavior and preserves default throughput benchmark configurations.
  • A final PR sweep and /reuse-sweep-run authorization are pending.

中文说明

  • 将 Kimi Vendor Verifier 和 MiniMax Provider Verifier 原生实现接入现有 InferenceX 评估流水线。
  • 新增固定版本的 BFCL V4 冒烟测试和模型质量评估套件,不引入独立的平行评估框架。
  • 复用现有评估分发、启动器、产物上传、结果汇总、阈值校验和看板链路。
  • 新增确定性的历史产物清理、有界重试与超时、单节点及多节点产物暂存,并统一输出 inferencex-eval-v1 结果格式。
  • 保持 GSM8K 默认行为不变。Kimi、MiniMax 和 BFCL 套件均需显式启用。

验证结果

通过率

  • 在祖先提交上选取的 Kimi 和 MiniMax 硬件运行:7/7 通过,通过率 100%
  • 下表所列的 Kimi 和 MiniMax 集成后运行(计入 DeepSeek V4 跨模型诊断):7/8 通过,通过率 87.5%
  • 本地聚焦测试:549/549 通过,通过率 100%
  • Kimi K3 完整 JSON Schema 套件:400/408 用例通过,通过率 98.0%。该完整套件目前仅用于诊断,阈值为 0.0
  • MiniMax M3 完整套件:102/102 请求完成,完成率 100%,最终兼容性得分为 96%

祖先提交的硬件结果

硬件 后端与模型 套件 结果
H100 SGLang、Qwen3.5 MiniMax 冒烟测试 1.0,通过
H200 vLLM、MiniMax M3 MiniMax 完整套件 102/102 请求完成,得分 0.96,通过
B200 Dynamo vLLM、Kimi K3 Kimi 完整套件 400/408 用例通过,得分 0.980392,诊断工作流通过
B300 vLLM、Kimi K3 MiniMax 冒烟测试 1.0,通过
GB200 Dynamo vLLM、Kimi K3 MiniMax 冒烟测试 1.0,通过
MI325X vLLM、MiniMax M3 MiniMax 冒烟测试 1.0,通过
MI355X vLLM、Kimi K3 MiniMax 冒烟测试 1.0,通过

以上运行基于祖先提交 7b6160322f020a8e27。当前 PR 头提交 b57d8bb679c332e30e408d79490e4f38a2093c12 尚未运行 GPU 端到端测试。历史 BFCL 运行未计入,因为之后 bfcl_adapter.py 及其 shell 分发路径进行了大幅重写;当前 BFCL 路径尚无硬件验证证据。

所有变更的 Python 文件均已通过编译检查,所有变更的 shell 文件均已通过 bash -n。此外,使用模拟 OpenAI 兼容端点对 MiniMax 适配器进行了端到端验证,得分为 1.0

已知结果与待补充覆盖

  • GB200 上的 DeepSeek V4 诊断运行返回了普通文本,finish_reason: stop,未触发工具调用。适配器正确生成产物,并在 run 32057478178 中以 0.0 分触发阈值失败。这是模型行为结果,不是集成故障。
  • GB300 上重复的 DeepSeek V4 运行在多节点启动阶段持续 70 分钟后被取消,不计入通过率。
  • Kimi K3 完整套件得分为 98.0%,但该套件目前使用仅用于诊断的 0.0 阈值,并且仍有八个 JSON Schema 边界用例属于模型兼容性失败。
  • ATOM 和 TensorRT-LLM 的启动链路已接入,但本 PR 尚未完成对应的端到端硬件验证。
  • 当前 BFCL 适配器的冒烟测试和模型质量套件仍需显式启用,完整套件使用诊断阈值,并且重写后尚未通过硬件运行。

变更类型

  • 新功能
  • 文档更新
  • 配置变更
  • 缺陷修复

检查清单

  • 已完成本地测试。
  • 已更新相关文档。
  • 本 PR 仅新增显式启用的评估行为,并保持默认吞吐量基准测试配置不变,因此无需更新 perf-changelog.yaml
  • 最终 PR 扫描和 /reuse-sweep-run 授权尚未完成。

中文:添加基于 Kimi Vendor Verifier 原生实现的工具调用评估
中文:精简工具调用评估实现并接入工作流选择路径
中文:合并最新主分支以完成发布准备
中文:隔离 Kimi 验证器依赖并明确供应商适配边界,同时加入执行超时和通用结果格式标识。
中文:合并最新 main,确保发布前验证基于当前代码。
中文:区分失败结果产物写入成功与写入失败,同时保留原始安装失败退出码。
中文:将 agentic 评估矩阵的投机解码模式传递给启动器,避免 MTP 配置静默回退到 STP。
中文:合并最新 main,准备发布。
中文:补全纯评估工作流的结果收集依赖,避免所有评估任务成功后工作流仍显示失败。
The collector dependency change did not affect GitHub’s workflow conclusion and added unrelated orchestration scope.

中文:恢复纯评估结果收集的原有范围。该依赖调整未改变 GitHub 工作流结论,且扩大了无关改动范围。
中文:合并最新 main,准备进入评审。
中文:修正验证器失败样本数、共享格式契约、路径复用及双语文档链接。
中文:保留结果收集器测试的现有格式,仅添加格式契约测试。
中文:在启动失败时保留验证器计划样本数,同时将有效样本数记录为零。
中文:合并最新 main,并保留工具调用评估元数据。
中文:保留可配置的 eval 调度行为,并修正失败返回码、Bash 兼容性和 eval 文档。
中文:强化验证器评审路径。
中文:限定评估套件状态的作用域,并修正双语 AgentX 文档中的源码行号链接。
中文:将发生不可纠正 NVLink 错误的 b300-017 节点排除在 Slurm 分配之外。
中文:让 B300 启动器将 SALLOC_EXCLUDE 传递给 salloc,避免调度到已知故障节点。
中文:启用多节点 Kimi 验证器
中文:强化 Kimi 评估运行时故障处理
中文:捕获 Kimi 工具调用响应诊断数据。
中文:采集确定性的 Kimi 工具调用诊断数据。
中文:启用 Kimi 结构化工具调用约束。
中文:格式化 Kimi 配方回归测试。
中文:重试 Kimi 验证器的临时下载失败。
中文:稳定并清理 Kimi 验证器集成。
中文:将 MiniMax 冒烟评估收敛到稳定的工具调用模式检查,并允许在受支持模型上显式运行。
中文:移除 NVIDIA srt-slurm v1.0.45 不再支持的 GB200 配置字段。
Configure the Dynamo frontend to use each SGLang model parser so unary OpenAI responses expose structured tool_calls instead of raw model tags.

中文:配置 Dynamo 前端使用对应的 SGLang 模型解析器,使非流式 OpenAI 响应输出结构化 tool_calls,而不是原始模型标签。
Use vLLM chat processors at Dynamo frontends for DeepSeek V4 and Kimi K3 so unary OpenAI responses expose structured tool calls.

中文:在 DeepSeek V4 和 Kimi K3 的 Dynamo 前端启用 vLLM 聊天处理器,使非流式 OpenAI 响应输出结构化工具调用。
Keep the native Dynamo Kimi K3 parser and force structural tags for tool_choice=auto requests so the model emits valid XTML opening markers.

中文:保留 Dynamo 原生 Kimi K3 解析器,并对 tool_choice=auto 请求强制启用结构化标签,使模型输出有效的 XTML 起始标记。
Apply the structural-tag scope required for tool_choice=auto to every GB200 Kimi K3 topology, not only the latency recipe used by the smoke run.

中文:为所有 GB200 Kimi K3 拓扑启用 tool_choice=auto 所需的结构化标签范围,而不只覆盖冒烟验证使用的低延迟配置。
中文:使用 vLLM 的 Kimi K3 前端解析器,将工具调用作为结构化 OpenAI 响应返回。
中文:合并最新 main,并采用上游已删除的过期基准配置。
中文:清理多节点供应商评估产物时使用安全的相对 glob,避免文件名被解析为选项。
中文:对服务端点注册期间的瞬时 404 和传输错误执行有界退避重试,避免 Dynamo 前端刚启动时的误报。
中文:允许 Kimi 前端加载可信代码。
Pin and verify BFCL 2026.3.23, run four exact V4 cases against OpenAI-compatible chat completions, preserve native diagnostics, and gate the aggregate score at 0.75.

中文:新增确定性的 BFCL 工具调用冒烟评估。固定并校验 BFCL 2026.3.23,针对 OpenAI 兼容的 chat completions 端点运行四个精确的 V4 用例,保留原生诊断产物,并以 0.75 阈值校验汇总分数。
Install the undeclared soundfile dependency required while importing BFCL model handlers.

中文:安装 BFCL 模型处理器导入时所需但上游未声明的 soundfile 依赖。
Replace directly answerable arithmetic cases with current-price and library-search cases that require tool selection and preserve typed arguments.

中文:将可直接回答的算术样例替换为必须选择工具的实时价格与图书馆检索样例,并保留参数类型。
Preserve verifier diagnostics across launchers, enforce safe reusable-artifact identity, validate BFCL metrics without optional YAML dependencies, and retry only transient Kimi endpoint failures.

中文:强化工具调用评估的失败处理。跨启动器保留验证器诊断信息,严格校验可复用评估产物身份,在缺少可选 YAML 依赖时仍能校验 BFCL 指标,并且仅重试 Kimi 端点的瞬态错误。
中文:新增可选的 Kimi 与 MiniMax 全量验证套件,用于隔离式诊断实验,并保持现有 smoke 默认行为不变。
中文:新增推荐的 BFCL 评估套件,并保留完整的分类诊断和上游原始产物。
中文:记录 BFCL 模型质量评估套件的选择方式、确定性约束、超时策略、阈值语义和调试产物。
中文:明确这些套件覆盖 BFCL V4 的模型特定非实时与多轮切片,不包含全部智能体类别。
中文:在 BFCL 上游调试产物中保留 Apache 2.0 许可证与可机读来源清单,并补充回归测试和文档。
中文:将 main 合并到工具调用评估实验分支。
中文:完成工具调用评估集成,并强化多后端分发、产物处理与失败语义。
中文:为 Kimi K3 启用工具调用与推理解析。
中文:强化工具调用部署验证,补齐解析器配置、失败分类、重试机制和可复现的覆盖矩阵。
中文:将所有基础设施失败的有效样本数统一归零,避免聚合结果误报已完成样本。
中文:修复 AMD 运行器工作区权限,确保中断后的基准测试产物不会阻塞后续检出。
中文:将 Kimi 模型质量失败交由阈值判定,并避免把 pytest 源码上下文误判为端点故障。
中文:为 BFCL 请求增加有界传输重试,避免单次超时使完整评估失效,并在原生报告中记录重试策略。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant