都2023了!我不允许你还不了解AIGC!立即报名 了解详情
写点什么

ChatGPT 开源平替来了,开箱即用!200 亿参数,采用 4300 万条指令集微调模型

  • 2023-03-14
    北京
  • 本文字数:2980 字

    阅读完需:约 10 分钟

ChatGPT开源平替来了,开箱即用!200 亿参数,采用4300万条指令集微调模型

3 月 10 日,Together发布了开源(Apache-2.0 许可)基础模型项目 OpenChatKit。OpenChatKit 的聊天模型支持推理、多轮讨论、知识和生成答案,该模型拥有 200 亿个参数并接受了 4300 万条指令的训练。这被认为是 ChatGPT 的开源平替。


资料显示,Together 正在创建第一个专门为处理大型基础模型而设计的分布式云。该公司提供了一个结合数据、模型和计算的直观平台,以帮助 AI 研究人员、开发人员和企业更好地利用和推进 AI。Together 团队认为,大型开放模型应该像开源一样易于使用。


OpenChatKit 提供强大的开源基础,能够为各类应用创建专用及通用型聊天机器人。Together 团队与 LAION 与 Ontocord 合作创建了训练数据集。


Together 团队认为开源基础模型将带来更好的包容性、透明性、稳健性和技术能力。Together 在 Apache 2.0 许可下发布了 OpenChatKit 0.15,源代码、模型权重和训练数据集可以全面访问。


优秀的聊天机器人必须能够执行自然语言指令、在对话中保持上下文,同时做出适度回应。OpenChatKit 提供一个基础机器人,并可根据此基础派生出专用的聊天机器人构建块。


据介绍,套件中共包含四大关键组件:


  • 一套根据指令微调的大语言模型,利用 4300 万指令在 100%负碳排放算力上对 EleutherAI 的 GPT-NeoX-20B 模型做出微调;

  • 自定义 recipes,可通过模型微调提高任务执行精度;

  • 可扩展的检索系统,使您能够在推理时使用来自文档仓库、API 或其他实时更新信息源的信息来增加机器人响应;

  • 由 GPT-JT-6B 微调而成的审核模型,用于过滤用户对机器人提出的问题。OpenChatKit 中的工具还允许用户提交反馈,以供社区成员添加新的数据集;社区可以为不断增长的开放训练数据集做出贡献,这些素材将随时间推移不断改进 LLM 的实际表现。



Hugging Face 上的 OpenChatKit 反馈应用,允许社区成员测试聊天机器人的表现并提交反馈。

指令微调的大语言模型

构成 OpenChatKit 基础的是 GPT-NeoXT-Chat-Base-20B 大语言模型,这套模型基于 EleutherAI 的 GPT-NeoX,并利用涉及对话交互的数据进行了微调。我们将调整重点放在了多轮对话、问答、分类、提取和摘要等几个核心任务上。我们已经使用 4300 万条高质量指令集对模型进行了微调,并与 LAION 和 Ontocord 合作创建了供模型训练使用的 OIG-43M 数据集。


GPT-NeoXT-Chat-Base-20B 能够开箱即用,为广泛的自然语言任务集提供了强大基础。总结来讲,它在 HELM 基准测试中的得分高于其基础模型 GPT-NeoX,在问答、提取和分类等任务上的表现尤其突出。



在 HELM 上评估 GPT-NeoXT-Chat-Base-20B 并与 GPT-NeoX 进行比较。†表示测试所使用的数据,在我们的微调语料库中也有收录。

模型优势

OpenChatKit 能够以开箱即用的方式出色处理多种任务,包括:


  1. 语境总结与答疑;

  2. 信息提取;

  3. 文本分类。


此外,该模型在 few-shot 少样本提示中表现良好。与大多数 HELM 任务一样,对于文本分类和信息提取工作,该模型能在提示较少的情况下表现良好。

模型劣势

