Skip to content

LLMs面试

基础面

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

  • 目前主流的开源模型体系分三种:
    • 1.Prefix Decoder系
      • 介绍:输入部分采用双向注意力机制(类似编码器),输出部分采用单向注意力机制(类似解码器),即模型在编码输入时能全局感知上下文,但生成时仍是自回归。
      • 代表模型:ChatGLM、ChatGLM2、U-PaLM
    • 2.Causal Decoder 系
      • 介绍:完全采用从左到右的单向注意力机制,模型基于已生成的历史 token 自回归生成下一个 token,典型的自回归语言模型结构。
      • 代表模型:LLaMA 7B、LLaMA 衍生物(如 Vicuna、Orca 等)
    • 3.Encoder-Decoder 系
      • 介绍:编码器部分采用双向注意力,能够对输入序列进行全局理解;解码器部分采用单向注意力,自回归生成输出序列。
      • 代表模型:T5、Flan-T5、BART

Prefix Decoder、Causal Decoder和Encoder-Decoder区别是什么?

  • 区别在于attention mask不同:
    • Encoder-Decoder:
      • 在输入上采用双向注意力,对问题的编码理解更充分
      • 适用任务:在偏理解的 NLP 任务上效果好
      • 缺点:在长文本生成任务上效果差,训练效率低;
    • Causal Decoder:
      • 自回归语言模型,预训练和下游应用是完全一致的,严格遵守只有后面的token才能看到前面的token的规则
      • 适用任务:文本生成任务效果好
      • 优点:训练效率高,zero-shot 能力更强,具有涌现能力
    • Prefix Decoder:
      • 特点:prefix部分的token互相能看到,Causal Decoder 和 Encoder-Decoder 折中;
      • 缺点:训练效率低

大模型LLM的 训练目标 是什么?

1. 核心数学目标

大语言模型的训练目标本质上是 预测下一个 token(或填补缺失 token),通过最小化交叉熵(Cross-Entropy Loss)学习语言的概率分布。

目标函数: [ \mathcal{L} = - \sum_{t=1}^{T} \log P_\theta (x_t \mid x_{<t}) ]

  • (x_t):第 t 个 token
  • (x_{<t}):它前面的所有 token(因果掩码保证不能看到未来)
  • (\theta):模型参数

2. 不同训练阶段的目标

阶段目标说明
预训练(Pretraining)学习通用语言规律使用大规模无监督(或弱监督)语料,目标是预测下一个 token(Causal LM)或填空(Masked LM)
有监督微调(SFT)对齐任务需求使用人工标注的问答/对话数据,让模型输出更贴合人类期望
人类反馈强化学习(RLHF)提升交互体验通过奖励模型(RM)优化输出质量、安全性、价值观对齐
其他对齐方法(DPO、KTO 等)无需在线 RLHF 训练直接使用偏好数据优化模型对齐能力

3. 不同架构的训练目标差异

  • Causal Decoder 模型(GPT、LLaMA)

    • 目标:预测下一个 token(Next Token Prediction)
  • Encoder-Decoder 模型(T5、BART)

    • 目标:根据输入序列生成输出序列
  • Prefix Decoder 模型(ChatGLM)

    • 目标:前缀部分双向可见,生成部分自回归预测

4. 总结

LLM 的训练目标就是:在给定部分上下文时,让模型最大概率地预测下一个 token(或缺失的 token),通过最小化交叉熵损失实现。

涌现能力的原因

“涌现能力”(Emergent Abilities)指的是:当大语言模型(LLM)的规模达到一定程度时,会突然出现一些在小模型中完全没有的能力,而且这种能力的提升是非线性跃迁,而不是随规模平滑增长。

1. 语言建模的本质原因

  • LLM 本质是在学习语言的条件概率分布 ( P(\text{token} \mid \text{context}) )。
  • 小模型的表达能力不足以捕捉多步推理、复杂数学运算、跨段信息整合等模式。
  • 当模型的参数量、训练数据、上下文长度达到临界点,它就能编码这些复杂模式,于是能力突然出现。

