前言
AI浪潮已经来袭,我们每个人都身处其中,我相信,每个人都有必要学习AI。
但问题是,该从何学起?我相信这是大部分之前没接触过AI的人的问题,我也是其中一员。我不是AI科学家,之前也没有技术基础,所以,我想将自己的学习结果记录下来,一方面是用自己能理解的话讲出来自己学到的知识,另外一方面也是分享给所有想要在这波浪潮中不被冲走的人。
我是一个不懂技术的普通人,所以这个系列就叫做「普通人学AI」,这是该系列的第四篇文章。
大型语言模型 (LLM) 的诞生需要经历三个关键阶段:
-
预训练 (Pretraining): 模型学习语言模式,帮助它理解语言结构和语境。就像打地基一样。
-
监督微调 (Supervised Fine-Tuning): 模型接受训练,学习如何遵循指令并回应特定的问题,使其更具互动性并能执行任务。让模型更听话、更能干。
-
偏好调整/对齐 (Preference-Tuning / Alignment): 在最后这个阶段,人类的反馈被用来评估和改进模型的输出,鼓励模型产生我们期望的行为,并避免产生不良的回答。让模型更符合人类价值观,更“三观正”。
一、预训练:打好基础
预训练就像盖房子的地基,是训练大型语言模型 (LLM) 的第一步,也是最重要的一步。在这个阶段,模型会接触到海量的文本数据,这些数据来自各种来源,例如书籍、文章、网站等等。 它的目的是让模型从零开始学习所有知识,从语法和句法到一些世界常识。就好像让模型博览群书、融会贯通一样。
模型架构 (Model Architectures): 典型的 LLM 架构是基于 Transformer 的,它使用自注意力机制,使其能够识别长距离的依赖关系。Transformer 架构是主流,自注意力机制是关键。
数据需求 (Data Requirements): 预训练需要海量且多样化的文本语料库,这些语料库来自不同的来源,以便模型学习几乎所有的语言模式。数据越多越好,来源越广越好,这样模型才能学到各种语言模式。
计算需求 (Computational Demands): 训练大型模型需要大量的计算资源。例如,训练拥有 700 亿参数的 LLaMA 2 就需要 6000 个 GPU 运行 12 天。Meta 公司表示,LLaMA 4 将使用超过 10 万个 NVIDIA H100 GPU 进行训练!!训练大模型烧钱又烧卡,算力需求巨大!
预训练是一种自监督学习 (self-supervised learning),模型无需显式标记的答案,而是从数据本身中学习。 它通过预测单词或填补空白来完成学习。模型自己从海量数据中摸索规律,不需要人工标注答案。
预训练过程会产生一个基础模型 (base model),也常被称为预训练模型 (pretrained model) 或 基础模型 (foundation model)。 基础模型是训练过程中的关键产物,但终端用户很难直接使用。 它不能直接使用,因为它不会直接回答你的问题。 如果你向它提问,它只会给你更多类似的问题,所以这并不是很有帮助。 例如:
提问: 用几句话向 6 岁的孩子解释登月。
结果不是答案,而是更多类似性质的问题:
用几句话向 6 岁的孩子解释万有引力理论。
用几句话向 6 岁的孩子解释相对论。
向 6 岁的孩子解释宇宙大爆炸理论。
向 6 岁的孩子解释进化论。
你可以把预训练看作是厨师在烹饪学校学习基本功。 他们练习切菜、煎鸡蛋、烤面包——所有厨师都需要掌握的基本技能。 但即使掌握了这些技能,如果把你扔进一家繁忙的餐厅厨房,让你做一份完美的意大利调味饭或精致的法式甜点,他们仍然会慌乱。 这时,微调 (fine-tuning) 就派上用场了。 现在,厨师利用这些基本功,真正学习如何在真实的厨房里烹饪。 也许他们在一家意大利餐厅接受培训,掌握手工意大利面,或者花几个月的时间来完善寿司卷。 他们适应餐厅的氛围,调整食谱,最终不再把蒜蓉面包烤焦。预训练只是打基础,就像厨师学基本功,还不能直接上岗。
简而言之:预训练为你提供工具。 微调教会你如何将这些工具用于你实际需要完成的工作。
二、监督微调:学习听指令
监督微调 (Supervised fine-tuning) 是一种通过在标记数据集上进一步训练预训练模型来改进模型的方法。 这个过程帮助模型适应并遵循指令。 与预训练类似,它也使用下一个词语预测,但不同之处在于,它不仅预测下一个词,而且是基于用户的输入来预测。监督微调让模型学会听指令,根据你的指示干活。
在预训练阶段,模型从互联网上抓取的海量文本中学习——想想数十亿的网页、书籍和论坛。 但问题是这些数据中有很多是质量不高,混乱的、过时的,甚至是无意义的。 预训练阶段,数量是王道,质量没那么重要。 但现在,在这个阶段,重点发生了转变,我们更注重质量而不是数量。 过去我们试图在互联网文档上进行训练,现在我们要转向手动收集的数据。 收集数据的方法之一是使用很多人工标记,我们给他们问题和如何回答问题的说明,微调阶段,数据质量更重要,需要人工筛选和标注高质量数据,下面是一个例子:
<用户>
我怎样才能快速学习一门新语言?
<助手>
你最好从短时学习课程开始。 短时课程很棒,因为它们现在很容易做到。 有很多针对初学者的在线教程,以及教授语言的应用程序。 一旦你掌握了短时课程,你就可以决定你是想快速学习一门新语言,还是想循序渐进地学习。
所以,我们更换数据集,并在高质量的数据集(例如 QA 问答数据集)上训练预训练模型。 这个过程包括调整 LLM 的参数,以最大限度地减少其预测与实际标签之间的差异。微调就是用高质量数据“喂”模型,让模型学会回答特定问题。
与预训练相比,微调所需的计算资源要少得多,因为我们在一个更小、特定于任务的数据集上优化模型。 在这个阶段,我们可以每天多次微调模型,甚至可以在像 Google Colab 这样容易访问的平台上进行微调。 这使得研究人员和开发人员可以快速迭代并将模型适应特定任务,而无需大量的计算基础设施。微调成本比预训练低很多,普通研究人员也能玩得起。
有两种方法可以调整模型的参数:
1.全量微调 (Full Fine-Tuning)
这个过程就像预训练一个 LLM 一样,它涉及更新模型的所有参数,使其与目标任务保持一致。 正如我们上面所说,不同之处在于我们使用一个更小但标记的数据集,而预训练过程是在一个没有标签的大型数据集上完成的。 而且,全量微调和预训练之间的另一个区别是,预训练从随机化的模型权重开始,而微调则从先前训练过的模型权重开始。 因此,可训练参数的数量等于模型参数的总数。全量微调就是把模型的所有参数都重新调整一遍。
然而,对预训练语言模型进行全量微调需要大量的计算资源,因为模型需要针对特定的目标任务从头开始训练。 此外,随着预训练模型的规模不断扩大,以及包含数十亿参数的 LLM 的出现,全量微调对计算资源提出了更高的要求。 例如:微调一个拥有 70 亿参数的模型将需要高达 56 GB 的 GPU 内存,这超过了当今大多数消费级 GPU 的能力。全量微调成本高昂,对硬件要求高,普通人玩不起。
为了解决这些问题,参数高效微调 (Parameter Efficient Fine-Tuning, PEFT) 方法应运而生,它使我们能够高效地微调模型,并节省金钱和时间。为了省钱省时间,参数高效微调技术诞生了!
2.参数高效微调 (Parameter Efficient Fine-Tuning)
参数高效微调 (PEFT) 不是微调模型的所有参数,而是只微调少量额外的参数(额外的层或模块),同时冻结大多数预训练 LLM 的参数,从而大大降低计算和存储成本。参数高效微调只调整少量参数,冻结大部分参数,大大降低成本。
三、偏好调整:与人类价值观对齐
在监督微调之后,你得到了一个能够遵循指令并回答你的问题,并且一切运行良好的模型。 你可能会问自己,为什么还需要进行另一次微调呢? 答案是,基础模型训练所用的数据教会了模型如何进行对话,但并没有教会模型应该进行什么样的对话。 例如,如果用户试图询问模型“如何制造炸弹?”或“如何劫持飞机?”,我们不希望模型提供此类问题的答案。模型学会了对话,但不知道什么是“好”的对话,什么是“坏”的对话。
AI 应该如何回应宗教、政治和性别问题? 我们如何定义和检测潜在的争议性问题? 因为如果模型回答了此类问题,人们很难在争议性问题上达成共识,模型的答案可能会让持有相反意见的人感到不快,他们可能会因此不再使用你的模型。模型需要学习价值观,避免输出有害或有争议的内容。
这就是 偏好微调 (Preference finetuning) 或 对齐 (Alignment) 发挥作用的地方。 这里的目标是引导模型按照人类的偏好、价值观或期望的行为方式行事。偏好调整/对齐,让模型“三观正”,符合人类价值观。
有多种方法可以完成这个阶段,本篇文章主要讨论基于人类反馈的强化学习 (Reinforcement Learning from Human Feedback, RLHF),这是 GPT、Claude 和 Google Gemini 等模型采用的技术。 这篇文章还将介绍直接偏好优化 (Direct Preference Optimization, DPO),Llama 3 等模型使用的一种方法。RLHF 和 DPO 是两种主流的偏好调整方法。
1.基于人类反馈的强化学习 (RLHF)
RLHF 包括两个阶段:
训练一个奖励模型 (reward model),为模型的输出评分。先训练一个“评分员”,判断模型输出的好坏。
优化模型,使其生成奖励模型会给出最高分的响应。再训练模型,让模型努力拿到“评分员”给的高分。
1.1奖励模型 (Reward Model)
给定一对 (提示 Prompt, 回复 response),奖励模型会评估回复的质量并为其分配一个分数。 这项任务看似简单,但要完成这项任务,需要一个数据集,其中每个条目都包含提示、回复以及相应的分数,说明回复的质量如何。 我们可以让标注员执行这项任务,让他们在 1 到 10 的范围内为每个样本评分。 然而,这很有挑战性,就像之前说过的,人们很难达成共识,不同的标注员可能会给同一个样本打 4 分,而另一个人可能会打 8 分。训练奖励模型需要人工标注数据,但评分标准很难统一,众口难调。
考虑这种情况:如果我召集十个人,让他们都看一部电影,然后让他们在 1-10 分的范围内评分,即使是一部广受好评的电影也会产生不同的评价。 一位观众可能会给 7 分,另一位给 8 分,还有一位给 8.5 分,甚至可能给 9 分——这表明当使用数字评分时,很难让每个人都达成一致。 现在,我将问他们一个二元问题:“这部电影是好还是坏?” 通过将选项减少到两个明确的类别,你将大大缩小可能的答案范围。 所以,现在如果我给标注员两个回复,让他们决定哪个更好,就会更容易了。与其让标注员打分,不如让他们做选择题,选出哪个回复更好,更容易达成一致。
对于每个提示,都会生成多个回复,这些回复可以是人类或 AI 生成的。生成的标记数据是比较数据,其形式如下:(提示 prompt, 接受的回复 accepted_response, 拒绝的回复 rejected_response)。标注数据形式:提示 + 好的回复 + 坏的回复,让模型学习“好”与“坏”的区别。
我们如何训练奖励模型来给出具体的分数呢? 你可以使用正确的目标函数 (objective function) 让模型做到这一点。 一个常用的函数表示接受的回复和拒绝的回复的输出分数之差。
现在我们收集了偏好数据,然后训练奖励模型。 接下来,我们使用奖励模型来微调 LLM。有了奖励模型,就可以用它来指导 LLM 的训练了。
1.2使用奖励模型进行微调 (Finetuning using the reward model)
有了训练好的奖励模型,我们进一步训练 SFT 模型,使其生成能够最大化奖励模型分数的输出回复。用奖励模型来指导 SFT 模型,让 SFT 模型努力输出高分回复。
这个训练过程通常使用近端策略优化 (Proximal Policy Optimization, PPO) 完成,这是一种 RL 算法,用于在最后阶段使用来自奖励模型的奖励来训练策略(语言模型)。PPO 算法是常用方法,利用奖励模型来训练语言模型。
PPO 过程包含两个主要组成部分:
Actor (执行者):控制我们的智能体 (agent) 如何行动(策略网络 Policy Network)。Actor 就像学生,负责生成回复。
Critic (评论家):衡量所采取行动的好坏程度(价值网络 Value Network)。Critic 就像老师,负责评价回复的好坏。
策略网络 (Policy Network): 策略网络是一个神经网络,它将当前状态(提示 Prompt)作为输入,并输出可能的操作(要选择哪些 tokens)的概率分布。 在这种情况下,神经网络就是语言模型(例如,SFT 模型)。 目标是调整其参数,以产生能够最大化奖励模型奖励的回复。策略网络就是语言模型本身,目标是生成高分回复。
价值网络 (Value Network): 价值网络充当策略网络的智能助手。 它不是选择词语,而是预测以给定提示开始回复的长期价值。 可以将其理解为回答以下问题:“如果我走这条路,最终获得良好结果的可能性有多大?” 这有助于策略网络专注于可持续的成功,而不仅仅是短期的胜利。 虽然它的结构类似于策略网络,但它输出的是单个分数,而不是词语选择列表。价值网络评估回复的“潜力”,帮助策略网络做出更明智的决策。
PPO 使用两个损失函数来训练策略网络和价值网络。 对于策略网络,损失函数基于 Surrogate objective (替代目标),其目的是在策略更新大小的约束下,最大化预期的累积奖励。PPO 用复杂的损失函数来训练网络。
2.直接偏好优化 (Direct Preference Optimization, DPO)
PPO 的一个缺点是它非常复杂且昂贵,你需要训练超过两个模型。 因此,DPO 应运而生。 DPO 移除了强化学习部分,并且没有使用奖励模型来判断生成内容的质量,而是将 LLM 本身视为偏好信号的来源,从而取代了奖励模型。DPO 简化了 RLHF 流程,不需要单独的奖励模型。
它使用了 LLM 的一个副本,这将成为我们的参考模型 (Reference model),它的主要职责是判断参考模型和可训练模型在接受和拒绝的生成内容质量方面的差异。DPO 用参考模型来代替奖励模型,简化流程。
DPO 的思想看起来很复杂,但其实不然。
它包含两个部分:
最大化奖励 (Maximizes the rewards): 我们的主要目标是让 LLM 输出具有最高奖励的词语或回复。 然而,由于我们拥有偏好数据集,我们需要找到一种将偏好转换为分数的方法。 为了解决这个问题,我们使用了 Bradley-Terry 模型。 该模型通过应用 sigmoid 函数将奖励转换为概率。DPO 仍然要最大化奖励,用 Bradley-Terry 模型将偏好转化为概率。
防止模型从一次迭代到下一次迭代发生过于剧烈的变化 (Prevent the model from changing too drastically from one iteration to next): 是的,我们想要最大化奖励,但同时我们也添加了约束,以确保我们的 LLM 与参考模型相比没有发生太大变化。 我们通过使用 KL 散度 (KL Divergence) 来做到这一点(KL 散度是一种比较两个概率分布的指标。 它接受两个分布,如果它们非常相似,则返回一个较小的数字,如果它们非常不同,则返回一个较大的数字)。DPO 也需要防止模型跑偏,用 KL 散度约束模型更新幅度。
假设我们有两个回复,回复 A 和回复 B,标注员更喜欢回复 A 而不是回复 B。 Bradley-Terry 模型为这些回复分配奖励 rA 和 rB,并计算回复 A 优于回复 B 的概率。
DPO 损失函数很复杂,但核心思想是让模型输出更符合人类偏好的回复。
人类偏好 → DPO → 迭代 DPO 训练流程:人类偏好数据 -> DPO 训练 LLM -> 迭代优化,更简洁高效!
如何系统的去学习大模型LLM ?
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业
?”“谁的饭碗又将不保了?
”等问题热议不断。
事实上,抢你饭碗的不是AI,而是会利用AI的人。
继科大讯飞、阿里、华为
等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?
与其焦虑……
不如成为「掌握AI工具的技术人
」,毕竟AI时代,谁先尝试,谁就能占得先机!
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。
基于此,我用做产品的心态来打磨这份大模型教程,深挖痛点并持续修改了近70次后,终于把整个AI大模型的学习门槛,降到了最低!
在这个版本当中:
第一您不需要具备任何算法和数学的基础
第二不要求准备高配置的电脑
第三不必懂Python等任何编程语言
您只需要听我讲,跟着我做即可,为了让学习的道路变得更简单,这份大模型教程已经给大家整理并打包,现在将这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓
一、LLM大模型经典书籍
AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。
二、640套LLM大模型报告合集
这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)
三、LLM大模型系列视频教程
四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)
五、AI产品经理大模型教程
LLM大模型学习路线 ↓
阶段1:AI大模型时代的基础理解
-
目标:了解AI大模型的基本概念、发展历程和核心原理。
-
内容:
- L1.1 人工智能简述与大模型起源
- L1.2 大模型与通用人工智能
- L1.3 GPT模型的发展历程
- L1.4 模型工程
- L1.4.1 知识大模型
- L1.4.2 生产大模型
- L1.4.3 模型工程方法论
- L1.4.4 模型工程实践
- L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
-
目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
-
内容:
- L2.1 API接口
- L2.1.1 OpenAI API接口
- L2.1.2 Python接口接入
- L2.1.3 BOT工具类框架
- L2.1.4 代码示例
- L2.2 Prompt框架
- L2.3 流水线工程
- L2.4 总结与展望
阶段3:AI大模型应用架构实践
-
目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
-
内容:
- L3.1 Agent模型框架
- L3.2 MetaGPT
- L3.3 ChatGLM
- L3.4 LLAMA
- L3.5 其他大模型介绍
阶段4:AI大模型私有化部署
-
目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
-
内容:
- L4.1 模型私有化部署概述
- L4.2 模型私有化部署的关键技术
- L4.3 模型私有化部署的实施步骤
- L4.4 模型私有化部署的应用场景
这份 LLM大模型资料
包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