Episode: Meta字节蒸馏:打破Token天花板
Duration: approximately 11 minutes
Level: 入门
---
[Mike]: 欢迎来到从零开始学AI!先问你一个问题,如果一个小学生不背整词,只认字母,最后考试反而赢了背整词的大学霸,你信吗?
[Sarah]: 不信,小学生拿什么赢?除非考试规则变了,或者他学的方法完全不一样。
[Mike]: 方法确实不一样。今天的主角是 Meta 的一项新研究,来自 Meta FAIR 和华盛顿大学。核心想法就一句话,蒸馏的时候,把学习单位从词换成字节。
[Sarah]: 等一下,先补概念。蒸馏是什么?为什么大模型要教小模型?
[Mike]: 因为大模型能力强,但太贵了。显存、算力、响应速度,处处都是钱。所以常见做法是,让大模型当老师,把本事传给更小的学生模型,方便真正部署下去。
[Sarah]: 那老师怎么教?把正确答案告诉学生就行了吗?
[Mike]: 普通训练只告诉正确答案,蒸馏不一样。老师会把每个位置上所有候选的概率都摊开,比如这个词 70%,那个词 20%。学生学的不是一个答案,而是老师完整的判断。
[Sarah]: 懂了,一个只给结果,一个连思路一起给。那问题出在哪?
[Mike]: 出在老师说话的单位上。现在的大模型基本都用 Token 思考,也就是切好的词块。Llama 3-8B 的词表有 128256 个 Token,每个位置都是十几万选一。
[Sarah]: 十几万个选项,那老师的判断一定很占地方吧?
[Mike]: 对,这就是痛点。离线蒸馏要把完整概率存下来,存储贵得离谱。所以实际只能保留概率最高的前几百个,也就是 top-k 截断,剩下的全扔掉。
[Sarah]: 好比老师写了整本讲义,学生只能复印前两页,后面全靠猜?
[Mike]: 就是这个感觉。而字节模型刚好把选择空间压小了。一个字节 8 个比特,只有 256 种取值,加几个特殊符号,每个位置也就 200 多个选项。
[Sarah]: 选项从十几万变成 200 多,完整分布一下就存得下了。学习单位变小,学到的东西反而更全?
[Mike]: 没错,这就是这篇论文最漂亮的地方。但还有一关要过,老师预测的是整个 Token,学生预测的是单个字节,两边得对上。不能只把文本拆开,还得把概率一起搬过去。
[Sarah]: 具体怎么搬?举个例子吧。
[Mike]: 论文里举了 Tiramisu 这个词。分词器可能把它切成 T、iram、isu 三段。假设老师预测下一个 Token 时,候选里有 isu、isk 和 is,三个都以字节 i 开头。
[Sarah]: 那预测第一个字节时,就把所有以 i 开头候选的概率加起来?
[Mike]: 对。等真实前缀变成 i,再只保留前缀匹配的候选,继续算下一个字节。沿着真实字节一路走下去,就把 Token 分布拆成了逐字节目标。
[Sarah]: 听起来很顺,难点在哪?
[Mike]: 难点在长度不一样。走到前缀 is 时,isu 和 isk 后面还有字节,但 is 这个 Token 已经结束了。结束的那个,后面接什么就没了着落。
[Sarah]: 三个人走路,两个人还要继续,一个已经到家了。到家的那个怎么办?
[Mike]: 第一种方法 Marginalize-It 的做法很干脆,到家的就不再往后跟,把剩下人的概率重新归一化。只需要一次老师计算,很快,但丢掉了一部分已结束 Token 的信息,本质是近似。
[Sarah]: 省事,但漏东西。第二种呢?
[Mike]: 第二种 End-Of-Token 换了个思路。既然 Token 会结束,那就给结束本身一个位置。在每个 Token 末尾加一个特殊结束符,相当于下课铃。
[Sarah]: 有了下课铃,走到 is 时,学生可以预测 u、k,或者响铃表示到此结束?
[Mike]: 就是这样。原来悬空的那部分概率有了明确去处,Token 边界也保留下来了。两种方法都只需要一次老师前向计算,不用反复麻烦老师。
[Sarah]: 铃声一响,各回各家,账也算得清。我猜第二种效果更好,实验怎么说?
[Mike]: 实验设计得很整齐。三种表示,Token、普通字节、带结束符的字节,每种再分监督和蒸馏,一共六组。老师统一用 Llama 3-8B,学生的 Transformer 部分都是约 12.8 亿参数。
[Sarah]: 那总参数呢?词表应该也占不少吧?
[Mike]: 算上词表,Token 学生总共约 18.1 亿,字节学生约 12.8 亿。训练规模一路加到约万亿字节,再到选择题问答、语言生成、机器翻译三类八项任务上评测。
[Sarah]: 先说训练过程,谁学得快?
[Mike]: Token 像兔子,计算量小时跑得快,但很快撞上平台期。字节像乌龟,起步慢,但随着计算量增加一直往上走,Scaling 潜力更好。
[Sarah]: 慢热型选手。不过我听说有个 BPB 指标,字节很早就赢了?
[Mike]: 对,BPB 是摊到每字节上的预测损失,字节模型很早就超过了 Token。但做题成绩当时还更低,因为把文本预测准,和把答案选对,根本是两回事。
[Sarah]: 默写满分,不等于考试满分。那怎么比才公平?
[Mike]: 团队拟合了一条链,从训练计算量到 BPB 再到下游成绩,用它预测继续加计算后的上限。三种蒸馏的预测上限是,Token 蒸馏 48.4%,Marginalize-It 50.5%,End-Of-Token 52.4%。
[Sarah]: 第二种比传统 Token 蒸馏高出 4 个百分点,还是六组里最高的。有没有翻车的地方?
[Mike]: 有。普通字节监督预测是 51.2%,反而高于 Marginalize-It 的 50.5%。论文认为原因就是那个近似,丢掉的概率信息反噬了成绩。
[Sarah]: 而能完整保留分布的 End-Of-Token,连自己的监督版本也超过了。信息完整,真的有复利?
[Mike]: 是。按曲线外推,它在约 6.33 x 10 的 22 次方 FLOPs 时,就追平 Token 蒸馏 48.4% 的上限。处理的实际文本只有约六分之一,存储在 Token 只存前 600、字节存完整分布的设置下,也只有约五分之一。
[Sarah]: 数据更少,存储更小,上限更高。代价呢?我不信没有代价。
[Mike]: 有两个。结束符增加了额外步骤,处理相同文本时训练计算量比普通字节高约 30.94%。而且推理成本还没做同等条件下的公平比较,论文自己也承认了。
[Sarah]: 所以这是条新路,不是终点。想兑现潜力,还得继续投计算?
[Mike]: 对。最后补个人物花絮,一作是华盛顿大学博士生 Kalyani Marathe。作者里还有 Artidoro Pagnoni,他是 QLoRA 的核心作者之一,就是那个把大模型微调显存大幅降下来的方法。Mike Lewis 则是 Llama 3 预训练负责人之一。
[Sarah]: 有意思,同一批人,先让大模型便宜好用,再让小模型从更小的单位学起。从背单词,到认字母?
[Mike]: 还可以再往下想一层。Token 是人定的切法,分词器一换就全变。字节是谁都一样的基本单位,不随分词器改变。学的东西越底层,搬家越方便。
[Sarah]: 哈哈,背单词的学生换了词典就懵了,认字母的学生到哪都能拼。这么看,结束符那个小铃铛,响的还挺关键。
[Mike]: 对,一个小符号,补上了整套方法的缺口。有时候决定上限的,不是学了多少,而是哪里没漏。
[Sarah]: 今天这期信息量很大,值得二刷。感谢收听从零开始学AI,把这期转给那个总在问蒸馏是什么的朋友吧。
[Mike]: 下期见。对了,下次吃到 Tiramisu,可以想一下,它会被切成几段,又会在哪里响铃。