2. 信息论 & 表示能力解释

  • 模型的有效容量 = 参数量 × 表达能力 × 训练数据覆盖度。
  • 某些任务(如算术、多语言翻译、逻辑推理)需要建模跨 token 的长依赖,这些模式在信息论意义上是稀有事件。
  • 模型必须同时具备:
    1. 足够大的参数量去表示模式;
    2. 足够长的上下文窗口接收信息;
    3. 足够多的训练样本覆盖模式。
  • 当三者满足时,能力会像“开关”一样突然被激活。

3. 实验现象

  • 研究(如 OpenAI、Google)发现:
    • 在逻辑推理、数学、代码生成等任务上,小模型表现接近随机猜测。
    • 当模型规模超过某个阈值后,准确率会突然大幅提升。
  • 性能曲线呈现S 型,是涌现能力的典型标志。

总结

涌现能力的出现源于模型容量、数据覆盖度和任务复杂度的共同作用,达到临界点时会触发能力的非线性爆发。

为何现在的大模型大部分是 Decoder-only 结构?

1. Zero-shot 能力更强

  • Decoder-only 在没有任何微调数据的情况下,Zero-shot 表现最佳。
  • Encoder-Decoder 往往需要一定量的标注数据做 multitask fine-tuning 才能激发最佳性能。
  • 目前大模型训练主要基于大规模无标注语料的自监督学习,Zero-shot 性能更好的 Decoder-only 架构更能充分利用这些数据。

2. 生成任务适配性更好

  • 在生成任务中,引入 Encoder 的双向注意力并无实质性好处。
  • Encoder 双向注意力在理论上存在 低秩问题,可能削弱模型的表达能力。
  • Encoder-Decoder 在一些任务上表现更好,主要是因为它有更多参数(Encoder + Decoder),而不是架构本身对生成更优。

3. 参数与效率优势

  • 同等参数量下,Decoder-only 将全部参数集中在一个解码器中,提升了生成性能性价比。
  • 推理和工程实现更简单,训练效率更高。
  • Encoder-Decoder 参数会被分到两部分,在相同推理成本下整体生成效果不如 Decoder-only。

总结

在当前大模型主要依赖大规模无标注语料预训练、且应用场景以生成任务为主的情况下,Decoder-only 在 Zero-shot 能力、生成性能、训练效率和参数利用率上都有明显优势,因此成为主流架构。

简单 介绍一下 大模型(LLMs)

  • 大模型:一般指1亿以上参数的模型,但是这个标准一直在升级,目前万亿参数以上的模型也有了。大语言模型(Large Language Model,LLM)是针对语言的大模型。

大模型(LLMs)后面跟的 175B、60B、540B等 指什么?

  • 这些一般指参数的个数,B是Billion/十亿的意思,175B是1750亿参数

大模型(LLMs)的优缺点

优点

  1. 强大的生成能力

    • 能生成高质量、连贯、上下文相关的文本。
    • 支持多种自然语言任务,如对话、翻译、摘要、问答、文本创作等。
  2. Zero-shot / Few-shot 学习能力

    • 在没有或极少标注数据的情况下,也能完成新的任务。
    • 能通过 prompt 灵活引导模型行为。
  3. 知识覆盖广

    • 在大规模语料上预训练,包含丰富语言和常识知识。
    • 可回答各种领域的基础问题。
  4. 通用性强

    • 一个模型可以适应多种下游任务,无需为每个任务训练单独模型。

缺点

  1. 计算资源消耗大

    • 训练需要海量 GPU / TPU 资源,推理时也占用大量内存。
  2. 容易产生“幻觉”

    • 模型有时会生成事实错误或不符合逻辑的内容。
  3. 缺乏长期记忆与常识更新

    • 预训练知识截止于训练语料时间,无法实时更新。
  4. 安全与偏见问题

    • 模型可能输出有偏见或不当内容,需要额外的对齐和过滤。
  5. 工程复杂度高

    • 部署、微调、量化、推理优化都比较复杂。

训练集面

1. SFT(Supervised Fine-Tuning,有监督微调)数据集格式

  • 典型格式:JSON 或 JSONL
