真实面经题目 · 原创解析
编码解码模型具体怎么实现的?
编码解码模型的实现核心是编码器把输入序列压成上下文表示,解码器基于上下文和已生成 token 逐步输出目标序列。不同实现可以是 RNN seq2seq、attention seq2seq 或 Transformer encoder-decoder。
真实面经题目 · 原创解析
编码解码模型的实现核心是编码器把输入序列压成上下文表示,解码器基于上下文和已生成 token 逐步输出目标序列。不同实现可以是 RNN seq2seq、attention seq2seq 或 Transformer encoder-decoder。
实现上先准备 source 和 target 序列,做 tokenization、padding 和 mask。编码器读取 source,输出隐藏状态或 memory;解码器训练时使用 teacher forcing,把 target 右移一位作为输入,并通过 cross attention 或上下文向量读取 encoder 表示;输出层接 softmax 预测下一个 token。推理时从 BOS 开始自回归生成,用 greedy、beam search 或采样,直到 EOS 或最大长度。
实现前要把源序列和目标序列转成 token id,处理 padding、长度和 batch。Transformer 场景还要准备 source padding mask、target causal mask 和 target padding mask。
编码器可以是 RNN、CNN 或 Transformer。它把输入序列编码成隐藏状态序列,保留词语语义和上下文关系,供解码器在生成时读取。
训练时常用 teacher forcing,把真实目标序列右移后输入解码器,让模型预测下一个 token。推理时没有真实目标,只能用已经生成的 token 自回归继续生成。
早期 seq2seq 用固定上下文向量,长序列效果受限;attention 让解码器每一步动态关注源序列不同位置。Transformer encoder-decoder 使用 cross attention 完成这种读取。
训练通常用交叉熵损失并忽略 padding 位置。推理阶段可以用 greedy decoding、beam search、top-k 或 top-p,不同策略在质量、多样性和延迟之间取舍。
它让训练时每一步都基于真实历史 token 预测下一个 token,收敛更快;但训练和推理输入分布不同,可能带来 exposure bias。
beam search 保留多个候选序列,避免 greedy 每步局部最优导致整体较差,但 beam 太大会增加延迟并可能降低多样性。
encoder-decoder 显式分开源序列编码和目标序列生成,适合翻译、摘要等条件生成;decoder-only 用统一自回归结构,也能通过 prompt 承载条件。