做了十种设置才找到提升:如何处理选择偏差?——64条开发与128条确认样本
做了十种设置才找到提升如何处理选择偏差——64条开发与128条确认样本摘要上一实验给两个固定检查点计算了配对区间却没有回答一个更早的问题为什么偏偏比较这两个如果研究者换过提示词、示例顺序和答案表示再挑最高分写进摘要区间即使算对也可能没有覆盖选择过程带来的乐观。本篇把十种协议的全部开发结果放在一起选定一个方案后才打开此前保留的128条确认样本。目标是复现一次可审计的“搜索—冻结—确认”不是证明做过搜索的提升一定消失。复现价值把挑选过程也视为实验选择偏差指评估对象经过数据驱动的筛选后筛选时的成绩不再像事先指定对象的成绩那样容易解释。它不要求训练模型也不要求故意隐瞒多改几次提示词、只记住最顺眼的一行已经在做选择。论文报告Cawley与Talbot在2010年的研究指出有限样本上的模型选择准则也会被过拟合选择步骤必须纳入性能评估设计。[1] 本篇借用这个问题框架没有复现其核方法实验更没有把论文中的偏差规模套到语言模型上。本次实际验证复用真实SmolLM2-135M-Instruct及公开SST-2数据十种设置只接触64条开发题选择之后仅评估胜者与固定零样本基线。与前篇相比改变的是评测协议的选择过程冻结的是原始模型、数据划分和语义准确率定义。新增产物是包含全部尝试、选择时间和源码哈希的冻结文件。核心思想与公式最高分不是免费得到的设第j jj种设置在开发集上的准确率为a ^ j \hat a_ja^j选择规则是j ^ argmax 1 ≤ j ≤ 10 a ^ j . \hat j\operatorname*{argmax}_{1\le j\le10}\hat a_j.j^1≤j≤10argmaxa^j.这里j jj表示一整套提示与答案计分协议j ^ \hat jj^是被选择的协议编号同分按预先列出的顺序选第一个。即使各设置的估计没有系统偏移取最大值也倾向于保留有利波动。一个基本关系是E [ max j a ^ j ] ≥ max j E [ a ^ j ] . \mathbb E[\max_j\hat a_j]\ge\max_j\mathbb E[\hat a_j].E[jmaxa^j]≥jmaxE[a^j].期望是对重复抽样而言不是对这十个数字简单求均值设置之间可以相关这个不等式仍成立。但它没有告诉我们本次乐观了多少更不意味着所有设置真实能力相同。把十次试验当作十枚独立硬币通常不符合共用模型、题目和模板的事实。模型如何给出答案也要固定。对上下文x xx和候选答案c cc采用s ( c ∣ x ) ∑ t 1 ∣ c ∣ log p θ ( c t ∣ x , c t ) . s(c\mid x)\sum_{t1}^{|c|}\log p_\theta(c_t\mid x,c_{t}).s(c∣x)t1∑∣c∣logpθ(ct∣x,ct).θ \thetaθ是冻结权重c t c_tct是第t tt个候选token∣ c ∣ |c|∣c∣是其长度只求候选部分的对数概率和不把题目token算进去。两候选取较大者再映射回原始负面或正面标签。字母A/B只是显示位置换序时标签映射随之改变。官方代码阅读路线先追数据再追分数从固定版本的SST-2任务配置读起它声明公开GLUE数据、原始问题模板、两个文本候选和准确率。[4] 接着看_encode_pair怎样处理上下文与续写边界再看_loglikelihood_tokens取哪些位置的概率最后进入process_results核对argmax和标签。本篇直接调用官方HFLM.loglikelihood与ConfigurableTask.process_results没有把整个simple_evaluate运行器都称为已复现。独立路径另外做一次真实Transformer前向计算检查候选token、因果位移和得分。源码地图给出已实际下载核对的永久文件行号七个官方文件与安装版本逐字节一致。统计部分再读SciPy的bootstrap配对开关决定两个方案是否使用同一批重采样题号。[5]最小实验十种设置究竟是什么模型与tokenizer固定在12fd25f…GLUE固定在bcdcba79…完整revision和12个资源文件哈希见资源锁。仍按最初的题号哈希顺序取64条开发样本、后128条确认样本二者没有交集。数据来自公开验证划分不能称官方测试榜单。[6][7]九种历史协议来自前面的示例顺序和选项实验重复的原始零样本协议只算一次。新增第十种只写Review: {sentence}下一行写Sentiment:候选仍为negative与positive。全部设置在本次新推理前写入配置没有看确认成绩后补候选。两组四示例只取训练集沿用已经固定的题号和顺序。开发设置正确数/64原始零样本32四示例A正序逆序3137四示例B正序逆序3344列出选项、答文本正序逆序3132列出选项、答字母正序逆序3233简短提示词52这张表保留了全部十项包括低于基线的结果。简短提示词以52/64胜出。历史九项成绩此前已经看过因此这不是事前注册的全新十臂研究准确说它是对回顾性候选集合做一次前瞻确认。旧模型微调结果没有混入本表人工评分器也没有参与挑选。评测协议与真实结果运行顺序是开发集两题乘十条件试跑、开发集全量评测、写入选择文件最后才做确认。冻结记录时间为2026年10月14日09:16:38记录胜者、基线、全部得分、待确认题号及执行源码哈希。确认入口拒绝试跑模式也拒绝源码身份变化保留的新闻64题没有使用。本次实际验证确认集上简短提示词89/128原基线65/128胜者新增正确28题、退步4题、其余96题结果相同。配对提升为18.75个百分点95%百分位区间为[10.9375,26.5625]个百分点。确认集正负各64题恒选正面只能得到64/128这个简单诊断也一并报告。开发集提升是31.25个百分点确认后的提升缩小但仍为正。因此不能写成“选择偏差让优势完全消失”也不能把开发集81.25%的绝对准确率沿用到确认结论确认准确率实际为69.53125%。作者推断这支持当前冻结模型和当前任务下简短提示相对原模板更合适它不识别提升究竟来自措辞、长度还是模型预训练习惯。一个容易遗漏的边界是“未使用”的含义确认样本早已下载前篇还用其文本进行不依赖标签的精确重叠排除它此前没有参与模型成绩选择也没有推理记录。这是本地研究流程中的留出并非第三方保管的秘密盲测。如今它已被消费后续不能一边查看错题一边继续宣称它未见。前向计算使用CPU、float32、eager注意力、四线程和batch size 1不套聊天模板不加BOS/EOS不生成回答也不训练。最大输入512超过就停止而非静默截断。十条件开发正式运行包含640次题目协议评测、1280个候选确认只比较两个冻结方案共256次评测、512个候选。独立与官方得分最大差为零。资源也属于证据。开发阶段导入后131.505秒、峰值RSS约1.91GB确认阶段32.995秒、约1.38GB。首题logits形状分别为[1,36,49152]和[1,23,49152]依次是批量、输入长度与词表大小。耗时随负载变化不能当吞吐基准。原始零样本、四示例和简短提示的开发候选输入token总量分别为4506、26522、3588独立复算又计算了一遍这些数字不是整个进程的总运算量。预算不同因此本篇比较的是可选协议不是等计算量下的示例因果效应。区间回答什么不回答什么对第i ii条确认题令d i d_idi为胜者是否正确减去基线是否正确则Δ ^ 1 n ∑ i 1 n d i , d i ∈ { − 1 , 0 , 1 } . \hat\Delta\frac1n\sum_{i1}^{n}d_i,\qquad d_i\in\{-1,0,1\}.Δ^n1i1∑ndi,di∈{−1,0,1}.n 128 n128n128正一是胜者新增正确负一是退步零是两者同对或同错。以题目为单位同时重采样两列正确性固定随机种子9900计算两万次差值的百分位区间。全部重采样结果与直接共享索引实现一致独立标准库脚本还用离散分布卷积复算经验区间。[2][5]这个区间描述已经选定的固定协议在当前按行抽样假设下的差异没有重演每次搜索所以不覆盖整个研究策略的不确定性。接口没有电影或来源分组标识按行独立只是条件假设预训练是否见过这些评论也无法排除。即使确认优势保留也不能据此声称中文情感、其他模型或其他任务都提高。开发到确认的变化混合了抽样难度、类别组成与筛选效应不能把两次提升相减就命名为“选择偏差的精确估计”。若想估计搜索策略应在新的外层划分中重新完成内层挑选而非只给当前赢家多画一条误差线。反复看确认分数再改提示会把确认集重新变成开发集可重复使用留出数据需要额外方法与假设本篇没有实现那类机制。[3]失败排查先排身份错再解释模型本次首先遇到临时环境文件被清理随后新解析到的PyArrow版本与固定NumPy不兼容。错误发生在模型运行之前恢复兼容版本后试跑与正式运行才继续。测试驱动还曾把本地选择脚本误识别为同名标准库已只修复加载方式冻结实验源码未改。失败命令与退出码都保留。复跑若不一致按资源哈希、题号集合、示例ID、上下文哈希、候选token和语义映射逐层排查。不能为了对齐结果而直接修改期望哈希。八个破坏测试检查错分、重复题、缺题、错误标签及确认题泄漏能证明确定性检查会拒绝坏记录却不能替代对自然语言语义的真人判断。可检验的后续问题简短提示胜出至少有两个解释它更符合模型熟悉的补全文体或者较少的上下文减少了无关竞争。本次同时改变表述和长度无法区分。后续可在新保留数据上预先安排同长度改写与同措辞长度对照再报告全量条件已经消费的128题不能重新包装成未见确认集。另一个问题是赢家是否稳定。重排开发集或改变随机划分后胜者可能不同。可以先在现有开发数据上做探索性稳定性分析但它不能挽回已经看过的确认集。若资源只允许一次确认就承认只有一个独立确认结果保留失败边界比事后追加条件直到显著更有研究价值。源码与复现入口完整公开源码已固定到提交4d027f931e0f本篇目录、README与完整运行步骤、SOURCE_MAP官方实现映射。51个公开文件已匿名下载并与本地源码及归档逐项核对公开副本的审计和真实模型试跑均通过。最小离线命令为python audit.py输出候选求和、标签映射、选择结果和确认差值的独立审计。真实模型入口为python run.py --cache ./cache --phase development --smoke --out smoke-new先按README安装锁定依赖并运行prepare.py。预期保存逐题记录、阶段状态、环境与身份文件。配套包包含完整自写模块、下载器、配置、许可证及源码地图不分发模型权重、原始评论或隐含本机路径。总结搜索本身不是错误省略搜索过程才会让证据难以判断。本篇把十种尝试、一个冻结胜者和一次留出比较分开记录。可检验的结论来自确认数据及其限制开发集上的最高分负责提出候选不应独自承担最后的证明。参考资料检索与实际访问日期2026-10-14。Gavin C. Cawley、Nicola L. C. Talbot2010On Over-fitting in Model Selection and Subsequent Selection Bias in Performance EvaluationJMLR 112079–2107全文。Rotem Dror、Gili Baumer、Segev Shlomov、Roi Reichart2018The Hitchhiker’s Guide to Testing Statistical Significance in Natural Language ProcessingACL。Cynthia Dwork等2015Generalization in Adaptive Data Analysis and Holdout Reuse。本篇仅引用问题背景未运行其算法。EleutherAI固定提交SST-2任务配置。SciPy1.13.1版bootstrap文档。HuggingFaceTB固定版本SmolLM2-135M-Instruct模型卡。NYU/GLUE固定版本数据卡Richard Socher等2013Recursive Deep Models for Semantic Compositionality Over a Sentiment TreebankEMNLP。