Coder Social home page Coder Social logo

chatllm-research's Introduction

开源ChatLLM-research

1、调研情况

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

两个模型排行榜:

国内:SuperCLUE琅琊榜

国外:UC伯克利LLM排行榜

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评估) FSDP on 8 A100 GPUs in one day https://sharegpt.com/清洗出70K user-shared ChatGPT conversations(数据集ShareGPT,数据清洗代码 28GB of GPU memory for Vicuna-13B png用80条 vicuna test评估 相关代码|在线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 26k3、Code collection 30k4、FLAN collection 16k5、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,无中文词表扩充:原始700个汉字) 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中文指令上微调 相关代码 相关论文
Firefly流萤 bloom 裁切词表大小(适应中文) 相关代码
InstructUIE Flan T5 信息抽取任务+中模型 相关代码 相关论文

补充说明:

LLaMA的词表中只有几百个中文token

阿联酋有一个Falcon-40B基座模型,但是词表中没有中文token

其他国产开源模型:

  • CPM-Bee-10B:百亿参数、中英双语基座模型
  • Chatyuan-large-v2

1.2 总结

基座模型

  • LLaMA

包含65B、33B、13B、7B等尺寸

缺少中文token,解决措施:扩充词表、二次预训练,相关模型:Chinese-Alpaca-13B(LoRA)、Linly OpenLLaMA-13B(从头训练) 其他BELLE对LLaMA做了词表扩充和二次预训练,但是并没有开源调整后的基座模型 智源Aquila在中英语料上进行从头训练,同样只开源了其chat模型AquilaChat-7B,并未开源基座模型

  • GLM

包含130B(申请下载链接)、10B等尺寸

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

  • bloom和bloomz

多语言模型,词表太大,需要做裁切(Firefly项目有进行裁切)

微调数据和模型效果

数据质量

ChatGPT>Vicuna-13B>LLaMA_GPT4>Alpaca:其中最大的差异就是微调数据集的质量,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 下载地址 通过众包,人工标注的10k条对话数据
openai/summarize-from-feedback 微调koala 下载地址 英文90K
HC3 微调koala 下载地址 中英文,同一个问题,对比human vs chatgpt的答案
openai/WebGPT 微调WebGPT、Koala 下载地址 openai开源,微调WebGPT
OIG 微调Koala 下载地址 LAION发布的~43M instructuons数据集

2.2 预训练数据

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

2.3 信息抽取数据集

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.