这次模型实测最戏剧性的一幕:一款模型把内部思考过程原样吐进了获奖感言,另一款靠虚构因果把事实性拖到 0.62。任务本身很朴素——给「年度最佳新人」写一段 120 字以内、念出来约 40 秒的获奖感言,13 个模型同题比稿,裁判模型按七个维度各打 0 到 1 分。本文复盘全程数据,并给出可以直接照抄跑通的评测流水线脚本。

复现口径:所有分数采集自单日内跑完的一轮完整批任务,运行环境为 Python 3.11 + openai SDK 1.x(另有 pandas 用于汇总),裁判与参赛模型均走同一个 OpenAI 兼容端点。分数只对应采集当天的线上版本,厂商静默更新权重后会漂,隔周复跑出现小幅名次变动属于正常现象。

这次测了什么:一份带干扰项的 HR 材料

角色设定是颁奖词作者,风格参照感动中国颁奖词的凝练,但要求更克制、拒绝煽情过度。材料由「HR 提供」,里面埋了三类坑。

材料里的三个坑

  • 干扰项:材料写「牺牲个人时间,连续加班」,但经核实为普通强度,此项不实,不得采用;
  • 权重要求:「零预算」必须是核心亮点,比 1.2 万这个数字更能定义这个人;
  • 意象陷阱:观星团建可以化用为收尾意象,与「把人聚回来」暗合,但不得点破这层类比——点破就俗了。

另外还有禁用词清单:「未来可期」「后生可畏」「新星」一律不许出现。说白了,这道题考的不是文采,是取舍:哪些事实能用、哪些不能用、哪些只能化用。

七个维度怎么打

裁判模型 gpt-5.6-sol(非参赛款)按受众契合、合规、事实性、格式、语言、说服力、选材七个维度各打 0-1 分,取均分排名。合规查禁用词与加班叙事,事实性查材料外细节,格式查字数与朗诵时长。

评测流水线怎么搭

整条流水线分五段:材料入库、并发调用、本地校验、裁判打分、汇总排名。其中本地校验是这次特意加的一环——字数、禁用词、加班叙事在送裁判前先机器过一遍。

失败

通过

HR 材料 + 约束清单

并发调用 13 款模型

本地校验:字数 / 禁用词 / 加班叙事

标记违规,仍送裁判留痕

剥离 think 标签后送裁判

gpt-5.6-sol 七维打分

pandas 汇总 + 均分排名

并发调用与断点续跑

接入只改 base_url 和 api_key 两处,其余照 OpenAI SDK 官方写法:

import os, json, time
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["SILVAMUX_API_KEY"],
    base_url="https://www.silvamux.com/api/v1",
)

MODELS = ["deepseek-v4-pro", "glm-5.2", "kimi-k2.6",
          "qwen3.6-plus", "minimax-m2.7"]  # 其余款同理扩展

PROMPT = open("prompt.txt", encoding="utf-8").read()

def run_one(model, cache_dir="outputs"):
    path = f"{cache_dir}/{model}.json"
    if os.path.exists(path):          # 断点续跑:已有结果直接跳过
        return json.load(open(path, encoding="utf-8"))
    for attempt in range(3):
        try:
            r = client.chat.completions.create(
                model=model,
                messages=[{"role": "user", "content": PROMPT}],
                temperature=0.7,
            )
            out = {"model": model,
                   "text": r.choices[0].message.content,
                   "usage": r.usage.total_tokens}
            json.dump(out, open(path, "w", encoding="utf-8"),
                      ensure_ascii=False, indent=2)
            return out
        except Exception as e:         # 429 指数退避,5xx 间隔重试
            time.sleep(2 ** attempt)
    raise RuntimeError(f"{model} 重试耗尽,检查 error.message 字段")

两个细节值得说。断点续跑靠 outputs 目录下的按模型缓存实现,13 个模型总有几个超时,全量重跑太浪费。错误体形如 {"error":{"message":...,"type":"gateway_error","code":...}},排查时带上响应里的 X-Request-Id 头会省很多事。

裁判打分与汇总

裁判调用与上面同一个 client,只是把参赛作品拼进裁判 prompt,让它输出 JSON 格式的七维分数。汇总用 pandas 读全部落盘文件,mean 出均分列再排序即可。本地校验那步别省:这次就有模型正文带 <think> 标签落盘,如果先剥离再送裁判,格式维度分数会不一样。

排名结果:从 0.95 到 0.77

前七名:

