Loss 到底算在谁身上:检查 SFT 的模板与标签掩码——8 条真实样本、每组 4 步更新
Loss 到底算在谁身上检查 SFT 的模板与标签掩码——8 条真实样本、每组 4 步更新系列从最小复现到可检验的科研问题日期2026-10-02读者研究生、科研新人和工程型研究者范围SmolLM2-135M-Instruct、SST-2 英语情感分类小预算训练审计不是完整基准成绩。一、复现价值承接格式失败而不是重建基线088 已发现同一模型在纯标签与 JSON 输出约定下表现不同。本篇沿用它的模型、分词器、提示和评分器只新增监督位置对照开发评测取原有六十四条中的固定前八条另留的一百二十八条确认样本继续不推理。不能把这八条的分数直接与上一篇六十四条总分相减。模型仍是已经接受官方指令训练的 Instruct 检查点。模型卡说明其指令训练使用公开及整理的数据并经过偏好优化本文不复现那个完整流程也不宣称从未经微调的基础模型开始。[1] 新增训练样本来自固定版本 SST-2 的官方 train 划分原验证划分只用于行为观察。[2][3]真正新增的产物不是一条漂亮曲线而是逐位置监督账本、逐步梯度、两份最终参数状态和更新前后的原始输出。读者可以追问第一枚回答 token 有没有被教到结束标记有没有被误删没有回答的样本是否仍被送进训练二、核心思想输入可见不等于直接计入损失设批量大小为 B、填充后序列长度为 T模型输出分数张量 z 的形状是 [B,T,V]V 是词表大小。对输入序列 x 和监督标记 m使用的平均交叉熵为L − ∑ b 1 B ∑ t 1 T − 1 m b , t log ⁡ p θ ( x b , t ∣ x b , t ) ∑ b 1 B ∑ t 1 T − 1 m b , t . L-\frac{\sum_{b1}^{B}\sum_{t1}^{T-1}m_{b,t}\log p_\theta(x_{b,t}\mid x_{b,t})}{\sum_{b1}^{B}\sum_{t1}^{T-1}m_{b,t}}.L−∑b1B​∑t1T−1​mb,t​∑b1B​∑t1T−1​mb,t​logpθ​(xb,t​∣xb,t​)​.这里位置按零起点编号m 为一表示该目标参与监督零表示忽略位置 t 的目标由前一位置的输出预测。分母是这一批真正被监督的 token 数不是样本数也不是填充后的矩形面积。分母为零时应在进入训练前报错。全序列组监督首个 token 之后的所有真实位置仅回答组只监督助手回答及其真实结束标记 EOS。两组都保留完整提示作为输入填充位置都不监督。模板产生的最后一个 EOS 之后还有换行本篇明确在两组中一起删除不把这个决定藏在数据处理里。“标签掩码”是哪些位置计分“注意力掩码”则决定填充等位置如何参与注意力计算。把提示的标签设为忽略值并不表示从上下文删掉提示也不表示提示对应的内部表示没有梯度。回答仍然依赖前面的任务说明和影评这正是后面要测的区别。三、官方代码阅读路线沿着真正执行的链路追先看模型的 tokenizer_config。其聊天模板写入角色起止标记并且 PAD 填充符与 EOS 结束符共用 ID 2。[1] 因而不能用“凡是等于 pad_token_id 就设为 -100”的捷径那样会同时删掉真实回答结尾。我们按真实长度和回答边界构造标签另用错误做法检查反例八条样本都少掉了一枚应监督的 EOS。再看 Transformers 的 apply_chat_template。程序分别渲染含助手起点的提示以及包含完整回答的对话逐 ID 断言前者确实是后者的前缀。[4] 通过后才用该边界掩码而非按字符串长度猜 token 数。本次只证明这种单轮模板可用多轮对话、边界分词合并或工具消息需要重新审计不能照搬一个固定偏移。随后读 LlamaForCausalLM 的词表投影和 loss_function 调用再进入固定提交的 ForCausalLMLoss。官方函数已经完成标签移位并把忽略值设为 -100。[4] 本地直接传未移位标签同时独立计算“前 T−1 个 logits 对后 T−1 个 labels”的交叉熵。若调用方再次提前移位模型就会被训练去预测错误的后续位置。最后追到 PyTorch SGD 的参数更新。[5] 本地没有改写模型数学四份 Transformers 安装源码及 SGD 文件均与固定官方提交逐字节相同。模板、掩码构造和审计是独立教学实现源码地图明确区分直接调用、复用作者代码与自定义规则。四、最小实验先冻结样本与预算再更新参数训练集按 SHA256(‘89:’idx) 排序取前八条正负各四条这是一条预先登记的选择规则未按训练效果筛样本。验证沿用上一篇 SHA256(‘88:’idx) 的顺序。规范化文本核对未发现所选训练样本与开发及保留样本完全重合但这不能排除近重复或上游预训练污染。SST-2 训练数据还包含影评片段idx 也不能一概解释为独立完整影评。[3]两组从同一份原始权重分别开始完整输入、样本顺序、批量二、四步、学习率 0.001 相同采用无动量、无权重衰减的 SGD全局梯度范数裁剪阈值一。全部 134515008 个参数参与优化。为关闭随机模块模型保持 eval 模式但启用自动求导eval 不等于禁止梯度也没有使用推理模式包住训练。设备为 CPU、float32、四线程显式使用 eager 注意力。先运行每组两条、一步的试跑再据实测资源继续四步正式实验。试跑总耗时 5.518 秒、峰值约 2.33 GB正式总耗时 9.943 秒、峰值约 2.66 GB均在九百秒和六 GiB 预算内。总时间从第三方库导入后起算包含资源校验、模型加载、训练、保存及评测不是纯训练速度。GPU 内存未测量。五、本次实际验证掩码正确行为仍可没有改善第一批输入形状为 [2,92]logits 为 [2,92,49152]三轴分别是批量、位置和词表。独立交叉熵与官方 loss 的最大绝对差为 4.7684×10⁻⁷。首回答目标、真实 EOS 和填充标签逐项通过所有忽略目标对应的 logits 直接梯度均为零但提示输入 embedding 的梯度非零。后者表示提示仍参与回答计算不能据此前者宣布提示“没有被学习”。两组首层查询投影矩阵都发生可测变化最大绝对改变量分别约 2.11×10⁻⁶ 和 2.50×10⁻⁶。最终参数状态和哈希已本地保存。小幅变化证明优化器执行过却不能单独证明模型学会了任务。同一组八条开发样本更新前全序列四步仅回答四步纯标签格式合规 / 标签正确8 / 68 / 78 / 7JSON格式合规 / 标签正确0 / 60 / 60 / 6JSON格式与标签同时正确000评分沿用 F 格式合规、C 唯一显式情感词匹配来源标签、J 二者同时满足。C 是自动代理未做人类语义标注。完整四十八条生成都保留所有样本进入分母未自动修复 JSON。两组都只把 idx481 的纯标签由 negative 改成 positiveJSON 原始回答全部不变。一次单样本变化不足以宣称总体准确率提高更不能证明两种监督等价。六、失败排查先检查分母再解释训练现象每组输入共六百八十四个真实 token但全序列有效监督六百七十六个仅回答只有六十四个。首批 loss 分别约 3.1793 与 0.8639后者较小并不意味着训练更好两者预测的目标集合、归一化分母都不同。这是相同步数和输入的监督策略对照不是等监督 token 预算的性能赛跑所有更新还触发了梯度裁剪。四批的样本不同因此逐批 loss 的首尾差也不能当作同一批上的学习曲线。若要测固定目标是否拟合应另设固定探针并保持评估方式本篇没有补选一个容易下降的子集。前向上下文仍相同不能把监督 token 少十倍写成计算成本省十倍。截断审计则给出更直接的失败上限六十四时八条样本的回答目标全部消失九十六时只丢掉一条的 EOS一百二十八和二百五十六没有损失。正式训练采用二百五十六且无截断遇到超长回答即失败。这些结果来自真实序列位置不是人为加长的演示输入。排查顺序因此应是角色边界、首回答对齐、真实 EOS、padding、有效分母、有限梯度最后才讨论能力。首次公开下载受沙箱代理连接限制失败随后正常下载并通过固定哈希校验没有更换数据或把失败当作实验成功。代码执行、数据问题与模型负结果需要分别记录。七、可检验的研究问题把“没变化”拆成竞争解释作者推断一是四步更新不足以改变贪心输出二是教师强制下目标概率变化尚未跨过自由生成的首 token 决策边界。教师强制指训练时向模型提供正确的前缀自由生成时前缀由模型自己产生。本篇没有保存完整前后概率分布因此两种解释尚未被区分不能写成已经定位的机制。下一篇可在冻结开发协议下比较相同有效监督 token 的数据量与重复次数同时登记固定目标似然、首个生成 token 及 F/C/J。若损失下降却格式持续失败就要检查训练与生成条件差异若只有重复同样本才能改善还需留出任务实例验证记忆解释。这些都是待人工核验的后续实验不预先承诺提升。确认集不参与这些选择。源码与复现入口本篇已发布固定版本完整源码目录、README 运行说明、SOURCE_MAP 官方源码地图。四十个分发文件已匿名拉取并逐一核对 SHA-256目录、说明、地图和入口均可公开访问公开副本的独立审计及真实训练试跑通过损失、梯度与输出和本地一致。链接固定到同一提交不随主分支变化。固定依赖安装并运行下载器后最小命令是python run.py --cache ./cache --out smoke-new --private ./private-new --smoke。它执行真实两条训练样本、每组一步及两条开发样本的双约定生成产出损失、梯度、掩码、输出和检查点删除试跑参数可重做正式实验。独立复核使用audit.py角色与错误 EOS 掩码反例使用role_audit.py。本次实际完成下载、预处理、双组训练、开发生成和独立审计。缓存键包含模型、分词器、数据、模板、解码、划分及执行代码。SST-2 卡片许可标为未知公共包不包含原始影评或可逆输入 token这些本地审计材料、模型权重和训练检查点均不上传读者从固定来源重新获取并运行。总结监督位置是实验假设的一部分。先让每个 token 的计分责任、每个梯度的含义和每份原始输出都可查才有条件讨论训练效果。这个最小实验留下了正确运行但格式未改善的证据也为下一步控制训练预算提供了清楚的起点。参考资料检索及实际访问日期2026-10-02。网页获取失败时改读同一固定版本的官方原文访问记录随验收保存。HuggingFaceTBSmolLM2-135M-Instruct 固定模型卡固定聊天模板与特殊符号。Richard Socher、Alex Perelygin、Jean Wu、Jason Chuang、Christopher D. Manning、Andrew Ng、Christopher Potts2013Recursive Deep Models for Semantic Compositionality Over a Sentiment TreebankEMNLP。本文使用数据不复现论文树模型。Stanford NLPSST-2 固定数据卡。Hugging FaceTransformers 4.49.0聊天模板入口、模型损失调用、移位与忽略标签源码原文。PyTorch 2.6.0SGD 单张量更新。

