zizi 5c54289b56 docs(eval)+fix(orchestrator): 三模型评估矩阵收口——主力 M2.7 留任/裁判 v4-flash + llm_client 固化显式 max_tokens
- 评估矩阵全档入库: M3 结构层 22/52(30 失败全为 <think> 泄漏进 content, 通道纪律非能力,
  接入前置=解析侧剥 think) / v4-pro 52/52 持平但'质量不劣/时延可对照'两证据缺口→头号替补
  / 裁判对决 flash 23/25=92% 四维全胜(pro 击穿正向守卫=过杀复发)
- 第二批配置定型: 主模型 MiniMax-M2.7 + AUDIT deepseek-v4-flash + max_tokens=4096 固化
- llm_client.py: 显式 max_tokens=4096(推理型空 content 22 次重试实证根治)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 04:52:59 +00:00

13 KiB
Raw Blame History

策划质量探针designer-probe—— MiniMax-M3 vs deepseek-v4-pro

模型评估矩阵 leg 之一 · 2026-06-10 · repo @ d268f50 问题:策划位换模型后,一次产出的 GameDesign 文本面有多干净?P0/P1 检出率越低越干净) 方法Registry 策划 prompt config.clicker-designer v1.1.0 × 13 条 clicker 创意C1 spike IDEAS 原样保序)× 2 候选模型各生成一轮 → 全部产物统一用 MiniMax-M2.7 + 对抗 quality.adversary-review v1.1.1 评审 → 对比 P0/P1 检出率与 designIntent 质量。

一、结论先行

指标(分母均 13 MiniMax-M3 deepseek-v4-pro M2.7 基线batch-001口径见 §2 注)
P1 检出 2/13 2/13 3/13v1.0.0 双 prompt 旧口径)
P0 检出 0/13 0/13 0/13
生成 JSON 合法 13/136 条需剥 <think>,见 §6 13/13content 纯净) 12/13 首发1 条非 JSON重出后过
schema 全过(含 designIntent≤100/eps 正整数/config 逐字段) 13/13 13/13 —(口径不同不直比)
P2 随行建议 1 条 2 条
designIntent 均长/最长(字) 42.8 / 52 42.3 / 51 66.2 / 85
designIntent 超 100 字 0 0 0
越模板机制承诺(评审检出) 0 0 基线 3 条 P1 全为此类(旧口径)
生成均时延 24.6s 22.7s —(无同口径数据)
输出纪律(额外键/自评字样) 0 0

判读(诚实口径)

  1. 两候选文本面干净度同量级P1 各 2/13P0 均 0与 M2.7 基线大致相当——没有一边倒的优胜者。基线 3/13 是 designer v1.0.0 + adversary v1.0.0 旧口径:那 3 条 P1 全是「designIntent 越模板机制」类,其中 2 条在现行 v1.1.1 细则①下大概率降 P22/13 vs 3/13 不能读成"候选优于 M2.7",只能读成同量级
  2. 真正的分化不在质量在通道与风格M3 经网关 6/13 响应把 <think> 推理块直接混进 message.content需解析侧剥离工程前置条件v4-pro 通道全程纯净、均时延略低但文案模式化明显8/13 以「快速点击/连续点击」开头句式。M3 文案表现力/题材化更强(「烟火翻串手」「看台轰鸣的红色弯道」「静谧失重的太空舱」)。
  3. 两候选在 v1.1.0 新增的 designIntent 模板内约束上全部守住零越界承诺——该约束batch-001 冻结告警的回应)对新模型同样有效。
  4. 共同压力位:两者在 #07「海底捞珍珠同时躲开鲨鱼」上双双 P1——「躲避」机制超出 clicker 模板表达力(黄金集 kill 守卫 k-0cfbc296 同源场景。M3 选择丢弃躲避语义题文脱节、v4-pro 在 theme 里暗示机制未兑现(承诺未兑现),殊途同归说明这是模板边界问题而非模型问题,需意图路由或 prompt 增「不可表达机制的文案化解」规则。

二、口径与方法

