浮点数的深渊:深度学习数值稳定性的完整解析

2019年某天凌晨三点,一位研究生的模型训练在运行72小时后突然输出全NaN。损失函数从平稳下降变成无穷大,权重变成NaN,一切归零。这是深度学习开发者的噩梦——数值不稳定。这不是偶然,而是浮点数表示固有的物理限制在特定条件下的必然爆发。 ...

17 min · 8385 words

大模型的上下文窗口:从Token限制到有效上下文管理的完整解析

大模型的上下文窗口:从Token限制到有效上下文管理的完整解析 当你向一个语言模型发送请求时,你有没有想过:为什么有些模型只能处理几千字,而有些却能吞下整本书?为什么即便模型声称支持128K上下文,你的长文档问答效果却时好时坏?为什么同样的提示词放在文档开头和中间,模型的回答准确率会相差几十个百分点? ...

15 min · 7425 words

Sigmoid与Softmax:多分类与多标签任务的激活函数选择逻辑

打开任何一本深度学习教材,或者浏览机器学习面试题库,几乎都会遇到这个问题:多分类任务应该用Sigmoid还是Softmax?答案似乎很简单——多分类用Softmax,二分类用Sigmoid。但当面试官追问"为什么"时,很多人就卡住了。更麻烦的是多标签分类场景:一个样本同时属于多个类别,这时候该用什么? ...

13 min · 6014 words

权重衰减与L2正则化:为什么这个看似微小的区别让AdamW成为大模型训练的标配

一个困扰深度学习社区多年的困惑 2015年,Diederik Kingma和Jimmy Ba在ICLR上发表了Adam优化器论文(该论文于2014年12月提交arXiv)。这个结合了动量和自适应学习率的优化器迅速成为深度学习社区的最爱。然而,一个奇怪的现象开始困扰研究者们:使用Adam训练的模型,其泛化能力似乎总是不如使用普通SGD加权重衰减训练的模型。 ...

17 min · 8405 words

多查询注意力:为什么共享一个KV头能让大模型推理提速数倍

2019年11月,Noam Shazeer在arXiv上发表了一篇标题颇为大胆的论文——《Fast Transformer Decoding: One Write-Head is All You Need》。这篇仅6页的论文提出了一个看似简单的问题:Transformer解码时,我们真的需要那么多Key和Value头吗? ...

17 min · 8445 words

Token ID:大模型如何用一个数字代表一个词

当你打开ChatGPT输入"你好"两个字,模型看到的是什么? 它看到的不是汉字,不是笔画,甚至不是图像像素。它看到的是两个整数:[22024, 22845]。 ...

15 min · 7483 words

Logits:神经网络输出的原始真相,从概念到实践的完整解析

当你问一个大语言模型"法国的首都是哪里?",它回答"巴黎"。这个看似简单的过程背后,模型经历了一系列复杂的计算。在最终的文字出现之前,模型首先要给出一个答案:对于词表中的每一个词,它认为这个词作为下一个输出的可能性有多大。这个"可能性"的原始形式,就是logits。 ...

13 min · 6400 words