【Transformer 与注意力机制】39|T5:把所有 NLP 任务塞进 Text-to-Text,代价在哪里

💡 原文中文,约14100字,阅读约需34分钟。
📝

内容提要

T5论文的核心贡献在于统一文本输入输出框架,并通过系统消融实验揭示了关键细节:span corruption的破坏率与平均跨度、任务前缀易被模型当作格式捷径、Encoder-Decoder结构在推理时的缓存复杂性,以及C4语料清洗规则隐含的归纳偏置。Text-to-Text框架在分类和检索任务上的适用性仍存争议,生成式检索在百万级语料上的扩展性问题尚未解决。

🔎

延伸解读

消融实验的启示:参数选择是折中而非最优

T5论文的消融实验显示,corruption rate在10%到25%之间对下游任务影响有限,平均span长度3仅比逐token采样小幅更优。最终选定的15%和3更多是延续BERT先例和训练效率的折中,而非被证明的全局最优。这提醒我们,论文中的超参数常受历史和实践因素影响,复现时应关注其适用边界,而非盲目照搬。

任务前缀的隐患:模型可能在学习格式捷径

T5论文指出前缀措辞对结果影响有限,暗示模型可能将其视为路由信号而非语义指令。后续研究(如Webson & Pavlick)进一步表明,模型对无关甚至误导性prompt的学习速度与正常prompt相近。这意味着在多任务训练中,模型可能依赖前缀和标签分布走捷径,而非真正理解任务。评估时应使用held-out格式和去前缀对照,以检验模型的真实理解能力。

Encoder-Decoder的推理代价:缓存与复用难题

T5的Encoder-Decoder结构在训练时因双向编码和参数效率占优,但推理时需同时管理Encoder的静态cross-attention KV和Decoder的动态self-attention KV,且双向注意力使前缀缓存难以复用。这与Decoder-only模型的单一因果KV缓存形成对比,后者更利于continuous batching和prefix caching等优化。因此,选择架构时需权衡训练优势与服务部署的复杂性。

Text-to-Text的边界:分类与检索的实证分歧

T5的统一框架并非万能。Sentence-T5显示,在分类和迁移任务上,纯Encoder池化优于完整Encoder-Decoder生成式接口;而DSI在中小规模检索上展现优势,但扩展到百万级语料后优势消失。这表明任务输出结构决定接口选择,生成式接口在分类和检索上的适用性仍存争议,需根据具体场景评估。

Q&A

T5模型的核心设计是什么?它如何统一处理不同类型的NLP任务?

T5模型的核心设计是Text-to-Text框架,将所有NLP任务统一为输入文本到输出文本的转换。例如,翻译任务输入'翻译成英语:Das ist gut.',输出'That is good.';情感分类输入'sst2 sentence: This movie is surprisingly good.',输出'positive'。这样模型无需为每种任务改变输出层,所有任务都通过条件生成完成。

T5为什么选择Encoder-Decoder结构而不是Decoder-only?

T5通过消融实验发现,在相同计算量下,Encoder-Decoder结构相当于'免费'多获得一倍参数量,且显式的cross-attention带来增益。具体来说,一个Encoder和Decoder各有L层的模型,参数量约等于2L层纯Decoder,但计算量只相当于L层纯Decoder。实验表明,标准Encoder-Decoder在所有任务上表现最好,优于参数共享或砍半层数的变体,也优于结构对齐的Decoder-only prefix LM。

T5中的任务前缀有什么作用?模型真的理解前缀的语义吗?

任务前缀用于指示任务类型,如'translate English to German:'。论文发现前缀的具体措辞对结果影响有限,说明模型可能将前缀当作固定的路由信号,而非理解其语义。Webson和Pavlick的实验显示,模型用无关或误导性prompt学习速度与用良好prompt相近,表明prompt的作用更多是目标词本身而非语义。T0模型通过held-out任务和模板评测来排除格式过拟合,确保模型学到可迁移的任务理解能力。

T5的span corruption预训练目标中,corruption rate和平均span长度如何影响性能?最终选择什么参数?

T5通过消融实验发现,corruption rate在10%到25%之间影响有限,50%时明显掉分;平均span长度3比逐token独立采样小幅但显著更好,长度10在部分任务上掉分。最终选择corruption rate 15%、平均span长度3,这更多是历史延续(沿用BERT的15%)和训练效率的折中,而非理论最优。

C4语料库的清洗规则有哪些?为什么说这些规则隐含了归纳偏置?

C4的清洗规则包括:只保留以句末标点结尾的行、丢弃少于3句话的页面、丢弃包含花括号的页面(排除代码)、用langdetect过滤非英语页面、对三句话片段去重。这些规则隐含了对'什么算自然语言文本'的假设,例如排除代码和结构化短文本,以英语为中心。去掉这些规则后,模型在下游任务上表现一致变差,说明清洗规则是决定模型学习分布的关键前提。

Encoder-Decoder模型在推理服务中面临哪些KV Cache的挑战?

Encoder-Decoder模型需要维护两套KV Cache:Encoder端一次性计算的双向自注意力K/V,以及Decoder端逐步增长的self-attention KV和跨注意力K/V。跨注意力K/V在Encoder跑完后计算一次,之后反复复用,但生命周期与Decoder的self-attention KV不同,工程实现更复杂。此外,由于Encoder的双向注意力,不同请求即使有相同文本前缀,Encoder端的表示也可能不同,导致前缀缓存难以复用,难以套用纯Decoder生态的prefix caching优化。

Text-to-Text框架是否适用于所有任务?有哪些争议?

Text-to-Text框架并非适用于所有任务。Sentence-T5的研究表明,在分类和迁移任务上,纯Encoder池化方法优于完整Encoder-Decoder生成式接口;而DSI在检索任务上展示了生成式接口的优势,但该优势在扩展到百万级语料后尚未被稳定验证。因此,任务输出结构决定接口选择,统一接口并非总是最优。

生成式检索在扩展到大规模语料时面临什么问题?

Pradeep等人的研究将生成式检索扩展到MS MARCO的880万篇文档,发现小规模语料上生成式检索能与双编码器打平甚至更好,但扩展到百万级文档时优势基本消失。合成查询是唯一在扩大语料规模时依然有效的技术,其他架构改动在相同计算成本下没有真正增益,单纯放大模型参数在超过某个规模后反而损害效果。因此,生成式检索能否扩展到百万级真实网页规模仍是未解决的问题。

🏷️

标签

➡️

继续阅读