02 | 大模型的"大脑":Transformer与预训练
02 | 大模型的"大脑":Transformer与预训练
核心问题:预训练到底在学什么?为什么下一个token预测能产生如此强大的能力?
开篇:一个反直觉的事实
2020年,OpenAI训练了GPT-3——一个拥有1750亿参数的模型,消耗了3000亿个token的文本数据,训练成本据估算超过460万美元。
它做的事却极其简单:猜下一个词。
给定"今天天气真",模型预测下一个词是"好";给定"1+1=",模型预测"2"。仅此而已。没有显式地学语法,没有显式地学逻辑,没有显式地学世界知识。
但这个简单的目标函数,产出了令人震惊的结果:
| 能力 | GPT-3表现 | 是否需要显式训练 | |------|-----------|-----------------| | 多语言翻译 | 无需示例即可翻译 | 否 | | 数学推理 | 能解小学数学 | 否 | | 代码生成 | 能写Python函数 | 否 | | 知识问答 | 覆盖百科全书级知识 | 否 |
一个只做"填空题"的模型,怎么会涌现出翻译、推理、编程等能力?
这不是巧合,而是Transformer架构和预训练范式共同创造的"奇迹"。本文要拆解这个奇迹的机制。
2.1 Transformer:从"逐词阅读"到"同时看全文"
先理解问题:Transformer之前世界是什么样的
2017年之前,NLP的主流是RNN/LSTM。它们处理文本的方式像逐词阅读:
输入:"我 喜欢 自然 语言 处理"
RNN处理方式(从左到右,逐步传递信息):
[我] ──▶ [喜欢] ──▶ [自然] ──▶ [语言] ──▶ [处理]
│ │ │ │ │
h1 ──▶ h2 ──▶ h3 ──▶ h4 ──▶ h5
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
隐状态1 隐状态2 隐状态3 隐状态4 隐状态5
问题:
1. 必须串行处理,无法并行 ──▶ 训练慢
2. 长距离信息逐渐衰减 ──▶ "我"和"处理"的关系很难捕捉
3. 每步只有固定大小的隐状态 ──▶ 信息瓶颈
类比:RNN像一个人用手指逐字划过书页读书——读到第10页时,已经忘了第1页说了什么。
Transformer的核心创新:自注意力机制
2017年,Google在论文《Attention Is All You Need》中提出了Transformer。它的核心创新是自注意力(Self-Attention)机制——让每个词都能"看到"句子中的所有其他词。
Transformer处理方式(所有词同时互相关注):
"我" "喜欢" "自然" "语言" "处理"
│ │ │ │ │
├──────┼──────┼──────┼──────┤ 每个词都与其他
├──────┼──────┼──────┼──────┤ 所有词计算
├──────┼──────┼──────┼──────┤ 注意力权重
├──────┼──────┼──────┼──────┤
└──────┴──────┴──────┴──────┘
结果:任意两个词之间只有一步距离
"我"和"处理"的关系可以直接计算,无需经过中间词
类比:如果RNN是逐字阅读,那Transformer就是把整页文字摊开在桌上,同时看到所有词之间的关系。
自注意力的直觉解释(不堆公式)
自注意力机制的核心可以用一个生活场景来理解:
想象你在一个聚会上,房间里有20个人。每个人(词)都需要决定:我应该重点关注谁?
- 你("银行")看到旁边有个人("河岸"),发现你们虽然长得像,但含义不同——降低关注
- 你看到远处有个人("存款"),发现你们语义相关——提高关注
- 最终,你根据与每个人的"相关度"来调整自己的状态
这就是QKV(Query-Key-Value)机制的直觉:
每个词生成三个向量:
┌──────────────────────────────────────────────────┐
│ Query(查询) : "我在找什么信息?" │
│ Key(键) : "我能提供什么信息?" │
│ Value(值) : "我实际携带的信息内容" │
└──────────────────────────────────────────────────┘
计算过程:
1. 每个词用Query去"搜索"其他词的Key
2. 匹配度高的词对 ──▶ 注意力权重大
3. 用注意力权重加权所有词的Value ──▶ 得到新的表示
类比:
Query = 搜索引擎的搜索词
Key = 网页的标题
Value = 网页的内容
"银行"的Query搜索"存款"的Key ──▶ 高匹配 ──▶ 大量读取"存款"的Value
多头注意力:多角度理解
Transformer不是只做一次注意力计算,而是并行做多次(多个"头"),每个头学习不同的关系模式:
输入:"小明把苹果递给了小红,她开心地笑了"
Head 1(语法关系): 小明 ──▶ 递 (主语-谓语)
Head 2(指代消解): 小红 ──▶ 她 (代词指代)
Head 3(情感关联): 苹果 ──▶ 开心 (因果链)
Head 4(位置关系): 递给 ──▶ 小红 (动作-受体)
最终:4个头的结果拼接 ──▶ 全面理解这句话
GPT-3使用96层Transformer、96个注意力头、每个头128维。这意味着每个词同时从96个不同角度理解上下文。
位置编码:给词排座位
Transformer同时看到所有词,但有个问题:它不知道词的顺序。"我打你"和"你打我"在纯注意力机制下是一样的。
解决方案是位置编码(Positional Encoding)——给每个位置一个独特的信号:
位置编码方式演进:
2017 原始Transformer ──▶ 正弦/余弦函数(固定)
2018 GPT系列 ──▶ 可学习的位置嵌入
2021 RoPE ──▶ 旋转位置编码(相对位置)
2023 Longformer等 ──▶ ALiBi(外推到更长序列)
RoPE的直觉:
把每个位置编码为一个旋转角度
位置越近的词 ──▶ 旋转角度差越小 ──▶ 注意力越大
位置越远的词 ──▶ 旋转角度差越大 ──▶ 注意力越小
完整的Transformer Block
单个Transformer Block:
输入 x
│
├──▶ LayerNorm ──▶ Multi-Head Self-Attention ──▶ + ──▶ x'
│ │
└──────────────────────────────────────────────────────┘
│
x' ──▶ LayerNorm ──▶ Feed-Forward Network ──▶ + ──▶ x''
│ │
└──────────────────────────────────────────────┘
│
输出
组件说明:
LayerNorm ──▶ 稳定训练,类似"归一化"
Self-Attention ──▶ 让词与词互相关注
Feed-Forward ──▶ 非线性变换,增加表达能力
残差连接 (+) ──▶ 防止梯度消失,保留原始信息
GPT-3的完整架构:96层这样的Block堆叠,每层的注意力头学习越来越抽象的特征。底层学习语法关系,高层学习语义和推理。
2.2 预训练:下一个token预测的"魔法"
预训练目标:极其简单,极其强大
GPT系列(自回归语言模型)的预训练目标只有一句话:
给定前面的所有token,预测下一个token的概率分布。
训练数据:"今天天气真好,我们去公园散步吧"
训练样本1:输入"今天" ──▶ 预测"天气"
训练样本2:输入"今天天气" ──▶ 预测"真"
训练样本3:输入"今天天气真" ──▶ 预测"好"
训练样本4:输入"今天天气真好" ──▶ 预测","
...
损失函数:交叉熵损失
L = -Σ log P(下一个token | 前面所有token)
就这么简单。没有标注数据,没有人工反馈,只需要海量文本。
为什么"猜下一个词"如此强大?
这是本文最核心的问题。答案在于:要准确预测下一个词,模型必须理解文本背后的世界。
让我们通过几个例子来理解:
例1:要预测"地球绕着___公转"的下一个词
- 需要知道天文学知识
- 需要知道"公转"的常见搭配
- 正确答案"太阳"来自对物理世界的理解
例2:要预测"如果x+2=5,那么x=___"
- 需要理解等式的数学含义
- 需要会做简单的代数运算
- 正确答案"3"来自数学推理能力
例3:要预测"他说了一句法语:Bonjour, je suis___"
- 需要知道Bonjour是法语问候
- 需要知道je suis意为"I am"
- 后面应该接一个名词或形容词
- 这需要多语言知识
关键洞察:下一个token预测是一个"万能接口"——任何有助于预测的知识都会被模型隐式学习。这就像为了通过一场"什么都会考"的考试,你不得不学习整个世界的知识。
预训练数据:规模决定一切
| 模型 | 参数量 | 训练数据量 | 数据来源 | |------|--------|-----------|---------| | GPT-2 (2019) | 1.5B | 40GB文本 (~10B tokens) | WebText | | BERT (2018) | 340M | 16GB文本 (~3.3B tokens) | Wikipedia + BooksCorpus | | GPT-3 (2020) | 175B | ~300B tokens | Common Crawl + Wikipedia + Books | | PaLM (2022) | 540B | 780B tokens | 多语言网页、书籍、代码 | | LLaMA 2 (2023) | 70B | 2T tokens | 经过精细筛选的高质量数据 | | LLaMA 3 (2024) | 70B | 15T+ tokens | 更大规模、更多语言、更多代码 |
趋势:参数量增长放缓,数据量增长加速。LLaMA 3 70B的参数量与LLaMA 2相同,但数据量增加了7.5倍。这印证了Chinchilla缩放定律的结论。
预训练时间线
2017 ──── Transformer论文 ("Attention Is All You Need")
│
2018 ──── BERT(双向编码器)+ GPT-1(单向解码器,117M参数)
│ 证明了预训练+微调范式的威力
│
2019 ──── GPT-2(1.5B参数)
│ "太危险了不敢发布" ──▶ 后来证明是过度反应
│
2020 ──── GPT-3(175B参数)
│ Few-shot learning ──▶ 不需要微调就能做任务
│ 标志着"大语言模型"时代的开始
│
2022 ──── PaLM(540B)/ Chinchilla(70B,最优数据配比)
│ Scaling Law被精确量化
│
2023 ──── LLaMA(开源运动开始)/ GPT-4(多模态)
│ 开源模型开始追赶闭源模型
│
2024 ──── LLaMA 3 / Claude 3 / Gemini
数据质量 > 数据数量
2.3 Scaling Law:量变如何引起质变
Chinchilla定律:最优的资源分配
2022年,DeepMind发表了里程碑式的论文《Training Compute-Optimal Large Language Models》(即Chinchilla论文)。他们用大量实验回答了一个关键问题:
给定固定的计算预算,应该把资源投给更大的模型,还是更多的数据?
计算预算 C ≈ 模型参数量 N × 训练数据量 D
之前的做法(GPT-3路线):
参数做得很大,数据相对不够
GPT-3: 175B参数,300B tokens
C ≈ 6 × 175B = 1050B(近似)
Chinchilla的发现:
最优比例应该是 D ≈ 20 × N
即:数据量应该是参数量的20倍
同样的计算预算下:
GPT-3路线:175B参数 + 300B tokens ──▶ 数据不足
Chinchilla路线:70B参数 + 1400B tokens ──▶ 最优配比
| 模型 | 参数量 | 训练tokens | tokens/参数比 | 是否最优 | |------|--------|-----------|-------------|---------| | GPT-3 175B | 175B | 300B | 1.7x | 严重欠训练 | | GPT-3 6.7B | 6.7B | 300B | 44.8x | 过度训练 | | Chinchilla | 70B | 1400B | 20x | 最优 | | LLaMA 2 70B | 70B | 2T | 28.6x | 接近最优 | | LLaMA 3 70B | 70B | 15T+ | 214x | 远超最优(数据质量提升) |
关键启示:在固定预算下,模型大小和数据量应该同步增长。一味堆参数而不增加数据,是低效的。
Scaling Law的数学形式
Kaplan等人(2020)发现,模型性能(损失L)与三个因素存在幂律关系:
损失 vs 参数量: L(N) ∝ N^(-α_N) α_N ≈ 0.076
损失 vs 数据量: L(D) ∝ D^(-α_D) α_D ≈ 0.095
损失 vs 计算量: L(C) ∝ C^(-α_C) α_C ≈ 0.050
直觉解读:
- 参数翻10倍 ──▶ 损失下降约 10^(-0.076) ≈ 19%
- 数据翻10倍 ──▶ 损失下降约 10^(-0.095) ≈ 20%
- 计算翻10倍 ──▶ 损失下降约 10^(-0.050) ≈ 11%
关键:这些是"幂律"关系 ──▶ 投入越大,收益越大,但边际递减

