距离 ChatGPT 的最初发布,过去差不多四个月的时间了。在这期间,ChatGPT 的惊艳表现,让人直呼 AIGC 是不是要提前实现了。
不过众所周知的一个秘密是,ChatGPT 不大可能开源,加上巨大的算力投入以及海量的训练数据等,都为研究界复制其实现过程设下重重关卡。
面对 ChatGPT 的来势汹汹,开源平替是一个不错的选择,它们在实现相似功能的同时,还能让你通过替代品了解 ChatGPT 的运行机理。
随着技术的进步,现在已经出现了许多其他类似于 ChatGPT 的新 AI 模型。本文我们将为大家盘点一下 ChatGPT 的开源平替项目。内容将分为两部分,一部分为类 ChatGPT 开源项目汇总,另一部分是对该项目汇总的补充。
项目汇总
项目作者 nichtdax 整理了 9 个开源的 ChatGPT 平替项目。接下来会一一介绍。
项目地址:https://github.com/nichtdax/awesome-totally-open-chatgpt
PaLM-rlhf-pytorch
第一个项目是「PaLM-rlhf-pytorch」,项目作者为 Phil Wang。该项目是在 PaLM 架构之上实现 RLHF(人类反馈的强化学习),它基本上是使用 PaLM 的 ChatGPT。
该项目已在 GitHub 上获得了 5.8k 的 Stars。
项目地址:https://github.com/lucidrains/PaLM-rlhf-pytorch
下图为训练流程。
OpenChatKit
第二个项目是「OpenChatKit」,它提供了一个强大的的开源基础,为各种应用程序创建专用和通用的聊天机器人。该 kit 包含了一个经过指令调优的 200 亿参数语言模型、一个 60 亿参数调节模型和一个涵盖自定义存储库最新响应的可扩展检索系统。
OpenChatKit 是在 OIG-43M 训练数据集上训练的,该数据集是 Together、LAION 和 Ontocord.ai 三者的联合。项目作者表示,这不仅仅是一个模型的发布,还是一个开源项目的开始。他们正在发布一套工具和流程,并通过社区贡献持续改进。
该项目已在 GitHub 上获得了 5.7k 的 Stars。
项目地址:https://github.com/togethercomputer/OpenChatKit
text-generation-webui
第三个项目是「text-generation-webui」,它是一个用于运行 GPT-J 6B、OPT、GALACTICA、LLaMA 和 Pygmalion 等大语言模型的 gradio web UI。该项目旨在成为文本生成领域的 AUTOMATIC1111/stable-diffusion-webui。
功能包括使用下拉菜单在不同模型之间切换、提供类似于 OpenAI playground 的笔记本模式、用于对话和角色扮演的聊天模式、为 GPT-4chan 生成漂亮的 HTML 输出等等。
该项目已在 GitHub 上获得了 3.4k 。
项目地址:https://github.com/oobabooga/text-generation-webui
KoboldAI-Client
第四个项目是「KoboldAI-Client」,它是一个基于浏览器的前端,通过多个本地和远程 AI 模型实现 AI 辅助写作。
KoboldAI-Client 提供了一系列标准的工具,包括内存、作者注释、世界信息、保存 & 加载、可调节的 AI 设置、格式化选项以及导入现有文字冒险游戏《AI Dungeon》的能力。你可以开启 Adventure 模式,也可以玩 AI Dungeon Unleashed 之类的游戏。
该项目已在 GitHub 上获得了 1.4k。
项目地址:https://github.com/KoboldAI/KoboldAI-Client
Open-Assistant
第五个项目是「Open-Assistant」,它旨在让每一个人都可以访问基于聊天的大语言模型。项目作者希望借此在语言创新方面掀起一场革命,就像 stable diffusion 帮助世界以新的方式创造艺术和图像一样。
项目作者计划收集高质量人工生成指令执行样本(指示 + 响应),目标大于 50k。对于收集到的每个指示,他们将采样多个补全结果。接下来进入基于指示和奖励模型的 RLHF 训练阶段。
该项目已在 GitHub 上获得了 19k 的 Stars。
项目地址:https://github.com/LAION-AI/Open-Assistant
stanford_alpaca
第六个项目是「stanford_alpaca」,它旨在建立和共享一个指令遵循的 LLaMA 模型。该 repo 包含了用于微调模型的 52k 数据、用于生成数据的代码以及用于微调模型的代码。
该项目已在 GitHub 上获得了 9.5k 的 Stars。
项目地址:https://github.com/tatsu-lab/stanford_alpaca
ChatRWKV
第七个项目是「ChatRWKV」,它类似于 ChatGPT,但由 RWKV(100% RNN)模型支持,并且是开源的。项目作者表示,RWKV 是目前唯一能在质量和扩展方面媲美 transformers 的 RNN 模型,同时速度更快、节省 VRAM。
该项目已在 GitHub 上获得了 3.5k 的 Stars。
项目地址:https://github.com/BlinkDL/ChatRWKV
ChatGLM-6B
第八个项目是由清华技术成果转化的公司智谱 AI 开源、支持中英双语的对话语言模型「ChatGLM-6B」,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。
ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。
不过由于 ChatGLM-6B 的规模较小,目前已知其具有相当多的局限性,如事实性 / 数学逻辑错误、可能生成有害 / 有偏见内容、较弱的上下文能力、自我认知混乱、以及对英文指示生成与中文指示完全矛盾的内容。
该项目已在 GitHub 上获得了 6k 的 Stars。
项目地址:https://github.com/THUDM/ChatGLM-6B
xmtf
第九个项目是「xmtf」,包含了创建论文《Crosslingual Generalization through Multitask Finetuning》中介绍的 BLOOMZ、mT0 和 xP3 的所有组件。
其中 BLOOMZ 是一个 1760 亿参数且可开放获取的多语言模型;mT0(这里特指谷歌的 T5X);xP3 是 46 种语言的有监督数据集,带有英语和机器翻译的 prompts。
项目地址:https://github.com/bigscience-workshop/xmtf
除了上述提到的模型,ChatGPT 平替项目还包括基于 Meta 开源的大模型系列 LLaMA(Large Language Model Meta AI)的一些研究,这个系列模型的参数量从 70 亿到 650 亿不等。具有 130 亿参数的 LLaMA 模型「在大多数基准上」可以胜过 GPT-3( 参数量达 1750 亿),而且可以在单块 V100 GPU 上运行;而最大的 650 亿参数的 LLaMA 模型可以媲美谷歌的 Chinchilla-70B 和 PaLM-540B。
- 论文链接:https://research.facebook.com/publications/llama-open-and-efficient-foundation-language-models/
- GitHub 链接:https://github.com/facebookresearch/llama
基于此研究,开发者也提出了几个开源项目。
llama.cpp 无需 GPU,就能运行 LLaMA
llama.cpp 项目实现了在 MacBook 上运行 LLaMA,还有开发者成功的在 4GB RAM 的树莓派上运行了 LLaMA 7B。总结而言,即使开发者没有 GPU ,也能运行 LLaMA 模型。
项目地址:https://github.com/ggerganov/llama.cpp
ChatLLaMA
由于 LLaMA 大模型系列没有使用 RLHF 方法,因此初创公司 Nebuly AI 开源了 RLHF 版 LLaMA(ChatLLaMA)的训练方法。它的训练过程类似 ChatGPT,该项目允许基于预训练的 LLaMA 模型构建 ChatGPT 形式的服务。与 ChatGPT 相比,LLaMA 架构更小,但训练过程和单 GPU 推理速度更快,成本更低;该库还支持所有的 LLaMA 模型架构(7B、13B、33B、65B),因此用户可以根据训练时间和推理性能偏好对模型进行微调。
项目地址:https://github.com/nebuly-ai/nebullvm/tree/main/apps/accelerate/chatllama
期待后续更多开源项目加入进来。