跳转至

二:Transformer 与 Decoding自测题

来源:http://mp.weixin.qq.com/s?__biz=MzYyNTk3Njg1NA==&mid=2247483740&idx=1&sn=147c4405a69fa84624683a0b3f7e9e0e&chksm=f01eb225c7693b338315b1e26925cd224b46eecb305458a5efd09901812cc3d263cd0bd8e2d9#rd

覆盖范围

  • Transformer 总体架构

  • token embedding、position embedding、LM head、weight tying

  • encoder layer 的结构和双向 self-attention

  • decoder layer 的 masked self-attention、cross-attention 与 FFN

  • encoder-only、encoder-decoder、decoder-only 的区别

  • 训练与推理阶段的差异

  • logits、softmax 与 next-token distribution

  • temperature、top-k sampling、top-p/nucleus sampling

  • decoding 参数调试、实现细节和常见错误

一、Transformer 总体架构

  • 请用 1 分钟概括 Transformer 的整体思想。它相比 RNN/CNN 的核心变化是什么?

  • 原始 Transformer 的 encoder-decoder 架构包含哪些主要模块?

  • 在机器翻译场景中,encoder 和 decoder 分别承担什么职责?

  • 为什么说现代大语言模型通常是 decoder-only Transformer,而不是完整的原始 encoder-decoder Transformer?

  • Transformer 中 residual connection、LayerNorm 和 FFN 分别起什么作用?

  • pre-norm 和 post-norm Transformer block 的区别是什么?现代大模型为什么更常用 pre-norm?

  • position-wise FFN 中的 “position-wise” 是什么意思?

  • Transformer 的输入和输出通常有哪些关键 shape?请从 [B, T] token id 讲到 [B, T, V] logits。

二、Embedding 与位置表示

  • token embedding 是什么?它和 one-hot 表示有什么关系和区别?

  • 给定 input_ids: [B, T],词表大小 V,隐藏维度 d_model,embedding table 和输出 embedding 的 shape 分别是什么?

  • 为什么 Transformer 需要位置信息?纯 self-attention 为什么不天然知道顺序?

  • token embedding 和 position embedding 相加后,shape 是否变化?语义上发生了什么?

  • sinusoidal positional encoding 和 learned positional embedding 有什么区别?

  • RoPE 和绝对位置 embedding 的思路有什么不同?这里不要求推导公式,但要讲清直觉。

  • segment embedding/token type embedding 常见于哪些模型或任务?decoder-only LLM 一般是否需要?

  • 什么是 weight tying?输入 embedding 和输出 LM head 共享权重有什么好处?

  • 为什么输出层 LM head 的输出维度是词表大小 V

  • 如果 tokenizer 词表扩展了,embedding table 和 LM head 需要发生什么变化?

三、Encoder

  • Transformer encoder layer 通常由哪些子层组成?

  • encoder 的 self-attention 为什么通常不需要 causal mask?

  • encoder 中 padding mask 的作用是什么?

  • encoder 输出的 shape 是什么?它可以被下游哪些任务使用?

  • BERT 这类 encoder-only 模型为什么适合理解类任务?

  • encoder 中 self-attention 和 FFN 的分工是什么?

  • encoder layer 堆叠多层后,模型表示能力为什么会增强?

  • 如果一个理解任务需要输出句子级表示,通常如何从 encoder 输出中得到句向量?

四、Decoder

  • 原始 Transformer decoder layer 包含哪三类主要子层?

  • masked self-attention 和普通 self-attention 的区别是什么?

  • decoder 为什么必须使用 causal mask?不使用会发生什么?

  • 训练 decoder 时为什么可以并行计算整段序列,而推理时通常要逐 token 生成?

  • cross-attention 中 Q、K、V 分别来自哪里?

  • cross-attention 在机器翻译中起什么作用?

  • decoder-only 模型为什么通常没有 cross-attention?

  • decoder-only LM 的训练样本中 input 和 target 通常如何错位?

  • 为什么 decoder-only 模型可以把 prompt 和生成内容放在同一个序列中处理?

  • causal mask 和 padding mask 可以同时用于 decoder 吗?二者分别屏蔽什么?

五、架构类型对比

  • encoder-only、encoder-decoder、decoder-only 三类 Transformer 分别适合什么任务?

  • BERT、T5/BART、GPT/LLaMA/Qwen 分别属于哪类架构?

  • 为什么 encoder-only 模型不适合直接做开放式自回归生成?

  • 为什么 decoder-only 模型在通用大语言模型中非常流行?

  • 如果面试官问“Transformer 就是 ChatGPT 的结构吗”,你会如何回答?

  • encoder-decoder 模型和 decoder-only 模型在输入输出建模方式上有什么差异?

六、Decoding 基础

  • 语言模型输出 logits 后,为什么还需要 decoding 策略?

  • logits 和 probability 的区别是什么?softmax 在生成中起什么作用?

  • greedy decoding 的流程是什么?它有什么优点和缺点?

  • sampling decoding 的基本思想是什么?它和 greedy 的关键区别是什么?

  • 为什么开放式生成中纯 greedy 或 beam search 容易出现重复、无聊或退化输出?

  • decoding 策略能否弥补模型本身能力不足?为什么?

七、Temperature

  • temperature scaling 的公式是什么?

  • temperature 小于 1、等于 1、大于 1 时,输出分布分别会怎样变化?

  • 为什么 temperature -> 0 时接近 greedy decoding?

  • temperature 是否会删除候选 token?它和 top-k/top-p 的区别是什么?

  • 在格式遵循、代码生成、创意写作三个场景中,temperature 应该如何倾向性设置?

  • temperature 过高可能带来哪些风险?

八、Top-k Sampling

  • top-k sampling 的完整流程是什么?

  • top-k 中的 k 表示什么?top_k=1 与 greedy decoding 有什么关系?

  • top-k sampling 是“选 top-k 中概率最高的 token”吗?请解释。

  • top-k sampling 为什么能减少低质量 token 的干扰?

  • top-k 的固定候选数量会带来什么问题?

  • 如果当前分布很尖锐,使用很大的 k 可能有什么影响?如果当前分布很平坦,使用很小的 k 又有什么影响?

九、Top-p / Nucleus Sampling

  • top-p sampling 的完整流程是什么?

  • top-p 中的 p 表示什么?它是不是“保留概率大于 p 的 token”?

  • 为什么 top-p 又叫 nucleus sampling?

  • top-p 相比 top-k 的核心优势是什么?

  • top_p=0.9top_p=0.95 在候选集合和输出多样性上可能有什么区别?

  • top-k 和 top-p 能否同时使用?同时使用时它们各自起什么作用?

十、实现、调参和排错

  • 请写出一个包含 temperature、top-k、top-p 的 next-token sampling 伪代码流程。

  • 过滤 top-k 或 top-p 后,为什么需要重新归一化概率?

  • top-p 实现中为什么要先按概率降序排序?

  • 实现 top-p 时,为什么通常要保留第一个超过阈值的 token?

  • 如果生成内容重复严重,可以从 decoding 参数角度做哪些调整?

  • 如果生成内容太随机、跑题或幻觉增加,可以从 decoding 参数角度做哪些调整?

  • 如果模型需要稳定输出 JSON,应该如何设置 decoding 参数?

  • 在 Hugging Face generate 中,do_sample=Truetop_ktop_ptemperature 分别控制什么?

  • 请总结今天的知识链路:从 token id 到 embedding,到 Transformer encoder/decoder,再到 logits 和 decoding。

            预览时标签不可点
    

    <div class="