这里通过一些主流的面试题目与网上搜索到的题目进行一个汇总与讲解,无论是学习还是面试都是有益的。我还是坚持以往的讲解方式吧,我们不仅要知道是什么,还要知道为什么,更要知道最底层原因

一:目前主流的开源模型体系有哪些?

1. Causal Decoder (因果解码器 / Decoder-Only) —— 目前绝对的统治者

这是目前几乎所有主流大模型(如 Llama, Qwen, DeepSeek, GPT-4, Mistral 等)采用的架构。

  • 工作原理:它采用严格的单向注意力机制(Causal Attention)。在预测当前词时,模型只能“看”到它之前的词,绝对不能“偷看”后面的词(通过下三角矩阵掩码掩盖未来信息)。它完全按照“从左到右、逐字预测”(Next-token prediction)的方式工作。

  • 优势

    • 符合 Scaling Law(缩放定律):随着参数量和数据量的增加,它的零样本生成能力(Zero-shot)和泛化能力提升最稳定、最明显。

    • 训练效率高:在预训练时,一段长文本可以并行计算出所有位置的下一个词的损失(Loss),不需要像 Encoder 那样区分输入和输出。

    • 推理优化成熟:KV Cache 等推理加速技术在 Decoder-Only 架构上应用得最成熟、效率最高。

  • 代表模型:Llama 体系、Qwen 体系、DeepSeek 体系、Gemma 等。

  • 注意力机制与掩码(Attention Mask):

    它采用严格的下三角掩码矩阵。用数学语言表达,对于第 $i$个位置的 token,它对第 $j$ 个位置的注意力权重掩码 $M_{ij}$ 定义为:

    $M_{ij} = \begin{cases} 0 & \text{if } j \le i \\ -\infty & \text{if } j > i \end{cases}$

    加上 $-\infty$ 后经过 Softmax 函数,未来的信息权重就会变成绝对的 0。模型在任何时刻都只能看到过去,绝对无法预知未来。

  • 训练目标:

    标准的 Next-Token Prediction(下一个词预测)。给定历史序列 $x_{<t}$,最大化当前词$x_t$ 的概率 $P(x_t | x_{<t})$

  • 为什么它赢得了工程界的青睐?

    • KV Cache 极致优化: 因为是严格的单向注意力,前面 token 的 Key (K) 和 Value (V) 向量一旦计算完成就永远不会改变。在推理生成下一个词时,我们不需要重新计算前面的内容,只需把新词的 KV 拼接到缓存(KV Cache)中即可。这使得推理速度大幅提升。

    • 训练效率极高: 在预训练时,输入一段长度为 N 的文本,只需一次前向传播(Forward Pass),就能并行计算出 N个位置的损失(Loss)。不用像 Encoder 那样把输入和输出分开处理。

2. Prefix Decoder (前缀解码器 / Prefix LM) —— 兼顾理解与生成

为了弥补纯 Causal Decoder 在“理解长长的提示词(Prompt)”时只能单向阅读的劣势,Prefix Decoder 诞生了。

  • 工作原理:它将文本分为“前缀(Prefix,即用户的输入/Prompt)”和“生成部分”。

    • 对于前缀部分,采用双向注意力(Bidirectional Attention),让模型可以前后文结合地彻底理解你的指令。

    • 对于生成部分,切换回单向注意力(Causal Attention),逐字生成回答。

  • 优势:在同等参数量下,它对复杂 Prompt 的理解能力通常比早期的 Decoder-Only 更好,因为它可以结合上下文去理解用户输入。

  • 劣势:底层注意力掩码(Attention Mask)的设计较为复杂,在主流的训练框架(如 Megatron-LM)和推理加速框架(如 vLLM)中,适配起来不如纯 Causal Decoder 那么顺滑,导致生态上略显吃亏。

  • 代表模型:清华/智谱的 GLM 系列(ChatGLM)是这一架构最著名的代表。此外,Google 早期的 U-PaLM 也用过这种思路。

  • 注意力机制与掩码(Attention Mask):

    它采用的是混合掩码(Mixed Mask)。假设用户的 Prompt(前缀)长度为 P,模型需要生成的回复长度为 S。

    • 在 1 到 P 的范围内,掩码全是 0(完全双向可见)。模型可以结合上下文彻底理解用户的复杂指令。

    • 在 P+1 之后的生成阶段,掩码切换回下三角矩阵(单向可见),保证像 Causal Decoder 一样逐字生成。

  • 训练目标:

    通常采用自回归空白填充(Autoregressive Blank Infilling)。模型不仅要学会往后写,还要学会根据前后文把中间挖空的词补全。

  • 为什么它在生态上略显吃亏?

    • 算子适配困难: 当今世界上最快的大模型加速算子(比如 FlashAttention)和推理框架(比如 vLLM、TGI)一开始都是为标准的纯下三角矩阵(Causal Mask)死磕优化的。Prefix Decoder 这种“前面是方块,后面是三角”的非标准注意力矩阵,往往需要开发者自己写底层的 CUDA 算子来优化,否则运行效率就会大打折扣,导致开源社区跟进的门槛变高。

3. Encoder-Decoder (编码器-解码器) —— 经典的 Seq2Seq 架构

这是 2017 年 Google 提出 Transformer 论文《Attention is All You Need》时使用的最原汁原味的原始架构。

  • 工作原理:分为两个独立的模块。

    • Encoder(编码器):使用完全双向注意力,阅读并压缩输入文本,将其转化为致密的特征向量。

    • Decoder(解码器):通过交叉注意力(Cross-Attention)读取 Encoder 提取的特征,然后通过单向注意力逐字生成输出。

  • 优势:非常适合“序列到序列”(Seq2Seq)的转化任务,比如机器翻译、文本摘要生成。输入和输出的界限极其清晰。

  • 劣势:参数效率低(同样的参数量,表现不如 Decoder-Only),训练成本高,且随着模型规模做大,表现出的“涌现能力”不如 Decoder-Only。

  • 代表模型:Google 的 T5 / FLAN-T5、Meta 的 BART。目前在百亿参数以上的生成式大模型中,这种架构已经基本被淘汰。

  • 注意力机制与掩码(Attention Mask): 它有两套完全独立的注意力系统:

    • Encoder(编码器): 没有任何掩码(全 0 矩阵),每一个 token 都能看到序列中的所有其他 token。提取出深度的上下文特征表示。

    • Decoder(解码器): 一方面用下三角掩码做自注意力(自己预测自己),另一方面通过交叉注意力(Cross-Attention)去读取 Encoder 提取好的特征。

  • 训练目标: 通常是掩码语言模型(Masked Language Modeling, MLM)或跨度损坏(Span Corruption)。比如输入 "The dog ran [MASK] the park",让解码器输出 "into"。

  • 为什么它在 LLM 时代被边缘化了?

    • 参数利用率极低(致命伤): 假设你有一个 100 亿参数的 Encoder-Decoder 模型(50 亿在 Encoder,50 亿在 Decoder)。当你在生成回复时,Encoder 运行完一次 Prompt 后就彻底停工闲置了,接下来的逐字生成全靠那 50 亿参数的 Decoder 在苦苦支撑。这意味着你占用了 100 亿参数的显存,却只发挥了 50 亿参数的计算力,性价比极低。

    • 涌现能力不足: 实验证明,在规模扩大后(Scaling Law),纯预测下一个词(Causal Decoder)比做填空题(Encoder-Decoder)更容易涌现出强大的逻辑推理和 In-Context Learning(上下文学习)能力。

为什么 Causal Decoder 最终赢得了天下?

早年间(比如 2019-2021 年),学术界其实在疯狂争论到底哪种架构好。但 OpenAI 坚定地走 Causal Decoder (GPT路线),最终通过 GPT-3 和 ChatGPT 证明了:只要数据足够多、模型足够大,“大力出奇迹”的单向预测能力会涌现出极强的逻辑理解能力,足以弥补没有双向注意力的缺陷。 加上工程上好优化,最终开源社区也全面倒向了 Causal Decoder。

