封面

  • 日期:2026-10-10
  • 读者:研究生、科研新人和工程型研究者
  • 范围:固定小模型、SST-2 的 64 条既有开发题;预先选定 16 条审核样本,目前仅有总体审核确认,未提交逐题标签;未提供可复算的逐题人工金标。

摘要:同一批回答,为什么会从零分变成五十分

上一实验发现,改变选项呈现和计分空间,即使模型不变,也可能改变答案。这次继续追问:模型已经生成了回答,后处理程序又改变了多少判断?我们冻结真实模型与输出提示,只把同一条回答分别交给完整字符串匹配、严格格式解析和正则抽取器。实际结果是:完整匹配零题正确,首个情感词抽取五十题正确。

这不是模型能力提升,也不能直接叫作“找回五十道被误判的题”。两个程序可能衡量不同目标;宽松抽取也可能把引用、否定或多余解释里的词当成答案。本文交付可重放的自动部分和预抽样审核工具。目前仅保留总体审核确认,尚无可供复算的逐题标签;标题中的“小金标”仍是建设方法,原空表不能包装成已获得的逐题语义证据。

一、复现价值:给评分器一个独立参照

精确匹配,即 exact match,是判断输出与参考字符串是否一致的方法。它容易复算,却依赖参考答案如何书写。Kamalloo、Dziri、Clarke 与 Rafiei 在 ACL 2023 的论文中,通过对开放域问答输出进行人工评估,讨论了词面匹配遗漏语义等价答案的问题。这是论文报告;本文不复制其任务、模型或提升幅度,也不把问答结论直接外推到情感分类。论文原文入口

本次研究对象是 SST-2 影评二分类,沿用此前的开发题和原始 SmolLM2-135M-Instruct。任务简单的好处是可以逐条审计,但“句中出现 positive”仍不等于“回答把影评判成正面”。原数据标签回答的是影评情感;新增人工标签回答的是模型输出表达了什么。这两层标注不能相互替代。SST 原论文

我们在既有实验中已经见过 JSON 格式失败,因此选择这个提示具有探索动机。当前样本不是新盲测,后续也不能因为某个规则得分更高,就把它称为通过独立验证的评分器。

二、核心思想:把字符串、格式和意思分开

令第 ii 题的完整生成文本为 yiy_i,数据集情感标签为 gig_i,规范 JSON 字符串为 c(gi)c(g_i)。完整匹配定义为:

Ei=1[strip⁡(yi)=c(gi)]E_i=\mathbf{1}[\operatorname{strip}(y_i)=c(g_i)]

这里 EiE_i 是零或一,指示函数只判断条件是否成立;strip 去掉两端空白。规范字符串固定为仅含 sentiment 键、冒号后一个空格的 JSON,因此内部排版也影响结果。这个严格定义是本地诊断规则,并非宣称它是所有任务默认使用的精确匹配。

为了避免把排版差异混进格式失败,我们另做 JSON 解析:整个回答必须是合法对象、只有一个 sentiment 键、没有重复键,值为小写 positive 或 negative。解析成功还要与 gig_i 一致,才算格式与内容联合正确。代码围栏、多余键或自然语言解释均不满足本次输出约定。

第三条路径令 r(yi)r(y_i) 为正则表达式捕获的第一个完整情感词,忽略大小写;找不到时返回无效值。抽取正确指示量为 Ri=1[r(yi)=gi]R_i=\mathbf{1}[r(y_i)=g_i],标签在比较前统一为情感名称。它可能容忍解释文字,也可能在“not positive”中抓到错误词。这个例子用于说明规则局限,是教学反例,不是冒称来自正式样本。

获得真人逐题标签后,才能引入内容判断 HiH_i,并在可判定、参考标签无争议的样本集合 DD 上计算:

e^=1∣D∣∑i∈D1[Ri≠Hi]\widehat e=\frac{1}{|D|}\sum_{i\in D}\mathbf{1}[R_i\ne H_i]

