大模型概念
大模型概念
cmyang1. 什么是大模型
1.1 大模型
大模型,大语言模型,LLM(Large Language Model)是指⼤型的⾃然语⾔处理(NLP)模型。这些模型通常具有⼤量的参数,能够在海量⽆标签⽂本数据上进⾏预训练,从⽽学习到丰富的语⾔知识。
1.2 GPT
GPT(Generative Pre-trained Transformer)是⼀种基于Transformer架构的⾃然语⾔处理(NLP)模型。
- Generative:概率的⽣成式模型,通过预测⽂字出现的先后概率来输出语句,ChatGPT的回复就是一个字一个字的展示出来的
- Pre-trained:预训练的,先学习语言表达,再执行任务,避免重复训练,通过大量无标签样本数据训练
- Transformer:谷歌开发的深度学习框架,一种神经网络模型,拥有海量的神经元,GPT3拥有1750亿+神经元
1.3 大模型和GPT
GPT本质是⼀种模型范式,当拥有⼤量参数和通过海量训练时,例如GPT 3,则是⼤模型的⼀种。但2018年发布的GPT1不属于大语言,大不大看参数量
1.4 ChatGPT和GPT
ChatGPT是基于GPT模型构建的Web端聊天机器人。目前使用的GPT3.5-turbo和GPT4。
1.5 目前的大模型
- Google Bard
- Meta LLAMA
- 百度文心一言
- 阿里通义千问
- 科大讯飞星火
1.6 OpenAI
- openAI的GPT模型是不开源的,只能使用,API接口都是付费的。
- 中文支持不是很好,GPT中只有很少很少一部分是使用中文训练,大部分都是用英文训练的。在中文对话中,是将中文转英文,生成英文答案后再转成中文提供给用户
2. 开源大模型
开源大模型,免费,可以本地部署。
- 优势
- 更大的微调空间,相比OpenAI,开源模型可以使用更多的微调框架进行微调,可以根据业务完成定制化大模型训练
- 更灵活的应用开发,开源模型可以更加方便的嵌入到AI应用中,也可以搭配其他开源框架一起使用
- 数据更安全,开源大模型可以本地部署,企业数据都是在本地服务器上,使用大模型更加安全
2.1 ChatGLM
- 清华大学团队开发的GLM模型,ChatGLM-6B拥有62亿个参数,是根据智谱AI公司的GLM-130B有监督微调等技术实现,可以使用个人机器上的6G显卡跑起来
- 中英双语模型,按照1:1比例训练了1T的token量
- 支持国产芯片
- VisualGLM-6B
- ChatGLM的多模态大模型
- 支持图像,中英文多模态对话
2.2 LLAMA
Meta公司开源的模型,参数量在7B~65B可调,13B相当于GPT3的性能,训练复杂度较高
2.3 Alpaca
斯坦福大学团队根据LLAMA-7B模型训练而来,性能接近GPT3.5,参数量少,对中文支持较少
2.4 MOSS
复旦大学团队开发的16B模型,训练语料主要是英文,对中文支持较少
2.5 miniGPT4
沙特国安大学团队开发,使用80G显存训练,运行最低要求12G,支持类似GPT4的多模态,可以识别图片。
2.6 GPT4ALL
与GPT4没有关系,4->for,该模型是基于LLAMA-7B模型微调而来,使用GPT3.5-Turbo对话创建语料而来,相当于使用AI来训练了一个AI,对中文支持较少
2.7 Deep Speed Chat
微软推送的大模型训练工具,可以自定义语料和参数,可以使用云服务来训练,可以高效低成本的快熟训练出来一个千亿参数大模型,5.7小时132$就可以训练出一个6.7B模型
3. 提示工程Prompt
提示工程(Prompt Engineering)是通过设计合理的提示来引导大模型生成更准确更相关的结果
4. AIGC
AIGC(AI Generated Content)由AI创建的内容
5. OpenAI模型生态
OpenAI提供了覆盖文本,代码,对话,语音,图像等领域的模型
- 基于GPT3开发的DALL-E V2图像多模态大模型
- Whisper v2-lange model 多语言语音识别和翻译大模型
- Embedding文本嵌入模型,将文本转换为词向量。text-embedding-ada-002模型是基于ada微调而来。Embedding会将文本映射到高维度的向量空间中,使得语义上相近的词或者句子在向量空间中的距离也较近,GPT模型Embedding层通过自回归训练完成,在微调时,也会修改Embedding层
- Moderation模型,审查模型
- Codex大模,基于Github数十亿代码训练而来,可以通过自然语言对话的方式创建代码,当前该模型已经合并到GPT-3.5中
6. 模型微调
6.1 大模型的一般训练过程
(1)预训练(Pretrained)
无监督的学习过程
在大量无标签的数据上进行训练
让模型学习语言规律,词语的含义,语法结构,上下文信息
(2)微调(supervised fine-tuning,简称SFT)
- 是一个有监督的学习过程
- 在预训练好的基座模型上进行特定领域数据的进一步训练
- 对模型的参数权重进行微小调整
- 微调的模型在特定的领域具备更好的能力
- 微调数据使用有标签的样本进行训练
- 门槛和成本较低
6.2 自回归
预训练采用一种名为自回归的方法,在预测输出时,会将之前的所有输出做为输入,然后根据统计规律,结合已经输入的样本,预测下一个词的概率,然后输出概率最大的单词,类似完形填空
- 自回归
- 在预测下一个词时,只会考虑之前的词
- GPT采用自回归训练方式
- 双向自回归
- 在预测下一个词时,会同时考虑之前的词和预测出来的词,通过完整的语句来判断每个词的含义
- BERT和GLM采用双向自回归训练方式
6.3 生成式
生成式与自回归类似都是通过预测下一个单词的概率,生成式可以根据之前的样本概率分布生成下一个词,预测的词会具有一定的随机性
6.4 微调与提示工程
微调和提示工程都可以让模型记住一些信息,从而优化模型的输出结果
- 微调
- 需要进行训练
- 可以让模型永久记住修改的参数
- 提示工程
- 无需训练
- 只能暂时记住一些信息
- 记住的信息有Token上限
6.5 OpenAI模型微调
使用官方提供的Fine-Tuning工具进行微调,上传本地数据,进行微调训练,使用模型。需要支付费用。
6.6 开源微调框架
6.6.1 微调方法分类
Fine-Tuning:全量微调
PEFT:高效微调(SOTA PEFT),部分参数的微调方法
RLHF:基于人工反馈机制的强化方法
6.6.2 PEFT
- LoRA:微软研究院发布,通过修改模型结构进行微调
- Prefix Tuning:斯坦福大学发布,在原有模型基础上,增加一个可被训练的Embedding层,用于给提示词增加前缀,从而更好的让模型理解提示词的意图
- Prompt Tuning:谷歌发布,在原有模型参数中选择一部分作为学习参数,用于创建Prompt前缀
- P-Tuning V2:清华大学发布,基于Prefix Tuning,增加了多个Embedding层,连续的Prompts,在预训练的每一层都增加了prompts,适合GLM模型的微调
6.6.3 RLHF
- 监督微调
- 奖励模型微调
- RLHF训练
7. AI应用开发
7.1 LangChain
可以开发AI应用的开发工具
开发范式
- Models:大语言模型
- Prompt:提示管理
- Chains:大模型操作链
- Memory:交互存储器
- Agents:代理执行器
- Index:文件索引
8. 其他
8.1 Token
每一个模型都有最大token数量显示,token为模型的计数单位,一般的模型都为4K模型,也就是支持最大4096个token,4K的token大约是8000个单词