ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

人类专家90分碾压AI:Video-MME新基准下多模态大模型视频理解能力实测

人类专家90分碾压AI:Video-MME新基准下多模态大模型视频理解能力实测 1. 为什么榜单高分模型一遇到视频就露馅Video-MME 这个基准最近在圈子里讨论度很高原因很简单它把多模态大模型的视频理解能力拉到了一个更接近真实使用的场景里。你平时用模型看一段十分钟的球赛、一节网课、一段产品演示感觉它好像什么都懂一点但真追问细节就开始答非所问。Video-MME 想解决的正是这个落差——它不再只考单帧识别而是把视频拆成多点信息聚合、时序信息理解、时序复杂推理三个层级再用分组连贯性计分把“蒙对”这条路堵死。我关注这个基准是因为它暴露了一个很实际的问题很多模型在传统逐题平均准确率上能拿到 60 多分但换成非线性计分后直接腰斩到 40 多分。人类专家在这套体系下能拿到 90 分以上差距不是一点半点。这说明模型在碎片化识别上确实进步很快但一旦要求它把跨帧线索串起来、按因果链条推理稳定性就崩了。这篇文章不打算复述论文结论而是给你一套可复现的评测配置骨架。你可以用统一 API 通道接入多模态模型自己跑一组视频理解对比测试看看不同模型在时序推理、音频融合、长上下文这几个维度上到底差在哪。适合谁想自建评测流程的算法工程师、需要选型多模态模型的产品同学、以及单纯想搞清楚“榜单分数为什么不可信”的技术爱好者。2. 用 TaoToken 统一 Key 接入多模态评测通道做视频理解对比测试最烦的往往不是写评测脚本而是每家模型都要单独申请 Key、单独配环境、单独处理返回格式。我试过同时接三家光鉴权就折腾了一下午。后来改成用 TaoToken 做统一入口一套 Key 走所有模型评测脚本里只改模型名就行。TaoToken 的定位是模型 API 聚合通道官网在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 端点统一为 https://taotoken.net/api 。它不替代你的编辑器也不碰生产数据库就是一个标准的 OpenAI 兼容接口层。你可以在控制台里生成 Key然后在评测项目里用同一套配置切换模型。具体操作路径先到控制台创建 API Key地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 。生成后复制 Key后面写进 settings.json。如果你还没决定用哪些模型可以先到模型对话页面看看当前支持的多模态模型列表地址是 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 。选型阶段建议至少覆盖一个强推理模型、一个轻量模型、一个偏视觉的模型这样对比才有意义。注意评测视频素材请使用公开数据集或你自己有权限的内容不要上传涉及隐私或版权的视频。TaoToken 只做请求转发不存储你的视频文件。3. 可复制的评测配置骨架与 settings.json 示例下面这套配置是我实际跑通过的结构。核心思路是用一个 Python 脚本读取 settings.json按模型列表循环请求把每个模型的回答和标准答案做比对最后输出分组得分。你不需要一次跑完 800 个视频先拿 20 到 30 个片段验证流程通不通。先建项目目录mkdir video-mme-eval cd video-mme-eval mkdir -p data/videos data/annotations results python -m venv venv source venv/bin/activate pip install openai tqdm pandas然后写 settings.json把 TaoToken 的 Key 和模型列表放进去{ api_base: https://taotoken.net/api, api_key: sk-your-taotoken-key, models: [ gemini-3-pro, gemini-3-flash, qwen3.5-397b-a17b-think ], eval: { max_frames: 64, frame_sample: uniform, group_size: 4, score_mode: nonlinear }, paths: { video_dir: data/videos, annotation: data/annotations/sample.json, output: results/eval_result.csv } }关键参数说明max_frames 控制抽帧数量Video-MME 的结论是帧数越多长上下文理解越好Qwen3.5-397B 在 512 帧比 64 帧高出 8.5 分但帧数上去后 token 消耗也涨得很快建议先 64 帧跑通再往上加。group_size 对应分组式评估每组 4 题。score_mode 选 nonlinear 就是 (N/4)² 那套计分选 avg 就是传统逐题平均。评测脚本骨架import json import base64 from openai import OpenAI from tqdm import tqdm with open(settings.json) as f: cfg json.load(f) client OpenAI(base_urlcfg[api_base], api_keycfg[api_key]) def encode_video_frames(video_path, max_frames): # 这里用你熟悉的抽帧库比如 decord 或 opencv # 返回 base64 编码的帧列表 pass def build_prompt(question, options): opt_text \n.join([f{chr(65i)}. {o} for i, o in enumerate(options)]) return f观看视频后回答以下问题只输出选项字母。\n{question}\n{opt_text} def call_model(model, frames, prompt): messages [{ role: user, content: [ {type: text, text: prompt}, *[{type: image_url, image_url: {url: fdata:image/jpeg;base64,{f}}} for f in frames] ] }] resp client.chat.completions.create(modelmodel, messagesmessages, max_tokens16) return resp.choices[0].message.content.strip() def nonlinear_score(correct_count, total): return (correct_count / total) ** 2 # 主循环略按 annotation 里的 group 结构逐组请求跑之前先确认 annotation 文件格式。Video-MME 的分组结构里每组 4 题共享同一个视频和同一个能力维度字段大致是 group_id、video_id、capability、questions 数组。你从官方仓库下载标注后自己裁一个小样本出来就行。4. 逐项验证请求与成功结果判读配置写好后先跑一个最小验证拿一个视频、一组 4 题、一个模型看请求能不能通、返回格式对不对。python eval.py --config settings.json --model gemini-3-flash --limit 1如果返回正常你会看到类似这样的输出[group_001] modelgemini-3-flash Q1: 正确 A | 预测 A Q2: 正确 B | 预测 B Q3: 正确 C | 预测 A Q4: 正确 D | 预测 D correct3/4 avg0.75 nonlinear0.5625这里就能看出非线性计分的威力答对 3 题传统平均分是 0.75非线性只有 0.5625。如果只答对 2 题非线性直接掉到 0.25。这就是为什么强模型在 Avg Acc 上 66 分换 Non-Lin 就剩 49 分——分组连贯性一卡零散命中全被压下去了。验证阶段重点看三件事。第一模型是否真的在“看”视频而不是靠文本先验猜答案。你可以故意把视频换成黑屏如果模型还能答对说明题目本身有文本泄漏这组数据要剔除。第二推理连贯性组里首错截断有没有生效。第三音频模态有没有被正确传入。Video-MME 的数据里音频是重要线索如果你的抽帧流程只传了图像音频融合能力就测不出来。成功跑通一组后把模型列表扩到三个视频样本扩到 20 组就能得到一张初步对比表模型Avg AccNon-Lin Score比值gemini-3-pro66.1%49.4%0.75gemini-3-flash61.1%42.5%0.70qwen3.5-397b-think52.3%39.1%0.75比值越低说明模型越依赖零散命中鲁棒性越差。小模型像 LLaVA-Video-7B 这个比值只有 40% 左右基本就是碰运气。5. 本篇常见错排查报错一401 Unauthorized。检查 settings.json 里的 api_key 是不是从控制台复制的完整 Key有没有多余空格。TaoToken 的 Key 在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 管理如果 Key 被删了或者额度用完也会返回 401。报错二模型返回乱码或空内容。多模态请求里图片 base64 太长时有些模型会截断。把 max_tokens 调到 32 以上同时确认抽帧分辨率不要超过 768px。帧太多也会导致请求体过大先降到 32 帧试试。报错三Non-Lin Score 全是 0。大概率是分组结构没对上。检查 annotation 里 group_id 是否连续、每组是否正好 4 题。如果一组里混了不同视频的题首错截断会直接把整组清零。报错四思考模式没生效。部分模型的 thinking 模式需要在请求里显式加参数比如thinking: {type: enabled}。但 Video-MME 的结论是有字幕时思考模式有正向增益纯视觉时反而可能倒退。所以测的时候要分开跑两组一组带字幕文本一组纯画面。报错五音频线索丢失。如果你只传了图像帧音频融合维度就是空的。要么用支持视频直接输入的模型要么把音频转成文本字幕一起塞进 prompt。后者会引入文本先验测出来的分数会偏高注意在报告里标注。6. 把评测跑成长期能力而不是一次性脚本这套骨架跑通之后你可以把它接进 CI每次有新模型上线就自动跑一轮小样本。长期编码或 Agent 场景的同学如果想把评测流程固化下来可以看看 Coding Plan地址是 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 里面有针对持续调用和批量任务的额度方案。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 遇到鉴权或参数问题可以先翻这里。最后说一个我踩过的坑不要用同一批视频反复调 prompt。Video-MME 的数据集设计里50 名专家做过交叉盲测专门剔除“不看视频光读题就能猜答案”的样本。你自己建评测集时也要做这一步否则模型分数虚高选型决策会跑偏。真正有价值的对比是让模型在它没见过的视频上、按连贯推理链条答题然后看它第几步开始崩。那个崩溃点才是你选型时最该关注的指标。
返回列表