Lite Transformer模型架构全解析:内核尺寸调度3-7-15-31与编码器解码器设计
Lite Transformer模型架构全解析内核尺寸调度3-7-15-31与编码器解码器设计【免费下载链接】lite-transformer[ICLR 2020] Lite Transformer with Long-Short Range Attention项目地址: https://gitcode.com/gh_mirrors/li/lite-transformerLite TransformerLSRALong-Short Range Attention长短期范围注意力是 MIT Han Lab 提出、发表于 ICLR 2020 的高效 Transformer 变体。它在保留标准 Transformer 翻译精度的前提下把自注意力拆分为全局注意力 局部卷积多分支结构并按 3-7-15-31 的调度逐层放大卷积内核尺寸从而在相同 BLEU 分数下实现约 2.5 倍的速度提升。本文带你完整读懂它的编码器解码器设计与内核调度机制。为什么要长短程注意力冗余从哪里来标准 Transformer 的自注意力对每个词都要扫描整句但研究表明靠近对角线即局部相邻位置的注意力权重其实是高度冗余的真正有信息量的长程关系只占少数。LSRA 的思路很直接——让注意力只负责长程让卷积负责短程全局提取器Global Extractor标准多头注意力捕捉远离对角线的长距离依赖局部提取器Local Extractor轻量卷积Conv FC GLU以极低成本建模局部语境下面这张官方总览图左Lite Transformer 单块结构中传统注意力的冗余对角线权重右LSRA 专门化于长程关系的稀疏权重直观展示了这一设计多分支自注意力把嵌入维度对半切Lite Transformer 的核心实现是transformer_multibranch_v2模型主文件在 fairseq/models/transformer_multibranch_v2.py。每一层的自注意力由MultiBranch模块fairseq/modules/multibranch.py组装工作方式将总嵌入维度如 496按分支切分每个分支只操作自己的切片各分支维度之和必须等于总维度各分支并行前向输出在最后一维上**拼接concat**回完整维度分支类型通过配置字符串类型:内核:维度:头数声明例如官方 WMT 配置encoder-branch-type: [attn:1:248:4, dynamic:default:248:4] decoder-branch-type: [attn:1:248:4, dynamic:default:248:4] 解读496 维被切成两个 248 维分支一半走标准多头注意力4 头另一半走动态卷积default表示内核尺寸取本层的调度值。三种可选分支分支类型说明源码attn标准多头自注意力负责长程建模fairseq/modules/multihead_attention.pydynamic动态卷积权重随输入动态生成支持 GLU 门控fairseq/modules/dynamic_convolution.pylightweight轻量静态卷积每个头共享一组(num_heads, 1, K)的可学习权重fairseq/modules/lightweight_convolution.py这种分工的回报非常直接——在 WMT14 En-Fr 翻译任务上Lite Transformer 达到相同甚至更优 BLEU 所需的乘加运算量仅约为 Transformer 的 1/2.5语言模型任务WIKITEXT-103上 perplexity 同样以更少的计算量胜出内核尺寸调度 3-7-15-31每层怎么选卷积窗口这是本架构最巧妙的设计之一。编码器/解码器默认有 6 层每层的卷积内核尺寸按列表调度[3, 7, 15, 31, 31, 31]在 fairseq/models/transformer_multibranch_v2.py 中--encoder-kernel-size-list与--decoder-kernel-size-list定义了该列表分支配置里写default时get_layer会取kernel_size_list[index]作为该层卷积的窗口大小。层123456内核尺寸3715313131⚡ 调度逻辑前 3 层近似倍增3→7→15感受野随深度呈对数增长浅层看近邻、深层看更远与 Transformer 逐层抽象的规律吻合后段钳制在 31窗口继续翻倍会带来过度平滑和训练不稳定31 是精度与效率的经验平衡点编码器用对称填充左、右各K//2解码器用因果填充padding_l K-1保证自回归推理时不泄露未来信息解码器在增量推理时通过incremental_state缓存卷积窗口避免每步重复卷积该列表还支持单值复制 / 超长截断的写法并强制校验列表长度与层数一致见base_architecture。编码器解码器结构与关键超参整体仍是标准编码器-解码器Encoder-Decoder结构6 层编码器 6 层解码器每层内部为LayerNorm → 多分支自注意力 → 残差 → FFN → 残差 → LayerNorm解码器额外保留标准 Transformer 的编码器-解码器注意力它不参与多分支拆分仍为全局注意力。以官方 WMT 配置 configs/wmt14.en-fr/attention/multibranch_v2/embed496.yml 为例参数取值说明embed-dim496嵌入维度按 248248 切给两个分支ffn-embed-dim496FFN 与嵌入同宽进一步压参数encoder/decoder-layers6编解码层数base_architecture默认值attention-heads4每个分支 4 个头kernel-size-list[3,7,15,31,31,31]逐层内核调度share-all-embeddingsTrue编码器/解码器/输出共享词表嵌入不同任务有不同预设IWSLT14 的轻量版用 160 维嵌入 lightweight分支见 configs/iwslt14.de-en/attention/multibranch_v2/embed160.ymlWMT16 En-De 则提供 200/408/496 三档规模configs/wmt16.en-de/attention/multibranch_v2/。实测效率训练成本与模型压缩在 IWSLT 德英翻译任务上与 Transformer 和 AutoML 搜索出的 Evolved Transformer 相比Lite Transformer 的 GPU 时数、CO₂ 排放和云成本几乎降到同一量级BLEU 反而最高——相对 AutoML 方案的训练开销可缩减约 20000 倍架构本身更小的 FLOPs 还叠加了部署侧的红利176MB 的 Transformer 压缩为 69MB 的 Lite Transformer 后再经 8-bit 量化 剪枝可压到 9.7MB18.2 倍BLEU 仅从 39.9 微降到 39.5快速上手训练与评测 Lite Transformergit clone https://gitcode.com/gh_mirrors/li/lite-transformer cd lite-transformer pip install --editable . # 构建 GPU 卷积内核lightconv 与 dynamicconv cd fairseq/modules/lightconv_layer python cuda_function_gen.py python setup.py install cd ../../.. cd fairseq/modules/dynamicconv_layer python cuda_function_gen.py python setup.py install cd ../../..数据准备与评测只需一行bash configs/wmt14.en-fr/prepare.sh # 准备数据 configs/wmt14.en-fr/test.sh embed496/ 0 test # 评测 checkpoint训练入口为 train.py示例python train.py data/binary/wmt14_en_fr --configs configs/wmt14.en-fr/attention/multibranch_v2/embed496.yml其余常用入口preprocess.py分词/词表、generate.py推理生成、validate.py验证集检查多分支相关算子均位于 fairseq/modules/ 目录下。总结Lite Transformer 用三个设计回答了Transformer 如何又快又好多分支分工注意力管长程、卷积管短程消除冗余计算3-7-15-31 内核调度感受野随深度对数扩张浅快深稳编码器解码器轻量化FFN 与嵌入同宽、嵌入共享、496 维双 248 分支切分这套 LSRA 思想至今仍是用局部卷积替代全局注意力类高效架构的经典参照。如果你想深入源码建议从 fairseq/models/transformer_multibranch_v2.py 的get_layer与 fairseq/modules/multibranch.py 的MultiBranch.forward两处读起。【免费下载链接】lite-transformer[ICLR 2020] Lite Transformer with Long-Short Range Attention项目地址: https://gitcode.com/gh_mirrors/li/lite-transformer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

最新新闻

日新闻

周新闻

月新闻