大模型模式
- 基础大模型
基于大量数据训练而成,基于历史 token 预测概率最大的 next token,拥有“对话”的能力,例如 GPT。 - 微调大模型
基于基础大模型微调而成,需要输入输出训练集,例如 ChatGPT。- 人工标注,准备有监督训练数据集(高质量 QA 对较多)。【提问:什么是香蕉 => 回答:香蕉是芭蕉科...】
- 通过监督训练 GPT 获得 SFT(Supervised Fine-tuning) Model
- 引入奖励机制,通过 RLHF(Reinforcement Learning from Human Feedback) 获得 reward model。完成了对前面模型结果的评审、筛选,ChatGPT 主流方式是标注排序。【提问:什么是香蕉 => 重复生成回答:A 一种水果 B.装饰品 C.猴子爱吃的食物 D.黄色的可食用的... => 人工排序:D-C-A-B => 利用排序结果训练奖励模型】
- 基于奖励模型结果进行强化学习,常用 PPO(Proximal Policy Optimization 近端策略优化) 算法【重新选个问题:什么是苹果 => 强化学习模型生成回答:苹果是一种红色的酸甜的可食用的... => 通过奖励模型打分 => 根据分数持续迭代模型】
微调大模型需要的数据量相比于基础大模型小得多,ChatGPT 使用了 4W+ 标注数据
大模型获取
- 闭源
- ChatGPT(MS 支持 OpenAI 开发的产品)
- Bard(基于 google LaMDA 模型开发的产品)
- 开源
模型 | 训练数据量 | 参数量 | 备注 |
---|---|---|---|
LLaMA | 1-1.4T tokens | 7-65B | 基础大模型,Meta 意外开源 |
Alpaca | 1-1.4T tokens | 7B | 斯坦福在 LLaMA-7B 基础上指令调优获取,8张80G的A100训练3h |
Vicuna | 1-1.4T tokens | 13B | 羊驼🐑在 LLaMA-13B 基础上通过对话类监督数据微调获取,序列长度从 512 扩展到 2048,通过梯度检测和 flash attention 解决内存问题,达到 ChatGPT 90% 的效果,90%+ 情况下超过 Aplaca 的效果 |
BLOOM | 1.61TB文本 | 176B | 支持 46 种自然语言和 13 种编程语言 |
大模型成本
模型性能的三大影响因素: 计算量、数据集量、参数量
。
服务时要考虑的因素:任务难度、部署成本、推理速度
。难度越大的任务需要能力越强的模型,越大的模型部署成本越高,越大的模型推理速度越慢(考虑工程优化降低精度 or GPU 硬件提升)。
LLaMA 的思路是通过降低模型参数量、增加训练数据量来降低模型推理成本,以此来保证模型效果。
大模型 Prompt
组成:
- Instruction 指令,希望模型处理的具体任务
- Context 上下文,提供背景信息,引导模型做出更好的反应
- Input Data 输入数据,提供一些举例帮助模型更好的反应
- Output Indicator 输出说明,提供一些举例或者描述需要什么样的输出
原则:
CRISPE 是首字母缩写,分别代表以下含义:
- Capacity and Role(能力与角色):您希望模型扮演怎样的角色。
- Insight(洞察):背景信息和上下文。
- Statement(陈述):您希望模型做什么。
- Personality(个性):您希望模型以什么风格或方式回答您。
- Experiment(实验):要求模型为您提供多个答案。
工具:
- LongChain Prompt Templates
- 模型 Models
LongChain 提供模型管理器功能,内部模型包括 LLMs 语言模型、ChatModels 聊天模型、Text Embedding Models 文本嵌入模型等 - 提示词 Prompts
根据不同任务建立基础模板,按照模板 + 指定入参半自动化优化 prompt,常见 LLMs 语言提示词模板、聊天提示词模板、示例选择器、输出解析器 - 索引 Index
将本地知识库信息融入到 Prompts 中可以将本地知识融入大模型,这种方式成本低,将知识库切割成多个 chunk 并建立索引,检索召回部分知识块再送入大模型,索引能加快文档块的结构化检索,可以训练模型基于知识库的答疑【document loader => text splitters => vector store => retrievers,数据源加载为数据对象,进行文本分割满足最大 token 的要求,文档再存储为向量结构,最后用于文档数据的检索】 - 存储 Memory
默认每次检索是独立的,但一些场景下上下文很重要,比如聊天,LongChain 提供了记忆工具:短时和长时记忆 - 链 Chains
链支持将多个组件组合创建一个统一的应用程序,例如创建一个链接收用户输入,通过 Prompt Template 格式化用户输入为提示词,输入模型获得结果 - 代理 Agents
根据用户输入和场景智能代理,提供任务分解能力,常见动作代理 action agents,一次执行一个动作,根据结果决定下一步操作;计划-执行代理 plan-and-execute agents,先决定一系列要执行的操作,根据判断逐个执行
- 模型 Models
大模型应用
- 知识库融入
- 低资源模型微调:Freeze 参数冻结;P-Tuning 优化 Embedding 方法;LoRA 利用升降维矩阵降低训练成本
- In-context Learning/Prompt Optimization:LlamaIndex 先检索再整合;LongChain 将本地知识文档拆分索引存储
- 插件应用
- 聚合第三方工具,将
行动->观察结果->思考->决定下一步行动
打通循环工作,例如 AutoGPT
- 聚合第三方工具,将