Together 团队表示,目前团队还有一些尚未攻克的难关待克服,其中包括:


  • 基于知识的封闭式问答:聊天机器人可能产生“幻觉”,给出不正确的结果。请务必进行事实核查,并在可能的情况下提花包含更正信息的反馈。

  • 编码任务:聊天机器人没有经过足够大的源代码语料库训练,因此并不擅长编写代码。

  • 重复:有时聊天机器人会重复自己给出的回应。

  • 上下文切换:如果您在对话过程中改变话题,聊天机器人往往难以自动切换,而是会继续按照先前的话题给出答案。

  • 创意性写作和长回答:聊天机器人无法生成较长的创意文案,例如文章或故事。

自定义 recipes 以微调模型

大语言模型在通用问答方面表现出了令人印象深刻的能力,而且在针对特定应用场景进行微调后,往往能够实现更高的准确率。例如,谷歌 PaLM 在医学回答方面的准确率已经在 50%左右,而通过添加指令支持和医疗信息微调之后,派生出的 Med-PaLM 一举拿下 92.6%的准确率。对于其他应用任务,也可以采用相同的微调方法。


OpenChatKit 提供多种工具,能够针对各类应用场景进行聊天机器人微调。目前 Together 团队正在与研究小组和企业合作,帮助他们根据自己的任务需求建立自定义模型:


  • 教育助手——对开放教科书数据集进行微调,创建的聊天机器人有望帮助全年龄段学生通过自然对话学习各种主题。

  • 金融问答——利用金融数据进行微调和检索(例如证券交易委员会文件),以实现金融领域的问答能力。

  • 客服代表——利用知识库数据进行微调以创建聊天机器人,帮助最终用户诊断问题并快速给出答案。

如何微调

