封面

  • 日期:2026-10-06
  • 读者:研究生、科研新人和工程型研究者
  • 范围:真实小模型、五次微调、开发集探索;不是完整基准或最终确认实验。

摘要:先问种子改变了什么

前篇发现,同一检查点换个任务表述,正确总数可能不变,具体样本却会交换胜负。这次固定表述,反过来问:重新训练一次,结论还能保持吗?我们沿用《数据混合的代价:学会新任务,会忘掉旧能力吗?》选定的仅目标任务训练配置,增加两个固定顺序控制和三个真实重排种子,保留全部预测及失败边界。

**本次实际验证:**三个重排运行的JSON联合正确数为58、57、58,均能输出合法格式;原来的单词输出正确数却全部从57降到33。训练间波动小,并没有消除任务约定之间的代价。更值得警惕的是:只改种子而不改变任何随机过程,两次训练连数值权重都相同。把这样的重复叫作多次随机实验,会夸大证据。

复现价值与论文位置

随机种子是伪随机数发生器的起点;它本身不是实验变量的完整定义。初始化、数据顺序、dropout和采样解码都可能受随机性影响,但冻结预训练权重、关闭dropout、固定顺序并用贪心解码时,种子可能没有机会起作用。PyTorch的复现文档也区分随机数控制与其他非确定性,并不保证不同平台和版本位级一致。[3]

**论文报告:**Reimers与Gurevych在2017年的序列标注研究中指出,单次分数不足以代表随机训练方法,主张报告多次运行的分布。[1] 本文借用这个研究问题,不移植其LSTM实验数字,也不把三次小模型运行当成对原论文的大规模复现。Dror等人在2018年讨论统计检验与任务、指标、实验设计的匹配关系。[2] 这里选择简单可审计的配对差值,刻意不追逐显著性标签。

与092相比,新增问题是“训练顺序改变后,收益和损失是否同时重现”;改变变量是顺序及配对,冻结模型、数据、提示、监督量和评分器。新增产物是种子—样本结果矩阵、训练轨迹、权重哈希和两种不同统计摘要。

核心思想:两个不确定性不能混成一根误差线

令基线在样本上的二值结果为bib_i,第ss次训练的结果为asia_{si},则

dsi=asi−bi,Δs=1n∑i=1ndsi.d_{si}=a_{si}-b_i,\qquad \Delta_s=\frac{1}{n}\sum_{i=1}^{n}d_{si}.

这里ii是同一条评测样本,ss是一个已训练检查点,dd只能为负一、零或一;本次SST结果矩阵形状为[3,64][3,64],三个重排运行共享同一个基线。配对要求比较同一行,而非把两份总准确率各自重采样后相减。

一个直观例子是:模型甲和乙都答对五十八条,不能由此推断它们答对的是同一批题。如果甲多救回一个例子、又多失去另一个例子,总分完全看不出来。逐行结果同时保存提示哈希、标签、停止原因和生成标记,才能区分真实行为变化、输入错配与评分器变化。比较时先确认这些身份一致,再计算差值,能够避免把换题误当提升。

第一层固定这64行,报告三个Δs\Delta_s的均值、范围及样本标准差:

Δˉ=1S∑sΔs,SD=∑s(Δs−Δˉ)2S−1.\bar\Delta=\frac1S\sum_s\Delta_s,\qquad SD=\sqrt{\frac{\sum_s(\Delta_s-\bar\Delta)^2}{S-1}}.

S=3S=3,分母为二;这个标准差描述本次训练顺序波动,不是总体均值的置信区间,更不能包含尚未试过的模型初始化或数据抽样因素。两个固定顺序控制不混入这三个运行。

第二层固定一个训练后检查点和基线,从同一行索引有放回抽样,计算每次配对均值,再取百分位区间。这种bootstrap,即重采样,本次做一万次。它只展示固定模型对当前样本构成的敏感程度,不代表重新训练的不确定性。不能把三次预测摊成192条独立测试例;新闻任务保持四类平衡,按标签类内抽样。

多种子与配对评测方法

图中Seed Spread仅汇总三个重排运行;Sample Bootstrap针对单个固定模型对。共享评测样本只进入结果计算,不回流到检查点选择。

