2025年年初随着DeepSeek的爆火,人们对LLM(Large Language Model,大语言模型)兴趣与日激增,很多人觉得LLM常常显得近乎魔法般神奇。接下来我们就来揭开LLM的神秘面纱。
拆解一下LLM的基本原理——深入探讨这些模型是如何构建、训练和微调,最终成为我们今天所使用的AI大模型的。
一、概念准备
1、 预训练(Pre-training)
预训练是指在模型的初始阶段,使用大量数据对模型进行训练,以便让模型学习到通用的特征和知识。这些特征和知识可以是语言模型中的词嵌入,或者是图像识别模型中的视觉模式。
- 通常发生在模型开发的早期阶段。
- 目的是在大规模数据集上学习通用特征,为后续任务奠定基础。
- 不针对特定任务,而是追求广泛的适用性。
作用:建立模型对世界的通用理解,是后续所有优化阶段的基石。
2、 微调(Fine-tuning)
微调(Fine-tuning)是在预训练的基础上,使用特定任务数据集对模型进行进一步训练。与预训练的目标是让模型具备广泛的语言能力不同,微调的目标是使模型针对某个特定任务进行优化,例如情感分析、机器翻译或文本生成。通过微调,模型能够在特定任务中展现出更高的精度和性能。
这个过程涉及几个关键目标:
- 任务优化:通过根据特定任务的数据调整权重,以优化模型在特定任务或领域的表现。
- 准确性和相关性:例如在法律文件分析、客户服务或医疗转录等专业应用中,提高准确性和相关性。
- 偏见减少:为了减少在预训练过程中可能无意中强化的偏见,从而为实际应用创建一个更准确和更具伦理的模型。
3、强化学习(RL)
RL是一种独立于微调的学习范式,通过环境反馈(奖励信号)优化策略。例如,训练游戏AI时,模型根据得分调整动作选择。
与微调的区别:RL不依赖标注数据,而是通过试错学习,这个能力也是为什么AI大模型有创新的关键,因为RL会让大模型发现人类难以发现的数据之间的规律,实现创新;微调依赖静态标注数据集。
4、基于人类反馈的强化学习(RLHF)
RLHF是RL的子类,引入人类标注的偏好数据(如对答案质量的排序)作为奖励信号。例如,ChatGPT通过RLHF对齐人类价值观,减少有害输出。后文有专门对RLHF的详解。
强化学习(RL)和人类反馈强化学习(RLHF)是大模型实现动态自适应能力的核心技术,它们使大模型从"知识复读机"进化为"具备自主决策能力的认知体",使得大模型真正具有了“自学习”的能力。
二、大模型训练的步骤概述
从整体上看,训练LLM主要包括两个关键阶段:预训练(Pre-training)后训练(Post-training):微调、RL和RLHF。
上述流程整合了预训练、微调、RLHF等核心阶段,适用于自然语言处理和多模态大模型:
1、数据准备
- 数据收集:根据目标领域收集海量无标注数据(预训练)或少量标注数据(微调)。
- 清洗与增强:去除噪声、重复项,进行分词/标准化(文本)或裁剪/旋转(图像)。
- 划分数据集:预训练无需标注;微调需划分训练集/验证集/测试集(比例通常为8:1:1)。
2、预训练(Pre-training)
- 模型架构选择:如Transformer(文本)、ViT(图像)或混合架构(多模态)。
训练策略:
- 无监督学习:掩码语言建模(BERT)、自回归生成(GPT)。
- 分布式训练:使用GPU/TPU集群加速,如Megatron-LM框架。
3、任务适配:微调(Fine-tuning)
方法选择:
- 全量微调:调整所有参数,适合数据充足场景(如金融风控)。
参数高效微调(PEFT):
- LoRA:低秩矩阵分解,减少90%训练参数。
- Adapter:插入小型网络模块,保持原模型权重。
- 优化目标:最小化任务损失函数(如交叉熵损失)。
4、强化学习优化(RL/RLHF)
- 奖励模型训练:用人类标注的偏好数据(如答案质量排序)训练奖励模型(Reward Model)。
策略优化:
-
RL:通过环境反馈(如游戏得分)调整策略,无需人类干预。
-
RLHF:结合奖励模型和PPO算法优化模型输出,例如提升对话流畅度。
• 关键步骤:KL散度惩罚防止模型偏离原始分布。
5、评估与调优
指标选择:准确率、BLEU(文本生成)、ROUGE(摘要)或人工评估(复杂任务)。
过拟合处理:
- 正则化:Dropout、权重衰减。
- 早停法(Early Stopping)。
6、部署与监控
- 模型压缩:量化(INT8/INT4)、剪枝,降低推理成本。
- 持续学习:根据用户反馈(如日志分析)进行在线微调。
关键步骤区别与适用场景
接下来我们详细的介绍下每一个步骤的详细内容。
三、预训练(Pre-training)
1、 为什么需要预训练?
预训练是为了让模型在见到特定任务数据(比如生成文本)之前,先通过学习大量通用数据来捕获广泛有用的特征,熟悉语言的工作方式,从而提升模型在目标任务上的表现和泛化能力,而这一过程就是预训练——一个极其计算密集的任务。
预训练技术通过从大规模未标记数据中学习通用特征和先验知识,减少对标记数据的依赖,加速并优化在有限数据集上的模型训练。
2、 为什么要用大量未标记的数据做预训练呢?
1)数据稀缺性:在现实世界的应用中,收集并标注大量数据往往是一项既耗时又昂贵的任务。 特别是在某些专业领域,如医学图像识别或特定领域的文本分类,标记数据的获取更是困难重重。
预训练技术使得模型能够从未标记的大规模数据中学习通用特征,从而减少对标记数据的依赖。这使得在有限的数据集上也能训练出性能良好的模型。
2)先验知识问题:在深度学习中,模型通常从随机初始化的参数开始学习。然而,对于许多任务来说,具备一些基本的先验知识或常识会更有帮助。
预训练模型通过在大规模数据集上进行训练,已经学习到了许多有用的先验知识,如语言的语法规则、视觉的底层特征等。这些先验知识为模型在新任务上的学习提供了有力的支撑。
预训练是语言模型学习的初始阶段。在预训练期间,模型会接触大量未标记的文本数据,例如书籍、文章和网站。目标是捕获文本语料库中存在的底层模式、结构和语义知识。
3、 本阶段大模型主要学习的方式是:
无监督学习: 预训练通常是一个无监督学习过程,模型在没有明确指导或标签的情况下从未标记的文本数据中学习。
屏蔽语言建模: 模型经过训练可以预测句子中缺失或屏蔽的单词、学习上下文关系并捕获语言模式。
具体的执行步骤如下:
步骤1:数据收集与预处理
训练LLM的第一步是收集尽可能多的高质量文本数据。目标是创建一个庞大且多样化的数据集,涵盖广泛的人类知识。
一个常见的数据来源是Common Crawl,这是一个免费的、开放的网页爬取数据存储库,包含过去18年间约2500亿个网页的数据。然而,原始网页数据往往比较嘈杂——其中包含垃圾信息、重复内容和低质量文本,因此数据预处理至关重要。
如果你对经过预处理的数据集感兴趣,FineWeb提供了一个整理后的Common Crawl版本,并已在Hugging Face上公开可用。
一旦文本语料库经过清理,就可以进行分词(Tokenization)处理。
步骤2:分词(Tokenization)
在神经网络处理文本之前,文本必须先转换为数值形式。这一过程就是分词,它将单词、子词或字符映射为唯一的数值token。
可以把token想象成构建语言模型的基本单元——所有语言模型的核心组件。在GPT-4中,可能的token数量为100277个。
一个常见的分词工具是Tiktokenizer,它允许你进行分词实验,并查看文本是如何被拆解为token的。
你可以尝试输入一句话,看看每个单词或子词是如何被分配一系列数值ID的。
步骤3:神经网络训练(Neural Network Training)
一旦文本被分词处理,神经网络就会学习根据上下文预测下一个token。模型会接收一串输入token(例如“我正在烹饪”),然后通过一个庞大的数学表达式——即模型的架构(如:Transformer)——进行处理,以预测下一个token。
一个神经网络主要由两个关键部分组成:
1)参数(参数权重,Weights):通过训练学习得到的数值,用于表达每一个Token的具体语义,比如是否是动词/名称、是动物/植物等。在GTP-3中这个参数是12288个维度,即一个Token用12288个维度来描述它,维度越多越能够精准的描述一个token,但是参数都增多算量会指数级增长,所以需要在准确率和算量之间找到平衡。
2)架构(数学表达式,Architecture):定义输入token如何被处理以生成输出的结构。比如现在最常用的架构就是Transformer架构。
最初,模型的预测是随机的,但随着训练的进行,它逐渐学会为可能的下一个token分配概率。
当正确的token(例如“食”)被识别后,模型会通过反向传播(Backpropagation)来调整数十亿个参数(权重)。这是一个优化过程,通过提高正确预测的概率、降低错误预测的概率来强化模型的学习。
这个过程会在海量数据集上重复数十亿次。
预训练通常采用基于 Transformer 的架构,该架构擅长捕获远程依赖关系和上下文信息。
基础模型(Base Model):预训练的产物
在这一阶段,基础模型已经学会了:
• 单词、短语和句子之间的关联
• 训练数据中的统计模式
然而,基础模型并未针对真实世界任务进行优化。你可以将其类比为一个高级自动补全系统——它能够基于概率预测下一个token,但缺乏良好的指令跟随能力。
基础模型有时会逐字复述训练数据,并且可以通过上下文学习(In-Context Learning) 进行特定应用,即在提示(Prompt)中提供示例来引导模型的响应。但为了让模型真正有用且可靠,它还需要进一步训练。
二、后训练(Post-Training)/ 微调(Fine-tuning):让模型更实用
基础模型是未经打磨的。为了让它更加实用、可靠、安全,需要进行后训练(Post-Training),即在更小、更专业的数据集上进行微调*(Fine-tuning)*。
1、 为什么需要微调?
尽管预训练模型已经在大规模数据集上学到了丰富的通用特征和先验知识,但这些特征和知识可能并不完全适用于特定的目标任务。
微调通过在新任务的少量标注数据上进一步训练预训练模型,使模型能够学习到与目标任务相关的特定特征和规律,从而更好地适应新任务。
1)模型微调可以更好地利用预训练模型的知识,加速和优化新任务的训练过程,同时减少对新数据的需求和降低训练成本
2)减少对新数据的需求: 从头开始训练一个大型神经网络通常需要大量的数据和计算资源,而在实际应用中,我们可能只有有限的数据集。通过微调预训练模型,我们可以利用预训练模型已经学到的知识, 减少对新数据的需求,从而在小数据集上获得更好的性能。
3)降低训练成本: 由于我们只需要调整预训练模型的部分参数,而不是从头开始训练整个模型,因此可以大大减少训练时间和所需的计算资源。这使得微调成为一种高效且经济的解决方案,尤其适用于资源有限的环境。
4)由于神经网络无法像传统软件那样被显式编程,我们只能通过训练它来“编程”它,即让它学习有结构的、带标注的数据集,这些数据代表了理想的交互示例。
2、 微调的技术原理是什么?
在预训练模型的基础上,针对特定任务或数据领域,通过在新任务的小规模标注数据集上进一步训练和调整模型的部分或全部参数,使模型能够更好地适应新任务,提高在新任务上的性能。
微调发方式: 问题回答、语言生成、命名实体识别、释义识别、摘要、情绪分析、其他
3、 微调如何分类?
微调分为在新任务数据集上全面或基于人类反馈的监督训练(SFT与RLHF),以及调整模型全部或部分参数以高效适应新任务(Full Fine-tuning与PEFT)
3.1.在新任务的小规模标注数据集上进一步训练
这种方式通常使用预训练模型作为基础,并在新任务的小规模标注数据集上进行进一步的训练。
这种训练过程可以根据具体的训练方法和目标细分为不同的策略,如监督微调(Supervised Fine-tuning, SFT)和基于人类反馈的强化学习微调(Reinforcement Learning with Human Feedback, RLHF)。
1)监督微调(Supervised Fine-tuning, SFT)
定义: 在新任务的小规模标注数据集上,使用有监督学习的方法对预训练模型进行微调,以使其适应新任务。
步骤: 加载预训练模型 → 准备新任务的数据集 → 调整模型输出层 → 在新任务数据集上训练模型。
应用:适用于那些有明确标注数据集的任务,如文本分类、命名实体识别等。
我们先说监督微调(Supervised Fine-tuning, SFT)
具体执行方法:
后训练阶段会创建专门的数据集,这些数据集包含结构化的示例,指导模型在不同情况下的回应方式。
1.指令/对话微调(Instruction/Conversation Fine-Tuning)
本质: 准备好相关问题,并准备好标准答案,让模型进行学习。
目标: 让模型学会遵循指令、执行任务、进行多轮对话、遵守安全规范、拒绝恶意请求等。
训练使用的数据主要来源于两个方面:一是人工进行标注,二是通过类似ChatGPT这样的模型自动生成训练数据。 后者减少了人工构建数据集的成本,也能够更快地生成大量的训练样例。
具体来说,可以给定一些基本的指令样例,让模型生成类似的新的指令和答案对,从而形成一个自动化的训练数据生成过程。例如,斯坦福大学的Alpaca项目通过ChatGPT自动生成了5200条指令 - 答案样例,极大地提升了训练的效。
例如,InstructGPT(2022),OpenAI聘请了约40名合同工来创建这些标注数据集。这些人工标注者编写提示(Prompts)并提供基于安全指南的理想响应。如今,许多数据集由AI自动生成,再由人工审核和编辑以确保质量。
2.领域特定微调(Domain-Specific Fine-Tuning)
目标:使模型适应特定领域,如医学、法律、编程等。
此外,后训练还会引入特殊token——这些token在预训练阶段并未使用,它们有助于模型理解交互的结构。这些token可以标记用户输入的起始与结束,以及AI响应的起始位置,确保模型能够正确区分提示(Prompt)和回答(Reply)。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费
】
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。