来自:量子位
排版:深度学习自然语言处理 公众号

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

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

f6c67a552e7967036d790ce98b5b6721.png

效果是这样儿的:

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

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

16237a217902652e8ab670fca10e0a4e.png

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

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

60db47e3317e39e03fc52c9f156e43f3.png

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

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

2719b863427c09911c1448b1e1b3682e.png

来看看它具体怎么玩?

OpenChatKit,你的平替ChatGPT

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

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

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

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

2、定制配方(recipe)。

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

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

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

fb74299075ab555119cc325ad129bdca.png

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

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

decf52b53366cee964403c386bb4a91d.png

在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数据集上训练的。

同样,从Huggingface下载数据集,然后在repo的根目录运行以下命令就行:

python data/OIG/prepare.py。

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

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

方法是在根目录用以下命令下载GPT-NeoX-20B模型:

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

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

下载好之后,执行bash training/finetune_GPT-NeoXT-Chat-Base-20B.sh脚本,开始配置和训练。

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

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

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

python inference/bot.py

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

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

3ff1fa85fd841402138c8348dada906d.png

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

关于作者

OpenChatKit的归属单位叫Together。

7ef1a275bb02517389156502c8e25293.png

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

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

d97e9b60dfa23cbb3f2c5edebe2c88df.png

CTO是Zhang Ce,苏黎世联邦理工学院计算机专业的助理教授。

c70117019a1027405376a83920ceccb0.png

据推特博主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


进NLP群—>加入NLP交流群

知识星球:NLP学术交流与求职群

持续发布自然语言处理NLP每日优质论文解读、相关一手资料、AI算法岗位等最新信息。

加入星球,你将获得:

1. 最新入门和进阶学习资料。包含机器学习、深度学习、NLP等领域。

2. 最新最优质的的论文速读。用几秒钟就可掌握论文大致内容,包含论文一句话总结、大致内容、研究方向以及pdf下载。

3. 具体细分NLP方向包括不限于:情感分析、关系抽取、知识图谱、句法分析、语义分析、机器翻译、人机对话、文本生成、命名实体识别、指代消解、大语言模型、零样本学习、小样本学习、代码生成、多模态、知识蒸馏、模型压缩、AIGC、PyTorch、TensorFlow等细方向。

4. NLP、搜广推、CV等AI岗位招聘信息。可安排模拟面试。

f547a025f792cc9a4664010117b93360.png

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