Skip to content

Repository files navigation

Multi-Model Reasoning Evaluator

面向多模型推理评估、动态路由和成本预算分配的实验工具。项目的核心方法是 BOCQ(Bayesian Optimal Cost-aware Querying):把每次模型调用视为带可靠性、价格和延迟的观测,持续更新候选答案后验,并决定停止还是调用下一个模型。

核心思路

BOCQ 将传统的“为问题选择一个模型”改写为“在预算内逐步获取证据”:

免费探针 -> 答案簇 -> 贝叶斯后验 -> VOI/成本决策 -> 停止或升级
  • 免费模型是低成本探针,不直接等同于最终答案。
  • 开放题把语义相近的回答归入同一答案簇,减少字符串差异造成的假分歧。
  • 后验保留 unseen mass,为尚未出现的正确答案留下概率,避免过早自信。
  • 下一次调用按照预期信息增益(VOI)相对价格和延迟排序。
  • 所有步骤记录模型、观测、后验、成本、延迟和停止原因,便于解释与复盘。

当前版本

  • 正式数据入口:datasets/confirmed_quality_test.jsonl
  • 数据规模:2169 题,其中 417 题包含图像
  • 最新正式实验:50% type-balanced 抽样,1084 题;校准集 323 题,测试集 761 题
  • 实验模型池:14 个模型,覆盖 free、cheap、mid、strong、frontier 和 multimodal
  • 最新汇总:reports/experiments/exp_confirmed_50pct_type_balanced_gpt55judge_20260707/
  • 消融与 baseline 汇总:reports/division2_exp_confirmed_50pct_type_balanced_20260707/
  • 最终图表:reports/visualization_sci_20260707/

仓库只保留最新确认数据、正式汇总和最终图表。候选数据集、历史试跑、原始调用矩阵、日志和重复导出物不纳入版本控制。详见 数据与结果说明

主要结果

以下结果来自最新测试集的 761 题 test split:

策略 Accuracy Total cost (CNY) Avg latency (s)
Best single 78.71% 4.1711 13.45
BOCQ-20 76.87% 1.8666 25.56
BOCQ-10 76.08% 1.4493 23.58
BOCQ-5 75.30% 1.1790 21.89

BOCQ-20 保留约 97.7% 的 best-single 准确率,同时节省约 55.2% 的总成本。oracle_model 是事后选择任一正确模型的理想上界,不是可部署策略。

快速开始

要求 Python 3.10 或更高版本。

python -m venv .venv

Windows PowerShell:

.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt

Linux/macOS:

source .venv/bin/activate
python -m pip install -r requirements.txt

检查最新数据集并运行离线 smoke test:

python scripts/check_dataset.py --dataset datasets/confirmed_quality_test.jsonl
python scripts/run_eval.py --mock

启动交互应用

复制环境变量模板并填写 API key。不要将真实 key 提交到 Git:

$env:DMXAPI_API_KEY="your-key"
streamlit run app/streamlit_demo.py

Linux/macOS:

export DMXAPI_API_KEY="your-key"
streamlit run app/streamlit_demo.py

浏览器访问 http://127.0.0.1:8501。交互页面支持极速、均衡和专家三种预算档位,并实时展示临时答案、后验置信度、路由轨迹、累计成本和延迟。

运行正式实验

小规模真实 API 检查:

python scripts/run_eval.py \
  --dataset datasets/confirmed_quality_test.jsonl \
  --model-names qwen3.5-flash,qwen3.7-plus \
  --max-problems 10

统一实验套件入口:

python scripts/run_experiment_suite.py \
  --dataset datasets/confirmed_quality_test.jsonl \
  --sample-ratio 0.5 \
  --sampling-mode type_balanced

真实运行会产生 API 费用。建议先限制 --max-problems--model-names--sample-ratio

生成报告

正式实验汇总完成后,可生成统一表格和最终可视化:

python scripts/build_experiment_tables.py --help
python scripts/build_report_visualizations.py --help

最终图表发布 PNG、SVG 和 PDF;汇总表提供 CSV、Markdown、PNG 和 PDF。投稿所需 TIFF 可在本地通过 --formats svg,pdf,png,tiff 额外生成,但不提交到 Git。

目录结构

app/                         Streamlit 交互应用
configs/                     模型、提示词、策略和质量审查配置
datasets/
  confirmed_quality_test.jsonl   最新正式数据集
  assets/confirmed_quality_test/ 最新图像资产
  reasoning_demo.jsonl           离线 smoke test 小样本
docs/                        技术设计、实验方案和结果说明
reports/
  experiments/.../summaries/    最新正式实验汇总
  division2_exp_.../summaries/  消融与 baseline 汇总
  task3_analysis/summaries/      校准、多模态、延迟与案例分析
  visualization_sci_20260707/   最终图表、表格和绘图源数据
scripts/                     数据检查、实验运行和报告生成脚本
src/llm_router/              BOCQ、baseline、评测、客户端和指标实现

关键指标

  • 质量:accuracy、completion rate、format valid rate
  • 成本:total/average cost、cost per correct、wasted upgrade cost
  • 延迟:average latency、p95 latency、first-answer latency
  • 路由:upgrade rate、effective upgrade rate、average steps
  • 后验:posterior confidence、posterior entropy、ECE
  • 综合:accuracy retention、budget saving、Pareto frontier/distance

数据说明

最新数据的字段、来源和保留策略见 datasets/README.md。每条公开基准改编记录保留 source_benchmarksource_urlsource_licensecitation 等元数据。使用或再分发图像前,请单独核对对应数据源许可。

参考工作

About

Multi-model reasoning evaluation and budget-aware routing with BOCQ

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages