大模型系列|垂直大模型的几种训练策略(一)
首先,不知道他们对金融数据是如何清洗和保证数据质量的,个人觉得他们500B的金融数据质量可能是低于500B的通用数据的质量的,这个对模型最后能力的局限有比较大的影响,通用数据和金融数据必须是用同样的标准做了高质量清洗和质量控制的。做sft不是香多了吗?大模型的训练成本,以GPT-3为例:GPT-3需要400-500个A100/年(用400-500张A100训1年),假设不买显卡,租公有云,现在8张
1 目前垂直行业大模型的几种训练策略
- 重新训练:使用通用数据和领域数据混合,from scratch(从头开始)训练了一个大模型,最典型的代表就是BloombergGPT。
- 二次预训练:在一个通用模型的基础上做continue pretraining(继续预训练,二次预训练),像LawGPT就是做了二次预训练的。身边有很多人尝试过这个方案,但普遍反应效果一般(没有SFT来得直接),很有可能是数据配比的问题。
- 基础大模型微调:在一个通用模型的基础上做instruction tuning(sft),这也是现在开源社区最普遍的做法,有大量的工作比如Huatuo,ChatLaw等等。这种做法的优势是可以快速看到不错的结果,但会发现要提高上限比较困难。
- 通用大模型+向量知识库:领域知识库加上通用大模型,针对通用大模型见过的知识比较少的问题,利用向量数据库等方式根据问题在领域知识库中找到相关内容,再利用通用大模型强大的summarization和qa的能力生成回复。
- In context learning类似微调:直接用in context learning的方法,通过构造和领域相关的prompt,由通用大模型直接生成回复。随着业界把context window越做越大,prompt中可以放下越来越多的领域知识,直接用通用大模型也可以对领域问题有很好的回复。
以上对硬件资源+数据 的消耗也是不同的:
- 可以像【重新训练】一样几乎重新训练一遍模型,需要几百张卡
- 也可以像【基础达模型微调】一样用几百条数据做做sft,可能几张卡就够了
目前很多没有技术团队的大模型解决方案,会以【基础达模型微调】+【向量知识库】为主。
2 大模型训练的难度
如果选择【重新训练大模型】那要面临的资源需求变得异常苛刻:
- 数据要求
- 训练的硬件资源要求
2.1 数据要求:配比的重要性
【重新训练的训练数据配比很重要】
BloombergerGPT,就会发现模型的能力其实很差,比通用大模型会差很多。这里面犯的最大的错误就是数据配比,他们应该是用1:1的比例混合通用数据和金融数据。 首先,不知道他们对金融数据是如何清洗和保证数据质量的,个人觉得他们500B的金融数据质量可能是低于500B的通用数据的质量的,这个对模型最后能力的局限有比较大的影响,通用数据和金融数据必须是用同样的标准做了高质量清洗和质量控制的。 其次,1:1的数据比例大概率是一个很差的选择。对于复现chatgpt3.5来说,数据配比应该是OpenAI最核心的秘密和比别人领先最后的地方。和很多OpenAI的人员交流下来,他们在这块做了大量的实验并积累了大量的经验。
【二次预训练】领域数据比例要在15%以下
对continue pretraining来说,如果要让模型不丢失通用能力,比如summarization,qa等,「领域数据的比例要在15%以下」,一旦超过这个阈值,模型的通用能力会下降很明显。
和不少同行交流下来,感觉大家的范围都在10%-15%左右。而且,该阈值和预训练模型的大小,预训练时原始数据的比例等条件都息息相关,需要在实践中反复修正(这个时候就能看出scaling law的重要性了)。 这个结果其实和ChatGPT大概用不到10%的中文数据就能得到一个很不错的中文模型的结果还挺相似的。
这个经验也告诉我们不要轻易用continue pretraing或者from scratch pretraining的方法做行业大模型,每100B的领域数据,需要配上700B-1000B的通用数据,这比直接训练通用大模型要困难多了。
【基础大模型微调】大概领域数据和通用数据比例在1:1的时候还是有不错的效果的
对sft来说,这个比例就可以提高不少,大概领域数据和通用数据比例在1:1的时候还是有不错的效果的。当然,如果sft的数据量少,混不混数据的差别就不太大了。所以说,做pretraining不仅耗资源,需要大量的卡和数据,还需要大量的实验去调数据配比。每次有人和我说通过pretraining的方法做了行业大模型的时候,我通常是不信的。做sft不是香多了吗?
2.2 硬件资源
大模型的训练成本,以GPT-3为例:GPT-3需要400-500个A100/年(用400-500张A100训1年),假设不买显卡,租公有云,现在8张A100包年的价格大概一年80万,一次性走量打五折40万,训练GPT-3的成本大概是2500万人民币。 上面的讨论是按照GPU跑满100%的使用率来计算,实际上GPU永远是有被浪费的时候,浪费的原因可能是:
- 显卡不稳定,可能会挂掉
- 由于显卡容易挂掉,需要做checkpointing,而每次checkpoint的保存可能也需要分钟级别的时间成本
- CUDA core大多数时候也是跑不满的,需要等显存带宽的I/O、 IB网络的I/O等等
2.3 模型炼丹技巧
- 上一条先在在小模型上做实验的方法,又会遇到在小模型上的实验挺好,但一到100B这个级别就会发现各种loss的不收敛/猛增/飞掉的问题。采用的策略可能是回退几步,或者扔掉这一部分数据,然后接着往前走。
- FP32/FP16/BF16的选择问题:更倾向于BF16,因为看起来更好收敛。
- 在硬件的选择上,尽可能用最先进的显卡进行训练,因为:第一,性能上的差异巨大,以A800和H100为例,算力差了六倍,然后通信带宽也差了两倍;第二,在落后的显卡上去训练,需要考虑更多的分布式问题,而将来迁移到高端显卡上的时候,在老显卡上累积的经验能直接用上的不多。
- 并行计算方案的选择:Megatron-DeepSpeed是现在比较SOTA的一个方案。
- 团队组织上:算法研究员们更喜欢用Pytorch去反复调它的模型架构,但最后还需要工程人员把这些调整翻译到Megatron这套框架上,因此现阶段更倾向于算法人员和工程人员大家彼此知识是交融的,坐下来一起去讨论如何去实现。
- 通过人工标注,然后纯做finetune,可以达到八成效果。但是想走的更远的话,那只能靠强化学习。
- 奖励模型(RM)训练叫做reward hacking的现象,开放的决策对于模拟打分环境来说难度太大了,对奖励模型的泛化程度有极其高的要求。最终大概率你的模型学习到了输出一堆没什么用的东西,但是RM分数很高。这就是reward hacking(来自 【大模型训练的一些坑点和判断】 )
- 评估的问题:同时模型的评估也是一个可能会有坑点的地方: 评估做不好 = 费钱费时;所以你做实验慢了,相当于比别人少了GPU
- 过拟合的问题:只用领域数据非常容易过拟合到领域数据上,对OOD的处理会表现的非常差。对各个环节的数据配比要求会很高,最好是在原来规模程度的数据上,增加额外的场景数据,重新走部分流程。但是困难的是,原有数据保持分布的采样,你拿到的模型是个黑盒,别人并没有给你原始的数据分布,更何况海涉及到了惊细的清洗。有可能整体要付出的成本不下于重新塑造一个通用大模型。
2.4 炼丹工程师
大模型训练团队的人员配置:
大模型项目团队和传统的大项目团队最大的不同在于:传统的大项目需要堆一大批人;而大模型的特点是极少量的idea要指挥的动极大的资源,因此团队必然精简,不可能使用人海战术。 根据BigScience的经验,可以总结出几种类型的团队人员配置:
- 数据这块大概就是大数据工程师加少量的法务人员。大数据工程师可能偏数据工作,法务人员可能观察一下比如说数据的 license 是否合理。
- 不超过10个的 NLP 算法工程师,他们更关心模型架构以及训练过程中所有的超参的选型。
- 分布式训练系统的开发工程师,负责把训练框架给支起来,协调、运维和管理这么多机器。
- 可能还需要少量的前后端开发,例如一到两个人,负责做一些数据相关的工具。
大模型岗位需求
大模型时代,企业对人才的需求变了,AIGC相关岗位人才难求,薪资持续走高,AI运营薪资平均值约18457元,AI工程师薪资平均值约37336元,大模型算法薪资平均值约39607元。
掌握大模型技术你还能拥有更多可能性:
• 成为一名全栈大模型工程师,包括Prompt,LangChain,LoRA等技术开发、运营、产品等方向全栈工程;
• 能够拥有模型二次训练和微调能力,带领大家完成智能对话、文生图等热门应用;
• 薪资上浮10%-20%,覆盖更多高薪岗位,这是一个高需求、高待遇的热门方向和领域;
• 更优质的项目可以为未来创新创业提供基石。
可能大家都想学习AI大模型技术,也想通过这项技能真正达到升职加薪,就业或是副业的目的,但是不知道该如何开始学习,因为网上的资料太多太杂乱了,如果不能系统的学习就相当于是白学。为了让大家少走弯路,少碰壁,这里我直接把全套AI技术和大模型入门资料、操作变现玩法都打包整理好,希望能够真正帮助到大家。
-END-
👉AI大模型学习路线汇总👈
大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉大模型实战案例👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉大模型视频和PDF合集👈
观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓
更多推荐
所有评论(0)