02 4.30
检索增强生成要把多篇检索到的文档拼进上下文,每次都从头算这些文档的 KV 缓存很贵,于是有方法把每篇文档的 KV 缓存存起来、用时直接拼接。但长文档的 KV 缓存很大,存储和读取本身成了瓶颈,直接压缩后再拼接,准确率又会明显下降。上海交大和阿里巴巴的这篇论文提出 C2KV,在冻结的原模型旁加一个轻量提取器:把几个可学习的压缩 token 接在文档后面一起读,只留下这几个 token 的 KV 当作这篇文档的缓存。缓存存的时候不带位置,拼接时再按新位置补上位置编码,所以能像积木一样任意组合。在长上下文下,推理最多快 17 倍,生成质量基本不变。
04 3.90
大模型强化学习后训练里,生成回答常常占到训练时间的七成以上。这篇论文注意到,同一道题在前几轮训练中生成过的回答很像这一轮要生成的内容,可以直接拿来当草稿。他们提出 NgramRL,每道题只用自己最近几次的回答建一个 n-gram 草稿表。生成时拿当前回答的最后几个词去表里查,把表中接在后面的内容当草稿,大模型一次验证多个 token,不需要额外的草稿模型,也不占 GPU 显存,生成结果的分布也不变。在推理和结构化生成任务上,缓存预热后大模型每次前向能确认 3.6 到 7.8 个 token,最多是 SuffixDecoding 的 2 倍,后者是用全局历史回答建后缀树查草稿的同类方法。
05 3.90
大模型强化学习把生成和训练拆到不同机器上时,生成好的轨迹往往要等凑齐一整批才能送去训练,训练用的模型版本和生成时差得更远。轨迹数据很大,搬运方式和训练取用方式对不上,又会重复搬运、白白等待。这篇论文提出 KnitTrans,先把已完成的轨迹放进早期小批次。一整批要按设定比例混合不同数据来源的轨迹,所以每放入一条前都检查剩下的名额还够不够把比例凑齐。同一道题生成的多条轨迹共用同一份图片等输入,一个小批次里这份输入只编码一次。版本差距最多降低 93%,多模态任务上搬运加训练最多快 5.8 倍。
07 3.75
在大规模 GPU 集群上训练大模型,通信越来越成为瓶颈。ZeRO++ 这类框架用固定位数的量化压缩通信量,位数低时吞吐高,但量化噪声一直存在,训练后期难以收敛;位数高时精度好,速度却上不去。这篇论文提出一个假设:权重量化带来的噪声和随机梯度的噪声作用类似。他们从理论上证明,就像学习率要逐步衰减才能收敛,量化精度也要随训练逐步提高,才能在吞吐尽量高的同时保持训练稳定。据此做出的 Aquavit 在训练前期用低位数量化通信,后期再换成高位数。
08 3.65
同一个大模型要服务不同的推理预算,为每种预算单独训练和维护一个模型成本很高。这篇论文提出 Accordion,一个混合专家模型,用同一套权重支持五档推理预算:模型中段一组连续的层是可循环的窗口,每档从窗口开头起把前若干层各连续执行两遍,预算越高,重复的层越多,最低一档就是不循环的原模型。预训练时每个小批次随机抽一档预算训练,不加额外的一致性约束。最高一档的大部分收益,中间一档只用一半的额外计算就能拿到。加深推理让 37 项任务的平均分提高 3.01 个百分点,中间一档拿到其中 89%。
09 3.70
数据分析和大模型应用的内存需求涨得很快,数据中心开始用多层内存,把冷数据放到便宜但较慢的内存上。但哪些数据该放哪一层,只看访问冷热往往不够准。这篇论文用 ARM 处理器的统计采样扩展(SPE)做高分辨率的内存访问分析,测了云计算基准和大模型应用里八个内存密集型负载。它把内存切成连续的区域,统计每个区域的访问延迟分布,延迟长的区域更值得放在快的一层;再看每个区域最长有多久没被访问,空闲越长,越适合挪到慢的一层,还评估了面向云负载的缓存层次是否有效。
10 3.35
GPU 做数据分析查询,只有数据装得进显存时才快,而显存被多个任务分着用,单位价格的容量这几代也没涨多少。压缩能省显存和带宽,但现有做法要么只适配一种执行方式,要么先把解压后的整列写回显存再查询。这篇论文在 GPU 查询编译引擎 Proteus 里把解压做成一个独立的算子,解压在片上共享内存里按块进行,和查询融合在同一个 GPU 内核里,解压后的数据不再写回显存。和 HeavyDB、Sirius 相比,查询时间相当,常驻显存最多降到四分之一,带宽占用最多降到六分之一。