总结来说,Causal Decoder 最终的一统江湖,是底层硬件算力、推理加速算法(KV Cache / FlashAttention)和 Scaling Law 三者共同妥协与互相成就的结果。

二.大模型的训练目标是什么

1. 预训练阶段 (Pre-training) 

这是大模型训练中最耗时、最烧钱、也是最核心的阶段。模型在这个阶段吸收了人类几乎所有的公开文本数据。

  • 功能目标:学习人类语言的语法规则、逻辑推理能力,并将海量的世界知识(维基百科、书籍、代码、网页)压缩到模型的神经网络权重中。在这个阶段结束时,模型只是一个“超级文本接龙机器”。

  • 数学目标下一个词预测 (Next-Token Prediction)

    它的本质是最大化目标词的条件概率。给定前面的序列 $x_1, x_2, \dots, x_{t-1}$,模型需要预测出真实的下一个词$x_t$的概率。

    在底层,它通过最小化交叉熵损失 (Cross-Entropy Loss) 来优化模型参数 $\theta$

    $\mathcal{L}_{PT} = -\sum_{t} \log P_{\theta}(x_t | x_1, \dots, x_{t-1})$

  • 输入数据:海量的、未标注的原始文本(如几十万亿个 Token 的网页抓取数据)。

2. 有监督微调阶段 (Supervised Fine-Tuning, SFT) 

如果只经过预训练,你问模型“中国的首都是哪里?”,它可能会续写成“美国的首都是哪里?”(因为它在网页上见过很多排比句),而不是回答问题。SFT 阶段就是为了解决这个问题。

  • 功能目标指令遵循 (Instruction Following)。教会模型理解什么是“提问”,什么是“回答”,什么是“总结”,什么是“翻译”。让它从一个“无目的的文本续写器”变成一个“听指令办事的对话助手”。

  • 数学目标:依然是下一个词预测,底层公式与预训练完全一样。但是,此时计算 Loss(损失)通常只针对回答(Response)部分,不对用户的提问(Prompt)部分计算损失。

  • 输入数据:高质量的人工标注数据,通常是“提示词 + 标准答案”的对话对(Prompt-Response Pairs)。数据的质量(多样性、准确性)远比数量重要,通常几万到几十万条即可。

3. 偏好对齐阶段 (Alignment) 

经过 SFT 的模型已经能对话了,但它可能为了迎合用户而胡编乱造(幻觉),或者生成有害/危险的内容。对齐阶段就是为了给模型套上“缰绳”。

  • 功能目标:让模型的输出符合人类的偏好,满足 3H 原则:Helpful(有用)、Honest(诚实)、Harmless(无害)。

  • 数学目标偏好最大化 (Preference Maximization)。目前主流有两种技术路线:

    • RLHF (基于人类反馈的强化学习):首先训练一个独立的“奖励模型 (Reward Model)”,给大模型的回答打分。然后使用 PPO (Proximal Policy Optimization) 强化学习算法,让大模型通过不断试错,最大化它能获得的“奖励分数”。

    • DPO (直接偏好优化):这是近年最火的替代方案。它不需要单独训练奖励模型,而是直接利用数学推导,将“最大化人类偏好”的目标等价转换为可以直接优化的交叉熵形式。你需要给模型提供一对数据:好的回答 $y_w$ 和差的回答 $y_l$。模型的目标是拉大两者概率的对数差:

      $\mathcal{L}_{DPO} = -\log \sigma \left( \beta \log \frac{P_{\theta}(y_w | x)}{P_{\text{ref}}(y_w | x)} - \beta \log \frac{P_{\theta}(y_l | x)}{P_{\text{ref}}(y_l | x)} \right)$

      (注:$\sigma$是 Sigmoid 函数,$P_{\text{ref}}$ 是参考模型的概率,$\beta$ 是控制偏移的超参数。)

  • 输入数据:偏好排序数据(人类或更强的 AI 对两个不同回答的胜负打分)。

三.涌现能力出现的原因是什么?

“涌现能力”(Emergent Abilities)通常被定义为:在小模型中不存在,但当模型的规模(参数量、训练数据、算力)跨过某一个临界点时,突然爆发出来的复杂能力(比如做数学题、写代码、逻辑推理、甚至理解幽默)。

1. 复杂系统的“相变”现象 (Phase Transition)

在物理学中,水到 100°C 会突然沸腾,这就是相变。神经网络本质上是一个极其复杂的高维非线性系统。

  • 特征的组合爆炸:当模型参数量较小时,它只能学习到语言的浅层统计规律(比如“苹果”后面大概率跟着“好吃”)。但当参数量达到百亿甚至千亿级别时,模型内部有足够的“容量”去构建更抽象的特征表示。

  • 从“死记硬背”到“寻找规律”:这在学术界被称为 Grokking(顿悟) 现象。小模型倾向于直接记住训练集里的答案(过拟合);而大模型因为看过了海量数据,发现“死记硬背”的成本太高,于是它的神经网络会被迫压缩信息,抽象出底层的通用逻辑法则(Circuits)。当这些法则构建完成的那一刻,泛化能力就会突然显现。

2. 多步推理的数学概率乘性效应 (Multi-step Reasoning Probability)

很多被认为是“涌现”的高级能力(比如解答复杂的逻辑题),往往需要模型连续进行多步正确的推理。这可以用一个简单的数学概率来解释:

假设一个复杂任务需要连续进行 n 个步骤的推理,每一步推理正确的概率为 p。那么整个任务成功的总概率 P 就是:

$P = p^n$

  • 小模型的表现:假设一个几十亿参数的小模型,单步推理准确率 p = 0.4。如果任务需要 5 步推理(n=5),总成功率 $P = 0.4^5 \approx 0.01$。在外部测试看来,它的得分为 0,表现得像个傻子。

  • 大模型的表现:当模型规模扩大,单步准确率提升到了 p = 0.9。此时 5 步推理的总成功率 $P = 0.9^5 \approx 0.59$

  • 视觉上的“涌现”:从外部视角看,模型的单步能力是线性、平滑增长的(从 0.4 到 0.9),但它在复杂任务上的总成绩却呈现出了从 1% 到 59% 的跳跃式暴增。这就是组合逻辑带来的涌现错觉。

3. “度量指标的幻觉” (The Metric Mirage) 

虽然“涌现”听起来很酷,但我们要脚踏实地。斯坦福大学在近年来发表了非常重要的研究(如 Are Emergent Abilities of Large Language Models a Mirage?),给“涌现”泼了一盆冷水。

研究指出,涌现能力很可能是因为**人类选择了非黑即白的评测指标(Non-linear Metrics)**造成的。

  • 比如在一道数学题中,模型的最终输出是 15,但标准答案是 16

  • 如果使用 精确匹配 (Exact Match) 指标,差一点也是全错,得分为 0。直到模型参数大到能完全算对,得分才会突然变成 1。这看起来就是一条平躺的线突然呈“L”型垂直上升(涌现)。

  • 但是,如果我们深入模型底层,查看它生成正确答案的 Token 概率 (连续指标,如 Brier Score 或 Cross-Entropy),会发现哪怕是小模型,它对正确答案 16 的预测概率也在随着参数量平滑、稳定地增长

换句话说,模型能力的增长一直都是连续的、渐进的;所谓的“突然涌现”,很大程度上是因为我们的考试规则太苛刻,掩盖了小模型的进步过程。

4. 训练数据质量的“暗物质” (Data Quality and Mixture)

Scaling Law(缩放定律)不仅关乎参数量,更关乎数据。在模型扩展的过程中,研究人员往往会加入更高质量的数据(比如大量的代码和数学公式)。 代码数据具有极其严谨的逻辑闭环,数学数据包含强烈的因果关系。当模型被迫在海量代码中预测下一个字符时,它实际上是在学习代码背后的抽象逻辑树(AST)。这种在高质量数据中训练出来的逻辑链路,一旦跨领域迁移到自然语言中,就会表现为“模型突然变聪明了”。

总结来说: 涌现能力并非玄学,它是模型底层连续的微小进步,结合了多步概率的乘性放大,最后在苛刻的非线性评测指标下,呈现给人类的一种“视觉暴击”。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