开源ChatLLM-research

1、调研情况

主要针对近期开源Chat类模型进行数据集收集、模型效果调研、论文实现初探。

几个模型排行榜:

SuperCLUE琅琊榜和UC伯克利LLM排行榜包含模型对战排名,即通过志愿者同时对两个匿名模型聊天,并投票产生(模型两两PK)

1.1 模型情况梳理

模型名称 基座模型 能力说明 优缺点 训练预期需要资源 微调数据集 论文中的评估结果 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
png除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目前已关闭开源,仅有用户提前下载的部分数据,数据清洗代码 png评估数据集为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 png中文表现png 同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
png 相关代码
数据处理代码
官方博客 论文用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(去除非英语)
png用80条 vicuna test评估 同Alpaca代码
在线demo
官方博客 多种训练数据、自我反馈链的模式
BELLE bloom、LLaMA 约ChatGPT的92%(排除code和math) LLaMA基座模型对中文进行二次预训练微调数据集几乎全部为中文 8卡A100 80G 200万中文+Alpaca的5万英文(均由ChatGPT产生)BELLE-13B基于LLaMA,训练数据达400万 pngLLaMA-EXT做了中文词表扩展并在3.5B中文token上二次预训练测试集下载地址:1k中文评估测试集,可用ChatGPT自动打分 相关代码 相关论文1
相关论文2
png对比不容模型尺寸、全量微调、LoRA、不同微调数据量的效果结论:全量FT>LoRA;微调数据越多越好;模型尺寸越大越好
ChatGLM-6B GLM130B 基座模型在中英(对半)语料上训练 1T tokens的中英双语训练 png参与用户与两个匿名模型同时聊天,并投票哪个更好,排名持续更新中 相关代码 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数据微调 相关代码

1.2 邻域模型情况

模型名称 基座模型 邻域实现方法 相关论文 相关代码
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

1.3 总结

a) 基座模型

LLaMA

包含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上都取得同尺寸最好的效果

GLM

包含130B(申请下载链接)、10B等尺寸(10B和130B应该是两个项目,10B是在智源WUDAO数据集上进行的预训练,两模型并非同一个模型的不同尺寸)

目前,智谱的ChatGLM已更新到V2版本,并且开放api及多尺寸模型(收费)

在中文语料上预训练,缺少中间尺寸的开源模型

bloom和bloomz

多语言模型,词表太大,需要做裁切(Firefly项目有进行裁切),并且也没有7B和175B中间的模型尺寸

b) 微调数据和模型效果

数据质量

模型 Alpaca < LLaMA_GPT4 < Vicuna < SelFee <= WizardLM ChatGPT
微调数据集 self-instruct from davinci-003(52k) Alpaca的52K条指令由GPT4生成答案 ShareGPT(用户提问,ChatGPT生成答案,用户主动分享) 更多数据集,其中包含ShareGPT和Alpaca 52k,Alpaca同样保留指令,让ChatGPT重新生成基于自我反馈的答案 ChatGPTGPT生成更为复杂的指令,不断增加指令的广度和深度

Alt text

其中最大的差异就是微调数据集的质量,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生成带自我反馈的语料进行微调,并在推理阶段同样引入反馈链条,取得了不错的效果。反馈链

2、数据集收集

2.1 微调数据

数据集 数据集用途 原始来源 其他补充说明
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 知乎问答数据 下载地址 你懂的

2.2 预训练数据

数据集 数据集用途 原始来源 其他补充说明
OpenLLaMA预训练语料 中英预训练语料100GB 下载地址 20G中文语料、10G平行语料、70G英文语料
RedPajama-Data 复刻LLaMA预训练语料(1.4T tokens) 下载地址 png

2.3 信息抽取数据集

数据集 数据集简介 原始来源
BAAI-FewRel 英文信息抽取数据 下载地址
IE INSTRUCTIONS 英文信息抽取数据,训练instructUIE 下载地址
DuIE 中文 下载地址
金融信息负面及主体判定 中文 下载地址