从零打造大语言模型(20):训练起步与交叉熵损失的全面剖析

行业领袖访谈
深入讲解为何选择交叉熵作为下一词预测的损失函数,从信息论角度诠释熵与交叉熵的含义,并结合工程实践介绍数值稳定性、实现细节与训练调优要点

深入讲解为何选择交叉熵作为下一词预测的损失函数,从信息论角度诠释熵与交叉熵的含义,并结合工程实践介绍数值稳定性、实现细节与训练调优要点

引言 在从零实现一个大型语言模型的训练流程时,损失函数是贯穿始终的核心。理解为什么用交叉熵(cross entropy)来衡量模型预测与真实分布之间的差距,不仅有助于理论把握,还能指导工程实现、调试与优化。本文从概念到实现,从信息论到深度学习实践,系统阐述交叉熵损失在语言建模中的角色与常见注意事项。 为什么需要损失函数 训练神经网络的本质是通过梯度下降不断调整参数,使模型输出越来越接近目标。对于语言模型,任务通常是基于前缀预测下一个 token,也就是最大化训练数据上真实下一个 token 的概率。损失函数需要满足两个基本要求:训练时为非负、在预测完美时取最小值,并且与参数可微以便计算梯度。

交叉熵满足这些条件,并且在概率性质上具有自然解释。 从 logits 到概率 语言模型最终输出一组 logits,这些实数没有直接的概率意义。使用 softmax 可将 logits 转换为概率分布,使各词概率之和为一。softmax 将某个词的相对得分映射为概率,便于后续与训练目标比较。但是在实现上通常不先手动做 softmax,而是将 logits 直接送入专门的交叉熵实现函数,由底层结合 log-softmax 与负对数似然高效计算,既省去了数值不稳定问题,也更快。 交叉熵的直观推导 从信息论角度来看,熵衡量一个概率分布的不确定性。

对于一个真实分布 p(x),熵 H(p) = -Σ p(x) log p(x)。交叉熵 H(p,q) = -Σ p(x) log q(x) 则衡量用模型预测分布 q 去编码真实分布 p 时的平均"惊讶"程度。训练时真实分布在每个位置通常是一个极窄的分布:训练数据给出的下一个 token 可以被看作 one-hot,即 p 在正确词上为 1,其余为 0。此时交叉熵化简为 -log q(x_correct),也就是我们常见的负对数似然损失(negative log-likelihood)。将这个量对整个批次或整个序列取平均,就得到了模型优化目标。 交叉熵与 KL 散度的关系 交叉熵 H(p,q) 与 Kullback-Leibler 散度 KL(p||q) 有直接联系:KL(p||q) = H(p,q) - H(p)。

在语言建模的监督情形下,真实分布 p 在训练样本上是固定的,因此最小化 H(p,q) 等价于最小化 KL(p||q)。换言之,训练在逐步迫使模型分布 q 向真实分布 p 收敛。 数值稳定性与实现细节 在工程实现时需要注意数值稳定性问题。直接对 softmax 后的概率取对数可能导致下溢或精度损失,尤其是 logits 值较大或较小时。常见的稳定做法是使用 log-sum-exp 技巧,即在计算 log softmax 时先减去 logits 的最大值,或直接调用深度学习框架提供的交叉熵函数,它们在内部用稳定算法计算 log-softmax 并与负对数似然结合,从而避免单独计算概率带来的数值误差。 另外一个重要细节是处理批次和序列维度。

训练时一个 batch 通常包含 b 条序列,每条序列长度为 n,模型输出形状为 b×n×v(v 为词汇表大小)。大多数实现会把前两维合并为 b·n,然后用一个长度为 b·n 的目标索引向量进行计算。这样做既简化了张量形状,也便于调用现成的损失接口。 填充与掩码 真实训练语料常包含不同长度的序列,常见做法是对齐到固定长度并用填充 token(padding)补齐。这些填充位置不应对损失计算产生影响,因此需要使用掩码或交叉熵函数中的 ignore_index 参数来跳过填充 token。另一种常见做法是在 reduction='none' 的情况下先得到每个 token 的损失,再用掩码把无效位置置零,最后按照有效 token 数目做平均。

