💙作者主页: GoAI |💚 公众号: GoAI的学习小屋 | 💛交流群: 704932595 |💜个人简介 : 掘金签约作者、百度飞桨PPDE、领航团团长、开源特训营导师、CSDN、阿里云社区人工智能领域博客专家、新星计划计算机视觉方向导师等,专注大数据与AI 知识分享。
✨专栏介绍: 本作者推出全新系列《深入浅出LLM》专栏,将分为基础篇、进阶篇、实战篇等,本文为基础篇具体章节如导图所示(导图为常见LLM问题,导图专栏后续更新!),将分别从各个大模型模型的概念、经典模型、创新点、微调、分布式训练、数据集、未来发展方向、RAG、Agent及项目实战等各种角度展开详细介绍,欢迎大家关注。
注:目录后续文章会更新在作者的知识星球内,星球详细介绍可见:GoAI的学习社区
💚GoAI的学习社区知识星球:点击或下方扫码进入
目录
基础篇
[《深入浅出LLM基础篇》(二):大模型基础知识]
[《深入浅出LLM基础篇》(三):常见大模型介绍]
[《深入浅出LLM基础篇》(四):微调原理介绍及实战]
[《深入浅出LLM基础篇》(五):参数高效微调(PEFT)]
[《深入浅出LLM基础篇》(六):分布式训练及优化]
[《深入浅出LLM基础篇》(七):Langchain基础介绍]
[《深入浅出LLM基础篇》(八):Agent基础介绍]
[《深入浅出LLM基础篇》(九):大模型方向资料总结]
[《深入浅出LLM基础篇》(十):基础实战项目]
进阶篇
待更新!!!
《深入浅出LLM 》(一):大模型概念综述
一、大模型概念
大规模语言模型(LargeLanguageModels,LLM),也称大规模语言模型或大型语言模型,是一种由包含数百亿以上参数的深度神经网络构建的语言模型,使用自监督学习方法通过大量无标注文本进行训练。自2018年以来,Google、OpenAI、Meta、百度、华为等公司和研究机构都相继发布了包括BERT[1],GPT[6]等在内多种模型,并在几乎所有自然语言处理任务中都表现出色。2019年大模型呈现爆发式的增长,特别是2022年11月ChatGPT(ChatGenerativePre-trainedTransformer)发布后,更是引起了全世界的广泛关注。用户可以使用自然语言与系统交互,从而实现包括问答、分类、摘要、翻译、聊天等从理解到生成的各种任务。大型语言模型展现出了强大的对世界知识掌握和对语言的理解。
一般来说大模型(Pretrained Foundation Model,Large Language Model)满足如下条件:
-
百亿级别参数量,GPT3 175B,Ernie-3.0 260B,llama 65B,PaLM 540B
-
具备一定的零示例和少示例预测能力,即预训练之后不需要或者需要少量样本就能解新任务
-
具备突现能力(emergent ability)
(1)量变引发质变:模型效果随参数量/训练计算量/训练数据数量&质量增加出现近乎跳变般的提升
(2)不可预测,不能通过小模型的效果外推
自然语言处理发展
下面回顾人工智能发展的三个阶段
- 1.人工智能的⼀个 要目标是让机器能听会说,能理解会思考
- 2.目前人工智能技术正处在从感知智能到认知智能跨越的时间节点
- 3.自然语⾔处理(NLP)是认知智能中的要内容,是通往强人工智能的必经之路
自然语言处理与图像、语音不同,语言是高度抽象的产物,其基本组成单位并不是明确的物理 。
- 自然语言表示的发展⼀定程度上反映了自然语言处理的发展
- 自然语言表示的变迁很大程度影响着自然语言处理的范式
- 从离散到连续,从上下文无关到上下文相关,从浅层到深层
二、大模型发展时间线:
三、大模型分类
2018年,OpenAI和Google分别推出GPT与BERT,打开了自然语言处处理新篇章,开启“预训练+精调”新范式
根据⾯向的任务类型,相关预训练模型也⼤致分为两⼤类:自然语言处理解(NLU)、自然语言处⽣成(NLG)
开源大模型汇总
闭源大模型汇总
四、大语言模型范式发展
新范式:预训练+上文学习(In Context Learning)
大模型语言构建流程
1.预训练(Pretraining)阶段需要利用海量的训练数据,包括互联网网页、维基百科、书籍、GitHub、论文、问答网站等,构建包含数千亿甚至数万亿单词的具有多样性的内容。
2.有监督微调(SupervisedFinetuning),也称为指令微调(InstructionTuning),利用少量高质量数据集合,包含用户输入的提示词(Prompt)和对应的理想输出结果。用户输入包括问题、闲聊对话、任务指令等多种形式和任务。
3.奖励建模(RewardModeling)阶段目标是构建一个文本质量对比模型,对于同一个提示词,SFT 模型给出的多个不同输出结果的质量进行排序。奖励模型(RM模型)可以通过二分类模型,对输入的两个结果之间的优劣进行判断。RM模型与基础语言模型和SFT模型不同,RM模型本身并不能单独提供给用户使用。奖励模型的训练通常和SFT模型一样,使用数十块GPU,通过几天时间完成训练。
4.强化学习(ReinforcementLearning)阶段根据数十万用户给出的提示词,利用在前一阶段训练的RM模型,给出SFT模型对用户提示词补全结果的质量评估,并与语言模型建模目标综合得到更好的效果。该阶段所使用的提示词数量与有监督微调阶段类似,数量在十万量级,并且不需要人工提前给出该提示词所对应的理想回复。
五、大模型预训练挑战
模型大小几乎呈指数增长,大模型训练面临新挑战:
- 成本高
(1)GPT-175B一次训练光计算资源消耗1200万美元
a. 采用A100的GPU,算力峰值在312TFLOPS。
b. OpenAI定义的GPT-3 175B模型,算力总需求是3.64E+03 PFLOPS For One Day,不考虑内存限制,即单张A100卡训练 3640*1024 / 312 = 11946 days。
c. 假定我们使用1000张A100,并且能够将算力打满(现实情况是几乎不可能,整体的使用率达到90%已经是优化的很极限的程序了),大约11天可以训练完成。
(2)业界方案:predictive scaling(GPT4核心工作)
六、名词解释:
大模型:一般指1亿以上参数的模型,但是这个标准一直在升级,目前万亿参数以上的模型也有了。大语言模型(Large Language Model,LLM)是针对语言的大模型。
175B、60B等:这些一般指参数的个数,B是Billion/十亿的意思,175B是1750亿参数,这是ChatGPT大约的参数规模。
强化学习:(Reinforcement Learning)一种机器学习的方法,通过从外部获得激励来校正学习方向从而获得一种自适应的学习能力。
基于人工反馈的强化学习(RLHF):(Reinforcement Learning from Human Feedback)构建人类反馈数据集,训练一个激励模型,模仿人类偏好对结果打分,这是GPT-3后时代大语言模型越来越像人类对话核心技术。
涌现:(Emergence)或称创发、突现、呈展、演生,是一种现象。许多小实体相互作用后产生了大实体,而这个大实体展现了组成它的小实体所不具有的特性。研究发现,模型规模达到一定阈值以上后,会在多步算术、大学考试、单词释义等场景的准确性显著提升,称为涌现。
泛化:(Generalization)模型泛化是指一些模型可以应用(泛化)到其他场景,通常为采用迁移学习、微调等手段实现泛化。
微调:(FineTuning)针对大量数据训练出来的预训练模型,后期采用业务相关数据进一步训练原先模型的相关部分,得到准确度更高的模型,或者更好的泛化。
指令微调:(Instruction FineTuning),针对已经存在的预训练模型,给出额外的指令或者标注数据集来提升模型的性能。
思维链:(Chain-of-Thought,CoT)。通过让大语言模型(LLM)将一个问题拆解为多个步骤,一步一步分析,逐步得出正确答案。需指出,针对复杂问题,LLM直接给出错误答案的概率比较高。思维链可以看成是一种指令微调。
Embedding: 这是指将输入的文本(如“an astronaut riding a horse”)转换成一个高维空间中的向量表示。这个过程通常通过一个文本编码器(Text encoder)完成,它可以捕捉和编码文本的语义信息。Embedding向量是一个密集的向量,它将文本的信息压缩进一个固定长度的格式,以便模型可以处理。
Encoder: 在深度学习模型中,encoder通常是一个神经网络结构,它的目的是将高维数据(如图像或文本)转换成一个低维的、密集的表示,即latent空间。这个过程涉及信息的压缩,encoder试图捕捉输入数据的核心特征。在文本到图像的生成模型中,encoder通常指的是将文本信息编码成向量的文本编码器。
Decoder: decoder是encoder的对偶,它的任务是将encoder输出的低维、密集的latent表示重新构建回原始数据的高维空间。在图像生成模型中,decoder负责将latent空间的数据“解码”成可识别的图像。这个过程通常涉及数据的扩张和细化,以生成高质量的输出图像。
ChatGPT:OpenAI发行的基于GPT架构的大型对话式语言模型。
GPT-4-powered eval:使用GPT-4模型评估技术,对其他模型输出进行定性比较。
ChatGPT API:提供外部开发者和应用程序访问ChatGPT功能的接口。
GPT4All:Nomic创建的模型及生态系统项目。
LLaMA:Meta公司开发的大型语言模型,社区泄露后引发创新和开发。
Vicuna:发布与Bard功能相当的13B参数模型的跨大学合作项目。
RLHF (Reinforcement Learning from Human Feedback):通过人类反馈训练AI模型的方法。
LoRA (Low Rank Adaptation):一种通过低秩分解降低更新矩阵大小的模型微调技术。
Chinchilla:可能指提高大规模语言模型效率的技术或模型结构。
Stable Diffusion:一个开源图像生成AI项目,使用生成对抗网络(GANs)产生高分辨率图像。
Dall-E:OpenAI开发的根据文本描述生成图像的AI模型。
Fine-tuning:在预训练模型基础上进一步训练优化特定任务性能的过程。
PEFT (Parameter Efficient Fine Tuning) :参数高效微调技术,用较少可学习参数有效微调模型。
Low rank:指矩阵中非零奇异值数量较少,微调时改变部分参数,保持结构大体不变。
Full-rank updates:更新模型所有参数的方法。
Datasets and tasks:机器学习模型训练所需的数据样本集合和模型需要完成的特定问题。
Distillation:一种模型压缩技术,训练小型神经网络模仿大型网络行为。
Model weights:连接神经网络神经元的参数,训练中学习得到,用于预测。
ULM (Universal Language Model):设计处理、理解、生成不同任务和领域内文本的模型。
Instruction Tuning:优化语言模型以更好理解并执行自然语言指令的过程。
Conversation Tuned:优化语言模型以提高进行自然语言对话的能力。
Alpaca:斯坦福大学发布的项目,对LLaMA模型进行指令调整。
Quantization:减少模型权重位数,以减小模型大小并加速推理的过程。
μ-parameterization (Micro-parameterization):模型规模优化方法,提高性能。
LLaMA-Adapter:使用PEFT技术,对LLaMA模型添加指令调整和多模态能力,快速训练。
ScienceQA:针对多模态科学问答的基准测试,评估模型性能。