无论文勇闯算法岗——深信服一面(简历深挖)
MTP
训练阶段怎么做的?
推理阶段投机采样怎么做的?
输入1个 token t1,主模型会预测1个token t2 ,MTP层会循环预测N次,N个draft token, dt1,dt2,...dtn,共1 + 1 + N 个token
然后 t1,t2, dt1,dt2,...dtn 送入模型
模型会并行
根据 t1,t2 预测t3,对应dt1
根据 t1,t2, dt1 预测t4,对应dt2
根据 t1,t2, dt1,dt2 预测t5,对应dt3
...
当dt中某一个不被主模型接受,就丢弃后边所有的draft token
例如dt1,dt2被接受,记作t3,t4,dt3不被接受
那么相等于多吐出了2个token
那么就把t1,t2, t3,t4 的特征在mtp层进行MTP,生成新的dt1,dt2,...dtn
继续重复操作。
draft token会导致response和模型原始的response分布不一致吗?
不会。
参考论文
https://arxiv.org/pdf/2211.17192
https://arxiv.org/pdf/2302.01318
两篇论文都证明了投机采样的token分布和从原模型分布中采样等价: