大模型概念

1. 什么是大模型

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个单词