平均、求和与学习率标度 在使用交叉熵时要明确 reduction 模式。reduction='mean' 会对所有有效 token 的损失求平均,reduction='sum' 则求和再用于反向传播。两者对梯度大小与学习率有影响:当用求和时,批次大小改变会影响整体损失尺度,需要相应地调整学习率;用平均则保持尺度不变,更易于设置稳定的学习率。工程实践中通常采用对有效 token 求平均的方式。 标签平滑的权衡 传统做法采用 one-hot 标签,但这意味着训练时把真实分布视为"绝对确定"。标签平滑(label smoothing)是一种常见正则化方法,它把目标分布从 one-hot 稍微"抹平",如将正确词概率设为 0.9,其余均匀分配剩余概率。

标签平滑可以缓解过度自信、提升泛化并减少极端梯度,但也会使训练目标不再是严格的最大似然估计。需要根据任务与数据做权衡和实验。 与困惑度(perplexity)的关系 困惑度是语言模型常用的评价指标,定义为模型平均交叉熵的指数化表达。对单个 token,交叉熵损失 L = -log p(correct),在整个测试集上先求平均交叉熵后取 exp,就得到困惑度。较低的困惑度表示模型更能有效地预测下一个 token,对比不同模型或配置时是有用的标尺。不过在实际生成任务中,困惑度未必与生成质量成严格线性关系,还需配合其他评估手段。

调试损失与常见问题 训练初期常见现象是损失值极高或波动剧烈。检查点包括:是否正确对齐了输入与目标(目标应是输入左移一个位置的序列),是否使用了正确的 ignore_index 来跳过填充,是否传入了 logits 而非概率,或者是否误用了 softmax 两次导致数值异常。梯度爆炸是另一个常见问题,可以通过梯度裁剪(gradient clipping)、合适的权重初始化和学习率策略来缓解。混合精度训练(FP16)会带来速度与显存优势,但要确保数值稳定性措施到位。 标签表示与效率考虑 在实现中无需显式构造 one-hot 向量。绝大多数框架的交叉熵实现接受 class index(目标 token 的索引),内部高效地计算目标位置的负对数概率。

显式 one-hot 会带来巨大的内存与计算开销,尤其在大词表场景下应予避免。 softmax 温度与采样 训练阶段通常直接使用标准 softmax。生成阶段可以通过温度(temperature)调整 softmax 的"尖锐度"来控制模型生成的多样性。温度低会使分布更集中、更"保守";温度高会增大随机性。注意温度属于生成策略,与训练时的交叉熵目标是不同的控制手段。 优化器与学习率调度 交叉熵损失下降的速度受优化器和学习率调度策略影响显著。

常见结合包括 AdamW 加上学习率预热(warmup)再逐步衰减。预热阶段能防止训练初期的大梯度破坏模型,使参数逐步进入合理区域。学习率调度需要与批次大小、梯度累积以及训练步数共同设计。 批次内样本与梯度的平衡 语言模型训练中同一个输入序列会产生成千上万个前缀目标,直观上等价于做了大量次"短序列"训练。将整个序列作为一次训练样本并对序列内每个位置求损失,有助于更高效地利用计算资源并提供更多梯度信号。需要注意的是,序列内 token 的依赖性使得样本之间并非完全独立,但从损失计算角度可以把所有有效位置视为单独的监督信号进行平均。

在实践中监控指标 训练过程中应同时监控训练损失、验证损失与验证困惑度。如果训练损失下降但验证损失上升,说明过拟合或数据分布差异;如果两者都不下降,可能是模型容量不足、学习率设置问题或数据预处理有误。逐步保存模型快照并进行生成质量检查有助于早期发现模式崩溃或退化现象。 更高级的考虑 分布式训练与混合并行环境下,交叉熵的计算需与梯度同步策略配合。使用梯度累加时要确保最终损失按有效 token 数进行正确归一化。此外,在非常长序列或巨型词表场景下,某些技术如采样式损失(例如采样近似的 softmax)可以减少计算负担,但会引入偏差,需要谨慎取舍。

总结与展望 交叉熵损失在语言模型训练中既有信息论上的深刻解释,又具备工程实现的优雅性。将真实下一个 token 视为 one-hot 分布,交叉熵天然简化为负对数似然,既直观又高效。理解交叉熵的来源和数值实现细节有助于快速定位训练问题、设计合适的归一化和掩码策略,并在更高级的训练配置中做出合理取舍。接下来可以继续深入困惑度的含义及其与生成质量的关系,以及如何通过正则化、标签平滑与采样策略进一步提升模型鲁棒性与生成多样性。 。

