主要针对近期开源Chat类模型进行数据集收集、模型效果调研、论文实现初探。
几个模型排行榜:
SuperCLUE琅琊榜和UC伯克利LLM排行榜包含模型对战排名,即通过志愿者同时对两个匿名模型聊天,并投票产生(模型两两PK)
模型名称 | 基座模型 | 能力说明 | 优缺点 | 训练预期需要资源 | 微调数据集 | 论文中的评估结果 | github | 论文 | 训练中值得关注 |
---|---|---|---|---|---|---|---|---|---|
Guanaco-65B | LLaMA | 65B能达到ChatGPT的99%表现(人工和GPT4评估) | 24hours fintune 65B on a 48GB GPU | 论文对比了8个数据集: OASST1,HH-RLHF ,Alpaca,self-instruct, unnatural instructions,FLAN v2,Chip2, Longform 最后选择OASST1中top reply的9k条数据微调得到Guanaco |
除13B尺寸上的Vicuna表现更好外,Guanaco表现最优 | 相关代码 | 相关论文1 | Train on target优于Train on source and target | |
Vicuna-13B | LLaMA | ChatGPT的92%(GPT4评估)最新模型已更新迭代到V1.3版本 | FSDP on 8 A100 GPUs in one day | 从ShareGPT 清洗出70K user-shared ChatGPT conversations(ShareGPT目前已关闭开源,仅有用户提前下载的部分数据,数据清洗代码) | 评估数据集为80条 vicuna test,GPT4进行评估打分 | 相关代码 在线demo |
官方博客 | 多轮对话只计算模型输出的loss | |
Alpaca | LLaMA | 约ChatGPT的70% | chat类模型中比较早期的做法 | 在4 A100 80G GPUs in FSDP mode微调7B | Self-instruct from davinci-003 API (52k samples) | 相关代码 | 官方博客 | ||
LLaMA_GPT4-7B | LLaMA | 好于Alpaca-13B、逊于Vicuna-13B | 进行中文微调:Alpaca的52k instructions 翻译成中文后用GPT-4生成answer | 16*V100 | 使用GPT-4根据Alpaca的52k instructions 生成新的answer | 中文表现 | 同Alpaca代码 | 相关论文1 | |
Koala | LLaMA | 两类数据: 1、ChatGPT Distillation Data:SharGPT中删除非英文的,保留30k条;Human ChatGPT Comparison Corpus(HC3) 2、Open Source Data:Open Instruction Generalist(OIG)、Alpaca、HH-RLHF、OpenAI WebGPT、OpenAI summarization |
相关代码 数据处理代码 |
官方博客 | 论文用ChatGPT Distillation Data微调了Koala-Distill,用所有数据微调了Koala-All,结果显示在两个验证数据集上,Koala-Distill结果都好于Koala-All(虽然差距不明显) | ||||
SelFee | LLaMA | SelFee-13B约ChatGPT的103% | 自我反馈提升回答效果 | 178k 数据包含自我反馈和修订数据:1、Alpaca 52k(根据instructions让ChatGPT生成feedback数据) 2、Math collection 26k 3、Code collection 30k 4、FLAN collection 16k 5、ShareGPT 55k(去除非英语) |
用80条 vicuna test评估 | 同Alpaca代码 在线demo |
官方博客 | 多种训练数据、自我反馈链的模式 | |
BELLE | bloom、LLaMA | 约ChatGPT的92%(排除code和math) | LLaMA基座模型对中文进行二次预训练微调数据集几乎全部为中文 | 8卡A100 80G | 200万中文+Alpaca的5万英文(均由ChatGPT产生)BELLE-13B基于LLaMA,训练数据达400万 | LLaMA-EXT做了中文词表扩展并在3.5B中文token上二次预训练测试集下载地址:1k中文评估测试集,可用ChatGPT自动打分 | 相关代码 | 相关论文1 相关论文2 |
对比不容模型尺寸、全量微调、LoRA、不同微调数据量的效果结论:全量FT>LoRA;微调数据越多越好;模型尺寸越大越好 |
ChatGLM-6B | GLM130B | 基座模型在中英(对半)语料上训练 | 1T tokens的中英双语训练 | 参与用户与两个匿名模型同时聊天,并投票哪个更好,排名持续更新中 | 相关代码 | GLM-130B相关论文 | |||
Linly-ChatFlow | Linly OpenLLaMA-13B(从头开始预训练,100G中英语料,Apache 2.0开源) | 另有基座模型Linly-Chinese-LLaMA-33B(最大的开源中文LLaMA模型,二次预训练30G,无中文词表扩充) | 1.BELLE: 150万数据,175个指令seed 2.pCLUE: 120万训练数据,73个Prompt 3.CSL: 40万中文论文元数据,26个Prompt 5.GuanacoDataset: 多语言指令数据集 6.Chain-of-Thought: 中英文思维链数据 7.news_commentary: 中英文翻译数据 8.firefly: 23个中文NLP任务集合 | 相关代码 在线demo |
|||||
Chinese-Alpaca-13B | Chinese-LLaMA(LoRA权重地址) | LLaMA在120G中文语料上的二次预训练、扩充中文词表(LoRA) | 基于LoRA:基座模型训练120G通用中文语料Chinese-Alpaca在4.3M中文指令上微调 | 相关代码 | 相关论文 | ||||
AquilaChat | 智源Aquila:基于LLaMA框架从零开始训练 | 中文语料来自智源多年累积的中文数据集,将开源33B版本 | 基座模型训练5800亿tokens | 相关代码 | |||||
-- | baichuan-7b:基于LLaMA框架从零开始训练 | 在MMLU、C-Eval上达到同尺寸模型最优效果 | 基座模型训练1.2万亿tokens | 相关代码 | |||||
Firefly流萤 | bloom | 国内LLM微调项目 | 裁切词表大小(适应中文) | 相关代码 | |||||
WizardLM | LLaMA | 能力接近chatgpt,模型更新迭代到V1.1版本 | 包含7B、13B、30B和即将推出65B | 使用更为复杂的指令训练模型,复杂指令通过LLMs自动生成,生成过程中不断对instruction种子增加问题的广度和深度 | 相关代码 | 相关论文 | |||
OpenChat | LLaMA | 能力接近chatgpt,模型更新迭代到V2版本 | v1版使用约6K条GPT-4生成数据,V2版使用约80K清洗后的ShareGPT数据微调 | 相关代码 |
模型名称 | 基座模型 | 邻域实现方法 | 相关论文 | 相关代码 |
---|---|---|---|---|
Lawyer LLaMA | LLaMA | 1、通用语料预训练LLaMA,增强中文能力 2、中文法律语料continual training 3、指令微调:通用指令(Alpaca-GPT4,中英文);法律指令微调(ChatGPT生成法律考题、咨询等答案、检索法条后让ChatGPT生成答案) |
相关论文 | github地址 |
Bloomberg GPT |
其他国产开源模型:
- CPM-Bee-10B:百亿参数、中英双语基座模型
- Chatyuan-large-v2
- baichuan-7B、13B
- InternLM
包含65B、33B、13B、7B等尺寸
缺少中文token,解决措施:
-
a) 扩充词表、二次预训练,相关模型:Chinese-Alpaca-13B(LoRA)。其他BELLE对LLaMA做了词表扩充和二次预训练,但是并没有开源调整后的基座模型;
-
b) 从头训练,相关模型:Linly OpenLLaMA-13B(预训练30亿tokens)(已开源)、智源Aquila在中英语料上进行从头训练,目前开源基座模型7B,将开源33B、baichuan-7B(预训练1.2万亿tokens)在C-Eval和MMLU上都取得同尺寸最好的效果
包含130B(申请下载链接)、10B等尺寸(10B和130B应该是两个项目,10B是在智源WUDAO数据集上进行的预训练,两模型并非同一个模型的不同尺寸)
目前,智谱的ChatGLM已更新到V2版本,并且开放api及多尺寸模型(收费)
在中文语料上预训练,缺少中间尺寸的开源模型
多语言模型,词表太大,需要做裁切(Firefly项目有进行裁切),并且也没有7B和175B中间的模型尺寸
数据质量
模型 | Alpaca < | LLaMA_GPT4 < | Vicuna < | SelFee <= | WizardLM | ChatGPT |
---|---|---|---|---|---|---|
微调数据集 | self-instruct from davinci-003(52k) | Alpaca的52K条指令由GPT4生成答案 | ShareGPT(用户提问,ChatGPT生成答案,用户主动分享) | 更多数据集,其中包含ShareGPT和Alpaca 52k,Alpaca同样保留指令,让ChatGPT重新生成基于自我反馈的答案 | ChatGPTGPT生成更为复杂的指令,不断增加指令的广度和深度 |
其中最大的差异就是微调数据集的质量,Vicuna-13B使用ShareGPT,用户分享的和ChatGPT聊天的数据,Alpaca使用52k ChatGPT self instruct得到的数据,而LLaMA_GPT4使用52k GPT-4 self instruct得到的数据。得出结论,微调数据集中有人参与的由于GPT-4,优于ChatGPT。
所以在后续Chat模型中,不少模型使用了有人工参与介入的数据集,主要有:HH-RLHF、OASST1、databricks-dolly-15k、ShareGPT、HC3、openai/summarize-from-feedback等。
然而,在Koala模型实验中,他们训练了两个模型:Koala-Distill和Koala-All,其中Koala-Distill只用了ChatGPT相关数据集,反而在两个验证数据集上优于Koala-All(提升不多)。推测可能得原因,ChatGPT生成的数据更符合验证集数据分布,另外有些开源NLP数据集虽然也可以转化成QA进行微调,可能和用户真正聊天的分布有差异。
经过简短的调研,目前开源chat模型在sft微调阶段使用的数据集有不少重合的数据,可能仅靠sft数据,目前这些模型已经到达天花板了?但是在另外一些方面,不少模型也做了尝试,比如QLoRA可以用40G显卡微调65B模型,这样可以通过模型尺寸来突破上限。还比如SelFee在微调数据中引入self-feedback等机制。
CoT、self-feedback、Reason-Act、autoGPT的加入
SelFee使用Alpaca 52k instructions让ChatGPT生成带自我反馈的语料进行微调,并在推理阶段同样引入反馈链条,取得了不错的效果。
数据集 | 数据集用途 | 原始来源 | 其他补充说明 |
---|---|---|---|
OASST1 | 微调Guanaco | 下载地址 | 10万条对话树、35种语言、人工生成、人工标注(1万多志愿者) |
HH-RLHF | Guanaco、RedPajama | 下载地址 | Anthropic的RLHF数据,可以微调,也可以训练reward model |
databricks-dolly-15k | Dolly2、RedPajama | 下载地址 | Databricks员工众包生成的提示/回答 |
ShareGPT | 微调Vicuna、SelFee | 数据关闭开源(用户提前下载后分享1)(用户分享下载2) | 少量中文,个人用户分享和ChatGPT的对话 |
Alpaca | 微调Alpaca等多模型 | 下载地址 | 英文,52k self instruct数据 |
Alpaca-3.5-zh | 中文Alpaca | 项目地址 | ChatGPT翻译的52k Alpaca |
Alpaca_gpt4_data | 微调LLaMA_GPT4 | 下载地址 | 根据Alpaca的52K instructions用GPT4生成answer(中英两版),另外下载地址中还包含GPT4对3个模型生成答案的排序打分数据,可以训练reward model |
AQuA | 微调Selfee | 下载地址 | 数学数据集 |
Flan collection | Flan-PaLM、Selfee | 下载地址 | 包含5个数据集 |
Linly instructions | 微调Linly-ChatFlow | 下载地址 | 1.BELLE: 150万数据,175个指令seed 2.pCLUE: 120万训练数据,73个Prompt 3.CSL: 40万中文论文元数据,26个Prompt 5.GuanacoDataset: 多语言指令数据集 6.Chain-of-Thought: 中英文思维链数据 7.news_commentary: 中英文翻译数据 8.firefly: 23个中文NLP任务集合 |
BELLE 10M | 微调BELLE、Linly | 下载地址 | 持续开放的由ChatGPT产生的数据集 |
Firefly_train_1.1M | 微调Firefly | 下载地址 | 收集23个常见中文数据集,对于每个任务,由人工书写若干种指令模板,保证数据的高质量和丰富度,数据量为115万 |
awesome-open-instruct-data-for-chinese | 中文指令数据集合集 | 下载地址 | 包含多个中文指令数据集 |
BAAI-OL-CC | 微调Aquila | 下载地址 | 智源通过众包,人工标注的10k条中文对话数据 |
summarize-from-feedback | 微调koala | 下载地址 | Openai的90k英文数据 |
HC3 | 微调koala | 下载地址 | 中英文,同一个问题,对比human vs chatgpt的答案 |
openai/WebGPT | 微调WebGPT、Koala | 下载地址 | openai开源,微调WebGPT |
OIG | 微调Koala | 下载地址 | LAION发布的~43M instructuons数据集 |
COIG | 微调Aquila | 下载地址 | 中文,智源开源,中文的OIG |
SelFee 178k | 微调SelFee,使用自反馈 | 下载地址 | 纯英文数据,用ChatGPT生成自我反馈和答案,包含数学等其他数据集 |
OpenChat ShareGPT4 | 微调OpenChat | 下载地址 | 英文,经过清洗的ShareGPT |
airoboros-gpt4-1.2 | 微调airoboros | 下载地址 | GPT4经过self-instruct生成的数据 |
chinese_chatgpt_corpus | 下载地址 | 中文,包含百科、知道、对联等问答数据(数据量5G) | |
Zhihu | 知乎问答数据 | 下载地址 | 你懂的 |
数据集 | 数据集用途 | 原始来源 | 其他补充说明 |
---|---|---|---|
OpenLLaMA预训练语料 | 中英预训练语料100GB | 下载地址 | 20G中文语料、10G平行语料、70G英文语料 |
RedPajama-Data | 复刻LLaMA预训练语料(1.4T tokens) | 下载地址 |
数据集 | 数据集简介 | 原始来源 |
---|---|---|
BAAI-FewRel | 英文信息抽取数据 | 下载地址 |
IE INSTRUCTIONS | 英文信息抽取数据,训练instructUIE | 下载地址 |
DuIE | 中文 | 下载地址 |
金融信息负面及主体判定 | 中文 | 下载地址 |