相关新闻

URL 编码的七个坑:c++ 传到后端变空格、%25 套娃、截断 emoji 直接报错

URL 编码的七个坑:c++ 传到后端变空格、%25 套娃、截断 emoji 直接报错

前端拼 URL 是天天干的事,出问题却很少一眼能看出来:搜索词里的 c 到后端变成了 c ,文件名里带个 & 参数就被截断,日志里的中文变成 %25E5%258C,或者干脆一个 URIError: URI malformed 把整个页面打挂。 这些问题…

2026/10/3 20:14:59 阅读更多 →
真人转 Q 版桌宠教程:专属你的款,从一张正脸照到本地桌面宠物的工程实践

真人转 Q 版桌宠教程:专属你的款,从一张正脸照到本地桌面宠物的工程实践

桌面宠物这件事,难点从来不是让一张图动起来,而是让这张图既像你,又别把 CPU 吃满,还别把隐私传出去。真人转 Q 版桌宠教程:专属你的款,本质上是一条从素材生成到本地透明窗口渲染的流水线。你不需要从零写…

2026/10/3 20:14:59 阅读更多 →
面向对象程序设计-类与对象2-求时间差

面向对象程序设计-类与对象2-求时间差

作者 gong单位 哈尔滨华德学院定义时间类Time并计算两个时间之间的差。Time类中数据成员、函数成员以及求时间差的普通函数Diff的接口定义如下。接口定义:class Time{ private: int hour,minute,second; public:Time(int h,int m,int s);Time(Time &t);~Time();…

2026/10/3 20:14:59 阅读更多 →

最新新闻

VRChat头像性能优化:避免“贪多”工程,打造高评分角色

VRChat头像性能优化:避免“贪多”工程,打造高评分角色

VRChat 里有一个很常见的日文词叫“よくばり”,翻译过来就是“贪多”。这个词用来形容一类头像工程再合适不过:一个人物模型里想同时塞进 4K 贴图、几十个待机动作、满身 PhysBone、粒子特效、换装部件,甚至再挂一个音乐播放器。结果往往是模…

2026/10/3 20:45:45 阅读更多 →
DeepSeek Harness 开源贡献手记:从零到合入主线

DeepSeek Harness 开源贡献手记:从零到合入主线

1. 引言:为什么参与开源贡献 本文记录我参与 DeepSeek Harness 开源项目的完整过程,从发现问题、定位源码、编写补丁到最终合入主线的真实经历,希望能为同样想参与开源贡献的开发者提供一份可参考的路线图。 2. 项目背景与初步调研 在动手…

2026/10/3 20:40:42 阅读更多 →
面试官:MySQL中的 distinct 和 group by 哪个效率更高?

面试官:MySQL中的 distinct 和 group by 哪个效率更高?

一、开篇:一道高频面试题背后的问题在 MySQL 相关的面试中,有一道题经常被面试官问到:distinct 和 group by 都能去重,它们哪个效率更高?很多候选人听到这个问题后会下意识地回答「distinct 更快,因为它的语…

2026/10/3 20:40:42 阅读更多 →
面试官:BIO、NIO、AIO 的区别是什么?

面试官:BIO、NIO、AIO 的区别是什么?

一、开篇:从一个面试场景说起面试官经常会抛出一个看似简单、实则非常考察底层功底的题目:「说说 BIO、NIO、AIO 的区别」。很多同学能背出「BIO 是阻塞、NIO 是非阻塞、AIO 是异步非阻塞」,但如果继续追问「为什么 NIO 是非阻塞的」「底层分…

2026/10/3 20:40:41 阅读更多 →
Python实现绘制同切圆

Python实现绘制同切圆

程序源码:# 绘制同切圆 import turtle as t # 导入turtle绘图库,取别名t t.pensize(3) # 设置画笔粗细为3像素 t.circle(10) # 画半径为10的圆 t.circle(20) # 画半径为20的圆 t.circle(40) …

2026/10/3 20:39:41 阅读更多 →
数据管理与论文写作并行:按阶段推进的研究节奏怎么排

数据管理与论文写作并行:按阶段推进的研究节奏怎么排

数据工作和论文写作挤在同一段时间里,几乎是每位研究生都会遇到的排期难题。多数人卡住的不是不会写,而是两条线的节拍没有对齐。我们在梳理用户反馈时发现,把研究数据与论文写作按成熟度切成四段、给每段设定明确的两线配比,返工…

2026/10/3 20:39:41 阅读更多 →

日新闻

把回忆蒸馏成 AI 的浪漫实验:为什么你需要前任.skill 完整指南

把回忆蒸馏成 AI 的浪漫实验:为什么你需要前任.skill 完整指南

把回忆蒸馏成 AI 的浪漫实验:为什么你需要前任.skill 完整指南 【免费下载链接】ex-skill 前任 skill 项目地址: https://gitcode.com/gh_mirrors/exsk/ex-skill 前任.skill 是一个运行在 Claude Code 上的开源 Skill:导入微信、iMessage、短信、…

2026/10/3 0:00:27 阅读更多 →
45个经典Linux面试题:从命令到网络排障的完整考点解析

45个经典Linux面试题:从命令到网络排障的完整考点解析

刚开始带应届生的时候,我最头疼的就是他们拿着一摞Linux面试题背得滚瓜烂熟,一上机全露馅。后来自己从被面的人变成面别人的人,才慢慢摸清楚:Linux面试题考的根本不是答案本身,而是你面对一个不确定的系统问题时&#…

2026/10/3 0:01:28 阅读更多 →
SAP生产预留实战指南:MB21/MB23/MB25协同与MRP集成

SAP生产预留实战指南:MB21/MB23/MB25协同与MRP集成

简介:本资源是一份面向SAP ABAP开发人员、生产计划专员及ERP实施顾问的实操型操作指南,聚焦SAP生产预留核心业务场景,系统解决物料预留创建、查询、校验与批量处理等高频问题。文档以结构化方式覆盖预留背景原理、OMC2编码规则、工厂级参数配…

2026/10/3 0:01:28 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/3 9:14:33 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/3 9:47:50 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/10/3 9:42:31 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:35 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →