GPT视频教程
ChatGPT视频教程汇总: https://xueshu.fun/?s=gpt
ChatGPT/GPT4开源“平替”汇总,持续更新
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
二、Alpaca模式篇
LLaMA是由Facebook 母公司Meta发布的全新人工智能大型语言模型,在生成文本、对话、总结书面材料、证明数学定理或预测蛋白质结构等任务上方面表现良好。LLaMA模型支持20种语言,包括拉丁语和西里尔字母语言,目前看原始模型并不支持中文。
LLaMA目前比较火的两个顶流开源项目是ChatLLaMA和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 模型架构,用户可以根据自身偏好对模型进行微调。
另外一个比较火的是最近刚发布的alpaca(羊驼模型),是由斯坦福基于 Meta 的 LLaMA 7B 模型微调出一个新模型,其基本原理是让 OpenAI 的 text-davinci-003 模型以 self-instruct 方式生成 52K 指令样本,以此来微调LLaMA。该项目已将训练数据、生成训练数据的代码和超参数开源,模型文件尚未开源,以一天多达到5.6K星的关注度,估计很快会开源其模型文件供大家使用。其github地址为:
https://github.com/tatsu-lab/stanford_alpaca
同时公布了一个DEMO地址:
https://alpaca-ai-custom6.ngrok.io
这种模式奠定了现在主流的类ChatGPT实现,大批类似模型开始涌现
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/
另一个中文版的进行了开源Chinese-Vicuna ,github地址为:
https://github.com/Facico/Chinese-Vicuna
LMFLOW
ChatGPT爆火后,都在寻找通往圣殿的快捷之路,一些类ChatGPT开始出现,尤其是低成本效仿ChatGPT成为一个热门途径。LMFlow就是在这种需求场景下诞生的产物,他使得在3090这样的普通显卡上也能炼大模型。该项目由香港科技大学统计和机器学习实验室团队发起,致力于建立一个全开放的大模型研究平台,支持有限机器资源下的各类实验,并且在平台上提升现有的数据利用方式和优化算法效率,让平台发展成一个比之前方法更高效的大模型训练系统。
利用该项目,即便是有限的计算资源,也能让使用者针对专有领域支持个性化训练。例如LLaMA-7B,一张3090耗时 5 个小时即可完成训练,成本大幅降低。该项目还开放了网页端即刻体验问答服务 (lmflow.com)。LMFlow的出现和开源使得普通资源可以训练问答、陪伴、写作、翻译、专家领域咨询等各种任务。目前很多研究者们正在尝试用该项目训练650亿甚至更高参数量的大模型。
该项目github地址为:
https://github.com/OptimalScale/LMFlow
Baize白泽
该项目提出了一个自动收集 ChatGPT 对话的方法,让 ChatGPT 自我对话,批量生成高质量多轮对话数据集,分别收集了5万条左右Quora、StackOverflow和MedQA的高质量问答语料,并已经全部开源。同时其改进了LLama模型,效果还不错。白泽同样采用目前低成本的LoRA微调方案,获得白泽-7B、13B 和30B三种不同尺度,以及一个医疗垂直领域的模型。遗憾的是中文名字起的不错,但目前仍然不支持中文,中文的白泽模型据悉在计划中,未来发布。其开源github地址是:
https://github.com/project-baize/baize
Koala考拉
基于LLama的ChatGPT平替继续发酵,UC伯克利的伯克利发布了一个可以在消费级GPU上运行的对话模型Koala,参数达到13B。Koala 的训练数据集包括如下几个部分:ChatGPT数据和开源数据(Open Instruction Generalist (OIG)、斯坦福 Alpaca 模型使用的数据集、Anthropic HH、OpenAI WebGPT、OpenAI Summarization)。Koala模型在EasyLM中使用JAX/Flax实现,用了8 个A100 GPU,完成2轮迭代需要6个小时。评测效果优于Alpaca,达到ChatGPT 50%的性能。
开源地址:https://github.com/young-geng/EasyLM
StackLLaMA
随着斯坦福Alpaca的出现,一大堆基于LLama的羊驼家族和扩展动物家族开始出现,终于Hugging Face研究人员近期发布了一篇博客StackLLaMA:用RLHF训练LLaMA的实践指南。同时也发布了一个70亿参数的模型——StackLLaMA。这是一个通过人类反馈强化学习在LLaMA-7B微调而来的模型。详细见其博客地址:
https://huggingface.co/blog/stackllama
Dolly2.0 (更新于2023年4月13日)
4月12日,Databricks发布了Dolly2.0,号称业内第一个开源、遵循指令的LLM,数据集由Databricks员工生成,并进行了开源且可用于商业目的。新提出的Dolly2.0是一个120亿参数的语言模型,基于开源EleutherAI pythia模型系列,针对小型开源指令记录语料库进行了微调。
开源地址为:https://huggingface.co/databricks/dolly-v2-12b
https://github.com/databrickslabs/dolly
Deep Speed Chat (更新于2023年4月13日)
该项目带来了全民ChatGPT的时代,训练成本再次大幅降低。项目是微软基于其Deep Speed优化库开发而成,具备强化推理、RLHF模块、RLHF系统三大核心功能,可将训练速度提升15倍以上,成本却大幅度降低。例如,一个130亿参数的类ChatGPT模型,只需1.25小时就能完成训练。
开源地址为:https://github.com/microsoft/DeepSpeed
Wombat (更新于2023年4月16日)
该项目采取了不同于RLHF的方式RRHF进行人类偏好对齐,RRHF相对于RLHF训练的模型量和超参数量远远降低。RRHF训练得到的Wombat-7B在性能上相比于Alpaca有显著的增加,和人类偏好对齐的更好。
开源地址为:https://github.com/GanjinZero/RRHF
Guanaco (更新于2023年4月16日)
Guanaco是一个基于目前主流的LLaMA-7B模型训练的指令对齐语言模型,原始52K数据的基础上,额外添加了534K+条数据,涵盖英语、日语、德语、简体中文、繁体中文(台湾)、繁体中文(香港)以及各种语言和语法任务。丰富的数据助力模型的提升和优化,其在多语言环境中展示了出色的性能和潜力。
开源地址为:https://github.com/Guanaco-Model/Guanaco-Model.github.io
LLMZoo(凤凰Phoenix和Chimera) (更新于2023年4月16日)
LLMZoo,即LLM动物园开源项目维护了一系列开源大模型,其中包括了近期备受关注的来自香港中文大学(深圳)和深圳市大数据研究院的王本友教授团队开发的Phoenix(凤凰)和Chimera等开源大语言模型,其中文本效果号称接近百度文心一言,GPT-4评测号称达到了97%文心一言的水平,在人工评测中五成不输文心一言。
Phoenix 模型有两点不同之处:在微调方面,指令式微调与对话式微调的进行了优化结合;支持四十余种全球化语言。
开源地址为:https://github.com/FreedomIntelligence/LLMZoo
OpenAssistant (更新于2023年4月16日)
OpenAssistant是一个开源聊天助手,其可以理解任务、与第三方系统交互、动态检索信息。据其说,其是第一个在人类数据上进行训练的完全开源的大规模指令微调模型。该模型主要创新在于一个较大的人类反馈数据集(详细说明见数据篇),公开测试显示效果在人类对齐和毒性方面做的不错,但是中文效果尚有不足。
开源地址为:https://github.com/LAION-AI/Open-Assistant
三、语料篇
开源传统对话语料
正在整理中。。。
指令集+答案
Stanford-Alpaca数据集,52K的英文,采用Self-Instruct技术获取,数据已开源:
https://github.com/tatsu-lab/stanford_alpaca/blob/main/alpaca_data.json
中文Stanford-Alpaca数据集,52K的中文数据,通过机器翻译翻译将Stanford-Alpaca翻译筛选成中文获得:
https://github.com/ymcui/Chinese-LLaMA-Alpaca/blob/main/data/alpaca_data_zh_51k.json
pCLUE数据,基于提示的大规模预训练数据集,根据CLUE评测标准转化而来,数据量较大,有300K之多
https://github.com/CLUEbenchmark/pCLUE/tree/main/datasets
Belle数据集,主要是中文,目前有2M和1.5M两个版本,都已经开源,数据获取方法同Stanford-Alpaca
2M:https://huggingface.co/datasets/BelleGroup/train_2M_CN
1M:https://huggingface.co/datasets/BelleGroup/train_1M_CN
0.5M:https://huggingface.co/datasets/BelleGroup/train_0.5M_CN
微软GPT-4数据集,包括中文和英文数据,采用Stanford-Alpaca方式,但是数据获取用的是GPT-4
中文:https://github.com/Instruction-Tuning-with-GPT-4/GPT-4-LLM/blob/main/data/alpaca_gpt4_data_zh.json
英文:https://github.com/Instruction-Tuning-with-GPT-4/GPT-4-LLM/blob/main/data/alpaca_gpt4_data.json
ShareChat数据集,其将ChatGPT上获取的数据清洗/翻译成高质量的中文语料,从而推进国内AI的发展,让中国人人可炼优质中文Chat模型,约约九万个对话数据,英文68000,中文11000条。
https://paratranz.cn/projects/6725/files
OpenAssistant Conversations, 该数据集是由LAION AI等机构的研究者收集的大量基于文本的输入和反馈的多样化和独特数据集。该数据集有161443条消息,涵盖35种不同的语言。该数据集的诞生主要是众包的形式,参与者超过了13500名志愿者,数据集目前面向所有人开源开放。
https://huggingface.co/datasets/OpenAssistant/oasst1
仅指令集
awesome-chatgpt-prompts,该项目基本通过众筹的方式,大家一起设计Prompts,可以用来调教ChatGPT,也可以拿来用Stanford-alpaca形式自行获取语料,有中英两个版本:
英文:https://github.com/f/awesome-chatgpt-prompts/blob/main/prompts.csv
简体中文:https://github.com/PlexPt/awesome-chatgpt-prompts-zh/blob/main/prompts-zh.json
中国台湾繁体:https://github.com/PlexPt/awesome-chatgpt-prompts-zh/blob/main/prompts-zh-TW.json