Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

笔记本就能运行的ChatGPT平替来了,附完整版技术报告

GPT4All 是基于大量干净的助手数据(包括代码、故事和对话)训练而成的聊天机器人,数据包括~800k 条 GPT-3.5-Turbo 生成数据,基于 LLaMa 完成,M1 Mac、Windows 等环境都能运行。或许就像它的名字所暗示的那样,人人都能用上个人 GPT 的时代已经来了。
自从 OpenAI 发布 ChatGPT 后,最近几个月聊天机器人热度不减。

虽然 ChatGPT 功能强大,但 OpenAI 几乎不可能将其开源。不少人都在做开源方面的努力,比如前段时间 Meta 开源的 LLaMA。其是一系列模型的总称,参数量从 70 亿到 650 亿不等,其中,130 亿参数的 LLaMA 模型「在大多数基准上」可以胜过参数量达 1750 亿的 GPT-3。

LLaMA 的开源可是利好众多研究者,比如斯坦福在 LLaMA 的基础上加入指令微调(instruct tuning),训练了一个名为 Alpaca(羊驼)的 70 亿参数新模型(基于 LLaMA 7B)。结果显示,只有 7B 参数的轻量级模型 Alpaca 性能可媲美 GPT-3.5 这样的超大规模语言模型

又比如,我们接下来要介绍的这个模型 GPT4All,也是一种基于 LLaMA 的新型 7B 语言模型。项目上线两天,Star 量已经突破 7.8k。
图片
项目地址:https://github.com/nomic-ai/gpt4all

简单来讲,GPT4All 在 GPT-3.5-Turbo 的 800k 条数据上进行训练,包括文字问题、故事描述、多轮对话和代码。

根据项目显示,M1 Mac、Windows 等环境都能运行。
图片
我们先来看看效果。如下图所示,用户可以和 GPT4All 进行无障碍交流,比如询问该模型:「我可以在笔记本上运行大型语言模型吗?」GPT4All 回答是:「是的,你可以使用笔记本来训练和测试神经网络或其他自然语言(如英语或中文)的机器学习模型。重要的是,你需要足够可用的内存 (RAM) 来适应这些模型的大小……」

接下来,如果你不清楚到底需要多少内存,你还可以继续询问 GPT4All,然后它给出回答。从结果来看,GPT4All 进行多轮对话的能力还是很强的。 
图片在 M1 Mac 上的实时采样

有人将这项研究称为「改变游戏规则,有了 GPT4All 的加持,现在在 MacBook 上本地就能运行 GPT。」
图片
与 GPT-4 相似的是,GPT4All 也提供了一份「技术报告」。
图片
技术报告地址:https://s3.amazonaws.com/static.nomic.ai/gpt4all/2023_GPT4All_Technical_Report.pdf

这份初步的技术报告简要描述了 GPT4All 的搭建细节。研究者公开了收集的数据、数据整理程序、训练代码和最终的模型权重,以促进开放研究和可重复性,此外还发布了模型的量化 4 位(quantized 4-bit)版本,这意味着几乎任何人都可以在 CPU 上运行该模型。

接下来,让我们看看这份报告中写了什么。

GPT4All 技术报告

1、数据收集和整理

在 2023 年 3 月 20 日至 2023 年 3 月 26 日期间,研究者使用 GPT-3.5-Turbo OpenAI API 收集了大约 100 万对 prompt 回答。

首先,研究者通过利用三个公开可用的数据集来收集不同的问题 /prompt 样本:

  • LAION OIG 的统一 chip2 子集
  • Stackoverflow Questions 的一个随机子样本集 Coding questions
  • Bigscience/P3 子样本集进行指令调优

参考斯坦福大学 Alpaca 项目 (Taori et al., 2023),研究者对数据准备和整理给予了大量关注。在收集了最初的 prompt 生成对的数据集后,他们将数据加载到 Atlas 进行整理和清理,删除了所有 GPT-3.5-Turbo 未能响应 prompt 并产生畸形输出的样本。这使得样本总数减少到 806199 个高质量的 prompt - 生成对。接下来,研究者从最终的训练数据集中删除了整个 Bigscience/P3 子集,因为它的输出多样性非常低。P3 包含许多同质化的 prompt,这些 prompt 从 GPT-3.5-Turbo 中产生了简短而同质化的反应。

这种排除法产生了一个包含 437,605 个 prompt - 生成对的最终子集,如图 2 所示。

图片

模型训练

研究者在 LLaMA 7B (Touvron et al., 2023) 的一个实例中将几个模型进行微调。他们最初的公开版本相关的模型是用 LoRA (Hu et al., 2021) 在 437605 个后处理的例子上以 4 个 epoch 训练的。详细的模型超参数和训练代码可以在相关的资源库和模型训练日志中找到。

可重复性

研究者发布了所有的数据(包括未使用的 P3 generations)、训练代码和模型权重,供社区进行复现。感兴趣的研究者可以在 Git 存储库中找到最新的数据、训练细节和检查点。

成本

研究者大概用了四天的时间制作这些模型,GPU 成本为 800 美元(从 Lambda 实验室和 Paperspace 租的,其中包括几次失败的训练),此外还有 500 美元的 OpenAI API 费用。

最终发布的模型 gpt4all-lora 可以在 Lambda 实验室的 DGX A100 8x 80GB 上用大约 8 小时训练完成,总成本为 100 美元。

这个模型可以在普通笔记本上运行,真就像网友说的「除了电费之外,没有任何成本。」

图片

评估

研究者使用 SelfInstruct 论文 (Wang et al., 2022) 中的人类评估数据对该模型进行了初步评估。报告还对比了该模型与已知最好的公开的 alpaca-lora 模型(该模型由 huggingface 的用户 chainyo 提供)的 ground truth 困惑度。他们发现,所有的模型在少数任务上都有非常大的困惑度,并且报告的困惑度最大为 100。与 Alpaca 相比,在这个收集的数据集上进行微调的模型在 Self-Instruct 评估中表现出了更低的困惑度。研究者表示,这个评估不是详尽的,仍存在进一步的评估空间 —— 他们欢迎读者在本地 CPU 上运行该模型(文件见 Github),并对它的能力有一个定性的认识。

最后,需要注意的是,作者公布了数据和训练细节,希望它能加速开放的 LLM 研究,特别是在对齐和可解释性领域。GPT4All 模型的权重和数据仅用于研究目的,并获得许可,禁止任何商业使用。GPT4All 是基于 LLaMA 的,LLaMA 具有非商业许可。助理数据是从 OpenAI 的 GPT-3.5-Turbo 收集的,其使用条款禁止开发与 OpenAI 进行商业竞争的模型。
工程ChatGPT平替
相关数据
权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

聊天机器人技术

聊天机器人是经由对话或文字进行交谈的计算机程序。能够模拟人类对话,通过图灵测试。 聊天机器人可用于实用的目的,如客户服务或资讯获取。有些聊天机器人会搭载自然语言处理系统,但大多简单的系统只会撷取输入的关键字,再从数据库中找寻最合适的应答句。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

量化技术

深度学习中的量化是指,用低位宽数字的神经网络近似使用了浮点数的神经网络的过程。

推荐文章
暂无评论
暂无评论~