HiH_i 表示人判断内容是否正确,∣D∣|D| 是实际可判定且参考无争议的题数,而不是永远写成十六。还要分别报告假阳性,即程序判对而人判错;假阴性则相反。程序与真人都判错,也可能抽出了不同答案,因此另外检查抽取标签与真人最终立场是否一致。当前未收到逐题 HiH_i,即使已有总体审核确认,误判率仍保留为空值。

三、官方代码阅读路线:两个“第一个”并不相同

先读固定版本的 RegexFilter.apply:它对每次生成做正则查找,group_select=0 在本配置中选择第一次匹配,没有命中则给出回退值。再读 TakeFirstFilter.apply:这里的“第一个”指同一道题的第一条生成,而不是生成文本中的第一个情感词。我们每题只生成一次,但仍保留官方嵌套列表的输入输出约定。官方抽取实现

最后沿 Transformers 的聊天模板与生成函数检查:系统消息、用户提示、回答起始标记在哪里加入,哪些 token 属于新回答。只对新生成部分评分,避免从问题中抽到 positive 或 negative。五个关键文件已从固定提交下载,并与安装版本逐字节核对;具体函数、行号、许可与本地对应路径见源码地图。我们调用官方过滤器和真实生成库,但没有声称运行了 harness 标准 SST-2 全量任务。

四、最小实验:先选人工样本,再看输出

实验流程

图中的人工分支表示原预注册工作流;目前没有逐题人工标签,虚线不代表已经得到定量人工指标。

模型及 tokenizer 固定在 12fd25f77366fa6b3b4b768ec3050bf629380bac,GLUE 数据固定在 bcdcba79d07bc864c1c254ccfcedcce55bcc9a8c。继续使用按既有哈希规则选出的 64 条开发题,其中负面 31 条、正面 33 条。128 条 SST-2 和此前 64 条新闻确认样本均未参与推理。固定模型卡

新增人工子集在本次推理前确定:每类按题号与固定字符串组成的 SHA-256 排序,取八题,再交错排列。抽样脚本、样本名单、影评哈希和时间一起保存,没有根据生成结果或评分分歧挑题。两类抽样率分别为八除以三十一、八除以三十三;若所有样本都可判定,推回这六十四题时按原类比例加权,不能直接把各占一半的小集平均值当作原分布估计。

生成提示复用先前 JSON 约定,要求只输出一个 sentiment 键。CPU 使用单精度、四线程和贪心解码,每题最多生成 32 个 token,不训练、不搜索提示、不增加示例。输入超过 512 token 会报错;本次实际范围为 66–108,没有截断。所有评分器共享同一输出,不会因为换抽取器而多获得推理预算。

先跑两题试验,峰值内存约 1.28 GB,保守估计正式部分约 23.40 秒,低于预设 1200 秒与 4 GiB 上限,再运行全部题目。正式执行导入后耗时 10.37 秒,外部进程墙钟 14.69 秒,峰值常驻内存 1,280,081,920 字节。首题输入形状为 [1,83][1,83],词表分数形状为 [1,83,49152][1,83,49152]:三个维度依次是批量、输入位置和词表大小。这是本机测量,不是通用性能基准。

五、本次实际验证:差分成立,解释尚未成立

固定评分规则 64 题实际计数 目前能支持的结论
规范 JSON 完整匹配 0 题正确 没有输出符合完整参考字符串
严格 JSON 解析 0 题格式成功,0 题联合正确 失败不只是冒号后的空格
官方首个情感词抽取 50 题正确 标签抽取与数据集参考相同
真人审核记录 仅有总体审核确认;逐题标签未提交 不能计算人工参照误判率

逐题配对结果是抽取路径增加五十个正确标记、没有减少;其余十四题两条路径都计错。不能把五十除以六十四写成“抽取器纠错率”,因为没有可供读者复算的逐题语义参照。全部输出共使用 5250 个输入 token、生成 422 个 token(含结束标记);六十三题正常结束,一题碰到长度上限。

输出中有单独的大写情感词,也有解释句,还有一条带代码围栏并额外生成 rating、outcome 键的回答。这些都是实际记录可核对的字符串现象。目前仅有总体审核确认,未提交这些输出的逐题立场;文章不把总体确认换算成逐题判断,也不把作者直觉换名为人工结果。

