**
LLM构建流程
大模型(LLM,Large Language Model)的构建流程,特别是OpenAI所使用的大语言模型GPT构建流程,主要包含四个阶段:预训练、有监督微调、奖励建模和强化学习 。这四个阶段各自需要不同规模的数据集、不同类型的算法,并会产出不同类型的模型,同时所需的资源也有显著差异。
LLM构建流程
一、预训练(Pre-training)
什么是预训练? 预训练技术通过从大规模未标记数据中学习通用特征和先验知识,减少对标记数据的依赖,加速并优化在有限数据集上的模型训练。
-
目标:让模型学习语言的统计模式和语义信息。
-
数据集:利用海量的训练数据,这些数据可以来自互联网网页、维基百科、书籍、GitHub、论文、问答网站等,构建包含数千亿甚至数万亿单词的具有多样性的内容。
-
算法与资源:利用由数千块高性能GPU和高速网络组成的超级计算机,花费数十天甚至数月的时间完成深度神经网络参数的训练,构建基础模型(Foundation Model)。这一阶段对计算资源的需求极大,例如GPT-3的训练就使用了1000+的NVIDIA GPU,并花费了相当长的时间。
-
结果:基础模型能够对长文本进行建模,具备语言生成能力,根据输入的提示词,模型可以生成文本补全句子。
Pre-training
为什么需要预训练? 预训练是为了让模型在见到特定任务数据之前,先通过学习大量通用数据来捕获广泛有用的特征,从而提升模型在目标任务上的表现和泛化能力。
预训练的技术原理是什么?预训练利用大量无标签或弱标签的数据,通过某种算法模型进行训练,得到一个初步具备通用知识或能力的模型。
预训练是语言模型学习的初始阶段。在预训练期间,模型会接触大量未标记的文本数据,例如书籍、文章和网站。目标是捕获文本语料库中存在的底层模式、结构和语义知识。
Pre-training
二、有监督微调(Supervised Fine Tuning**)**
什么是有监督微调?有监督微调(Supervised Fine-Tuning, SFT), 也被称为指令微调(Instruction Tuning)。在已经预训练好的模型基础上,通过使用有标注的特定任务数据对模型进行进一步的训练和调整,以提高模型在特定任务或领域上的性能。
-
目标:使模型具备完成特定任务(如问题回答、翻译、写作等)的能力。
-
数据集:使用少量高质量数据集,这些数据集包含用户输入的提示词和对应的理想输出结果。
-
算法:在基础模型的基础上进行有监督训练,使用与预训练阶段相同的语言模型训练算法。
-
资源:相比预训练阶段,有监督微调所需的计算资源较少,通常只需要数十块GPU,并在数天内完成训练。
-
结果:得到有监督微调模型(SFT模型),该模型具备初步的指令理解能力和上下文理解能力,能够完成开放领域问答、阅读理解、翻译、生成代码等任务。
Supervised Fine-tuning
为什么需要有监督微调?尽管预训练模型已经在大规模数据集上学到了丰富的通用特征和先验知识,但这些特征和知识可能并不完全适用于特定的目标任务。微调通过在新任务的少量标注数据上进一步训练预训练模型,使模型能够学习到与目标任务相关的特定特征和规律,从而更好地适应新任务。
-
减少对新数据的需求 :可以利用预训练模型已经学到的知识, 减少对新数据的需求,从而在小数据集上获得更好的性能。
-
降低训练成本: 微调只需要调整预训练模型的部分参数,而不是从头开始训练整个模型,因此可以大大减少训练时间和所需的计算资源。
Supervised Fine-tuning
有监督微调的技术原理是什么?在预训练模型的基础上,针对特定任务或数据领域,通过在新任务的小规模标注数据集上进一步训练和调整模型的部分或全部参数,使模型能够更好地适应新任务,提高在新任务上的性能。
Supervised Fine-tuning
有监督微调如何分类? SFT 根据是否调整全部参数,可以细分为全面微调(Full Fine-tuning)和部分/参数高效微调(Parameter-Efficient Fine-tuning, PEFT)。
Supervised Fine-tuning
-
定义:在新任务上调整模型的全部参数,以使其完全适应新任务。
-
步骤:加载预训练模型 → 在新任务数据集上训练模型,调整所有参数。
-
应用:当新任务与预训练任务差异较大,或者想要充分利用新任务数据集时,可以选择全面微调。
-
定义: 仅调整模型的部分参数,如添加一些可训练的适配器(adapters)、前缀(prefixes)或微调少量的参数,以保持模型大部分参数不变的同时,实现对新任务的适应。
-
步骤: 加载预训练模型 → 在模型中添加可训练的组件或选择部分参数 → 在新任务数据集上训练这些组件或参数。
-
应用:当计算资源有限,或者想要快速适应新任务而不影响模型在其他任务上的性能时,PEFT是一个很好的选择。
三、奖励建模(Reward Modeling)
什么是奖励模型? 奖励模型是一个文本质量对比模型,它接受环境状态、生成的结果等信息作为输入,并输出一个奖励值作为反馈。 奖励模型通过训练,能够识别并区分不同输出文本之间的优劣,为后续的强化学习阶段提供准确的奖励信号。
-
目标:构建一个文本质量对比模型,用于评估模型生成文本的质量。
-
数据集:需要百万量级的对比数据标注,这些数据标注需要消耗大量的人力和时间。
-
算法:通过二分类模型,对输入的两个结果之间的优劣进行判断。
-
资源:奖励模型的训练同样需要数十块GPU,并在数天内完成。
-
结果:得到一个能够评估模型生成文本质量的奖励模型,该模型本身并不能单独提供给用户使用,但为后续强化学习阶段提供重要支持。
Reward Modeling
为什么需要奖励模型?奖励模型能够量化并优化LLM生成的文本质量,使其更符合人类期望,从而提升LLM的性能和实用性。
Reward Modeling
奖励模型如何构建与训练? 奖励模型采用二分类结构,通过对比人工标注的文本数据集进行训练,优化参数以最小化预测错误率或最大化排序准确性,需要大量计算资源和时间。
-
模型架构:奖励模型通常采用二分类模型的结构,通过输入一对文本(即两个输出结果),判断它们之间的优劣关系。
-
训练数据:奖励模型的训练数据通常来源于人工标注的对比数据集。标注者需要根据预设的标准(如准确性、有用性、流畅性等)对多个输出文本进行排序或分类。
-
训练过程:奖励模型的训练过程类似于其他机器学习模型,需要使用大量的计算资源(如数十块GPU)和较长时间(数天)来完成。
Reward Modeling
四、强化学习(Reinforcement Learning)
什么是强化学习? 根据数十万名用户给出的提示词,利用前一阶段训练的奖励模型,给出SFT模型对用户提示词补全结果的质量评估,并与语言模型建模目标综合得到更好的效果。
-
目标:根据奖励模型的评估,进一步优化模型生成文本的能力,使其更符合人类期望。
-
数据集:使用数十万用户给出的提示词和奖励模型评估的结果。
-
算法:利用强化学习算法(如PPO)调整模型参数,使模型生成的文本能够获得更高的奖励。
-
资源:相比预训练阶段,强化学习所需的计算资源较少,通常也只需要数十块GPU,并在数天内完成训练。
-
结果:得到最终的强化学习模型(RL模型),该模型具备更强的理解和生成能力,能够更好地满足人类的需求和期望。
Reinforcement Learning
为什么需要强化学习?使用强化学习,在SFT模型的基础上调整参数,使最终生成的文本可以获得更高的奖励(Reward)。
最后的最后
感谢你们的阅读和喜欢,我收藏了很多技术干货,可以共享给喜欢我文章的朋友们,如果你肯花时间沉下心去学习,它们一定能帮到你。
因为这个行业不同于其他行业,知识体系实在是过于庞大,知识更新也非常快。作为一个普通人,无法全部学完,所以我们在提升技术的时候,首先需要明确一个目标,然后制定好完整的计划,同时找到好的学习方法,这样才能更快的提升自己。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
![](https://img-blog.csdnimg.cn/img_convert/d32f97fcb874f7bbcfc8cc5f7147c9a1.jpeg)
大模型知识脑图
为了成为更好的 AI大模型 开发者,这里为大家提供了总的路线图。它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
经典书籍阅读
阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。
实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
面试资料
我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下
640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
![](https://img-blog.csdnimg.cn/img_convert/d32f97fcb874f7bbcfc8cc5f7147c9a1.jpeg)