微调的具体步骤为:


  • 准备相应的数据集,其中的交互示例应符合指定格式。

  • 将您的数据集保存为 jsonl 文件,并按照此处(https://github.com/togethercomputer/OpenChatKit)说明进行聊天模型微调。

  • 别忘了审核模式。在开始使用微调模型之前,请注意审核模型可能会过滤掉域外问题。如有必要,请再准备一些审核数据并对审核模型做微调。Together 在 GitHub 仓库(https://github.com/togethercomputer/OpenChatKit)中提供了整个操作过程的说明文档和源代码。OpenChatKit 是基于 Apache 2.0 许可的完全开源项目,因此用户可以深入调整、修改或审查您自己的应用方案或权重设置。

可提供实时更新答案的可扩展检索系统

OpenChatKit 还包含一个可扩展的检索系统。借助检索系统,聊天机器人能够合并定期更新或自定义内容,例如来自维基百科的知识、新闻提要或者体育赛事比分,将其纳入响应当中。



检索增强系统的工作流程示例。


通过检索系统,聊天机器人能够检索给定问题的相关信息,收集最新的资讯内容。这也为模型的答案提供了“上下文”。举例来说,检索系统能够支持维基百科索引,也可以在检索期间调用 Web 搜索 API 以获取示例代码。只要按照说明文档的指示操作,就能利用检索系统在推理过程中让聊天机器人接入任何数据集或 API,并将实时更新数据合并到响应当中。

如何在检索模式下使用聊天机器人

Together 直接提供一个将检索模型与聊天模型结合起来的一体化脚本,具体请参阅自述文件(https://github.com/togethercomputer/OpenChatKit#retrieval-augmented-models)中的完整信息。


在文档中的维基百科示例中,系统会针对特定用户查询执行以下步骤:


  1. 服务器根据用户查询,从维基百科索引中检索相关语句。

  2. 服务器将步骤 1 的输出添加到查询内,并使用聊天机器人模型生成响应结果。用户可以更改代码和提示以匹配自己的特定用例。

审核模型将在必要时适度干预

OpenChatKit 的最后一个组件,是由 GPT-JT 微调而成的 60 亿参数审核模型。在聊天应用中,审核模型将和主聊天模型协同运行,负责检查用户话语中是否存在不当内容。基于审核模型的评估,聊天机器人可以将输入内容限制为审核主题。对于指向性更强的任务,审核模型还可检测哪些问题属于域外问题,并在与主题无关时将其覆盖。


在推理过程中,Together 团队进行了小样本分类并将用户问题划分为五类。只有当问题属于允许的分类时,聊天机器人才会给出响应:


分类是否允许响应
轻松随意
小概率需要谨慎
大概率需要谨慎
需要谨慎
需要干预


审核是一项难度颇高且相当主观的任务,而且很大程度上由上下文决定。Together 提供的审核模型只作为基准,可以根据各种需求进行调整和定制。Together 希望社区能够继续改进这套基础审核模型,并开发出适合不同文化和组织背景的特定数据集。


Together 与 LAION 和 Ontocord 合作,共同为审核模型提供训练数据集,并针对一系列不当问题对 GPT-JT 做了微调。


参考链接:


https://www.together.xyz/blog/openchatkit


https://www.marktechpost.com/2023/03/12/together-releases-the-first-open-source-chatgpt-alternative-called-openchatkit/

2023-03-14 11:546918
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 446.2 次阅读, 收获喜欢 1938 次。

关注

评论

发布
暂无评论
发现更多内容

软件测试 | 接口加密与解密

测吧(北京)科技有限公司

测试

Python 基础练习题(五)

漫步桔田

INFINI 产品更新|Loadrun 首发亮相

极限实验室

console Gateway infini loadgen loadrun

软件测试 | Jenkins报警机制

测吧(北京)科技有限公司

测试

硬核!阿里出品2023版Java架构师面试指南,涵盖Java所有核心技能

Java全栈架构师

编程 程序员 后端 高并发 java面试

JavaScript 为什么要进行变量提升,它导致了什么问题?

控心つcrazy

JavaScript 面试 js 前端面试题 超全前端面试题

运维训练营第15周作业

好吃不贵

CleanMyMac X4.13mac电脑免费系统优化软件

茶色酒

CleanMyMac X4.13

软件测试 |多套测试环境下的接口测试

测吧(北京)科技有限公司

测试

软件测试 | Jenkins权限控制

测吧(北京)科技有限公司

测试

Python 基础练习题(六)

漫步桔田

React组件之间的通信方式总结(上)

beifeng1996

前端 React

湖仓一体电商项目(二十一):数据发布接口和数据可视化

Lansonli

湖仓一体电商项目

软件测试 | 矩阵job与父子job

测吧(北京)科技有限公司

测试

走进RocketMQ(二)部署模式与实战

白裤

Java RocketMQ RocketMQ实战 RocketMQ部署模式

EasyRecovery16汉化版数据恢复软件

茶色酒

EasyRecovery16

软件测试 | HTTP网络认证体系

测吧(北京)科技有限公司

测试

三天吃透Java虚拟机面试八股文

程序员大彬

Java JVM

React组件之间的通信方式总结(下)

beifeng1996

前端 React

社招前端常见react面试题(必备)

beifeng1996

前端 React

软件测试 | Jenkins的节点管理

测吧(北京)科技有限公司

测试

前端常考react面试题(持续更新中)

beifeng1996

前端 React

快来解锁小程序蓝牙开发技能

南城FE

小程序 微信 前端开发 uniapp 蓝牙

软件测试 | 单元测试体系集成

测吧(北京)科技有限公司

测试

首届OpenHarmony技术峰会携手产业界与学术界,共建技术与人才生态

Geek_2d6073

软件测试 | Jenkins持续集成

测吧(北京)科技有限公司

测试

软件测试 | Jenkins job机制

测吧(北京)科技有限公司

测试

软件测试 | 参数化job

测吧(北京)科技有限公司

测试

软件测试 |Jenkins的常用插件

测吧(北京)科技有限公司

测试

软件测试 |静态扫描体系集成

测吧(北京)科技有限公司

测试

一块GPU搞定ChatGPT;ML系统入坑指南;理解GPU底层架构

OneFlow

人工智能 深度学习

  • 需要帮助,请添加网站小助手,进入 InfoQ 技术交流群
ChatGPT开源平替来了,开箱即用!200 亿参数,采用4300万条指令集微调模型_开源_刘燕_InfoQ精选文章