独立脚本重新解析全部六十四条记录,核对输出哈希、规则结果、正确数、配对题号、token 总量及官方抽取结果,均通过。六个规则边界样例和六类证据破坏测试通过;空白人工表也确实被拒绝。这些检查证明软件约定可复算,不能证明约定具有语义效度。

六、评测协议与失败排查:人工表必须允许说“不确定”

审核入口展示影评、数据集参考、完整模型回答和结束原因,隐藏自动抽取标签与分数。原设计要求逐题填写最终立场、内容正确性、格式合规、参考标签争议及理由,并随导出文件记录审核者和时间。所有字段从空白开始。目前只保留总体确认记录、记录时间与样本哈希;逐题审核表仍为空白,不据此推定任何一题的判断。

立场矛盾、没有分类结论或引用意义不明时,应选择不确定,而不是强迫二选一。对数据集参考有疑问要单独标记,保留原标签;不能用一次审核悄悄改写基准。若以后补交逐题标签,报告应列出剔除数量和理由,只有两类各八题仍可判定时,才计算预定的加权描述量。小集即使零分歧,也不足以证明评分器在其他提示、模型或领域上可靠。

排查顺序从身份开始:先检查题号、输出哈希和标签,再检查是否误评分了整段聊天,最后区分无匹配、多次匹配、格式失败与长度停止。唯一长度停止题保留原结果,不看到失败后单独延长解码。换规则时保留旧结果,不覆盖能揭示反例的输出。

七、可检验的后续问题

第一,五十个计分差异中,有多少确实属于“内容正确但格式不合规”?只有完成逐题语义标签后才能回答。第二,首词规则是否在否定或多立场回答中出现假阳性?如果预抽样小集没有此类回答,结论就是缺乏覆盖,不能声称假设被排除。第三,严格解析和宽松抽取的差异是否主要集中在长度停止项?目前只有一个这样的样本,适合产生假设,不足以支撑因果归因。

若读完人工标签再修改抽取器,这十六题就进入开发用途。新规则需要另取未用于修改的样本验证;不能一边修正,一边继续把原小集称为独立金标测试。跨模型比较时还要冻结人工指南,否则评分标准变化会伪装成模型差异。

源码与复现入口

源码已公开并固定到提交 6d7cdad04b701a4a8e4cdf698d486a47d738f857:完整源码目录、README 与运行说明、SOURCE_MAP 官方源码地图。47 个文件经匿名拉取与本地归档逐一核对,公开副本的独立审计、软件测试和真实两题试跑通过。包内原协议及执行结果保留当时的待审状态,总体确认记录另有说明;未提交逐题标签,人工定量指标仍为空。

准备 Python 3.12 环境,按 README 安装固定依赖并获取哈希锁定资源后,最小运行命令为:

python run.py --cache ./cache --out ./replay-smoke --smoke
python audit.py ./replay-smoke

预期生成逐题记录、聚合结果、环境信息、阶段状态及输入身份文件。本次实际执行两题试跑和全部六十四题;所有自写模块随包提供。下载缓存可复用,但每次先验哈希;不分发权重、原始影评、完整提示或含影评的本地审核页面。公开代码能在读者机器重建审核入口。

总结

评分差异首先是测量现象,不是能力提升。本次保存了冻结生成、三个评分定义、逐题差分和预抽样材料,但仍缺少逐题人工标签。总体审核确认不能替代可复算的逐题语义证据。自动分歧已经可复算;人工误判率、假阳性与假阴性仍不报告,这是本篇结论的边界。

参考资料

检索与实际访问日期:2026-10-10。网页读取失败的固定源码链接另经匿名下载核对。

  1. Ehsan Kamalloo、Nouha Dziri、Charles Clarke、Davood Rafiei,2023:Evaluating Open-Domain Question Answering in the Era of Large Language Models,ACL。
  2. Richard Socher 等,2013:Recursive Deep Models for Semantic Compositionality Over a Sentiment Treebank,EMNLP。
  3. EleutherAI,0.4.9.2 固定提交:task 配置与过滤器指南。
  4. HuggingFaceTB:SmolLM2-135M-Instruct 固定模型卡。
  5. NYU-MLL:GLUE 固定数据卡。