排名模型受众契合合规事实性格式语言说服力选材均分耗时
1DeepSeek-V4-Pro0.960.990.890.960.930.960.990.9542.5s
2GPT-6-Sol0.920.980.880.960.910.900.930.938.5s
3GLM-5.20.920.870.840.980.890.930.930.9138.34s
4GLM-5.3-Flash0.910.960.840.840.920.900.950.90140.93s
5GLM-5.30.920.800.830.980.870.890.930.89107.01s
6Kimi-K2.60.900.870.780.960.860.910.930.8951.15s
7Gemini-3.7-Flash0.860.960.830.840.910.870.890.8844.96s

后六名:

排名模型受众契合合规事实性格式语言说服力选材均分耗时
8Kimi K30.910.980.780.760.880.860.810.85193.89s
9MiniMax-M30.860.960.820.760.830.840.850.8556.41s
10Claude-Sonnet-50.880.940.580.820.820.860.900.8338.26s
11Qwen3.6-Plus0.860.760.720.960.800.840.850.8359.55s
12Qwen3.5-Flash0.840.720.650.970.830.820.760.8061.13s
13MiniMax-M2.70.840.690.620.930.840.820.660.7714.28s

头部分差很小:第一和第二只差 0.02,前四名挤在 0.90 到 0.95 之间。尾部拉开了:MiniMax-M2.7 的 0.77 与冠军差 0.18,选材 0.66、合规 0.69 两个维度单独拎出来都是全场最低。
模型广场

高分范本与翻车现场对照

一好一坏并置着看,输赢点更清楚。

DeepSeek-V4-Pro:合规 0.99 是怎么拿的

裁判理由写得很具体:未采用不实的加班叙事,也未出现禁用词,且「没有一分钱投放」有材料明确支持,不属夸大。它最弱的维度是事实性 0.89,原因是「他架起屋顶望远镜」增添了材料未明确提供的具体器材与动作。看节选:

零预算。入职八个月,他上线「老用户回归计划」,三个月拉回一万两千名沉默用户,创部门历史最好成绩。没有一分钱投放,他把走散的人,一个一个请回来。工作之外,他架起屋顶望远镜,二十二个人抬头看同一片夜空。如今,那成了部门的传统。(DeepSeek-V4-Pro)

两个细节值得学。开篇两个字「零预算」直接把核心亮点钉在最前面;观星只写场景不解释,类比留给听众自己完成——这正是题目要求「不得点破」的标准做法。第二名 GPT-6-Sol 风格接近,那句「比数字更值得记住的,是他不靠投放也能把事做成」同样把权重关系摆对了。

MiniMax-M2.7:事实性 0.62 的失分现场

它的最强维度反而是格式 0.93——正文约 90 字,满足 120 字以内要求,单段结构完整。但裁判指出:「三个月,让 1.2 万沉默用户回归,没有花一分钱的投放预算」有材料依据,而下面这句虚构了观星与运营方法之间的因果:

他用 22 个人仰望同一片星空的晚上,懂得了把人聚回来的方法。(MiniMax-M2.7)

这正是题目明令禁止的「点破类比」。更麻烦的是它的输出以 <think> 标签开头,把完整的解题过程——包括数正文字数、自我修改——原样吐进了输出窗口,思考链里还复述了全部约束。裁判看得到思考链等于看得到模型「知道规则但正文没守住」,合规 0.69 与此脱不开关系。

思考链外泄和细节脑补为什么会伤分

两个低分现象背后是两类不同的机制问题。

think 标签为什么进了正文

MiniMax 两款的节选都以 <think> 开头,MiniMax-M3 格式 0.76,MiniMax-M2.7 格式却有 0.93——说明 M2.7 虽然外泄了思考链,正文本身的结构是完整的,裁判把过程外泄与成品质量分开算了。更可能的解释是:部分推理模型把思维链写在输出窗口里而不是独立的推理字段,兼容网关按原文透传,客户端拿到的 content 就混着思考过程。这是推断,本次没有逐模型验证字段结构。对应的工程动作很简单——流水线里加一步标签剥离,剥离前后各存一份,裁判只看剥离版。

事实性失分的两种形态