飞 加密货币交易所的自动交易 以最优惠的价格买卖您的加密货币

下一步
围绕MCP协议在企业与开发者社区的最新动向与挑战展开探索,解读代理发现愿景、客户端兼容性碎片化、网关生态与安全风险,并提供面向开发者与产品经理的实操建议与路线图。
2026年03月15号 14点38分09秒 从MCP Dev Summit Europe看协议走向:代理发现、兼容性与安全的十字路口

围绕MCP协议在企业与开发者社区的最新动向与挑战展开探索,解读代理发现愿景、客户端兼容性碎片化、网关生态与安全风险,并提供面向开发者与产品经理的实操建议与路线图。

介绍 Mobile NixOS 的概念、优势、安装与配置策略,以及在手机和平板等移动设备上实现可重复、原子化更新与强隐私保护的实践方法
2026年03月15号 14点41分53秒 移动设备上的 NixOS 革命:打造可重复、原子化与隐私优先的移动系统

介绍 Mobile NixOS 的概念、优势、安装与配置策略,以及在手机和平板等移动设备上实现可重复、原子化更新与强隐私保护的实践方法

许多人在攻读拓扑、泛函分析或微分几何等高阶数学时,误以为可以靠短期集中突击或刷课速成。本篇深入剖析常见错误认知,结合学习心理学与训练化学习法,提出切实可行的长期策略,帮助读者建立可持续的高等数学学习体系并显著提升理解与解题能力。
2026年03月15号 14点51分33秒 高等数学学习的致命误区:为何"强度冲刺"不如持之以恒

许多人在攻读拓扑、泛函分析或微分几何等高阶数学时,误以为可以靠短期集中突击或刷课速成。本篇深入剖析常见错误认知,结合学习心理学与训练化学习法,提出切实可行的长期策略,帮助读者建立可持续的高等数学学习体系并显著提升理解与解题能力。

如何高效而有策略地向社区展示你的项目,获得真实反馈、早期用户与成长机会,同时避免常见的误区与推广陷阱
2026年03月15号 14点54分20秒 分享你正在做的事:从想法到曝光的实用指南

如何高效而有策略地向社区展示你的项目,获得真实反馈、早期用户与成长机会,同时避免常见的误区与推广陷阱

伊恩·凯林作为首位在职员中担任主席的董事会成员,其当选标志着自由软件基金会在技术专业性、组织治理与员工参与之间寻找新平衡,为应对人工智能、固件封闭与平台集中化等当代挑战带来不同视角与策略机遇
2026年03月15号 15点02分59秒 FSF任命伊恩·凯林为新任主席:自由软件运动迎来技术化与治理并重的新阶段

伊恩·凯林作为首位在职员中担任主席的董事会成员,其当选标志着自由软件基金会在技术专业性、组织治理与员工参与之间寻找新平衡,为应对人工智能、固件封闭与平台集中化等当代挑战带来不同视角与策略机遇

分析公众为什么会针对地铁广告采取行动,评估法律与伦理边界,并提供可执行的合法替代策略,帮助个人与群体在保护言论自由与公共秩序之间找到平衡
2026年03月15号 15点06分13秒 在数字时代对地铁广告表达异议:如何以合法、有效的方式回应Friend.com的地铁广告

分析公众为什么会针对地铁广告采取行动,评估法律与伦理边界,并提供可执行的合法替代策略,帮助个人与群体在保护言论自由与公共秩序之间找到平衡

解析加密货币如何被用于规避经济制裁与治理漏洞,揭示监管机构、区块链分析公司与交易所如何协同追踪、冻结与阻断被制裁主体的资金流动,并展望未来合规与技术的演进方向。
2026年03月15号 15点14分15秒 制裁与加密货币:制裁执法如何在链上真实运作

解析加密货币如何被用于规避经济制裁与治理漏洞,揭示监管机构、区块链分析公司与交易所如何协同追踪、冻结与阻断被制裁主体的资金流动,并展望未来合规与技术的演进方向。