生成 prompt config.clicker-designer v1.1.0Registry 渲染frontmatter/registry 双核验;渲染变量=batch 首轮口径template_schema=contracts/templates/clicker.schema.json 原文、banned_list=[]、findings=""
评审 prompt quality.adversary-review v1.1.1细则①②③P0/P1 口径写死)
评审模型 MiniMax-M2.7(与 batch-001/golden 同测量面),温度 0.2
生成温度 0.4(与 C1 spike/batch 主流水一致)
通道 全部调用显式 max_tokens=4096≥2048 铁律),空 content/think 截断自动提额 8192 重试;response_format=json_object;解析只读 message.content;重试 ×2 + 节流 0.3s + 超时 180s
探针口径 各生成一轮:不做 schema 重出、不做 P1-fix 回炉(与 batch-001「重出后通过」口径的差异点banned_list 恒空=无批内禁重压力,逐条独立无顺序耦合
评审重试 findings 形状异常应用层重试(首轮 2 → 续跑 3理由见 §6评审是测量基础设施重试不影响被测对象
P0/P1 检出率口径 13 条中被评审出 ≥1 条该级 finding 的条目数(分母固定 13

基线口径注batch-0012026-06-10 跑批)= M2.7 生成 + M2.7 评审,但 prompt 组为 designer v1.0.0 + adversary v1.0.0(当时 v1.1.x 尚未落地且为全闭环流程schema 重出/回炉额度 1 轮)。基线 13 条 spike 创意 round0 的 P1 检出 3/13太空舱/接力赛/捞珍珠3 条全是「designIntent 越模板机制」类P0 0/13「猫咖」首发非 JSON 重出后过。仅作量级参考,不作同口径对比。

三、明细表13 创意 × 2 候选)

th = 该响应 <think> 混入 content离线剥离后解析产出本体未动P2 数=随行建议条数(不拦截)。

# 创意 模型 title target eps(s) intent 字数 schema P0 P1 P2 备注
00 王蓝莓的小卖部收银台 M3 王蓝莓小卖部结账 15 25 50 0
00 v4-pro 王蓝莓收银忙 20 20 49 0
01 太空舱里捡星星补给能量 M3 舱内拾星充能 12 15 44 0
01 v4-pro 星舱拾光 10 25 49 0
02 农场里收割成熟的蔬菜 M3 菜园丰收季 20 25 46 0 th
02 v4-pro 丰收菜园 12 20 40 0 评审遇网关三连空,手工同口径重放 1 次取得raw 标 manualReplayRescue
03 深夜便利店招待夜宵顾客 M3 深夜便利店打烊记 20 25 40 P1 0 节奏不自洽1.25s/单 vs「值守/从容打烊」
03 v4-pro 夜宵便利屋 20 45 51 0
04 校园运动会接力赛冲刺 M3 看台轰鸣的红色弯道 20 20 38 1 th
04 v4-pro 校园接力冲刺 20 15 42 0
05 猫咖啡馆里撸猫攒爱心 M3 喵屋咖啡馆的爱心协奏 20 50 43 0 th
05 v4-pro 猫咖撸猫攒爱心 20 15 44 1
06 春节集市上抢福袋 M3 闹春抢福袋 18 20 44 0 th
06 v4-pro 抢福袋 20 25 38 0 生成时延 65s慢尾样本
07 海底捞珍珠同时躲开鲨鱼 M3 深海捞珠 20 35 44 P1 0 designIntent 丢「躲鲨」核心动作→题文脱节
07 v4-pro 深海采珠 20 12 35 P1 0 theme 暗示躲避机制未兑现
08 烧烤摊翻烤串别烤糊 M3 烟火翻串手 22 45 41 0 th
08 v4-pro 串串翻翻乐 20 15 39 0
09 地铁早高峰挤末班车门 M3 关门之前挤上车 20 35 52 0
09 v4-pro 高峰挤车大作战 15 20 48 0
10 做一个很好玩的游戏(模糊) M3 晨曦点灯 20 15 45 0 细则②生效,未误判脱节
10 v4-pro 快乐气泡大收集 20 20 24 0
11 解压点点点(极简模糊) M3 泡泡捏爆屋 20 25 32 0
11 v4-pro 解压泡泡乐 20 30 41 1
12 中秋帮嫦娥送月饼上月宫 M3 广寒传饼 10 20 38 0 th
12 v4-pro 月宫传情 20 15 50 P1 0 0.75s/块 vs「轻松」节奏矛盾

四、P1 命中明细与归因

条目 评审 issueM2.7 × v1.1.1 原文摘) 归因类型
m3-03 深夜便利店 target(20 单)与 expectedPlaySeconds(25 秒)明显不自洽:平均 1.25 秒/单属高强度快节奏,与「值守」「顺利打烊」的从容节奏矛盾 eps/target 节奏自洽
m3-07 捞珍珠躲鲨鱼 designIntent 缺失核心动作语义创意明确要求『同时躲开鲨鱼』designIntent 仅描述『点击打捞珍珠』,题文明显脱节 模板表达力边界(核心动作丢失)
v4p-07 捞珍珠躲鲨鱼 theme 描述鲨鱼『游弋』并提示『小心不要惊动』暗示躲避机制,实际玩法仅点击收集,描写与核心玩法无关联 模板表达力边界(机制暗示未兑现)
v4p-12 嫦娥送月饼 expectedPlaySeconds(15 秒)与 target(20 块)不匹配0.75 秒/次节奏偏快,与『轻松』氛围矛盾 eps/target 节奏自洽

两类归因均与模型无强相关:节奏自洽类(各 1 条M2.7 基线同样会犯(基线含 eps=8s/target=15 样本);模板边界类是创意本身含 clicker 无法表达的「躲避」机制(黄金集 k-0cfbc296 即此场景的 kill 守卫)。

五、designIntent 质量定性(通读 26 条)

  • 模板内约束v1.1.0 新增)两候选全守住:零计时承诺、零失败惩罚、零物理/音效承诺;评审亦零「越模板机制」类 finding。约束条款对新模型迁移有效。
    • 边缘观察m3-10「在限定次数内连续点击」有轻微越模板语感clicker 无步数限制机制),评审未报,不构成统计项。
  • 风格分化明显M3 题材化/画面感强title 如「看台轰鸣的红色弯道」「烟火翻串手」intent 如「静谧失重的太空舱中轻点漂浮的星屑」13 条句式多样v4-pro 朴素直给,8/13 条以「快速点击/连续点击/通过点击」句式开头批量场景下同质化风险更高dedup 门压力)。
  • 长度纪律:两候选均长 ~42 字M2.7 基线 66.2),全部 ≤52 字,距 100 字红线余量大;短而不空,无占位感词汇。
  • expectedPlaySeconds 自洽:除上表 2 条 P1 外,其余 eps/target 节奏0.8~2.5s/击)均在评审容忍带内。

六、通道工程发现(接入前置条件,跨 leg 提示)

  1. M3 think 混入 content高发6/13:网关对 MiniMax-M3 的部分响应未把推理切到 reasoning_content,而是把 <think>...</think> 整块拼进 message.content</think> 后才是 JSON 本体同模型不同响应形态不一usage_source 在 anthropic/openai 语义间漂移)。剥离后 JSON 本体 13/13 合法——M3 上策划位必须先在编排器 _parse_json_object 加同款 think 剥离(本探针已实现,见 designer_probe.py),或推动网关侧统一切分。跨 leg 提示struct_eval.py(结构层 leg无此剥离逻辑其 M3 结构层通过率可能被同因低估,判读前应复核 raw。
  2. M2.7 评审通道间歇空响应/think 混入:评审 26 条中多条首次尝试返回空/非 JSON contentchar 0),含 1 条三连空rev-v4p-02致首轮进程中止手工同口径重放 1 次即得合法产物、1 条 <think>中文推理混入rev-v4p-11 现场捕获。C6.1 同类已知坑。处置:显式 max_tokens + 空响应提额 8192 + 形状重试 2→3 + 耗尽落 infraFail 续跑(不再炸全程)。最终 26/26 评审完整reviewInfraFail=0
  3. v4-pro 通道全程纯净reasoning 正确走 reasoning_contentcontent 13/13 直接合法;慢尾样本 1 条v4p-06 实测 65s探针超时放宽至 180s 覆盖。

七、预算与产物

逻辑调用 生成 26 + 评审 26其中 1 条为手工同口径重放)= 52
HTTP 尝试总账 61 / 70(账本 58 + 首轮中止条目 3 次失败尝试;含全部重试/提额/诊断)
执行方式 本机直连网关(未降级;首轮进程因单条三连空中止 1 次,断点续跑补齐)
产物 本文件;designer_probe.py(探针脚本);designer_probe_reparse.pythink 离线重解析工具);designer-probe-results.json(结构化结果);designer-probe-calls.jsonl52 行调用账本);raw-designer-probe/26 gen + 26 rev 全量原始产物,含 think 修复标记 reparsedThinkStrip / 手工重放标记 manualReplayRescuedesigner-probe-run.log

八、建议

  1. 策划位选型:文本面质量不构成换模型的充分理由(同量级);若为成本/速度换 v4-pro需先压它的文案模式化prompt 加句式多样性约束或升温度试点);若取 M3 的表现力,必须先落 think 剥离(编排器级)。
  2. 与 struct_eval/judge_duel leg 汇总判读时,先核 M3 的 think 因素是否影响其口径。
  3. 模板边界创意(如「捞珍珠躲鲨鱼」):在 02-intent 阶段加「不可表达机制」识别/路由,或在策划 prompt 增一条「创意含模板外核心动作时,须在文案中自然化解而非丢弃或暗示」——两候选与 M2.7 在此场景全数踩坑,是 prompt/流程问题而非模型问题。