json
{
  “instruction”: “将下面句子翻译为英文”,
  “input”: “你好,世界!”,
  “output”: “Hello, world!”
}
  • 字段说明:
    • instruction:任务指令或提示
    • input:可选,任务上下文或输入文本
    • output:模型期望生成的文本
  • 用途:让模型学习人类期望输出,提高任务对齐能力

2. RM(Reward Model,奖励模型)数据格式

  • 典型格式:成对示例 + 偏好标签
json
{
  “prompt”: “写一段介绍人工智能的短文”,
  “response_good”: “人工智能是一门模拟人类智能的技术……”,
  “response_bad”: “AI 就是计算机运行程序……”,
  “label”: 1
}
  • 说明:
    • response_good / response_bad:两个模型输出
    • label:人类偏好标注(1 表示 response_good 更优)
  • 用途:训练奖励模型,用于 PPO 强化学习阶段优化输出质量

3. PPO(强化学习)数据格式

  • 流程:
    1. SFT 模型生成候选回答
    2. RM 给回答打分
    3. PPO 更新模型权重,使高分回答概率增大
  • 数据示例:
json
{
  “prompt”: “写一段介绍人工智能的短文”,
  “generated_response”: “人工智能是一门模拟人类智能的技术……”,
  “reward_score”: 0.85
}

4. 数据集来源

  • SFT 数据集:Alpaca、Dolly、ShareGPT
  • RM 数据集:OpenAI WebGPT Comparisons、自采集模型输出对并人工标注偏好
  • 通用预训练数据:Wikipedia、BooksCorpus、CCNet、Pile 等

5. 微调需要的数据量

  • 取决于预训练数据和微调任务的数据分布是否一致,分布一致,100条就够,分布差异大就需要多些数 据,千条或者万条以上为佳。
  • 自己的任务复杂或者下游任务行业比较冷门,如药品名称识别任务,则需要较多监督数据。还有微调大 模型时,一遍是记不住的。100条的微调数据,epochs=20才能稳定拟合任务要求。

6. 有哪些大模型的训练集?

核心预训练数据集

  • RedPajama-Data-1T("红睡衣"开源计划)

    • 1万亿token规模
    • 压缩后3TB,解压后5TB存储
    • 包含七个子集,匹配LLaMA论文数据量
    • 提供完整的数据预处理脚本
  • RedPajama项目构成:

    • 高质量、大规模预训练数据集
    • 基于该数据集训练的基础模型
    • 指令调优数据集和安全可靠的微调模型

指令微调数据集

  • Alpaca-CoT - 思维链微调数据集

    • 包含alpaca等常用指令数据
    • 支持中英文数据
    • 专门用于CoT(Chain of Thought)训练
  • 数据特点:

    • 开源可获取
    • 经过系统化预处理
    • 覆盖预训练到微调的完整流程
    • 为复现和改进大模型提供数据基础

这些数据集为开源社区训练和研究大模型提供了重要的数据支撑。

7. 领域大模型预训练数据

  • 医疗:PubMed、ClinicalNotes、MIMIC-III
  • 金融:财经新闻、研报、金融论坛
  • 法律:法律文本、判例、法规文档
  • 原则:
    1. 权威可信
    2. 覆盖充分,代表领域
    3. 清洗噪声、保证格式规范

8. 如何选取和构建微调数据

  1. 明确任务目标(对话、摘要、问答、翻译、代码生成)
  2. 收集高质量示例(真实用户数据、人工撰写、开源数据)
  3. 规范数据格式:
    • SFT:instruction + input + output
    • RM:偏好对或打分对
  4. 数据清洗(去重、过滤低质文本、统一编码、处理敏感信息)
  5. 数据增强(paraphrase、重写指令、语义扩展)
  6. 分配训练/验证集,保证验证集可真实评估微调效果

总结

  • SFT:让模型学“标准回答”
  • RM:让模型学“人类偏好”
  • PPO:用强化学习优化生成行为
  • 数据来源:开源 + 自采集 + 领域语料
  • 微调量:小模型几千条,大模型几十万条,LoRA/Prefix-tuning 可降低需求
  • 构建原则:高质量、清洗规范、任务导向、多样性