RetNet(Retentive Network,保留网络)是微软研究院提出的一种序列建模架构,核心做法是:用一条带指数衰减的记忆通道,替代 Transformer 里的AI 词典:自注意力机制">自注意力机制(self-attention)。
它到底在做什么
Transformer 处理一句话时,每个词都要和前面所有词两两比对。序列长一倍,计算量大约变成四倍,这就是常说的 O(n²) 问题。RetNet 换了个思路:给每个位置维护一份"记忆",新信息进来就写进去,而旧信息按固定比例慢慢褪色。
可以想象一块会议室白板:每轮讨论都往上写要点,同时有人拿抹布轻轻擦一遍——字迹没消失,但越早写的越淡。最后要看某个词的输出时,就把白板上所有还看得清的内容按清晰度加权汇总。衰减系数通常记作 γ,取值介于 0 和 1 之间,越接近 1 表示记得越久。多头里不同头可以设不同的 γ,有的专门记短期,有的负责长期依赖,这比所有头用同一个衰减率灵活得多。
为什么值得关注:三种形态
RetNet 的关键设计是同一套参数可以用三种等价方式计算:
| 形态 | 计算方式 | 典型用途 | 复杂度直觉 |
|---|---|---|---|
| 并行 | 一次性矩阵运算 | 训练 | 像 Transformer,能吃到 GPU 并行度 |
| 循环 | 每步只更新一个状态 | 推理 | 像 RNN,单步开销与序列长度无关 |
| 分块循环 | 块内并行、块间循环 | 长序列 | 兼顾吞吐与显存 |
这正是它的卖点:训练时像 Transformer 一样并行,推理时像 RNN(Recurrent Neural Network,循环神经网络)一样轻。相比之下,LSTM(Long Short-Term Memory,长短期记忆网络)训练必须逐步串行,梯度也难传远;Transformer 推理时要靠 KV 缓存(键值缓存)记住历史,序列越长显存占用越大。RetNet 的循环形态则把历史压缩成固定大小的状态。它和线性注意力(linear attention)、状态空间模型(SSM,如 Mamba 一类)属于同一条"高效序列建模"路线,区别主要在记忆更新的具体形式。
对从业者和普通人的意义
对工程师来说,这意味着长上下文服务的显存和推理成本有机会显著下降,边缘设备、实时语音这类场景也更友好。对普通用户来说,价值体现在更便宜、更快、能处理更长材料的助手类产品上。
需要提醒的是,架构论文里的理论优势不等于工程落地效果,实际吞吐、精度和生态支持取决于具体实现,选型时以官方页面和公开论文为准。