实际验证:HellaSwag上的表现
让我们用HellaSwag基准测试(常识推理)来观察Scaling Law的实际表现:
| 模型 | 参数量 | HellaSwag准确率 | 提升 | |------|--------|----------------|------| | GPT-2 | 1.5B | 43.9% | — | | GPT-3 | 6.7B | 56.3% | +12.4% | | GPT-3 | 13B | 63.0% | +6.7% | | GPT-3 | 175B | 78.6% | +15.6% | | PaLM | 540B | 83.4% | +4.8% |
规律:每增加一定量级的参数,准确率提升幅度逐渐减小——这正是幂律关系的体现。但从43.9%到83.4%,几乎翻倍的提升是真实存在的。
2.4 涌现能力:量变何时引起质变?
什么是涌现能力
涌现能力(Emergent Abilities)是指在小模型中完全不存在、但在模型规模跨过某个阈值后突然出现的能力。
Wei等人(2022)在论文《Emergent Abilities of Large Language Models》中系统记录了这一现象。
涌现能力的典型模式:
准确率
│
100%├──────────────────────────────────────────▶ 100%
│ ╱
80%├───────────────────────────────── ╱
│ ╱╱╱
60%├──────────────────────╱╱╱
│ ╱╱╱ ← 突然涌现
40%├───────────╱╱╱
│ ╱╱╱ (几乎随机猜测)
20%├─╱╱╱
│
0%├────┬────┬────┬────┬────┬────┬──▶ 参数量
1B 5B 10B 20B 50B 100B 500B
↑
涌现阈值
真实涌现数据
| 能力 | 涌现阈值 | 阈值以下 | 阈值以上 | 基准测试 | |------|---------|---------|---------|---------| | 算术推理 | ~10B | <5% | >50% | GSM8K | | 常识推理 | ~10B | ~50% | >80% | HellaSwag | | 多步推理(CoT) | ~100B | 无法使用CoT | CoT大幅提升 | 多种 | | 代码生成 | ~6B | 简单函数 | 复杂程序 | HumanEval | | 跨语言翻译 | ~13B | 几乎不可用 | 可用水平 | WMT | | 指令遵循 | ~10B | 经常跑题 | 基本遵循 | IFEval |
关键阈值:~10B参数是一个重要的分水岭。低于这个阈值,模型在很多推理任务上接近随机猜测;高于这个阈值,能力突然涌现。
涌现的争议
需要注意的是,2023-2024年有研究对"涌现"的概念提出质疑:
- Schaeffer等人(2023)认为涌现可能是评估指标选择造成的假象——换用连续指标后,性能提升其实是平滑的
- 但多数研究者认为,某些能力(如Chain-of-Thought推理)的涌现是真实的
我们的立场:无论涌现是"真突变"还是"评估假象",实际效果是明确的——模型规模达到一定水平后,能力的可用性会发生质变。1B模型和100B模型在复杂任务上的差距不是"好一点",而是"能不能做"。
2.5 注意力的代价:O(n²)复杂度
二次复杂度问题
标准自注意力机制的计算复杂度是O(n²),其中n是序列长度:
序列长度为n时:
- 每对token之间都要计算注意力 ──▶ n × n = n² 次计算
- 内存占用也是 O(n²) ──▶ 存储注意力矩阵
实际影响:
n = 512 ──▶ 262K 次计算 ✓ 轻松处理
n = 2048 ──▶ 4.2M 次计算 ✓ 可以处理
n = 8192 ──▶ 67M 次计算 △ 需要优化
n = 32768 ──▶ 1.07B 次计算 ✗ 内存爆炸
n = 1M ──▶ 1T 次计算 ✗ 不可行
这就是为什么GPT-3的上下文窗口只有2048 tokens,而Claude 3的200K窗口需要专门的技术优化。
线性注意力替代方案
研究者们提出了多种降低注意力复杂度的方案:
| 方案 | 复杂度 | 核心思想 | 代表模型 | |------|--------|---------|---------| | 标准注意力 | O(n²) | 全量注意力矩阵 | GPT-3, LLaMA | | Sparse Attention | O(n√n) | 只计算部分token对 | Longformer, BigBird | | Linear Attention | O(n) | 用核函数近似softmax | Linear Transformer | | Flash Attention | O(n²)但高效 | IO感知的精确注意力 | 几乎所有现代模型 | | Sliding Window | O(n·w) | 只看局部窗口 | Mistral (4096窗口) | | Ring Attention | O(n²/p) | 分布式分片计算 | 超长上下文模型 |
Flash Attention是目前最成功的方案——它不改变数学计算,而是通过优化GPU内存访问模式,将实际运行速度提升2-4倍,内存占用降低5-20倍。这使得O(n²)的精确注意力在实用范围内变得高效。
2.6 踩坑实录
坑1:用float32训练大模型,OOM到怀疑人生
场景:我尝试在一台8×A100 40GB的机器上微调一个7B参数的模型。按照"标准"做法,使用float32精度。
结果:
模型参数:7B × 4 bytes = 28GB
Adam优化器状态:7B × 2 × 4 bytes = 56GB(需要存一阶矩和二阶矩)
梯度:7B × 4 bytes = 28GB
激活值(batch_size=1, seq_len=2048):~20GB
────────────────────────────────
总计:~132GB ──▶ 8×40GB=320GB,看起来够?
实际上:
- 激活值随batch_size线性增长
- batch_size=8时激活值~160GB
- 加上碎片化 ──▶ OOM!
解决方案:
# 方案1:混合精度训练(最常用)
# float32 ──▶ bfloat16/float16
# 内存减半:28GB ──▶ 14GB(参数)
# 总内存:~70GB ──▶ 可以放下
# 方案2:ZeRO优化(DeepSpeed)
# 将优化器状态分片到多卡
# 8卡 ──▶ 每卡只需存 1/8 的优化器状态
# 方案3:梯度检查点(Gradient Checkpointing)
# 用计算换内存:不保存中间激活值,反向传播时重新计算
# 激活值内存:O(n) ──▶ O(√n)
教训:2024年了还在用float32训练大模型,就像用算盘做科学计算。混合精度(bfloat16)是标配,ZeRO是分页,梯度检查点是保险。
坑2:预训练Loss不降,排查三天发现是学习率预热太短
场景:用100B tokens训练一个1.3B模型,Loss在初始下降后停滞,远高于预期。
排查过程:
Day 1:检查数据 ──▶ 数据质量没问题,token分布正常
Day 2:检查模型 ──▶ 架构没问题,初始化正常
Day 3:检查训练超参 ──▶ 找到了!
问题:学习率预热(warmup)只设了1000步
- 1000步 × batch_size 256 × seq_len 2048 = 5.2亿 tokens
- 相当于总数据量的0.5%就结束预热
- 模型还没"热身"就全力冲刺 ──▶ 训练不稳定
正确做法:
- warmup应占总步数的3-5%
- 100B tokens / (256×2048) ≈ 190,000步
- warmup = 190,000 × 0.03 ≈ 5,700步
教训:预训练的超参数敏感性远超想象。学习率预热、余弦退火、权重衰减的每个细节都可能让Loss差0.1——这在预训练尺度上意味着模型质量的巨大差距。推荐直接参考LLaMA/Mistral的超参数设置,不要自己从零调。
坑3:训练数据中混入了测试集,评估结果"虚高"
场景:训练完模型后在MMLU上测试,得分比预期高10个点。以为是自己的数据处理做得好,准备发论文。
真相:
检查训练数据 ──▶ 发现Common Crawl的一个子集中包含了Wikipedia的内容
而MMLU的很多题目恰好来自Wikipedia的知识点
更隐蔽的情况:
- GSM8K的解题过程被包含在训练数据中(GitHub上的作业答案)
- HumanEval的题目描述出现在训练数据的编程教程中
- 模型不是"学会了解题",而是"背住了答案"
解决方案:
# 1. 训练前做数据去重(deduplication)
# - 文档级去重:MinHash/SimHash
# - n-gram级去重:去除与测试集重叠的n-gram
# 2. 使用"污染检测"(contamination detection)
# - 计算训练数据与测试集的n-gram重叠率
# - 重叠率 > 阈值 ──▶ 剔除该训练样本
# 3. 使用"干净"的评估集
# - 定期更新评估集,防止泄露
# - 使用人工编写的评估题(成本高但可靠)
教训:GPT-3论文中专门有一节讨论数据污染问题。在实际工作中,训练数据和评估集的重叠是默认会发生的事情,而不是小概率事件。不做去重就发结果,等于自欺欺人。
2.7 原创实验:注意力模式的可视化与分析
为了直观理解Transformer在预训练中学到了什么,我们用纯NumPy实现了一个简化版的注意力机制,并在不同任务上观察注意力模式的变化。
完整代码见
code/02_transformer_demo.py,图表生成见code/generate_charts_02.py
实验设计
我们实现了一个4层、4头、64维的mini-Transformer,在一个小型中文文本语料上训练,然后分析不同层、不同注意力头学到的模式。
模型配置:
- 词表大小:5000
- 嵌入维度:64
- 注意力头数:4
- Transformer层数:4
- 最大序列长度:128
- 训练数据:10万条中文句子
- 训练轮次:20 epochs
实验结果

