【AI大模型】大模型预训练从零到一:深入理解大语言模型的训练之路

🚀 作者 :"大数据小禅@yopai"

🚀 专栏简介 :本专栏后续将持续更新大模型相关文章,从开发到微调到RAG、多Agent等,个V: 【yopa66】交流,持续分享前沿AI实战。

🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬

Transformer入门篇

如果你曾经好奇过ChatGPT、Claude这些AI是怎么"学会"和人类对话的,这篇文章会给你一个完整的答案。

写在前面

大语言模型(LLM)已经从实验室走进了千家万户。但很多人在使用这些工具时,可能从来没想过一个问题:这些模型到底是怎么训练出来的?

其实,训练一个大语言模型就像培养一个学生:先让他读完所有能找到的书**(预训练),再教他怎么好好回答问题 (监督微调),最后通过反馈让他变得更懂人心(强化学习)**。这篇文章就简单聊一下这个话题。

大模型的本质:一个超级"接龙游戏"

在深入训练流程之前,我们得先理解大模型到底在做什么。

很多人以为大模型是一个"搜索引擎",能从某个数据库里找答案。其实不是的。大模型本质上是一个生成模型 ,它做的事情特别简单------预测下一个字

想象一下古诗接龙:

复制代码
白日 → 依 → 山 → 尽

你给模型"白日",它根据学到的语言规律,判断下一个字最可能是"依",然后是"山",然后是"尽"...一个字一个字往外蹦,直到生成完整的句子。

这就是所谓的自回归预测 (Auto-regressive Prediction),GPT系列、Llama、Qwen、DeepSeek用的都是这套路子。

听起来简单对吧?但这个"接龙游戏"要玩得好,需要模型真正理解语言的规律。而要理解语言,就得读海量的文本------这就是预训练要干的事。

训练的三个阶段:从学生到专家

大模型的训练分为三个主要阶段,每个阶段解决不同的问题:

第一阶段:预训练(Pre-training)------海量阅读

预训练是整个训练过程中最**"烧钱"**的阶段。以GPT-3为例,它有1750亿个参数,用了超过1万张A100显卡训练了一个多月,光电费就是天文数字。

预训练的目标

预训练属于无监督学习(或者叫自监督学习),不需要人工标注答案。模型的任务就是:给定一段文本的前半部分,预测接下来的内容。

举个例子:

复制代码
输入:今天天气真
模型预测:不错 → , → 我 → 决定 → 出去 → 走走 → 。

通过这种方式,模型学会了:

  • 语言建模:掌握语言的统计规律(比如"今天天气"后面大概率接形容词)
  • 上下文理解:知道前面说了什么会影响后面的内容
  • 世界知识:从文本中吸收各种事实性知识
预训练数据从哪来?

训练数据的规模通常在万亿token级别(1 token ≈ 0.75个英文单词或0.5个中文字):

模型 数据规模 语言覆盖 主要来源
Llama 3 15万亿tokens 8种语言 Common Crawl、GitHub、Wikipedia、书籍
Qwen 2.5 18万亿tokens 29种语言 中文网页、百科、代码、多语言混合
DeepSeek 15万亿tokens 多语言 网页、代码库、数学/专业文献

这些数据来源五花八门:网页、书籍、论文、代码仓库、百科全书、新闻、论坛帖子...几乎涵盖了人类知识的方方面面。

数据清洗:垃圾进垃圾出

数据量大不代表质量高。互联网上充斥着广告、重复内容、乱码、低质量文本,直接拿来训练会把模型教坏。所以数据清洗是必不可少的步骤:

1. 低质过滤

可以用分类器自动识别低质量文本,也可以用启发式规则:

  • 过滤掉HTML标签、脚本代码
  • 删除广告和推广内容
  • 移除乱码和不可读文本
  • 剔除过短或过长的异常文本

2. 去重处理

重复内容会导致模型"偏科",对某些内容过度拟合。去重通常在三个层面进行:

复制代码
文档级去重:删除完全相同或高度相似的文档
句子级去重:移除重复出现的长句子
数据集级去重:确保训练集和验证集没有重叠

一个常用的技术是SimHash,它能快速判断两个文档是否相似。

3. 隐私脱敏

训练数据中可能包含电话号码、邮箱地址、身份证号等敏感信息。通过正则表达式匹配这些模式,替换成占位符:

复制代码
原始:我的电话是13812345678
处理后:我的电话是[PHONE]

预训练的技术细节

位置编码:让模型知道"谁在前谁在后"

