模型:model
语料库:用于训练模型的数据
大模型的发展
详细信息来源:DataLearner
2022年11月底,ChatGPT横空出世,全球都被这样一个“好像”有智能的产品吸引。随后,工业界、科研机构开始疯狂投入大模型。在2023年,这个被称为大模型元年的年份,有很多令人瞩目的AI产品与模型发布。
ChatGPT最主要的贡献是证明了大力出奇迹的可能性。在证明了这个理论之后,各种AI的发展得以快速推进。
重要大模型发展时间线
二月份
- LLaMA:第一个开源的重要大模型,它推动了整个行业的发展,并且促使我国出现了各种各样的大模型。
- MOSS:复旦开源的大模型,效果一般。
- ControlNet:在图片的局部重绘方面地位非常高,能够保持图片的一致性(风格或人物形象)。
三月份
- Alpaca:重要的里程碑,首次将大模型微调的概念传递给大众,使用简单的方法对LLaMA进行了微调,奠定了微调的基础。
- 其他重要模型:如ChatGLM、GPT-4、文心一言等。AutoGPT是第一个提出Agent概念的模型,能够自动完成任务,如创建网站等。
- MidjourneyV5:图片生成的里程碑。
四月份
- Stable Diffusion XL 1.0:图片生成领域的代表性工作,完全开源。
- Vicuna 13B:学习大模型微调的开源代码首选,详细说明了transformer模型的搭建。
五月份
- QLoRA:微调的一种方式。
六月份
- Runway Gen2:使用AI生成电影的开端。
七月份
- Llama 2和Claude 2新鲜出炉。
八月份
- 没有特别的模型发布。
九月份
- Mistral 7B:英文开源大模型,之前的大部分模型都是基于Llama的。
十月份
- 没有特别的模型发布。
十一月份
- GPTs:较为失败的模型。
- Yi-34B:中文开源大模型,效果较好,许多公司选择它。
- 国内开源大模型:如ChatGLM3=Yi-34B>百川。
- Pika:生成视频,当时很火。
十二月份
- Mixtral 8×7B MoE:MoE模型,嵌入了8个Mixtral模型,共同决策的方法论。
- Phi-2:用更小的模型完成大模型的任务。
大模型的简单原理-训练
简单来说大模型:就是大力出奇迹,就是把一堆数据灌进去,它就形成了你的大脑
大模型的原理可以简化为“数据灌输形成智能”。目前最常用的模型是transformer神经网络,2017年提出,解决了seq2seq的问题并适用于更复杂的场景。OpenAI验证了“大力出奇迹”的理论。)
当我们问一句话的时候,通过模型进行处理,最后输出结果。首先要考虑的上,当我们肉眼看到我们问的问题的时候我们是能理解它的意思的,那么怎么让机器去理解它的意思就是一个问题。
在12年开始就有人研究这个事情,提出词向量(world wect)使用向量去存储,输入的每句话都可以对应在向量上,我们可以根据向量的加速度比较两句话的意思是否相近,可以在向量空间里表示出来。我们的文字通过transformer能让模型理解我们说的是什么意思。
基于transformer打造的模型例如ChatGpt、文心一言、1000b、2000b等只是区别于他们的大小和transformer每层的参数不一样、层数可能会更多等等宏观的设计上。
我们一般用autoregressive的方式去训练transformer,假设我们现在训练的是“我上一段token”这一句话。那么我们假设“上一段“是一个token,这一段token进入transformer之后,希望他能预测下一个单词—token。假设我先给模型的是上一段t,那么我希望模型预测出来接下来的语句是oken。有点像高中初中的完形填空。最后学出来的模型就是大模型。
在这里就有一个问题为什么这样训练出来的模型就是大模型呢?
举例:我们学习英文一般都是主谓宾宾补等等,但是现在还有一种方式就是我们根本不看这些而是去阅读大量的书籍或者看美剧等等,看的多了说的多了读的多了,当其他人用英文给你聊天的时候你自然而然的就知道他下面要接什么,这就是语感。
假设我们现在有已经训练好的模型了
那么假设我现在输入给大模型“大模型简单”,那么大模型会根据这几个字往后面跟什么给我做一个补充。它背后会有一个分布,就是下一个词的概率,例如 吗?-70%概率,死了-20%概率等等词,并且所有单子概率加在一起等于1,所以它是具备随机性的。然后还有一个标准比如遇到一个句号停止生成,或者到达某个标准停止生成。例如限制它的token等等。
因为我们获取结果的方式上在分布里去采样,如果我们想发散率小一点那么我们只需要取前面概率大的,如果我们想发散率高一点那么我们可以取概率小的。所以我们可以在文字生成的时候可以对大模型进行控制也就是gpt等AIP中的参数
⼤模型是如何训练并应⽤到场景中的?
大模型的构造和应用那个环节上最重要的(加粗)
1、数据
2、模型数据(transformer)
3、模型训练(大模型微调 deepspeed对齐)标准化,以后会有一些软件可以直接可视化训练不需要技术
4、benchmark(评测标准用来评测模型训练的好坏)
5、moeory内存(让大模型根据PDF、数据库、企业的数据回答一些问题)
6、搜索技术(在向量数据库中搜索一些相似的,还有一些query优化等等)
7、RAG
如果解决企业中遇到的一些问题
- 基于现有模型(如GPT-4、通义千问)—缺点:大模型越狱可能会胡言乱语
- App通过prompt去限制访问GPT4
- App通过prompt先去向量数据库中做查询然后跟prompt合并,在请求GPT4
- Agent 就是让大模型可以按照我们任务的描述一步步生成我们想要的东西最后合并
- 训练私有模型
如果训练私有化模型
假设我们现在要构建一个保险领域的大模型–从0开始
预训练(Pre-training)
- model Design:
- 确定模型的规模(Size)
- 设计模型的结构,包括层数和每层的架构(architecture)
- 构建词库,尤其是保险领域的术语
- 决定模型是中文模型还是英文模型
- 确认应用场景
- 明确模型需要具备的能力
- 目标是垂直领域(保险领域),而非通用领域
- 设定目标:使模型在保险领域的表现超越或达到GPT的水平
- 设计评测标准(Benchmark Design):
- 设计评测标准,用于确保和验证模型的能力
- 数据设计
- 什么样的数据能够满足模型的应用场景呢(学什么的数据)
- 中文占多数
- 英文少量
- 数据量(语料库处理完之后剩下大概 1T token—> 1000b token —>1w亿的token)
- 为了抽取这些token我们要大概多少数据Row->Token
- 100G -->理想情况能抽取10B token
- 数据配比 都是玄学必须实战
- 重要数据比例最大 但是占用到底上多少需要测试
- 垂直数据和通用数据之间的数据配比 (一般通用比垂直稍微多一点点)
- 数据源配比
- 金融领域的数据 vertical
- 保险领域的数据 vertical
- 通用领域的数据 --通用的知识 general vertical
- 举例:通用数据奠定了基本能力(本科),专业领域数据奠定了入职前的的能力(硕士),然后才能开始工作 ---->gap
- 什么样的数据能够满足模型的应用场景呢(学什么的数据)
- 数据清洗
- 重复数据要干掉
- 符号等等
- 语料库最后转行为 100B Token
- 模型预训练
- 使用100B Token进行模型学习,得到基础能力模型(Pre-trained model)
- 例如,ChatGLM-7B-Base是一个预训练模型
- 预训练需要至少200-300张GPU卡
- 初步训练后的模型能进行基本对话,但效果有限
- 相当于一个刚出学校的大学生什么都会,但是有不太会,产出不了一些价值
- model Design:
微调FineTune LLM-Base(底座 预训练模型) LLM-Chat(微调过的模型)
- 金融本科生(PreTrain) + 能力(跟客户的沟通能力,保险常见问题回答)FineTranel----->产出价值 (保险领域智能客服)
- FineTranel最主要要了解从PreTrain到保险领域智能客服 到底需要哪些东西
- 沟通
- General 沟通 —> 收集大量对话
- Vertical 沟通 ----->保险领域对话
- 常见问题回答 ---->常见问题解决方案
- 将上面的对话–业务场景相关 等等多样化数据 将不同场景都要覆盖到 Diverse数据做成Date<input,output>
- 将Date进行数据清理 然后进行训练
- 使用LoRA的方式用最少的数据出最大的成功进行训练,不影响第一次训练
- instruction following能力 能按照用户的要求完成一些任务
- 沟通
- 模型的推理inference
对齐Alignment (培养规范人才) ->human preference
微调完毕后,模型可能仍会产生不符合预期的输出。
Hallucination(幻觉):模型生成虚假或不相关的内容。
Safety(安全性):确保模型不会生成有害或不适当的内容。
需要通过对齐技术(如SFT,Supervised Fine-Tuning,即监督微调)进一步训练模型,使其能够按照预期解决问题。
使用强化学习技术(如PPO,Proximal Policy Optimization)DPO进行对齐,确保模型按规范处理问题。
PreTrain(本科未毕业)---->SFT(Superxxxxxx)培训具备能力解决实际问题---->Alignment具备了能力但是不按规范办事
得到一个最终的通用金融Model
开发
- 将公司的专属文档切分为trunk,然后存在一个向量数据库,为我们的大模型进行服务
- 产品文档
- 规范文档
- 造价
- 等等
- 将公司的专属文档切分为trunk,然后存在一个向量数据库,为我们的大模型进行服务
应用
推荐资料