2025年年初随着DeepSeek的爆火,人们对LLM(Large Language Model,大语言模型)兴趣与日激增,很多人觉得LLM常常显得近乎魔法般神奇。接下来我们就来揭开LLM的神秘面纱。
拆解一下LLM的基本原理——深入探讨这些模型是如何构建、训练和微调,最终成为我们今天所使用的AI大模型的。
一、概念准备
1. 预训练(Pre-training)
预训练是大模型训练的基础阶段,通过海量无标注数据(如互联网文本、图像等)让模型学习通用知识(如语言语法、图像纹理等)。例如,GPT-3通过千亿级参数的预训练掌握语言生成能力。
作用:建立模型对世界的通用理解,是后续所有优化阶段的基石。
2. 微调(Fine-tuning)
在预训练模型基础上,针对特定任务(如医疗问答、法律文本分类)使用少量标注数据进行参数调整。例如,用LoRA方法冻结大部分参数,仅训练低秩矩阵适配新任务。
与预训练关系:微调是预训练的延伸,将通用知识迁移到垂直领域。
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:数据收集与预处理
训练LLM的第一步是收集尽可能多的高质量文本数据。目标是创建一个庞大且多样化的数据集,涵盖广泛的人类知识。
一个常见的数据来源是Common Crawl,这是一个免费的、开放的网页爬取数据存储库,包含过去18年间约2500亿个网页的数据。然而,原始网页数据往往比较嘈杂——其中包含垃圾信息、重复内容和低质量文本,因此数据预处理至关重要。
一旦文本语料库经过清理,就可以进行分词(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 的架构,该架构擅长捕获远程依赖关系和上下文信息。
四 、后训练(Post-Training)/ 微调(Fine-tuning):让模型更实用
基础模型是未经打磨的。为了让它更加实用、可靠、安全,需要进行后训练(Post-Training),即在更小、更专业的数据集上进行微调*(Fine-tuning)*。
为什么需要微调?
尽管预训练模型已经在大规模数据集上学到了丰富的通用特征和先验知识,但这些特征和知识可能并不完全适用于特定的目标任务。
微调通过在新任务的少量标注数据上进一步训练预训练模型,使模型能够学习到与目标任务相关的特定特征和规律,从而更好地适应新任务。
1)模型微调可以更好地利用预训练模型的知识,加速和优化新任务的训练过程,同时减少对新数据的需求和降低训练成本。
2)减少对新数据的需求: 从头开始训练一个大型神经网络通常需要大量的数据和计算资源,而在实际应用中,我们可能只有有限的数据集。通过微调预训练模型,我们可以利用预训练模型已经学到的知识, 减少对新数据的需求,从而在小数据集上获得更好的性能。
3)降低训练成本: 由于我们只需要调整预训练模型的部分参数,而不是从头开始训练整个模型,因此可以大大减少训练时间和所需的计算资源。这使得微调成为一种高效且经济的解决方案,尤其适用于资源有限的环境。
4)由于神经网络无法像传统软件那样被显式编程,我们只能通过训练它来“编程”它,即让它学习有结构的、带标注的数据集,这些数据代表了理想的交互示例。
微调的技术原理是什么?
在预训练模型的基础上,针对特定任务或数据领域,通过在新任务的小规模标注数据集上进一步训练和调整模型的部分或全部参数,使模型能够更好地适应新任务,提高在新任务上的性能。
微调发方式: 问题回答、语言生成、命名实体识别、释义识别、摘要、情绪分析、其他
微调如何分类?
微调分为在新任务数据集上全面或基于人类反馈的监督训练(SFT与RLHF),以及调整模型全部或部分参数以高效适应新任务(Full Fine-tuning与PEFT)
1.在新任务的小规模标注数据集上
进一步训练
这种方式通常使用预训练模型作为基础,并在新任务的小规模标注数据集上进行进一步的训练。
这种训练过程可以根据具体的训练方法和目标细分为不同的策略,如监督微调(Supervised Fine-tuning, SFT)和基于人类反馈的强化学习微调(Reinforcement Learning with Human Feedback, RLHF)。
)监督微调(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)。
RL(Reinforcement Learning)
强化学习
之前,我们讨论了训练LLM的前两个主要阶段:
1)预训练从大量数据集中学习,形成基础模型。
2)SFT(Supervised Fine-Tuning,监督微调)用精心挑选的示例来优化模型,使其更加实用。
现在,我们将深入探讨下一个主要阶段:RL(Reinforcement Learning,强化学习),本质上来说RL也属于微调(Fine tunning)阶段。尽管预训练和SFT已经是成熟的方法,但RL仍在不断发展,并且已成为训练流程中的关键环节。
RL的目的是什么?
人类和LLM处理信息的方式不同。对于我们来说——像基本的算术——是直观的,但LLM只将文本看作一串token序列,这对LLM来说并不直观。相反,LLM能够在复杂的主题上生成专家级的回答,仅仅因为它在训练过程中见过足够多的示例。
这种认知差异使得人类注释者很难提供一组“完美”的标签,能够持续地引导LLM找到正确的答案。
RL弥补了这一差距,它允许模型从自身的经验中学习。
模型不仅仅依赖显式的标签,而是探索不同的token序列,并根据哪些输出最有用来获得反馈——奖励信号(奖励信号是由人为提前设定好的)。随着时间的推移,模型学会了更好地与人类意图对齐。
RL的本质
LLM是随机的——意味着它们的回答并不是固定的。即使是相同的提示,输出也会有所不同,因为它是从一个概率分布中采样的。
我们可以利用这种随机性,通过并行生成成千上万,甚至数百万个可能的响应。可以把它看作是模型在探索不同的路径——有些是好的,有些是差的。我们的目标是鼓励它更多地选择较好的路径。
为了做到这一点,我们让模型训练在那些导致更好结果的token序列上。与监督微调(SFT)不同,在监督微调中,人类专家提供标签数据,强化学习则允许模型从自身的学习中获得进步。
模型发现哪些响应最有效,并在每个训练步骤后更新它的参数。随着时间的推移,这使得模型在未来收到相似提示时,更有可能生成高质量的答案。
但是,如何确定哪些响应是最好的?我们应该进行多少RL训练?这些细节是很复杂的,要做到精准并不简单。
RL并不是“新”的——它能超越人类专业水平(AlphaGo,2016)
RL的强大力量的一个很好的例子是DeepMind的AlphaGo,它是第一个击败职业围棋选手的AI,并最终超越了人类水平。
在2016年的《自然》杂志论文中表示,当一个模型纯粹通过SFT训练(给模型大量好的例子让其模仿)时,模型能够达到人类水平的表现,但永远无法超越它。
这是因为SFT关注的是复制,而非创新——它不能让模型发现超越人类知识的新策略。然而,RL使AlphaGo能够与自己对弈,改进策略,并最终超越人类的专业水平。
RL代表了AI的一个令人兴奋的前沿——在我们将模型训练在一个多样且具有挑战性的问题池中时,模型能够探索超越人类想象的策略,从而优化其思维策略。
RL基础回顾
让我们快速回顾一下典型RL设置的关键组成部分:
1)Agent(智能体) 学习者或决策者。它观察当前的状态(state),选择一个动作(action),然后根据结果(reward)更新其行为。
2)Environment(环境)智能体所操作的外部系统。
3)State(状态)在给定时间步t的环境快照。
在每个时间戳,agent在环境中执行一个动作,该动作将环境的状态改变为新的状态。智能体还会收到反馈,表明该动作的好坏。这个反馈称为奖励(reward),并以数字形式表示。正奖励鼓励该行为,负奖励则不鼓励该行为。
通过使用来自不同状态和动作的反馈,智能体逐渐学习出最佳策略,以便在时间上最大化总奖励。
策略
策略是Agent的决策规则。如果Agent遵循一个好的策略,它将始终做出正确的决策,从而在多个步骤中获得更高的奖励。
用数学术语来说,策略是一个函数,它确定给定状态下不同输出的概率。
价值函数
估计处于某个状态下的好坏程度,考虑长期期望奖励。对于LLM(大语言模型)而言,奖励可能来自人类反馈或奖励模型。
Actor-Critic架构
这是一个流行的强化学习设置,结合了两个组件:
Actor(演员) 学习并更新策略(πθ),决定在每个状态下应该采取哪个动作。
Critic(评论者) 评估价值函数(V(s)),为演员提供反馈,告知其选择的动作是否导致了好的结果。
工作原理:
演员基于当前策略选择一个动作。
评论者评估结果(奖励 + 下一个状态)并更新其价值估计。
评论者的反馈帮助演员优化策略,使未来的动作能够获得更高的奖励。
将其与LLM结合
状态可以是当前的文本(提示或对话),而动作则是生成的下一个token(词或子词)。奖励模型(例如人类反馈)告诉模型它生成的文本是好是坏。
策略是模型选择下一个token的策略,而价值函数则估计当前文本上下文在最终生成高质量响应方面的有益程度。
RLHF(基于人工反馈的强化学习)
定义:RLHF(Reinforcement learning with Human Feedback,基于人工反馈的强化学习)是在SFT的基础上,通过强化学习和人类反馈来进一步微调模型,使其输出更加符合人类的偏好或期望。
步骤:首先进行SFT → 收集人类反馈数据 → 训练奖励模型 → 使用奖励模型指导强化学习过程来微调模型。
应用: 适用于那些需要高度人类判断或创造力的任务,如对话生成、文本摘要等。这一部分比较复杂。
对于具有可验证输出的任务(例如数学问题、事实问答),AI的回答可以轻松评估。但对于像总结或创意写作这样没有单一“正确”答案的领域,如何处理呢?
这就是人工反馈的作用所在——但是天真的强化学习(RL) 方法是不可扩展的。
让我们用一些任意数字来看一下朴素的方法。
这需要十亿次人工评估!这太昂贵、缓慢且不可扩展。因此,一个更智能的解决方案是训练一个**AI“奖励模型”**来学习人类的偏好,从而大大减少人工工作量。
为什么需要奖励模型?
在指令微调(SFT)阶段,虽然模型已经被训练并具备一定的语言生成能力,但其输出结果仍然可能不符合人类的偏好,可能存在「幻觉」问题(模型生成的内容不真实或不准确)或者「有害性」问题(输出有害、不合适或令人不安的内容)。
这是因为,SFT 仅通过有限的人工标注数据来微调预训练模型,可能并未完全纠正预训练阶段中潜在的错误知识或不合适的输出。为了进一步提高模型的生成质量,解决这些问题,必须引入奖励模型,利用强化学习进行进一步优化。
奖励模型的作用是: 评估大语言模型输出的文本质量,给出一个分数,指导模型在后续生成过程中更好地符合人类偏好和需求。
通过与人类标注者进行交互,奖励模型能够提供反馈信号,帮助优化模型的输出,使得生成内容更加自然、真实且符合用户的期望。
强化学习与奖励模型
强化学习的核心思想是通过奖惩机制来引导模型的学习。 在 RLHF(强化学习与人类反馈)中,奖励模型负责为模型生成的每个响应提供一个奖励分数,帮助模型学习哪些输出符合人类的期望,哪些输出不符合。
奖励模型的训练数据通常来自人工标注的排序数据,标注员会对多个生成的回答进行排名,奖励模型基于这些排名进行训练。
与传统的有监督学习不同,奖励模型并不要求直接对每个输出给出明确的分数,而是通过相对排序的方式对多个输出进行比较,告诉模型哪些输出更好,哪些输出更差。这种相对排序方式能有效减少人工评分时的主观差异,提高标注的一致性和模型的学习效率。
训练奖励模型形成过程
(1)训练数据(人工排序数据)
奖励模型的训练数据通常由人工标注人员对模型输出进行排序生成。在训练过程中,标注人员会根据多个生成回答的质量进行排序,而不是为每个答案打分。具体来说,给定一个问题,标注人员会评估并排序该问题的多个答案,并将这些排序数据作为奖励模型的训练数据。
这种相对排序的方式比直接给每个答案打分更加高效且一致,因为评分会受到标注人员个人主观看法的影响,而相对排序则减少了这种影响,使得多个标注员的标注结果能够更加统一。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证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 的正确特征了。