- 2023-04-18: 其实众多微调方法或框架使用技术都类似,且有一半小羊驼模型都微调自LLaMA,决定模型质量的因素主要是数据量、数据质量、算力成本,如果要制作自己专业领域的羊驼模型,个人认为应以LLaMA作为预训练模型,收集尽可能多的中英文语料(假设你的模型要部署到中文生产环境),对LLaMA做再训练,这一步如果效果不好,可以考虑用ChatYuan替代,然后用Task Tuning和专业领域数据进行微调,最后收集指令微调数据,并进行指令微调,LMFlow和DeepSpeed-Chat都可以成为很好的微调框架
- Scaling (Training compute, FLOPs): 代表模型的规模,等于 α * model_size * training_tokens,α为系数,model_size为模型参数量,training_tokens为数据量(1000个tokens差不多为750个词语)
- Scaling laws: 如果你希望提升模型的表现,就必须增大Scaling (模型大小,数据大小,计算资源大小),open ai 的gpt-4技术报告显示,模型的表现与训练时间的关系是可预测的,也就是说,在模型刚开始训练时,就可以知道模型最终训练结束的表现
- 有137种能力是大Scaling才有的,而小Scaling没有,见博客
- few-shot prompting(few-shot prompting是指给模型的输入中加入一些与当前模型要做的任务相似的例子)在小Scaling上没有什么用,但是在大Scaling上有用
- RLHF对小Scaling是有害的,但对大Scaling是有益的,见论文
- The Inverse Scaling Prize提出了11种任务,这11种任务对于一般的大语言模型来说,都是随着Scaling增大,效果反而会变差的。Inverse scaling can become U-shaped发现如果使用chain-of-thought prompting(简单来说就是在给模型的提示中加入推理,让它‘分步思考’)可以使部分任务从随着Scaling变大一直变差,变为表现成U型,意思是先变差后变好
- 2023-03-17 链家科技(Ke Technologies)发布BELLE,目前已发布了ChatBELLE App一个支持MacOS的APP,已发布7B模型
- 2023-03-23 Facico(Facico是他github的名字,可以确定的是他是个**人,其他没人肉到任何信息)发布Chinese-Vicuna,使用BELLE和Guanaco数据作为训练数据,开源7B、13B模型,提到之后会增加多轮对话数据
- 2023-03-25 李煜东(人肉了下,发现是深圳大学博士生)发布Chinese-ChatLLaMA,作者找来中英平行语料、中文维基、社区互动、新闻数据、科学文献等语料再进行预训练,作者还在持续收集更多中文语料数据,语料数据都开源,且还开源了33B和65B的大模型
代码仓库
是否开源代码 |
是否开源训练数据 |
是否开源模型参数 |
训练数据大小 |
模型参数大小 |
训练设备 |
训练时长 |
是(训练代码没有开源) |
是 |
是 |
1T、1T、1.4T、1.4T |
7B、13B、33B、65B |
65B用2048张A100 |
65B用时21天 |
- 13B版在很多测试上优于GPT3(175B)
- 65B版与许多当时的最优模型相比都具有竞争力,比如Chinchilla-70B和PaLM-540B
- 核心**是说同样预算的情况下,用小模型+大量数据,可以得到比大模型+少量数据更好的效果,虽然训练时间更长
代码仓库
是否开源代码 |
是否开源训练数据 |
是否开源模型参数 |
训练数据大小 |
模型参数大小 |
训练设备 |
训练时长 |
是 |
是 |
是 |
43M |
7B、20B |
16 * A100 |
未知 |
代码仓库
是否开源代码 |
是否开源训练数据 |
是否开源模型参数 |
训练数据大小 |
模型参数大小 |
训练设备 |
训练时长 |
仅开源微调代码 |
否 |
是 |
1T |
6B |
未知 |
未知 |
代码仓库
是否开源代码 |
是否开源训练数据 |
是否开源模型参数 |
训练数据大小 |
模型参数大小 |
训练设备 |
训练时长 |
是 |
是 |
是 |
52K |
7B、13B |
7B用8张A100 |
7B用时3小时 |
- 数据来源特别有趣,是由gpt-3.5(text-davinci-003)生成的训练数据,方法改进自于论文self-instruct paper,该论文开源代码
- 该研究提到,它获取数据的成本(gpt-3.5生成)小于500美元,云服务器成本小于100美元(对于大多数云服务器商来说)
代码仓库
是否开源代码 |
是否开源训练数据 |
是否开源模型参数 |
训练数据大小 |
模型参数大小 |
训练设备 |
训练时长 |
是 |
是(和Alpaca训练数据相同) |
是 |
52K |
7B、13B、33B、65B |
7B用1张RTX4090 |
7B用时几个小时 |
代码仓库
是否开源代码 |
是否开源训练数据 |
是否开源模型参数 |
训练数据大小 |
模型参数大小 |
训练设备 |
训练时长 |
是 |
是 |
是 |
70k |
7B、13B |
8 * A100 |
1天 |
- Vicuna也是一个在LLaMA的基础上微调过来的模型,微调方式改进自Alpaca,主要有以下不同:1.Alpaca输入的上下文长度是512,改为2048;2.调整训练损失为多轮对话,并单独计算每个聊天机器人输出的微调损失;3.有使用压缩显存的计算和减少训练成本的技术,见博客
- 对话数据来源于ShareGPT.com,这是一个gpt用户分享自己聊天对话的网站,又一个不错的数据源
- 作者提到他们的7B模型大概花费140美元的训练费,13B是300美元
- 作者提到自己的13B模型已经达到了chatgpt 90%的能力水平,且和Alpaca对比生成的结果内容更丰富,结构更准确,但是和其他‘小’大模型一样,推理能力和数学能力不太行
- 提到一个OpenAI的API moderation可以用来过滤到用户的不恰当输入
- 提供了一个在线与大语言模型对话的demo,里面有Vicuna、Koala、Dolly、ChatGLM、Alpaca、LLaMA这几个模型
代码仓库
是否开源代码 |
是否开源训练数据 |
是否开源模型参数 |
训练数据大小 |
模型参数大小 |
训练设备 |
训练时长 |
是 |
否 |
是 |
未知 |
未知 |
未知 |
未知 |
- ChatYuan-large-v2应该是微调自此团队的预训练模型PromptCLUE,该预训练模型开源了代码、数据和参数(base版),数据使用1.5万亿中文token,亿级中文任务数据上完成训练,训练任务超过150+
- 该项目开源了他的微调代码,和微调输入的数据格式,使用起来比较方便,说的技术路线改进自ChatYuan-large-v1,没有找到ChatYuan-large-v1的相关信息
- 看了一下demo效果,感觉很不错
代码仓库
是否开源代码 |
是否开源训练数据 |
是否开源模型参数 |
训练数据大小 |
模型参数大小 |
训练设备 |
训练时长 |
是 |
是 |
是 |
15k |
12B |
8 * A100 |
未知 |
- Dolly是Pythia-12B经过指令微调得到的
- 数据都是指令数据,数据源主要是wiki和Databricks的数千名员工生成的(可能数据质量高)
- 在句法复杂的提示、编程问题、数学运算、事实错误、日期和时间、开放式问题回答、幻觉、列举特定长度的列表、文体模仿、幽默感等方面表现不佳
代码仓库
是否开源代码 |
是否开源训练数据 |
是否开源模型参数 |
训练数据大小 |
模型参数大小 |
训练设备 |
训练时长 |
是(训练代码没有开源) |
是 |
是 |
预训练20G,指令精调2M、3M |
7B、13B |
16张A100 |
未知 |
- 在LLaMA的基础上再做预训练(Pre-training)并使用Alpaca指令精调(Instruction Fine-tuning)得来,特点是扩充了中文词表,同样使用LoRA技术
- 开源了两个版本,一个是基于预训练的中文LLaMA大模型,另一个是经过指令精调的中文Alpaca大模型
- 可用个人电脑cpu进行本地部署
- 作者说LLaMA模型本身中文语料就不充分,Chinese-LLaMA-Alpaca的训练数据量少,且训练时长不够,存在中文训练不充分的问题
- 提到并使用一个中文语料库
代码仓库
是否开源代码 |
是否开源训练数据 |
是否开源模型参数 |
训练数据大小 |
模型参数大小 |
训练设备 |
训练时长 |
是 |
是 |
是 |
未知 |
作者训练的都是LLaMA羊驼:7B、13B、33B、65B |
未知 |
未知 |
- 该项目是一个高效、便利的微调框架,支持所有HuggingFace中的decoder models(比如LLaMA、T5、Glactica、GPT-2、ChatGLM),同样使用LoRA技术
- 提供了作者训练并部署到线上的LLaMA羊驼模型给人免费试用
- 目前支持三种微调方式Task Tuning(加强模型在专业领域,比如医疗,上的表现)、Instruction Tuning(就是指令精调,让模型学会遵循命令行事,我们常说的利用提示语prompt调教模型就是用指令精调得到的功能),Parameter-Efficient Tuning(就是HuggingFace的PEFT)
- 作者运用Task Tuning(enhance a language model’s proficiency in a particular field)训练出来的LLaMA羊驼模型和ChatGPT、InstructGPT-175B等模型在医疗领域比了比,效果确实不错,并在MMLU(Massive Multitask Language Understanding)上测试了一下,发现在非领域知识回答上性能也没有太多下降
代码仓库
数据处理代码仓库
是否开源代码 |
是否开源训练数据 |
是否开源模型参数 |
训练数据大小 |
模型参数大小 |
训练设备 |
训练时长 |
是 |
是(用的都是开源数据) |
是 |
未知 |
7B、13B |
8 * A100 |
6小时 |
代码仓库
是否开源代码 |
是否开源训练数据 |
是否开源模型参数 |
训练数据大小 |
模型参数大小 |
训练设备 |
训练时长 |
否 |
是 |
否 |
未知 |
未知 |
未知 |
未知 |
- 微软研究院发布的小羊驼模型,目前只开源了数据,数据是中英双语的,持续关注中
- 除了使用self-instruct tuning训练了一个小羊驼,还生成了一些比较数据(来自GPT3.5、4、OPT1.3B)来训练了一个打分模型(reward models),用这个打分模型去量化GPT4和小羊驼的差距
代码仓库
是否开源代码 |
是否开源训练数据 |
是否开源模型参数 |
训练数据大小 |
模型参数大小 |
训练设备 |
训练时长 |
是 |
否 |
否 |
未知 |
未知 |
未知 |
未知 |
- 微软发布的微调框架,用DeepSpeed实现了论文InstructGPT中的监督微调、奖励函数模型微调、强化学习人类反馈(Reinforcement Learning Human Feedback, RLHF),作者说微软研发的DeepSpeed可以显著加速训练(可达15倍速度),并且还可以显著加速推理,做到高吞吐量和低延迟
- 目前支持以下预训练模型:
正在开发对LLaMA的支持
GPU SKUs |
OPT-1.3B |
OPT-6.7B |
OPT-13.2B |
OPT-30B |
OPT-66B |
Bloom-175B |
1x V100 32G |
1.8 days |
|
|
|
|
|
1x A6000 48G |
1.1 days |
5.6 days |
|
|
|
|
1x A100 40G |
15.4 hrs |
3.4 days |
|
|
|
|
1x A100 80G |
11.7 hrs |
1.7 days |
4.9 days |
|
|
|
8x A100 40G |
2 hrs |
5.7 hrs |
10.8 hrs |
1.85 days |
|
|
8x A100 80G |
1.4 hrs($45) |
4.1 hrs ($132) |
9 hrs ($290) |
18 hrs ($580) |
2.1 days ($1620) |
|
64x A100 80G |
31 minutes |
51 minutes |
1.25 hrs ($320) |
4 hrs ($1024) |
7.5 hrs ($1920) |
20 hrs ($5120) |
以上RLHF训练使用了135M tokens的数据,由6个开源数据集组成rm-static、full-hh-rlhf、synthetic-instruct-gptj-pairwise、rlhf-reward-datasets、webgpt_comparisons、SHP
xxx