Transformer模型本身不知道token的顺序。比如"猫追狗"和"狗追猫",如果没有位置信息,模型看到的是一样的。(transformer相关文章可以看我的历史文章)

RoPE(旋转位置编码) 是目前主流的解决方案。它把位置信息编码到注意力计算中,让模型天然知道每个token在句子中的位置。

不同模型还会做一些优化来支持更长的上下文:

  • Qwen:使用NTK-aware插值,支持32K上下文
  • DeepSeek:使用YaRN插值,支持128K上下文
  • Llama:三阶段渐进扩展到128K
多Token预测(MTP):一次预测多个字

传统方法一次只预测一个token。DeepSeek提出了多Token预测,让模型同时预测接下来的多个token。

MTP的核心思想是:在主模型之外,添加多个预测模块。每个模块的输入依赖前一个模块的输出,形成一个链式结构。

这样做的好处是:

  1. 模型必须学习更远的依赖关系
  2. 训练效率更高(一次前向传播可以计算多个损失)
  3. 推理时可以用于投机解码,加快生成速度

第二阶段:监督微调(SFT)------学会好好说话

预训练完成后,模型已经"知道"了很多东西,但它还不太会和人对话。你问它"什么是机器学习?",它可能会接着说"是一种...机器学习是一种...机器学习可以...",不断重复或者跑题。

监督微调的目的就是教模型怎么当一个好助手

训练数据格式

SFT使用的是人工标注的问答对

json 复制代码
{
  "question": "什么是机器学习?",
  "answer": "机器学习是人工智能的一个分支,它让计算机能够从数据中自动学习规律,而不需要被明确编程。简单来说,就像教一个孩子认识猫------你给他看很多猫的照片,他慢慢就学会了什么样的动物是猫。"
}

这些数据规模通常在百万条级别,比预训练数据小得多,但每条都经过精心设计。

数据来源

SFT数据主要有两个来源:

1. 人工标注

雇佣专业的标注员,给各种问题写高质量的回答。这种方式成本高,但质量有保证。

2. 数据合成

用已有的大模型生成回答,再让人类筛选和修改。这种方式可以快速扩大数据量。

一个著名的例子是Alpaca项目,斯坦福用GPT-3.5生成了52K条指令数据,成本只花了几百美元。

第三阶段:强化学习(RLHF)------变得更懂人心

即使经过SFT,模型的回答可能还是存在问题:有时候回答正确但表达啰嗦,有时候用词太学术化听不懂,有时候态度冷冰冰的...

这些问题很难用明确的规则描述,但人类一眼就能判断好坏。于是,人类反馈强化学习(RLHF) 应运而生。

RLHF的工作原理
  1. 生成多个回答:对于同一个问题,让模型生成多个不同的回答
  2. 人类排序:让人类标注员给这些回答排序,选出最好的和最差的
  3. 训练奖励模型:用这些排序数据训练一个"评委"模型,它能给任意回答打分
  4. 强化学习优化:用奖励模型的分数作为反馈,优化原始模型

举个具体的例子:

复制代码
问题:9.9和9.11哪个大?

回答A:9.11更大
回答B:9.9更大

人类反馈:回答B得100分,回答A得0分

模型学到:比较小数要先看整数部分,再依次比较小数各位
奖励模型的设计

奖励模型是RLHF的核心。训练数据的格式通常是:

复制代码
[问题, 答案1-得分, 答案2-得分, 答案3-得分, ...]

奖励模型学习预测人类的偏好,然后用这个预测来指导主模型的优化。

从RLHF到自我强化

DeepSeek在RLHF基础上更进一步,引入了深度推理思维链

传统方法对于"9.9和9.11哪个大"这种问题,模型可能直接给出答案。但DeepSeek要求模型像人类一样,先思考比较方法,再一步步分析:

复制代码
思考过程(Chain of Thought):
1. 首先回忆小数比较的方法
2. 小数比较应该先看整数部分
3. 两个数整数部分都是9,相等
4. 再比较小数部分,第一位分别是9和1
5. 9 > 1,所以9.9的十分位更大
6. 因此9.9 > 9.11

最终答案:9.9更大

这种方式让模型的推理过程透明化,也更容易发现和修正错误。

大模型的评估体系

训练完成后,怎么知道模型好不好?这就需要一套完善的评估体系。

评估的三种方式

1. 自动评测

自动评测效率高、可复现,适合快速迭代。常用指标包括:

困惑度(Perplexity)

衡量模型预测下一个词的不确定性。值越低,说明模型对语言规律掌握得越好。