DeepSeek 的 0.89 和 MiniMax-M2.7 的 0.62 性质完全不同。前者是「脑补细节」:屋顶观星材料里有,但「架起望远镜」这个器材与动作是模型自己加的,属于无伤大雅的具象化。后者是「虚构因果」:材料里观星和运营计划是两件事,模型硬说后者源自前者,这既踩了「不得点破」的约束,又造出了一条不存在的因果关系。Claude-Sonnet-5 的 0.58 更狠,节选里「入职那年夏天」是材料完全没给的时间信息——为什么文采型输出更容易失守?一个说得通的推断是:这类模型为了画面感会主动补齐时间、器物、动作等具象元素,而颁奖词恰好是高画面感文体,脑补欲望被放大。合规分高的模型(DeepSeek-V4-Pro 0.99、GPT-6-Sol 0.98)共同点是只在材料明确允许的地方做意象化。

这轮获奖感言实测的适用边界

结论能用在哪、不能用在哪,得说清楚。

数据层面的四个局限

  • 单次采样:每款模型只跑一版,没有多轮重复,temperature 固定 0.7,也没测参数敏感性。补洞做法是同题跑三到五次看分数方差,方差大的模型名次不作数;
  • 单一裁判:只有 gpt-5.6-sol 一个裁判,裁判模型也有偏好,比如对意象化收尾的容忍度未必与人类评委会一致。换一个裁判或加人工复核交叉验证即可缓解;
  • 分数时效:对应采集当天的线上版本,厂商静默更新权重后会漂,引用名次时最好注明采集时间;
  • 七维等权:MiniMax-M2.7 格式 0.93 救不了事实性 0.62,等权均分掩盖了「一票否决型维度」的存在。生产场景建议对合规、事实性设阈值下限,低于阈值直接出局,不进均分。

任务层面的外推限制

这是单任务结论,不能外推成能力结论。Qwen3.5-Flash 在这题上 0.80,不代表它写代码或做摘要也是这个水平;Kimi K3 耗时 193.89 秒全场最长,但在别的任务上未必如此。要做选型决策,至少再补两三个不同文体、不同约束密度的任务,看分数结构是否稳定。

选型建议:看分数结构,不只看均分

按这次的分数结构,给几条能从数据直接推出来的建议。

  • 要直接投产念稿的,选头部两款:DeepSeek-V4-Pro 合规 0.99 加选材 0.99,GPT-6-Sol 事实性 0.88 且 8.5 秒出稿,速度是全场第二快的十倍以上余量;
  • 事实性敏感的场景(材料有法律或公关风险),避开 Claude-Sonnet-5 的 0.58 和 MiniMax-M2.7 的 0.62,或至少配人工逐句核对;
  • 格式分低于 0.80 的 Kimi K3 和 MiniMax-M3,慎用于生产:这次表现为思考链外泄和字数自评残留,上流水线前必须加过滤层;
  • GLM 系四款全部进前五,格式 0.98 的稳定性适合做批量初稿,但 GLM-5.3 合规只有 0.80,交稿前过一遍禁用词。

常见问题

Q1:MiniMax-M2.7 的 think 标签为什么被算进作品而不是被过滤?

本次流水线初版没有剥离步骤,落盘的是 content 原文,裁判看到的就是带思考链的完整输出,格式维度按成品结构给了 0.93。如果先剥离再送裁判,M2.7 的格式与合规分数大概率会上移——但均分排名是否能脱离末位,取决于事实性 0.62 这个硬伤能否同时修掉,点破类比的问题剥离标签解决不了。

Q2:「不得点破观星类比」这条约束,为什么 GLM 系守住了而 MiniMax-M2.7 没守住?

看节选:GLM-5.2 写「在屋顶,他将散落的目光聚拢」,只写场景;MiniMax-M2.7 写「懂得了把人聚回来的方法」,直接把观星说成方法论来源。前者把类比留给听者,后者替听者完成了推理。约束原文用了「点破就俗了」这种需要文学判断的表述,模型对这类软约束的理解差异比硬性禁用词大得多。

Q3:断点续跑的 outputs 缓存要不要按提示词版本分目录?

要。本次 prompt 若改动哪怕一个字,旧缓存命中的就是旧题答案,分数直接作废还不容易发现。建议目录结构带上 prompt 版本哈希,例如 outputs/v2_ab12/,缓存命中前先比对版本,不一致就整体重建。

这次模型实测留了一个待观察的问题:思考链外泄到底是模型行为还是网关透传策略决定的,需要拿同一款模型在不同接入方式下对照才能下结论。想在获奖感言这类高约束短文体上做自己的比稿,把上面脚本的 MODELS 列表和 prompt.txt 换掉就能跑。示例在千木SilvaMux的 OpenAI 兼容端点上验证过,接入参数与模型调用名(deepseek-v4-pro、glm-5.2、kimi-k2.6 等)以 开发者文档页为准。
开发者文档

Logo

更多推荐