ChatGPT爆火出圈,国内很多高校、研究机构和企业都发出类似ChatGPT的发布计划。ChatGPT没有开源,复现难度极大,即使到现在GPT3的完全能力也没有任何一个单位或者企业进行了复现。刚刚,OpenAI又官宣发布了图文多模态的GPT4模型,能力相对ChatGPT又是大幅提升,似乎闻到了以通用人工智能主导的第四次工业革命的味道。
无论是国外还是国内,目前距离OpenAI的差距越来越大,大家都在紧锣密鼓的追赶,以致于在这场技术革新中处于一定的优势地位,目前很多大型企业的研发基本上都是走闭源路线,ChatGPT和GPT4官方公布的细节很少,也不像之前发个几十页的论文介绍,OpenAI的商业化时代已经到来。当然,也有一些组织或者个人在开源平替上进行了探索,本文章汇总如下,本人也会持续跟踪,有更新的开源平替及时更新此处
一、自主模型篇
该类方法主要采用非LLAMA等微调方式,自主设计或者优化GPT、T5模型,并实现从预训练、监督微调、强化学习等全周期过程。
ChatYuan
ChatYuan(元语AI)是由元语智能开发团队开发和发布的,自称第一个国内最早的一个功能型对话大模型,可以写文章、写作业、写诗歌、做中英文间的翻译;一些法律等特定领域问题也可以提供相关信息。该模型目前只支持中文,github链接是:
https://github.com/clue-ai/ChatYuan
从披露的技术细节看,底层采用7亿参数规模的T5模型,并基于PromptClue进行了监督微调形成了ChatYuan。该模型基本上是ChatGPT技术路线的三步的第一步,没有实现奖励模型训练和PPO强化学习训练。
Colossal AI
最近,ColossalAI开源了他们的ChatGPT实现。分享了他们的三步策略,完整实现了ChatGPT核心的技术路线:其Github如下:
https://github.com/hpcaitech/ColossalAI
本人基于该项目,更加明确了三步策略,并进行了分享:
第一阶段(stage1_sft.py):SFT监督微调阶段,该开源项目没有实现,这个比较简单,因为ColossalAI无缝支持Huggingface,本人直接用Huggingface的Trainer函数几行代码轻松实现,在这里我用了一个gpt2模型,从其实现上看,其支持GPT2、OPT和BLOOM模型;
第二阶段(stage2_rm.py):奖励模型(RM)训练阶段,即项目Examples里train_reward_model.py部分;
第三阶段(stage3_ppo.py):强化学习(RLHF)阶段,即项目train_prompts.py
三个文件的执行需要放在ColossalAI项目中,其中代码中的cores即原始工程中的chatgpt,cores.nn在原始工程中变成了chatgpt.models
ChatGLM
ChatGLM是清华技术成果转化的公司智谱AI开源的GLM系列的对话模型,支持中英两个语种,目前开源了其62亿参数量的模型。其继承了GLM之前的优势,在模型架构上进行了优化,从而使得部署和应用门槛变低,实现大模型在消费级显卡上的推理应用。详细技术可以参考其github:
https://github.com/THUDM/ChatGLM-6B
从技术路线上看,其实现了ChatGPT强化学习人类对齐策略,使得生成效果更佳贴近人类价值,其目前能力域主要包括自我认知、提纲写作、文案写作、邮件写作助手、信息抽取、角色扮演、评论比较、旅游建议等,目前其已经开发了正在内测的1300亿的超大模型,算是目前开源平替里面参数规模较大的对话大模型。
PaLM-rlhf-pytorch
其号称首个开源ChatGPT平替项目,其基本思路是基于谷歌语言大模型PaLM架构,以及使用从人类反馈中强化学习的方法(RLHF)。PaLM是谷歌在今年4月发布的5400亿参数全能大模型,基于Pathways系统训练。其可以完成写代码、聊天、语言理解等任务,并且在大多数任务上具有强大的少样本学习性能。同时采用了ChatGPT一样的强化学习机制,能让AI的回答更加符合情景要求,降低模型毒性。
Github地址为:https://github.com/lucidrains/PaLM-rlhf-pytorch
GPTrillion
该项目号称开源的最大规模模型,高达1.5万亿,且是多模态的模型。其能力域包括自然语言理解、机器翻译、智能问答、情感分析和图文匹配等。其开源地址为:
https://huggingface.co/banana-dev/GPTrillion
OpenFlamingo
OpenFlamingo是一个对标GPT-4、支持大型多模态模型训练和评估的框架,由非盈利机构LAION重磅开源发布,其是对DeepMind的Flamingo模型的复现。目前开源的是其基于LLaMA的 OpenFlamingo-9B模型。Flamingo模型在包含交错文本和图像的大规模网络语料库上进行训练,具备上下文少样本学习能力。OpenFlamingo实现了原始Flamingo中提出的相同架构,在一个新的多模态C4数据集的5M样本和LAION-2B的10M样本上训练而来。该项目的开源地址是:
https://github.com/mlfoundations/open_flamingo
LLaVA (更新于2023年4月19日)
LLaVA是一个多模态的语言和视觉对话模型,类似GPT-4,其主要还是在多模态数据指令工程上做了大量工作,目前开源了其13B的模型文件。从性能上,据了解视觉聊天相对得分达到了GPT-4的85%;多模态推理任务的科学问答达到了SoTA的92.53%。该项目的开源地址是:
https://github.com/haotian-liu/LLaVA
MOSS (更新于2023年4月21日)
今年2月21日,复旦大学发布了MOSS,并开放公测,在公测崩溃后引起一些争议。现在该项目迎来重要更新和开源。开源的MOSS支持中英两个语种,且支持插件化,如解方程、搜索等。参数量大16B,在约七千亿中英文以及代码单词上预训练得到,后续经过对话指令微调、插件增强学习和人类偏好训练具备多轮对话能力及使用多种插件的能力。该项目的开源地址是:
https://github.com/OpenLMLab/MOSS
miniGPT-4 (更新于2023年4月21日)
从名字上看,该项目对标GPT-4的能力域,实现了一个缩略版。该项目来自来自沙特阿拉伯阿卜杜拉国王科技大学的研究团队。该模型利用两阶段的训练方法,先在大量对齐的图像-文本对上训练以获得视觉语言知识,然后用一个较小但高质量的图像-文本数据集和一个设计好的对话模板对预训练的模型进行微调,以提高模型生成的可靠性和可用性。该模型语言解码器使用Vicuna,视觉感知部分使用与BLIP-2相同的视觉编码器。
该项目的开源地址是:https://github.com/Vision-CAIR/MiniGPT-4
二、Alpaca模式篇
LLaMA是由Meta发布的全新人工智能大型语言模型,在生成文本、对话、总结书面材料、证明数学定理或预测蛋白质结构等任务上方面表现良好。LLaMA模型支持20种语言,包括拉丁语和西里尔字母语言,目前看原始模型并不支持中文。可以说LLaMA的史诗级泄露大力推进了类ChatGPT的开源发展。
(更新于2023年4月22日)但遗憾的是目前LLama的授权比较有限,只能用作科研,不允许做商用。为了解决商用完全开源问题,RedPajama项目应运而生,其旨在创建一个完全开源的LLaMA复制品,可用于商业应用,并为研究提供更透明的流程。完整的RedPajama包括了1.2万亿token的数据集,其下一步将着手开始进行大规模训练。这项工作还是非常值得期待,其开源地址是:
https://github.com/togethercomputer/RedPajama-Data
stanford-alpaca
斯坦福发布的alpaca(羊驼模型),是一个基于LLaMA-7B模型微调出一个新模型,其基本原理是让OpenAI的text-davinci-003模型以self-instruct方式生成52K指令样本,以此来微调LLaMA。该项目已将训练数据、生成训练数据的代码和超参数开源,模型文件尚未开源,以一天多达到5.6K星的关注度。该项工作由于成本低廉、数据易得,大受欢迎,也开启了低成本ChatGPT的效仿之路。其github地址为:
https://github.com/tatsu-lab/stanford_alpaca
ChatLLaMA
是由Nebuly+AI推出的基于人类反馈强化学习的LLaMA+AI聊天机器人的开源实现,它的技术路线类似 ChatGPT,该项目上线刚刚 2 天,狂揽 5.2K 星。其github地址是:
https://github.com/nebuly-ai/nebullvm/tree/main/apps/accelerate/chatllama
ChatLLaMA 训练过程算法实现主打比 ChatGPT 训练更快、更便宜,据说能快近15倍,主要特色有:
完整的开源实现,允许用户基于预训练的 LLaMA 模型构建 ChatGPT 风格的服务;
LLaMA 架构更小,使得训练过程和推理速度更快,成本更低;
内置了对 DeepSpeed ZERO 的支持,以加速微调过程;
支持各种尺寸的 LLaMA 模型架构,用户可以根据自身偏好对模型进行微调。
OpenChatKit
OpenChatKit由前OpenAI研究员所在的Together团队,以及LAION、Ontocord.ai团队共同打造。OpenChatKit包含200亿个参数,用GPT-3的开源版本GPT-NoX-20B进行微调。同时,不同ChatGPT的强化学习,OpenChatKit采用一个60亿参数的审核模型,对不合适或者是有害的信息进行过滤,确保生成内容的安全和质量。其github地址为:
https://github.com/togethercomputer/OpenChatKit
BELLE
基于 Stanford Alpaca ,实现基于Bloom、LLama的监督微调。Stanford Alpaca 的种子任务都是英语,收集的数据也都是英文,该开源项目是促进中文对话大模型开源社区的发展,针对中文做了优化,模型调优仅使用由ChatGPT生产的数据(不包含任何其他数据)。项目包含以下内容:
175个中文种子任务
生成数据的代码
10M生成的数据,目前开源了1.5M、0.25M数学指令数据集和0.8M多轮任务对话数据集
基于BLOOMZ-7B1-mt、LLama-7B优化后的模型
github地址为:https://github.com/LianjiaTech/BELLE
alpaca-lora
alpaca-lora是斯坦福大学的另一个巨作,其使用LoRA(low-rank adaptation)技术复现了Alpaca的结果,用了一个更加低成本的方法,只在一块RTX 4090显卡上训练5个小时得到了一个Alpaca水平相当的模型。而且,该模型可以在树莓派上运行。在该项目中,其使用了Hugging Face的PEFT来实现廉价高效的微调。PEFT 是一个库(LoRA 是其支持的技术之一),可以让你使用各种基于 Transformer的语言模型并使用LoRA对其进行微调,从而使得在一般的硬件上廉价而有效地微调模型。该项目github地址是:
https://github.com/tloen/alpaca-lora
尽管 Alpaca和alpaca-lora取得了较大的提升,但其种子任务都是英语,缺乏对中文的支持。一方面除了以上提到Belle收集到了大量的中文语料,另一方面基于alpaca-lora等前人工作,来自华中师范大学等机构的三位个人开发者开源的中文语言模型骆驼 (Luotuo),单卡就能完成训练部署。目前该项目释放了两个模型 luotuo-lora-7b-0.1、luotuo-lora-7b-0.3,还有一个模型在计划中。其github地址是:
https://github.com/LC1332/Chinese-alpaca-lora
Dolly
Dolly在Alpaca的启发下,用Alpaca数据集,在GPT-J-6B上实现微调,由于Dolly本身是一个模型的“克隆”,所以团队最终决定将其命名为“多莉”。这种克隆式在Alpaca启发下越来越多,总结起来大致采用Alpaca开源的数据获取方式,在6B或者7B规模大小的旧模型上进行指令微调,获得类似ChatGPT的的效果。这种思想很经济,也能迅速模仿出ChatGPT的韵味来,广受欢迎,一经推出star爆棚。该项目github地址是:
https://github.com/databrickslabs/dolly
Vicuna和Chinese-Vicuna
斯坦福学者继推出alpaca后,联手CMU、UC伯克利等,推出一个全新模型——130亿参数的Vicuna(俗称小羊驼、骆马)。仅需300美元就能实现ChatGPT 90%的性能。Vicuna是通过在ShareGPT收集的用户共享对话上对LLaMA进行微调训练而来,测试过程使用GPT-4作为评判标准,结果显示Vicuna-13B在超过90%的情况下实现了与ChatGPT和Bard相匹敌的能力。
UC伯克利LMSys org近期又发布了70亿参数的Vicuna,不仅体积小、效率高、能力强,而且只需两行命令就能在M1/M2芯片的Mac上运行,还能开启GPU加速!
github开源地址为:https://github.com/lm-sys/FastChat/
另一个中文版的进行了开源Chin