计算方式简单来说就是:模型看到一段文本后,对下一个词的预测准不准。如果每次都猜对,困惑度就低;如果经常猜错,困惑度就高。

文本匹配指标

  • BLEU:主要用于机器翻译,看生成的译文和参考译文有多少词重合
  • ROUGE:主要用于文本摘要,看生成的摘要覆盖了多少原文要点

分类准确率

对于问答任务,直接看模型的回答对不对。比如选择题,答对了就是1分,答错了就是0分。

2. 主观评测

有些东西很难用数字衡量:回答流不流畅?语气友不友好?表达自不自然?这些需要人来判断。

主观评测通常让多个评审员独立打分,然后取平均。评估维度包括:

维度 评估内容
流畅性 语法是否正确,表达是否自然
相关性 回答是否切题,有没有答非所问
事实性 内容是否真实准确
安全性 有没有偏见、歧视或有害内容

现在也经常用GPT-4这样的强模型来当"评委",代替人工评分。虽然不如人工准确,但成本低很多。

3. 基准测试

基准测试通过标准化的数据集来横向对比不同模型。主流的基准包括:

测试集 评估能力 规模
MMLU 57个学科的知识广度 1.5万选择题
GSM8K 小学数学推理 8500道应用题
HumanEval 代码生成能力 164个编程任务
C-Eval 中文知识理解 1.3万选择题

代码能力评估

代码能力是大模型的一个重要应用场景。评估方式和普通文本有些不同。

Pass@K指标

这是代码评估最常用的指标。让模型生成K次代码,只要有一次能通过测试用例就算成功。

python 复制代码
# HumanEval示例任务
def has_close_elements(numbers: list, threshold: float) -> bool:
    """
    检查列表中是否有两个数的差小于阈值
    >>> has_close_elements([1.0, 2.0, 3.0], 0.5)
    False
    >>> has_close_elements([1.0, 2.8, 3.0, 4.0, 5.0, 2.0], 0.3)
    True
    """
    # 模型需要补全这个函数
主流代码测试集
  • HumanEval:164个手写的Python函数补全任务
  • MBPP:1000个入门级Python编程问题
  • FullStackBench:覆盖前端、后端、ML等11类场景,16种语言

数学能力评估

数学推理是检验模型逻辑能力的试金石。

评估维度
维度 内容 示例
基础计算 四则运算、解方程 计算 (2.5+41)×80%
逻辑推理 多步骤推导 小明有12个苹果,吃掉1/3,又买来5个,现有多少?
高阶数学 微积分、概率 计算∫x²dx从0到1
主流数学测试集
  • GSM8K:8500道小学数学题,需要2-8步推理
  • MATH:12500道竞赛级别数学题,含几何、数论等
  • MathEval:整合19个数据集,从K12到大学数学

语言理解评估

语言理解是大模型的基础能力,评估任务包括:

  • 分类任务:情感分析、意图识别
  • 问答任务:从文档中找答案、开放式问答
  • 推理任务:自然语言推理、因果推理

主流测试集:

类型 测试集 特点
通用理解 GLUE/SuperGLUE 英文NLU基准
中文专项 C-Eval/CMMLU 中文知识与文化
多语言 XTREME 40+语言跨语言迁移

综合评测榜单

如果想快速了解各个模型的综合实力,可以参考这些榜单:

SuperCLUE

国内权威的中文大模型评测基准,由清华、智谱等机构推动。评估维度包括数学推理、科学推理、代码生成、智能体能力等。

访问地址:cluebenchmarks.com/stac/superclue.html

OpenCompass

开源的大模型评测框架,支持自动化测评流程:配置→推理→评估→可视化。

核心特点:

  • 开源可复现
  • 支持分布式评测
  • 覆盖多种评测范式

写在末尾

大语言模型的训练是一个精心设计的过程:

  1. 预训练让模型阅读海量文本,学会语言规律和世界知识
  2. 监督微调教模型如何当一个好助手,按照人类期望的方式回答问题
  3. 强化学习通过人类反馈,让模型变得更懂人心

评估方面,自动评测、人工评测、基准测试三种方式各有所长,实际应用中往往需要组合使用。

大模型的发展日新月异,但这套"预训练→SFT→RLHF"的框架目前仍是主流。理解这个框架,就理解了大模型技术的核心。

这篇文章是大模型预训练的一个简单入门了解,后面会更新更多深入的内容。

相关推荐
NAGNIP5 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab6 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab6 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP10 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年10 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼10 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS10 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区11 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈11 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang12 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx