Py学习  »  chatgpt

类ChatGPT系列开源微调模型的非最全梳理:4大类26小类开源微调模型梳理及几点感想

AINLP • 11 月前 • 679 次点击  

自3月以来,类chatgpt的开源微调模型呈现出井喷之势,有句十分有趣、诙谐且真实的描述(来自于参考文献1):“阻碍大模型发展最大的瓶颈是没有足够的候选名称可用于命名语言模型,LLAMA、Guanaco、Vicuna 和 Alpaca 已经被使用了,而且骆驼家族中已经没有更多的成员了,并将该工作命名为凤凰”,专门针对拉丁语的“凤凰”版本被称为“奇美拉”。

但是,在这些名字混乱的背后,通过梳理发现,真相并不乐观:

1、热衷取名怪圈:绝大多数的工作都是在非原创大模型的基础上,更换不同的基础大模型、更换不同的微调数据集或者添加例如lora加速训练,以得到不同的模型,营造出一种“一派繁荣”的景象。

2、指标盲目自信 :大模型评测是个大难题,而为了宣传自身,总是喜欢跟chatgpt做对比,说复刻达到几成的chatgpt。这类模型宣传,以很不严谨的少样本评价基准,就得到一些以实际使用差距很大的定性或者定量结论【例如复刻9x%的chatgpt】,实则贻笑大方【此处不用于自谦语境】

今天是四月最后一天,本文主要梳理当前开源类chatgpt的代表模型,从国产代表性开源微调模型、LLaMA-based的开源微调模型、Bloom-based的开源微调模型、GPT-其他based开源微调模型共四个维度进行模型归类,总共涉及26个模型集合。

大家可以从中看到粗略的情况,并对这一现象、相应宣传做清醒认识。


一、国产代表性开源微调模型

1、ChatYuan

ChatYuan(底层采用7亿参数规模的T5模型,并基于PromptClue进行了监督微调形成了ChatYuan,PromptCLUE是基于T5架构,在中文语料下进行无监督和有监督的中文多任务训练模型。

PromptCLUE-large在1000亿token中文语料上预训练,累计学习1.5万亿中文token,并且在数百种任务上进行Prompt任务式训练。针对理解类任务,如分类、情感分析、抽取等,可以自定义标签体系;针对多种生成任务,可以进行采样自由生成。

ChatYuan-large-v2是一个支持中英双语的功能型对话语言大模型。ChatYuan-large-v2使用了和 v1版本相同的技术方案,在微调数据、人类反馈强化学习、思维链等方面进行了优化。

地址:https://github.com/clue-ai/ChatYuan

4、ChatGLM-6B

ChatGLM-6B是一个开源的、支持中英双语的对话语言模型,基于General Language Model (GLM) 架构,具有 62 亿参数。

结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。

地址:https://github.com/THUDM/ChatGLM-6B

3、MOSS

MOSS(Multi-lingual Open-Source Scaleable)是复旦大学计算机科学技术学院自然语言处理与人工智能实验室发布的大模型,使用了与GPT模型类似的架构,但在模型的细节和训练方法上进行了优化。

MOSS是一个支持中英双语和多种插件的开源对话语言模型,moss-moon系列模型具有160亿参数,在FP16精度下可在单张A100/A800或两张3090显卡运行,在INT4/8精度下可在单张3090显卡运行。MOSS基座语言模型在约七千亿中英文以及代码单词上预训练得到,后续经过对话指令微调、插件增强学习和人类偏好训练具备多轮对话能力及使用多种插件的能力。

地址:https://github.com/OpenLMLab/MOSS

4、RWKV-LM

RWKV也是一套语言模型的训练架构,基于RNN结构进行训练,支持并行训练,不过不支持中文。

地址:https://github.com/BlinkDL/RWKV-LM

二、LLaMA-based的开源微调模型

1、LLaMa

LLaMA是由Facebook 母公司Meta发布的全新人工智能大型语言模型,在生成文本、对话、总结书面材料、证明数学定理或预测蛋白质结构等任务上方面表现良好。LLaMA模型支持20种语言,包括拉丁语和西里尔字母语言,目前看原始模型并不支持中文。

地址:https://github.com/facebookresearch/llama

2、stanford_alpaca

Alpaca是斯坦福在LLaMA上微调对话指令的项目,是万恶之源,使用了52K微调数据集

地址:https://github.com/tatsu-lab/stanford_alpaca

3、Chinese-LLaMA

为了促进大模型在中文NLP社区的开放研究,本项目开源了中文LLaMA模型和指令精调的Alpaca大模型。这些模型在原版LLaMA的基础上扩充了中文词表并使用了中文数据进行二次预训练,进一步提升了中文基础语义理解能力。

中文LLaMA模型在原版的基础上扩充了中文词表,使用了中文通用纯文本数据进行二次预训练。

地址:https://github.com/ymcui/Chinese-LLaMA-Alpaca

4、Chinese-LLaMA-Alpaca

中文Alpaca模型在上述中文LLaMA模型的基础上进一步使用了指令数据进行精调,中文Alpaca模型进一步使用了中文指令数据进行精调,显著提升了模型对指令的理解和执行能力。

地址:https://github.com/ymcui/Chinese-LLaMA-Alpaca

5、alpaca-lora

alpaca-lora是斯坦福大学使用LoRA(low-rank adaptation)技术复现了Alpaca的结果,用了一个更加低成本的方法,只在一块RTX 4090显卡上训练5个小时得到了一个Alpaca水平相当的模型。而且,该模型可以在树莓派上运行。

这个项目开启了LLaMA模型上的LoRA微调之路,在该项目中,其使用了Hugging Face的PEFT来实现廉价高效的微调。PEFT 是一个库(LoRA 是其支持的技术之一),可以让你使用各种基于 Transformer的语言模型并使用LoRA对其进行微调,从而使得在一般的硬件上廉价而有效地微调模型。

地址:https://github.com/tloen/alpaca-lora

6、Chinese-alpaca-lora

中文语言模型骆驼 (Luotuo): Chinese-alpaca-lora。

地址:https://github.com/LC1332/Chinese-alpaca-lora

7、ChatLLaMA

是由Nebuly+AI推出的基于人类反馈强化学习的LLaMA+AI聊天机器人的开源实现。

地址:https://github.com/nebuly-ai/nebuly/tree/main/optimization/chatllama

8、Koala

基于LLama的ChatGPT平替继续发酵,UC伯克利的伯克利发布了一个可以在消费级GPU上运行的对话模型Koala,参数达到13B,还是基于LLaMA。

Koala的训练数据集包括ChatGPT数据和开源数据(Open Instruction Generalist (OIG)、斯坦福 Alpaca 模型使用的数据集、Anthropic HH、OpenAI WebGPT、OpenAI Summarization)。

地址:https://github.com/young-geng/EasyLM

9、Vicuna

斯坦福学者继推出alpaca后,联手CMU、UC伯克利等,推出一个全新模型——130亿参数的Vicuna(俗称小羊驼、骆马),通过在ShareGPT收集的用户共享对话上对LLaMA进行微调训练而来。

地址:https://github.com/lm-sys/FastChat

10、Chinese-Vicuna

中文版的Chinese-Vicuna,Chinese-Vicuna: A Chinese Instruction-following LLaMA-based Model,一个中文低资源的llama+lora方案。

鉴于llama,alpaca,guanaco等羊驼模型的研发成功,该工作希望基于LLaMA+instruction数据构建一个中文的羊驼模型,并帮助大家能快速学会使用引入自己的数据,并训练出属于自己的小羊驼(Vicuna)。

目前该工作选择BELLE和Guanaco数据的组合作为主要训练数据集,并开放了我们在中文医学问答垂直语料上continue-finetune的Chinese-Vicuna-medical,提供了垂直语料训练的案例。

地址:https://github.com/Facico/Chinese-Vicuna

11、Chinese-Vicuna-medical

在cMedQA2上使用Chinese-Vicuna checkpoint-11600 继续,分析了无指令微调、带指令微调、固定单指令共三种不同的微调方式。

地址:https://github.com/Facico/Chinese-Vicuna/blob/master/docs/performance-medical.md

12、Huatuo-Llama-Med-Chinese

华驼(HuaTuo): 基于中文医学知识的LLaMA微调模型,本项目开源了经过中文医学指令精调/指令微调(Instruct-tuning) 的LLaMA-7B模型。我们通过医学知识图谱和GPT3.5 API构建了中文医学指令数据集,并在此基础上对LLaMA进行了指令微调,提高了LLaMA在医疗领域的问答效果。

基于相同的数据,我们还训练了医疗版本的ChatGLM模型: ChatGLM-6B-Med

根据项目描述,即将发布我们研发的新模型-扁鹊(PienChueh)

地址:https://github.com/SCIR-HI/Huatuo-Llama-Med-Chinese
地址:https://github.com/SCIR-HI/Med-ChatGLM

13、StackLLaMA

随着斯坦福Alpaca的出现,一大堆基于LLama的羊驼家族和扩展动物家族开始出现,终于Hugging Face研究人员近期发布了一篇博客StackLLaMA:用RLHF训练LLaMA的实践指南,同时也发布了一个70亿参数的模型——StackLLaMA,一个通过人类反馈强化学习在LLaMA-7B微调而来的模型。

地址:https://huggingface.co/blog/stackllama

14、Baize

Baize是一个用LoRA训练的开源聊天模型。它使用了由让ChatGPT与自己聊天产生的100k对话,也使用Alpaca的数据来提高其性能。

具体的,该项目提出了一个自动收集 ChatGPT 对话的方法,让 ChatGPT 自我对话,批量生成高质量多轮对话数据集,分别收集了5万条左右Quora、StackOverflow和MedQA的高质量问答语料,并已经全部开源。

该项目已经发布了7B、13B和30B模型。

地址:https://github.com/project-baize/baize

15、Linly

Linly项目向社区提供中文对话模型 Linly-ChatFlow 、中文基础模型 Linly-Chinese-LLaMA 及其训练数据。模型基于 TencentPretrain 多模态预训练框架构建, 将陆续开放7B、13B、33B、65B规模的中文模型权重。

Linly-ChatFlow 支持简繁体中文、英文、日文等多语言。LLaMA在预训练阶段主要使用英文,为了将其语言能力迁移到中文上,首先进行中文增量预训练, 使用的语料包括中英平行语料、中文维基、社区互动、新闻数据、科学文献等。再通过 Alpaca 指令微调得到 Linly-ChatFlow。

地址:https://github.com/CVI-SZU/Linly

16、Colossal AI

ColossalChat是HPC-AI Tech开源的一个聊天机器人大模型,其基础模型来自于Meta开源的LLaMA,ColossalChat基于LLaMA模型,是一个包含完整的RLHF流程复制类ChatGPT模型的实用开源项目。

ColossalChat的主要特点包括:有一个在线演示的网站,完全免费且不需要注册、训练代码完全开源,且是全球第一个公开RLHF训练代码的模型,包括70亿参数和130亿参数预训练结果;开源了一个10.4万条中英文数据;仅需要4GB的GPU显存即可运行4-bit量化的70亿参数模型

地址:https://github.com/hpcaitech/ColossalAI/tree/main/applications/Chat

三、Bloom-based的开源微调模型

1、BELLE

基于 Stanford Alpaca ,实现基于Bloom、LLama的监督微调。Stanford Alpaca 的种子任务都是英语,收集的数据也都是英文,该开源项目是促进中文对话大模型开源社区的发展,针对中文做了优化,模型调优仅使用由ChatGPT生产的数据(不包含任何其他数据)。

此外,该工作放了其中一篇论文中的的相关模型:包括在LLaMA7B基础上增量预训练扩展中文词表的模(详见BelleGroup/BELLE-LLaMA-EXT-7B),以及基于多样化开源数据训练后的LLaMA-7B模型(详见BelleGroup/BELLE-on-Open-Datasets)。

更新了两篇最新论文工作,对比了不同方式产生的训练数据、不同训练方法(LoRA, finetune)对效果的影响;发布了ChatBELLE App,基于llama.cpp和Flutter,实现跨平台的BELLE-7B离线模型实时交互;更新了一个人工精校的eval集合,大约一千多条。

BELLE/data/10M中,新加40万条生成的给定角色的多轮对话Generated Chat,新加200万条生成多样化指令任务数据train_2M_CN。

地址:https://github.com/LianjiaTech/BELLE

2、Firefly

Firefly(流萤) 是一个开源的中文对话式大语言模型,开源了Firefly-2b6模型 ,模型参数量为2.6B,训练数据为210万。提升模型的编程能力,古诗词、文言文翻译、对联等方面的能力也有所提升。

使用指令微调(Instruction Tuning)在中文数据集上进行调优。同时使用了词表裁剪、ZeRO、张量并行等技术,有效降低显存消耗和提高训练效率。在训练中,使用了更小的模型参数量,以及更少的计算资源。

其中包括:

数据集:firefly-train-1.1M , 一份高质量的包含1.1M中文多任务指令微调数据集,包含23种常见的中文NLP任务的指令数据。对于每个任务,由人工书写若干指令模板,保证数据的高质量与丰富度。

模型裁剪:LLMPruner:大语言模型裁剪工具 ,使用词表裁剪技术对多语种大语言模型进行权重裁剪,保留预训练知识的前提下,有效减少模型参数量,提高训练效率,并分享裁剪后的多种参数规模的Bloom模型权重。

权重分享:在bloom-1b4-zh 和bloom-2b6-zh 的基础上,进行指令微调,获得两种参数规模的中文模型:firefly-1b4 和firefly-2b6

训练代码:开源训练代码,支持张量并行、ZeRO、Gemini异构内存空间管理等大模型训练策略。可实现仅使用一张显卡,训练1B-2B参数量的模型(待整理后开源)。

该工作构造了许多与中华文化相关的数据,以提升模型这方面的表现,如对联、作诗、文言文翻译、散文、金庸小说等。

地址:https://github.com/yangjianxin1/Firefly

3、Phoenix

港中文(深圳)“凤凰 “多语言大模型,基于多语言的预训练BLOOM,在多语言的指令跟随数据中进行微调。该项目的实验报告十分有趣,有句话很逗,但十分真实:

阻碍大模型发展最大的瓶颈是没有足够的候选名称可用于命名语言模型,LLAMA、Guanaco、Vicuna 和 Alpaca 已经被使用了,而且骆驼家族中已经没有更多的成员了。

来自于https://github.com/FreedomIntelligence/LLMZoo/blob/main/assets/llmzoo.pdf

地址:https://github.com/FreedomIntelligence/LLMZoo

四、GPT-其他based开源微调模型

1、Dolly

Dolly在Alpaca的启发下,用Alpaca数据集,在GPT-J-6B上实现微调,由于Dolly本身是一个模型的“克隆”,所以团队最终决定将其命名为“多莉”。

dolly-v2-12b是一个由Databricks创建的120亿个参数的因果语言模型,它源自EleutherAI的Pythia-12b,并在Databricks员工生成的约15K记录的指令语料库上进行了微调,并在允许的许可下发布(CC-BY-SA)。

地址:https://github.com/databrickslabs/dolly

2、PaLM-rlhf-pytorch

其号称首个开源ChatGPT平替项目,其基本思路是基于谷歌语言大模型PaLM架构,以及使用从人类反馈中强化学习的方法(RLHF)。

PaLM是谷歌在今年4月发布的5400亿参数全能大模型,基于Pathways系统训练。其可以完成写代码、聊天、语言理解等任务,并且在大多数任务上具有强大的少样本学习性能。

地址:https://github.com/lucidrains/PaLM-rlhf-pytorch

3、OpenChatKitk

OpenChatKit由前OpenAI研究员所在的Together团队,以及LAION、Ontocord.ai团队共同打造。OpenChatKit包含200亿个参数,用GPT-3的开源版本GPT-NoX-20B进行微调。

同时,不同ChatGPT的强化学习,OpenChatKit采用一个60亿参数的审核模型,对不合适或者是有害的信息进行过滤,确保生成内容的安全和质量。

地址:https://github.com/togethercomputer/OpenChatKit

总结

本文主要梳理当前开源类chatgpt的代表哦模型,从国产代表性开源微调模型、LLaMA-based的开源微调模型、Bloom-based的开源微调模型、GPT-其他based开源微调模型共四个维度进行模型归类,总共涉及25个模型集合,供大家一起参考。

当然,正如题目所言,本文并非为最全,肯定会有遗漏,大家可以自行补充。

其次,对于模型具体的情况,如果需要进一步了解,可以前往文中地址进行进一步研究,每个模型的亮点也十分有趣。

最后,感谢开源工作的无私奉献,这些一小步,也是某种意义上的一大步。

参考文献

1、https://new.qq.com/rain/a/20230416A02ZZ300

进技术交流群请添加AINLP小助手微信(id: ainlp2)

请备注具体方向+所用到的相关技术点

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP小助手微信(id:ainlp2),备注工作/研究方向+加群目的。




阅读至此了,分享、点赞、在看三选一吧🙏


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/154561
 
679 次点击