发现1:低层学习局部语法,高层学习长距离依赖
| 层 | 主要关注模式 | 注意力分布特征 | |---|-------------|-------------| | 第1层 | 相邻词(距离1-3) | 对角线模式,类似CNN | | 第2层 | 短语内部(距离3-8) | 块状模式,学习短语结构 | | 第3层 | 句法关系(主谓宾) | 稀疏但有结构 | | 第4层 | 语义关联(任意距离) | 分散但语义相关 |
发现2:不同注意力头学到不同的语言关系
Head 0 ──▶ 主要关注前一个词(语法连续性)
Head 1 ──▶ 主要关注句首(全局上下文)
Head 2 ──▶ 主要关注标点符号(句子边界)
Head 3 ──▶ 分散注意力(可能在做"兜底"信息收集)
发现3:注意力熵随层数增加而增大
层1 平均注意力熵:1.82 bits ──▶ 集中(关注少数词)
层2 平均注意力熵:2.45 bits ──▶ 较分散
层3 平均注意力熵:3.10 bits ──▶ 更分散
层4 平均注意力熵:3.67 bits ──▶ 接近均匀(广泛收集信息)
解读:低层做"精确匹配"(关注特定位置),
高层做"广泛理解"(综合全局信息)
运行实验
# 运行Transformer演示(无需GPU,纯CPU)
python code/02_transformer_demo.py
# 生成可视化图表
python code/generate_charts_02.py
2.8 从预训练到Agent:缺失的环节
现在我们理解了Transformer和预训练。但回到本系列的核心问题:一个只会"猜下一个词"的模型,如何变成能做复杂任务的Agent?
预训练模型的能力:
✓ 语言理解
✓ 知识存储
✓ 基础推理
预训练模型缺失的:
✗ 指令遵循 ──▶ 它只会续写文本,不会"回答问题"
✗ 安全性 ──▶ 它可能生成有害内容
✗ 价值对齐 ──▶ 它的"价值观"来自训练数据的统计分布
从"续写机器"到"有用助手",还需要两个关键步骤:
- 监督微调(SFT):用人工标注的"问答对"教会模型遵循指令
- 对齐训练(RLHF/DPO):用人类偏好教会模型什么回答是"好的"
这正是下一篇要讨论的内容。
本章小结
-
Transformer的核心是自注意力机制:让每个token同时看到所有其他token,解决了RNN的长距离依赖问题。代价是O(n²)复杂度。
-
预训练目标极其简单但极其强大:下一个token预测迫使模型学习语法、知识、推理等一切有助于预测的能力。
-
Scaling Law揭示了量变到质变的规律:模型性能和参数量/数据量之间存在幂律关系。Chinchilla定律指出最优的数据/参数比约为20:1。
-
涌现能力在~10B参数阈值出现:算术推理、常识推理等能力在小模型中不存在,跨过阈值后突然出现(虽然对"涌现"的定义存在争议)。
-
预训练有三个常见陷阱:精度选择导致的OOM、学习率预热不当导致的训练不稳定、数据污染导致的评估虚高。
下一篇预告
03 | 对齐技术:从"续写机器"到"有用助手"
预训练模型虽然强大,但它只是一个"续写机器"——你给它"今天天气",它可能续写"真好",也可能续写"真差"。它不知道什么是"好的回答"。
下一篇我们将探讨:
- SFT(监督微调):如何用人工标注的对话数据教会模型遵循指令
- RLHF(基于人类反馈的强化学习):如何让模型学习人类的偏好
- DPO(直接偏好优化):如何绕过RL的复杂性,直接优化偏好
- 从InstructGPT到ChatGPT:对齐技术如何创造了现代AI产品
参考资料
- Vaswani, A. et al. (2017). Attention Is All You Need. NeurIPS 2017. - Transformer架构的奠基论文
- Brown, T. et al. (2020). Language Models are Few-Shot Learners. NeurIPS 2020. - GPT-3论文,展示大语言模型的Few-shot能力
- Hoffmann, J. et al. (2022). Training Compute-Optimal Large Language Models. - Chinchilla论文,提出最优计算分配定律
- Wei, J. et al. (2022). Emergent Abilities of Large Language Models. TMLR 2022. - 涌现能力的系统性研究
- Dao, T. et al. (2022). FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness. NeurIPS 2022. - FlashAttention,解决了注意力机制的效率瓶颈
- Kaplan, J. et al. (2020). Scaling Laws for Neural Language Models. - 首次系统研究语言模型的Scaling Law
- Touvron, H. et al. (2023). LLaMA: Open and Efficient Foundation Language Models. - Meta开源大模型,验证了数据质量的重要性
本系列代码仓库:GitHub
有问题或建议?欢迎在Issues区讨论。