众包开源的LLM比ChatGPT更好
每个人都想要自己的可商用的大型语言模型。但是如何实现呢?
3个步骤:
1. 构建或获取一个至少拥有1000亿个参数的开源开放授权的基础模型。2. 构建或获取一个指令跟随的数据集来进行LLM的精调。3. 精调LLM以跟随指令。
第一步已经完成,它被称为Bloom。
Bloom是一个由BigScience团队开发的拥有176B参数的基础模型。该模型基于ROOTS语料库进行训练,包含46种人类语言和13种编程语言。关键是,该模型的许可证允许商业目的下使用,但设置了一些合理的限制,以防止有害用途。有趣的是,用于培训该模型的法国超级计算机主要由核能驱动,并且该系统捕获和利用废热为校园住房供暖。
这篇文章:https://arxiv.org/abs/2211.05100 这个模型:https://huggingface.co/bigscience/bloom 许可协议:https://huggingface.co/spaces/bigscience/license
尽管在本地进行推理运行这个模型是很难的。bf16检查点大小为329GB。带有优化器状态的完整检查点为2.3TB。
所以,您需要5个A100 80GB的GPU仅用于保存权重,并且至少需要658GB的RAM来最初加载模型。这是一台强劲的系统。
现实适用于企业。
第二步是创建数据集以进行微调,使其能够遵循说明。这是ChatGPT背后神奇魔力的重要组成部分。
最新的有趣精调指令-following 模型使用了100万条指令提示和它们的响应。在这种情况下,他们使用了GPT-4 来生成响应,但要创建一个真正的开源模型,任何人都可以使用,那是行不通的——除非你想在法庭上测试OpenAI。
那么我们从哪里得到一百万个优质的指令和回应呢?
每个人。
简单的想法。为人工智能而进行公民科学。众包提示和响应。
详细信息有点棘手。我们如何收集这些提示?我建议有人创建一个github库,允许人们通过拉取请求提交提示和响应。这允许进行另一个棘手的部分,即质量审查。
我们不能允许任何旧的提示或回复。我们需要某些类别,例如数据提取和列表生成。因此,我们需要组织。有人必须筛选这些众包输入,并选择正确的输入。此外,我们不能允许任何明显从ChatGPT复制的内容,因此我们需要一种自动搜索ShareGPT数据集(如果仍然可用)的方法,以确保众包提交的回复不与该数据集中的任何回复匹配。
我们怎么知道一个公民科学家没有简单地修改了GPT-4的响应?我们不知道。但至少我们可以说我们尝试过了。
所以我们需要一百万个这些,对吧?好吧,假设我们让人们每个人提交10个提示。那就需要100,000个人提交。这很多,但互联网上有更多。
那么,如果有人野心勃勃,做了25个呢?每个回答花费10分钟,那就只需要4个多小时。不算太可怕。而且还只有40000人,远少于10万人。
关键是,如果互联网想要制作自己的大型语言模型,那它就可以制作自己的大型语言模型。
第三步,实际微调这个东西,是另一个挑战。也许BigScience的人会接受众包的数据集进行微调。或者像Databricks团队那样慷慨的开源团队,他们发布了Dolly2.0和他们手工创建的15,000条指令来微调它。如果数据集可用,最终会有人来完成它。
所以回到数据集上。通过简单地使数据集比OpenAI使用的数据集更好,可能有可能在产出质量方面超越ChatGPT。我们知道OpenAI在初始训练中使用了充满垃圾的LIAON数据集,因此Bloom可能已经在该阶段击败了他们。然后,对于微调,如果指令跟随数据集包含比GPT-4更好的响应,因为是由人类编写的呢?这是纯猜测,但值得一试。
不管怎样,开源社区正在往超越科技巨头的方向发展。
有人将创建一个真正开源且免费可用的微调数据集,然后我们将拥有一个基于布卢姆的完全成型的大型语言模型,符合可供每个人使用的指南。无论这是否是好事,我们都需要等待并观察。