跳到主内容

什么是序列到序列?翻译模型的基本结构

2026-10-06 发布 来源:我告诉你AI导航 阅读

翻译、摘要、语音转文字,这些任务有一个共同点:输入是一串内容,输出是另一串内容,而且两边长度都不固定,词数无法事先确定。处理这类任务的通用框架叫序列到序列,英文缩写 Seq2Seq,如今的大模型生成文本,走的也是同一套基本思路。理解...

翻译、摘要、语音转文字,这些任务有一个共同点:输入是一串内容,输出是另一串内容,而且两边长度都不固定,词数无法事先确定。处理这类任务的通用框架叫序列到序列,英文缩写 Seq2Seq,如今的大模型生成文本,走的也是同一套基本思路。理解它,基本就理解了翻译模型乃至大部分生成式 AI 的骨架。

编码器-解码器:先读懂,再写出

序列到序列结构分成两半。编码器负责理解:把输入序列从头读一遍,把每个位置的信息层层加工,最终压成一组内部表示。解码器负责表达:拿着这组表示,一个词一个词地生成输出序列。打个类比,编码器像通读原文的译者,解码器像动笔成文的译者,两者共享同一份理解笔记。这个分工框架从早期的循环网络沿用至今,只是内部实现换了几代,分工概念本身没有变。

自回归生成:每一步都以上一步为输入

解码器的生成方式叫自回归:每生成一个词,都把它接到已生成序列的末尾,作为下一步的输入,直到输出结束符为止。所以输出长度可以自由延伸——十个词的句子和一百个词的段落,走的是同一套流程。代价是误差会累积:中间某个词生成偏了,后续会基于这个偏差继续写,一步错可能步步偏。这也是生成类任务对开头质量格外敏感的原因,翻译里开头的译法定了,后面的用词就顺着走了。

注意力机制:从一次性压缩到按需查询

早期做法是把整个输入压成一个固定长度的向量,再让解码器照着生成。输入一长,这个向量就装不下了,前面读到的信息会被后面覆盖,译文后半段明显变差。解决办法是让解码器在生成每个词时,回头去看输入里最相关的部分,翻到哪就看着原文哪一段写,这就是注意力机制的起点。它把一次性压缩变成了按需查询,后来的演进是把这套查询做到底:完全依赖注意力、去掉循环结构,成为现在主流的通用架构。但编码器与解码器的分工概念依然成立。

训练与推理的差别

训练时,解码器每一步的输入用的是真实答案里的上一个词,学得快也稳。推理时没有标准答案,只能用自己刚生成的词。这个落差会让模型在推理时遇到训练时没见过的输入分布,误差更容易滚起来。日常使用中的对应现象是:译文开头很顺,越往后越容易飘,或者前面一个小错导致后面整段跑偏。了解这一点,就能理解为什么同一个模型对不同长度的输入表现差异很大。

哪些任务不需要完整结构

任务类型输入形态输出形态需要的结构
机器翻译一句源语言文本一句目标语言文本完整编码器-解码器
文本摘要一篇长文一段变长摘要完整编码器-解码器
语音转文字一段音频特征序列一段文字完整编码器-解码器
情感分类一句话一个标签只需编码器

判断标准很直接:只有输出也是变长序列时,才需要完整的编解码结构。分类类任务的输出是一个标签,编码就够,这也是很多理解类模型只有编码器的原因。

它做不到的部分

序列到序列是一种框架,不是某个具体模型,同一框架下的模型能力天差地别。它也不对内容真实性负责:自回归地逐词输出,意味着它可以流畅地写出错误内容,翻译里的漏译、摘要里编造要点都源于此。另外,框架本身不记得单次输入之外的信息,你们之前聊过什么、文档外的背景知识,它一概不知道。

序列到序列速查

  • 结构分两半:编码器读懂,解码器写出
  • 解码是自回归的,每步把刚生成的词当输入
  • 注意力把一次性压缩变成按需查询
  • 训练用真实词,推理用自产词,误差会累积
  • 分类任务只需编码器,不必完整结构

三个常被问到的问题

  • 为什么要分编码器和解码器,一个模块从头做到尾不行吗?:读和写的难点不同。读需要把任意长度的输入压成有结构的理解,写需要按目标语言的习惯逐词展开。分开之后各自按任务特点优化,这也是这个框架能沿用多年的原因。
  • 自回归生成能不能并行,一次输出整句?:训练时可以并行,因为真实答案已知;推理时必须一步步来,因为下一步依赖上一步的结果。这就是输出越长等待越久的机制根源。
  • 现在的大模型还分编码器和解码器吗?:主流生成式大模型把重心放在解码一侧,靠大规模预训练补上理解能力,但先理解再生成的基本流程没有变。具体结构随代际演进,以各模型官方技术说明为准。

自回归逐词生成直接决定了等待时间,生成速度与 token 的关系里有展开;想理解模型规模带来什么差别,参数量 7B 和 70B 的对比是合适的入门;模型为什么能在推理时瘦身,模型量化的基本原理讲的是另一半故事。

反馈页面信息

请描述需要更正的地方,页面标题和网址会自动附上。

也可以发邮件至 [email protected]