最小实验与冻结协议

使用已完成指令训练的SmolLM2-135M-Instruct,约1.345亿参数。模型与tokenizer固定到12fd25f77366fa6b3b4b768ec3050bf629380bac,不是从随机权重训练。SST-2固定revision为8d51e7e4887a4caaa95b3fbebbf53c0490b58bbb;AG News为eb185aade064a813bc0b7f42de02595523103ca4。二十个文件的实际SHA-256及下载地址随源码保存。[4–6]

沿用32条情感训练、64条情感开发和32条新闻开发。训练行仍按既定哈希规则选取,未重新挑选容易学习的例子。128条情感确认和64条新闻确认始终没有推理;新闻来自官方test的部分已在091用于开发选择,不能重新称为未见测试集。规范化精确重复检查通过,但没有证明不同影评来自独立电影,也没有做预训练污染排查。

五组都从相同原权重开始,全参数SGD学习率0.001、梯度裁剪1、批量2、64步。每行JSON答案连真实终止符共8个监督token,每组1024个监督token、10556个输入token,四轮中每行出现四次。提示和填充位置不计损失,真实终止符保留。CPU四线程、单精度、eager注意力,保留梯度但不启用dropout;贪心生成最多32个新token。

固定组93与94保持原有负正交替顺序,只改框架种子。重排组93、94、95每轮分别打乱两类各16行,再逐对组合,确保每个批次一正一负。因此改变了顺序与批内配对,没有改变类别比例和暴露量。含填充的总token数分别为11252、11298、11338,控制组为11344;相同输入量仍不等于相同计算量。

协议在推理前登记,不选择最好的种子,也不补跑到结果满意为止。五组小试跑共10步、48次生成,耗时18.31秒,峰值内存2.62GB;按预定保守倍数估算439.32秒,低于1200秒预算后才正式执行。

官方代码阅读路线

先读固定版本apply_chat_template,确认用户输入和assistant回答的边界;再看本地build与collate,检查真实EOS和填充虽共用编号2,却由长度区分。随后沿LlamaForCausalLM找到ForCausalLMLoss:输入为[B,L][B,L],输出logits为[B,L,49152][B,L,49152],其中最后一维是词表,标签需要与前一位置预测对齐。[7]

本次每一步都将官方损失与手工移位交叉熵核对,最大误差约1.19×10−71.19\times10^{-7}。最后读官方SGD的更新,再回到独立教学调度器,确认种子实际进入了Python的顺序发生器。五个官方源文件已与安装版本逐字节比对;永久文件、函数行号、提交和许可证集中在源码地图,不用浮动main定位。

统计代码另外阅读:先看d=a-b是否按相同样本对齐,再看重采样矩阵是否同时作用于两个模型,最后检查标准差的分母。推理正确与统计解释正确是两个检查,不能互相替代。

本次实际验证与配对结果

正式实验共320步更新、960次生成,全部成功;耗时267.90秒,进程峰值RSS为2961309696字节。该时间从第三方导入后计,包含核验、加载、训练、保存、推理及统计;GPU内存未测。没有隐去训练失败,也没有使用确认集调参。

状态 单词输出联合正确/64 JSON格式成功/64 JSON内容及联合正确/64 新闻联合正确/32
原检查点 57 0 内容50、联合0 8
固定93 33 64 58 8
固定94 33 64 58 8
重排93 33 64 58 8
重排94 33 64 57 8
重排95 33 64 58 8

格式成功指满足严格输出约定;内容正确只是输出中唯一显式标签与数据标签匹配的代理,不是人工语义金标。联合正确要求两者同时满足。三个重排JSON联合准确率均值90.10%,样本标准差0.90个百分点;这个醒目的提升主要包含从零到全部合格的格式变化,不能直接说情感理解提升了九十个百分点。

单看内容,重排93相对基线为12胜、48平、4负,净增12.5个百分点,条件配对区间为[0,25]个百分点;重排94为11胜、49平、4负,区间[0,21.875]。两者只有编号481的输出不同:前者答positive,后者答negative,数据标签为positive。保留这个索引足以定位差异,无须在公开包重印许可未知的影评。

相反,所有训练后的单词约定均为5胜、30平、29负,净降37.5个百分点,条件区间为[-53.125,-21.875]。JSON变好与单词回答变差同时重现。新闻前后每行联合对错均不变,区间为[0,0];它只说明本批差值全零,原有8/32地板表现不足以支撑“保住了新闻理解能力”。

失败排查与证据边界

先查“假多种子”:固定组的64步损失、梯度与091逐项相同,两个数值权重哈希一致;三个重排权重则互异。保存文件名会改变PyTorch容器哈希,所以另对张量名、形状和数值字节计算身份,避免把序列化差别当模型变化。

此外,重排没有重新抽取训练样本,因而没有测量训练集选择的波动。三个种子也没有形成三份新的基线:原模型只推理一次,后续比较共享它的逐行结果。这种共享关系必须保留在表格和统计脚本中。若未来增加数据集抽样,应单独登记新的随机因素和独立单位,不能沿用当前标准差解释。

再查“区间证明提升”:64条开发样本已反复用于选择与解释,重采样不能把它们变回未见数据。区间端点碰到零也不能简化为“完全无效”;这里的设计只支持有范围的描述。跨样本相关性、训练种子数少、单一小模型都限制外推。

最后查“可以公开重算多少”:全部960条原始输出已本地独立解析,公开证据删节11条可能复述新闻的长回答,保留原文哈希、长度及派生分数,其余949条可完整重解析。删节行不是凭空丢失,原始审计与分发说明可追踪;读者自行运行可获得自己的完整结果。未捏造人工评分。

可检验的研究问题与总结

**作者推断:**当前现象更像对输出约定的强适配,并伴随另一约定下的标签偏移;本实验没有隔离出具体内部机制。后续可冻结这套配置,在保留确认集一次性检验相同方向;也可另开开发实验,对比保持类别平衡的重排与普通随机批次,检验稳定性是否依赖配对方式。两者都要先登记规则,不能看过确认结果再换假设。

本篇不推荐挑58分的种子发布。值得交付的是:真实变化的随机源、所有运行、同一行上的胜负,以及没有被误差线掩盖的能力代价。第二单元至此得到一套可审计微调资产;下一篇将检查官方评测任务配置本身怎样定义分数。

源码与复现入口

完整可浏览源码已发布到公开仓库的固定提交目录。从README安装依赖、获取固定资源,再按SOURCE_MAP核对官方实现与本地模块。该版本包含57个文件;公开副本已匿名拉取并与本地源码及归档逐文件核对SHA-256。

准备依赖并下载固定资源后,最小命令为:

HF_HUB_OFFLINE=1 TOKENIZERS_PARALLELISM=false python run.py --cache ./cache --out smoke-new --private private-new --smoke

它实际训练五组并保存逐步损失、逐样本输出、预算、配对统计和权重身份;正式运行去掉--smoke。本次已完成完整五组及原始审计,归档在临时目录解压后的五组试跑也通过,逐步训练记录与生成结果除耗时外一致。源码自带全部自写模块,复用已核验缓存,不要求读者打开作者本地路径。

参考资料

检索日期:2026-10-06;发布前复核:2026-10-07。以下论文支持方法动机或数据来源,本文数字均来自随附日志。

  1. Nils Reimers、Iryna Gurevych,2017,EMNLP:Reporting Score Distributions Makes a Difference: Performance Study of LSTM-networks for Sequence Tagging。
  2. Rotem Dror、Gili Baumer、Segev Shlomov、Roi Reichart,2018,ACL:The Hitchhiker’s Guide to Testing Statistical Significance in Natural Language Processing。
  3. PyTorch 2.6:Reproducibility。
  4. HuggingFaceTB:固定SmolLM2-135M-Instruct模型卡。
  5. Richard Socher等,2013,EMNLP:Recursive Deep Models for Semantic Compositionality Over a Sentiment Treebank。固定数据文件及哈希见源码资源锁。
  6. Xiang Zhang、Junbo Zhao、Yann LeCun,2015,NIPS,页面为v3修订:Character-level Convolutional Networks for Text Classification;本次固定AG News数据卡。
  7. Hugging Face Transformers 4.49.0:固定因果语言模型损失实现。其余官方函数与许可见SOURCE_MAP。