openai evals guide

OpenAI Evals 框架指南:标准化 LLM 评估

为什么需要标准化评估框架 大语言模型能力飞速迭代,但"模型到底好不好"这个问题却越来越难回答。手工测试覆盖面有限, ad-hoc 脚本难以复现,不同模型之间的对比缺乏统一基准。OpenAI Evals 框架正是为解决这一痛点而生——它提供了一套标准化的评估流程,让模型评估变得可复现、可对比、可扩展。 Evals 框架核心架构 三层设计 ┌─────────────────────────────────┐ │ Eval Runner │ ← 评估运行器 ├─────────────────────────────────┤ │ Template / Custom Eval │ ← 评估模板/自定义逻辑 ├─────────────────────────────────┤ │ Dataset (JSONL / JSON) │ ← 评估数据集 └─────────────────────────────────┘ 组件 职责 说明 Eval Runner 执行评估 驱动模型推理、收集输出、触发评估器 Template 评估逻辑 定义 Prompt 模板和评估方法 Dataset 评估数据 JSONL/JSON 格式的测试样本 Evaluator 判定结果 判断模型输出是否正确 评估模板类型 OpenAI Evals 内置了多种评估模板: basic:单轮问答,对比模型输出与参考答案 matching:精确匹配评估 includes:包含匹配(输出包含期望字符串) factuality:基于另一个 LLM 判断事实准确性 model-graded-closedbook:模型作为裁判,无参考资料 model-graded-closedbook-cf:模型裁判 + 反转选项防止位置偏见 快速开始 安装 pip install openai-evals # 或从源码安装 git clone https://github.com/openai/evals.git cd evals && pip install -e . 使用内置评估模板 # 使用 basic 模板评估 oaieval gpt-4o basic --max_samples 100 # 使用 model-graded 模板 oaieval gpt-4o model-graded-closedbook \ --max_samples 50 \ --eval.evaluator gpt-4o 数据集格式 评估数据集采用 JSONL 格式,每行一个样本: ...

2026-06-24 · 3 min · 487 words · 硅基 AGI 探索者
multimodal eval guide

多模态评估指南:视觉语言模型怎么测?

VLM 评估维度 VLM 评估需同时考察视觉感知和语言推理两条链路。 ┌──────────┬──────────┬──────────┐ │ 感知层 │ 推理层 │ 生成层 │ 图像理解 │ 对象识别 │ 因果推理 │ 描述生成 │ 视频理解 │ 动作识别 │ 时序推理 │ 摘要生成 │ 3D 理解 │ 空间感知 │ 交互推理 │ 场景描述 │ └──────────┴──────────┴──────────┘ 感知层 能力 测试方法 对象识别 “图中有哪些物体” 属性识别 颜色、大小、材质 空间关系 物体间位置关系 细粒度识别 区分相似物体 OCR 识别图中文字 推理层 能力 示例 物理推理 “杯子从桌边掉落会怎样” 社会推理 “图中的人为什么生气” 多步推理 “根据路标该往哪走” 生成层 能力 示例 图像描述 无障碍 alt text 视觉问答 “图中时钟显示几点” 图文创作 看图写故事 核心基准 基准 规模 核心能力 特点 MMBench 2943题 20维度综合 中英双语,细粒度分类 MMMU 11.5K 学科知识+视觉 30学科,大学水平 SEED-Bench 19K 多模态理解 覆盖图像/视频/3D MME 2394 感知+认知 是/否问答 GQA 22M 场景图推理 结构化推理 MMBench 能力维度 ├── 粗粒度感知 (对象存在/计数/场景分类) ├── 细粒度感知 (属性/空间关系/OCR) ├── 推理 (物理/社会/逻辑) └── 关系 (图内/跨图) MME 评估 # Yes/No 问答,避免开放式生成的评分问题 def evaluate_mme(model, dataset): correct = 0 for item in dataset: for question, answer in item['questions']: pred = model.answer(item['image'], question) if normalize(pred) == answer.lower(): correct += 1 return correct / len(dataset) 视频理解评估 维度 基准 时序理解 MVBench, TempCompass 动作识别 Kinetics 视频问答 NExT-QA, EgoSchema 长视频理解 LongVideoBench 视频评估策略 def evaluate_video(model, video_path, questions): for q in questions: if q['type'] == 'temporal': frames = sample_frames(video_path, fps=2) # 密集采帧 elif q['type'] == 'action': frames = sample_keyframes(video_path, n=16) # 关键帧 else: frames = sample_uniform(video_path, n=8) # 均匀采样 answer = model.answer(frames, q['question']) 视频评估挑战 帧采样偏差:均匀采帧可能错过关键事件 时序长度:短视频和长视频需不同策略 计算成本:视频编码比图像贵 100x+ 3D 理解评估 基准 任务 数据形式 ScanQA 3D场景问答 点云+RGB-D 3D-LLM 3D场景对话 点云+语义标注 SpatialBench 空间关系推理 合成3D场景 评估陷阱 1. 数据泄露 def check_contamination(train_data, test_data): from imagehash import phash train_hashes = {phash(img) for img in train_data} leaked = sum(1 for img in test_data if phash(img) in train_hashes) return leaked / len(test_data) 2. 位置偏差 偏差 规避方法 位置A偏好 随机化选项顺序 末位偏好 选项排列组合测试 长度偏好 控制选项长度一致 3. 语言先验作弊 def test_vision_dependency(model, questions): with_image = [model.answer(q['image'], q['question']) for q in questions] without_image = [model.answer(None, q['question']) for q in questions] gap = accuracy(with_image) - accuracy(without_image) if gap < 0.1: print("警告:模型可能未有效利用视觉信息") 4. 指标陷阱 陷阱 解决方案 精确匹配过严 用语义相似度或LLM裁判 BLEU/ROUGE不适用 用 CIDEr 或 SPICE 多选准确率虚高 报告随机基线+normalized gain 实战建议 多基准组合:至少 3 个基准交叉评估 分维度报告:按感知/推理/生成分维度 做数据泄露检查:网络图片基准尤其注意 控制推理成本:视频和3D评估预算大 中英文分别评估:VLM 中英文能力差异可能很大 关注长尾能力:平均分高的模型可能特定维度很差 人工校验:抽 5-10% 人工复核确保指标可信 多模态评估仍在快速发展,保持对新方法和基准的关注,定期更新评估体系。 加入讨论 这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。 ...

2026-06-24 · 2 min · 334 words · 硅基 AGI 探索者
鲁ICP备2026018361号