每日观点:ChatGPT 开源平替来了,开箱即用!前 OpenAI 团队打造,GitHub 刚发布就揽获 800+ 星
2023-03-13 14:00:55 量子位

ChatGPT 的开源平替来了,源代码、模型权重和训练数据集全部公开。

它叫OpenChatKit,由前 OpenAI 研究员共同打造。

效果是这样儿的:

可以用简单的语言解释机器学习的概念,也可以回答测试者提出的第二个小问题。


(资料图片仅供参考)

信息提取也难不倒它,比如将一大段计划用表格表示。

据悉,OpenChatKit 一共包含 200 亿参数,在 EleutherAI 的 GPT-NeoX-20B(GPT-3 开源替代品)上进行了微调,还可以连接其它 API 或数据源进行检索等等。

这不,GitHub 刚刚上线,就已经获得了 800+ 标星。

有网友感叹 " 事情进展得也太快了吧 ",作者则回应:

安全带系紧,享受 " 飙车 " 吧。

来看看它具体怎么玩?

OpenChatKit,你的平替 ChatGPT

据介绍,OpenChatKit 一共包含 4 个基本组件:

1、一个指令调优的大型语言模型。

用 EleutherAI 的 GPT-NoX-20B 对聊天功能进行了微调,后者在 carbon-negative 计算上具有 4300 万条指令。

调整重点是多轮对话、问答、分类、提取和摘要等几个任务。

2、定制配方(recipe)。

用来帮助微调模型使其能够为特定任务提供高精度的结果,只需要准备自己的数据集。

3、一个可扩展的检索系统。

可以让你在推理时从文档存储库、API 或其他实时更新信息源添加信息。

4、一个由 GPT-JT-6B 微调而成的调节模型(moderation model)。可以过滤模型对一些问题的响应。

这样的 OpenChatKit 可以为各种应用程序创建专用和通用的聊天机器人。

在 GitHub 上的仓库,你可以找到它的训练代码、测试推理代码以及通过检索增强模型的代码。

具体如何使用?

首先,在开始之前,安好 PyTorch 和其他依赖项。

先从作者团队的网站(Together)安装 Miniconda,然后用此 repo 根目录下的 environment.yml 文件创建一个名为 OpenChatKit 的环境。

由于 repo 使用 Git LFS 来管理文件,所以还需要按照他们网站上的说明进行安装,然后运行 git lfs install。

接着,关于预训练权重

GPT-NeoXT-Chat-Base-20B 是 GPT NeoX 的 200 亿参数变体,它在会话数据集上进行了微调。

作者在 Huggingface 上的 GPT-Next-Chat-Base-20B 发布了预训练权重。

数据集方面,OpenChatKit 模型是在 LAION、Together 和 Ontocord.ai 共同构建的 OIG 数据集上训练的。

python data/OIG/prepare.py。

(你也可以贡献新的数据来改善模型效果~)

然后就可以预训练基础模型了。

python pretrained/GPT-NeoX-20B/prepare.py。

它的权重放在 pretrained/GPT-NeoX-20B/EleutherAI_gpt-neox-20b 目录中。

训练会启动 8 个进程,管道并行度为 8,数据并行度为 1。Checkpoints 则将保存到 repo 根目录的 model_ckpts 目录中。

推理之前,请务必将模型转换为 Hugginface 格式。

为了帮助你测试模型,作者也在这里提供了一个简单的测试命令行工具来进行交互,执行命令:

python inference/bot.py。

默认情况下,脚本会在目录下加载名为 GPT-NeoXT-Chat-Base-20B model 的模型,但我们可以通过— model 进行改变。

都弄好之后,在提示符处输入文本,模型就会回复了。

最后,作者还提供了一个用维基百科进行扩展搜索的例子,操作也比较简单,感兴趣的同学可以自行查看。

关于作者

OpenChatKit 的归属单位叫 Together。

这是一家去年 7 月才成立的创业公司,专门为 AI 行业做去中心化的云服务。

CEO 是 Vipul Ved Prakash,他曾在苹果做了 5 年高级总监。

CTO 是 Zhang Ce,苏黎世联邦理工学院计算机专业的助理教授。据推特博主 Itamar Golan 称,OpenChatKit 的作者包含多位前 OpenAI 研究员。

总的来说,OpenChatKit 开箱即用,擅长多项任务,包括带有上下文的总结和问题回答、信息提取、文本分类等。

但它还不太擅长创意写作(尤其是编长故事)、写代码,以及有时可能会重复响应你的请求、在切换话题时表现迟钝……

不过,正如 Together 在博客中说的那样:

这个模型不是发布完就完了,它是一个开源项目的开始。

或许我们可以持续关注一波~

那么,如果你感兴趣,传送门在这里:

https://github.com/togethercomputer/OpenChatKit

https://huggingface.co/spaces/togethercomputer/OpenChatKit

参考链接:

[ 1 ] https://twitter.com/ItakGol/status/1634590622286741504

[ 2 ] https://www.together.xyz/blog/openchatkit

相关新闻: