同一个 prompt,十款国产模型写离职证明,裁判七维打分下来,第一名均分 0.73,垫底只有 0.16——这已经不是梯队差距,是物种差距。这次模型实测要回答的问题很具体:写离职证明为什么两极分化到这种程度?是模型能力不行,还是任务本身把「会写」和「会想」分开了?下面把打分表、翻车原文和评测流水线一次拆完。
这次测的是什么:给HR总监写两版离职证明
任务设定不复杂,但坑极多。角色设定为 HR 总监,原话是「离职证明这种文件,多一个字都是给仲裁留把柄」,要求输出两版模板加用法说明:标准版(无争议离职)和协商解除版(公司提出、双方协商一致)。
难点有三层。第一层是法律约束:依据劳动合同法实施条例第 24 条,离职证明应写明劳动合同期限、解除/终止日期、工作岗位、工作年限这四要素,缺一即判无效模板;法律并未要求写离职原因和绩效评价,实务中写负面评价还可能被员工用于主张名誉侵权。第二层是措辞红线:标准版不得出现任何评价性词汇——连「表现良好」都不行;协商解除版只能写「经双方协商一致解除」,写了「因绩效原因协商」就犯规。第三层是格式硬指标:用法说明必须含三条红线提示,模板要留「身份证号后四位」栏并注明必要性,文末必须有「本证明一式两份,双方各执一份」。
说白了,这题考的不是文采,是「守规矩的能力」。而这恰恰是很多模型的软肋。
评测流水线:从并发调用到七维裁判打分
整套流水线是脚本化跑的,中间不插人手。流程如下:
flowchart LR
A[任务设定: 两版离职证明模板] --> B[并发调用 10 款模型]
B --> C[原始输出落盘为 JSON]
C --> D[裁判模型 gpt-5.6-sol 七维打分]
D --> E[汇总均分与排名]
并发调用与落盘的关键代码
调用走 OpenAI 兼容端点,每款模型的原始回复先落盘再送裁判,这样断点续跑天然幂等——按文件存在与否判断是否跳过,重跑不会重复计分:
from openai import OpenAI
import os, json
client = OpenAI(
api_key=os.environ["SILVAMUX_API_KEY"],
base_url="https://www.silvamux.com/api/v1",
)
models = ["qwen3.5-flash", "glm-5.2", "kimi-k2.6", "qwen3.6-plus",
"minimax-m2.7", "minimax-m3", "deepseek-v4-pro",
"glm-5.3-flash", "glm-5.3", "kimi-k3"]
for m in models:
out = f"raw/{m}.json"
if os.path.exists(out): # 幂等:已跑过直接跳过
continue
resp = client.chat.completions.create(
model=m,
messages=[{"role": "user", "content": PROMPT}],
)
json.dump(resp.model_dump(), open(out, "w"), ensure_ascii=False)
两个实现细节值得说。一是流式响应末尾可能出现 choices 为空但带 usage 的用量 chunk,所以落盘以流结束信号为准,不能只依赖 data: [DONE] 判断完成;二是每个响应都带 X-Request-Id 响应头(格式 REQ-xxxx),排查某款模型输出异常时拿这个 ID 直接定位,不用翻全量日志。
为什么是七维、裁判怎么防偏置
七个维度是:受众契合、合规、事实性、格式、语言、说服力、选材,各 0-1 分。拆这么细的原因很朴素:一道题里「守规矩」至少有三条独立的规矩——内容不越法律红线(合规)、不编造任务没给的法律结论(事实性)、模板结构齐全(格式)。合成一个「质量分」会把三种完全不同的失败混在一起,看不清模型到底输在哪。
裁判提示词里明确要求对每个维度给出理由和原文引用,本文引用的裁判理由都来自这些逐维度评语。当然裁判模型也有自己的偏好,单一裁判的绝对分数不必当真理,但同题同尺下的相对排序是有信息量的。
七维总分排名:0.73 到 0.16 的断层
| 排名 | 模型 | 受众契合 | 合规 | 事实性 | 格式 | 语言 | 说服力 | 选材 | 均分 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Qwen3.5-Flash | 0.88 | 0.56 | 0.55 | 0.82 | 0.84 | 0.75 | 0.72 | 0.73 |
| 2 | GLM-5.2 | 0.88 | 0.54 | 0.57 | 0.82 | 0.76 | 0.74 | 0.75 | 0.72 |
| 3 | Kimi-K2.6 | 0.78 | 0.65 | 0.62 | 0.52 | 0.67 | 0.64 | 0.68 | 0.65 |
| 4 | Qwen3.6-Plus | 0.82 | 0.52 | 0.45 | 0.57 | 0.73 | 0.69 | 0.61 | 0.63 |
| 5 | MiniMax-M2.7 | 0.74 | 0.52 | 0.32 | 0.73 | 0.78 | 0.63 | 0.48 | 0.60 |
| 6 | MiniMax-M3 | 0.72 | 0.55 | 0.48 | 0.63 | 0.66 | 0.70 | 0.42 | 0.59 |
| 7 | DeepSeek-V4-Pro | 0.24 | 0.86 | 0.58 | 0.10 | 0.42 | 0.22 | 0.20 | 0.37 |
| 8 | GLM-5.3-Flash | 0.32 | 0.58 | 0.30 | 0.08 | 0.36 | 0.24 | 0.18 | 0.29 |
| 9 | GLM-5.3 | 0.18 | 0.42 | 0.35 | 0.03 | 0.20 | 0.10 | 0.08 | 0.19 |
| 10 | Kimi K3 | 0.18 | 0.32 | 0.24 | 0.03 | 0.16 | 0.10 | 0.06 | 0.16 |
结果呈明显三档。第一档 Qwen3.5-Flash 和 GLM-5.2 均分 0.73/0.72,几乎打平,两款的受众契合都是 0.88、格式都是 0.82,说明模板该有的结构都齐了。第二档从 Kimi-K2.6 到 MiniMax-M3 挤在 0.59-0.65 之间,各有短板。第三档是断崖:第 6 名 0.59,第 7 名 0.37,中间直接掉了 0.22。后四名的共同特征非常扎眼——格式分 0.10、0.08、0.03、0.03。
分化的分水岭就在这里:不是谁的法律知识更强,而是谁能把模板真正「写出来」。
翻车现场:垫底四款输在格式,一家输在话痨
格式 0.03 分:模板只在脑子里
Kimi K3 的格式分只有 0.03,裁判理由写得很直白:完全没有输出两版模板和正式用法说明,两版法定四要素、身份证后四位栏及指定文末句均只在构思中提及,未形成任何满足硬性格式要求的成品。看它的原文开头:
I need to create two resignation certificate templates and instructions, adhering to legal requirements. The standard version must be strictly factual, avoiding any evaluative language, while the negotiated version can only state mutual agreement. Both must include statutory elements, a field for the last four digits of the ID, and a note about the duplicate nature of the document. Crucially, the …(后文省略)
它把全部要求复述了一遍——在英文里。GLM-5.3 和 GLM-5.3-Flash 也是同样的死法,输出以英文任务分析开头,GLM-5.3 的格式分同样只有 0.03。裁判对 GLM-5.3-Flash 的评语指向同类问题:构思正确,成品缺席。中文任务、英文构思、模板没落地,三个问题叠加,受众契合掉到 0.18 也就不奇怪了。
Kimi K3 的第二宗罪:法律结论越界
Kimi K3 的合规分只有 0.32。裁判指出,它虽意识到不写原因和评价,但加入了 “helps employees claim unemployment benefits”、“pre-dating is invalid”、“公司提出可能导致经济补偿” 等未经限定的法律结论,存在绝对化和误导性法律表述风险。这是比缺模板更隐蔽的坑:任务里给的法律背景就那几条,模型自己往外补的每一条,对 HR 来说都是潜在的法律风险点。
DeepSeek-V4-Pro:合规 0.86 换不来均分及格
DeepSeek-V4-Pro 是个反例样本。它的合规分 0.86 是全场最高,事实性 0.58 也不差,但均分只有 0.37。原因看输出就明白:
我们需要回答用户中文请求。需要写两版离职证明模板 + 用法说明。必须满足硬性要求。需要仔细构建。
用户是HR总监?要求严谨法律文件。需要输出两版模板:标准版(无争议离职);协商解除版(公司提出、双方协商一致)。……(后文省略)
大段推理过程直接当正文输出,格式分被砍到 0.10,说服力 0.22。MiniMax-M2.7 和 MiniMax-M3 的输出同样以 <think> 思考块开头,好在后续给出了成品,格式分保住了 0.73 和 0.63,但选材分被拖到 0.48 和 0.42。合规意识满分、交付形态崩盘——这个分数结构对生产环境是个明确警示:接 API 时先处理思考块的剥离,否则下游拿到的是半成品。
高分范本:Qwen3.5-Flash 强在哪
开场即入戏,模板可直接盖章
裁判给 Qwen3.5-Flash 受众契合 0.88 的理由是:面向 HR 提供可直接套用的两版模板、红线和交付流程,契合实际操作场景。看节选:
作为 HR 总监,我必须重申:离职证明是法律文件,不是评价报告。多一个字都是给仲裁庭留把柄,少一个字就是公司违法。
以下两版模板严格遵循《劳动合同法实施条例》第 24 条,剔除一切非必要信息,确保合规且风险最小化。
标准版模板正文长这样:
离 职 证 明 兹证明 _______先生/女士(身份证号码后四位:______),于 _______年___月___日至 _______年___月___日期间(注:此处填劳动合同期限),在我司担任 _______职务。 该员工于 _______年___月___日正式办理离职手续,劳动合同关系已于当日解除/终止。 该员工在本公司的工作年限为:_______年_______个月。 特此证明。 ____________________公司(盖章) 日期:_______年___月___日 (本证明一式两份,双方各执一份)
四要素、后四位栏、一式两份句,全在。每版模板前还配了「设计逻辑」说明,解释为什么标准版连「辞职」「辞退」这类定性词都不出现——裁判那句「强硬措辞略显压迫」指的就是开场那两句重锤,但瑕不掩瑜。
第一名也有扣分点:事实性 0.55
Qwen3.5-Flash 的事实性只有 0.55,裁判点名的问题是:「协商一致对领取失业金至关重要」「后四位足以匹配系统记录」「无公章无效」「影响竞业限制起算」等结论均超出任务提供的法律背景。这是全场通病——GLM-5.2 的事实性 0.57 是十款里的最高分,也只有 0.57。没有一款模型能管住自己不往外补法律结论。这就是两极分化的另一半真相:头部模型能把模板交付到位,但「多说多错」这个毛病没人幸免。
选型建议:按分数结构挑模型
从数据能推出的建议有四条。
- 要交付成品,先看格式分。格式 0.03 的三款(GLM-5.3、Kimi K3 及 0.08 的 GLM-5.3-Flash)在「输出必须成型」的场景里慎用于生产,它们会把构思过程当答案交上来。
- 合规优先的场景,DeepSeek-V4-Pro 的 0.86 有参考价值,但必须配合思考块剥离,否则格式 0.10 会拖垮整体可用性。
- 事实性是全场洼地,最高 0.57。任何模型输出的法律结论都要过一遍人工核对,尤其是失业金、公章效力这类任务背景没给的判断。
- 受众契合 0.88 的两款(Qwen3.5-Flash、GLM-5.2)适合做面向终端用户的文书生成底座,两者仅差 0.01,按响应速度选即可——43.68s 对 40.14s,差距不大。
回到开头的疑问:写离职证明为什么两极分化?这次模型实测给出的答案是——任务把「守格式、守红线」变成了硬门槛,跨过去的挤在 0.6-0.73,跨不过去的连 0.3 都保不住,而中间几乎没人。至于裁判模型自身的偏好会在多大程度上影响这个排序,留给下次换裁判复测来验证。
复现这篇评测的读者请注意:示例代码在千木SilvaMux的兼容端点上跑通,十款参赛模型的调用名以上文代码中的列表为准(如 qwen3.5-flash、glm-5.2),认证统一走 SILVAMUX_API_KEY 环境变量。裁判模型 gpt-5.6-sol 未参赛。各模型的最新调用名和参数说明见 silvamux.com/docs ,排错时记得带上响应里的 X-Request-Id。