题目重点:按输出目标选双向表示或自回归生成,说明padding、causal及cross attention。
题意与假设
这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。
- 明确问encoder/decoder分别何时用、mask场景;不要求某未披露模型版本。练习讨论Transformer的常见双向encoder、自回归decoder和encoder-decoder组合。
- 架构与训练目标绑定,不能由产品叫“搜索”或“聊天”就断定唯一模型。检索系统也可能使用生成式重排。
解题路线
- 需要全句上下文表示的分类、标签或检索encoder可双向看有效token,padding mask排掉占位符。表示如何池化及监督目标决定embedding质量,不能认为任意hidden mean就是可比较句向量。
- 逐token续写使用causal decoder,当前位置不看未来目标token;训练teacher forcing也必须保持这种信息边界。推理逐步增长context,与编码一次得到表示的计算路径不同。
- 输入和输出是不同序列时encoder-decoder可先双向编码输入,再在decoder中causal self-attention并cross-attend输入表示;输入padding也应在cross attention屏蔽。
- padding与causal mask解决不同问题:一个排无效位置,一个限制时间信息。batch包含不同长度或训练拼接多样本时还需明确segment边界,避免跨样本泄漏。
- 先定评价:分类准确/校准、检索recall/排序、生成质量与延迟。混合任务可采用不同模块共享数据,但不凭单一loss低就推断所有任务好。
手动走一遍
文档分类允许后面的关键词影响前面表示;续写“天气”后的下一字不能读取标签中的未来字。翻译输入可全读英文,输出中文仍逐字因果生成,并可关注完整输入。
规模与取舍
标准全attention长度L通常O(L²d),mask不自动变线性;生成缓存KV后减少重复投影但仍随已有context访问增长。模型选择还受训练数据、输出长度和服务延迟限制。
易错点与追问
容易失分的边界
- 认为encoder永远没有mask。
- teacher forcing时看未来答案泄漏。
- padding mask与causal mask混用,遮掉合法上下文或保留无效token。
继续深挖
- 如何把decoder-only模型做embedding,并验证池化/目标选择?
- 多个对话打包时mask如何阻止读到另一个样本?
