Appearance
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
- 1.Prefix Decoder系
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 折中;
- 缺点:训练效率低
- 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 的长依赖,这些模式在信息论意义上是稀有事件。
- 模型必须同时具备:
- 足够大的参数量去表示模式;
- 足够长的上下文窗口接收信息;
- 足够多的训练样本覆盖模式。
- 当三者满足时,能力会像“开关”一样突然被激活。
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)的优缺点
优点
强大的生成能力
- 能生成高质量、连贯、上下文相关的文本。
- 支持多种自然语言任务,如对话、翻译、摘要、问答、文本创作等。
Zero-shot / Few-shot 学习能力
- 在没有或极少标注数据的情况下,也能完成新的任务。
- 能通过 prompt 灵活引导模型行为。
知识覆盖广
- 在大规模语料上预训练,包含丰富语言和常识知识。
- 可回答各种领域的基础问题。
通用性强
- 一个模型可以适应多种下游任务,无需为每个任务训练单独模型。
缺点
计算资源消耗大
- 训练需要海量 GPU / TPU 资源,推理时也占用大量内存。
容易产生“幻觉”
- 模型有时会生成事实错误或不符合逻辑的内容。
缺乏长期记忆与常识更新
- 预训练知识截止于训练语料时间,无法实时更新。
安全与偏见问题
- 模型可能输出有偏见或不当内容,需要额外的对齐和过滤。
工程复杂度高
- 部署、微调、量化、推理优化都比较复杂。
训练集面
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(强化学习)数据格式
- 流程:
- SFT 模型生成候选回答
- RM 给回答打分
- 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
- 金融:财经新闻、研报、金融论坛
- 法律:法律文本、判例、法规文档
- 原则:
- 权威可信
- 覆盖充分,代表领域
- 清洗噪声、保证格式规范
8. 如何选取和构建微调数据
- 明确任务目标(对话、摘要、问答、翻译、代码生成)
- 收集高质量示例(真实用户数据、人工撰写、开源数据)
- 规范数据格式:
- SFT:instruction + input + output
- RM:偏好对或打分对
- 数据清洗(去重、过滤低质文本、统一编码、处理敏感信息)
- 数据增强(paraphrase、重写指令、语义扩展)
- 分配训练/验证集,保证验证集可真实评估微调效果
总结
- SFT:让模型学“标准回答”
- RM:让模型学“人类偏好”
- PPO:用强化学习优化生成行为
- 数据来源:开源 + 自采集 + 领域语料
- 微调量:小模型几千条,大模型几十万条,LoRA/Prefix-tuning 可降低需求
- 构建原则:高质量、清洗规范、任务导向、多样性