聊聊开源类ChatGPT工作——MOSS

自从ChatGPT发布以来,它的“三步走方案”就好比《九阴真经》流落到AI江湖中,各大门派练法不一,有人像郭靖一样正着练,循序渐进;有人像欧阳锋一样反着练,守正出奇;也有像梅超风一样仅练就半部《九阴真经》,凭借九阴白骨爪横行江湖的。这也说明,“三步走方案”并非终局,在复现的基础上,多做些思考,像斗酒僧一样,认识到《九阴真经》的不足之处,加以修复,方能得到阴阳调和、刚柔互济的《九阳真经》。

这个系列希望通过介绍现有的类ChatGPT工作,提供一个鸟瞰的视角,方便读者了解他们的异同,如果能有所启发那是最好了。受限于个人能力,其间可能会有疏漏错误,欢迎一同讨论。

Part1三步走方案

抱着self-contained的原则,简要介绍一下ChatGPT的三步走技术方案[1],更详细的介绍可在互联网上找到:

  1. SFT Model:通过人工标注的问答数据,对强大的GPT预训练模型进行supervised fine-tuning,即得到SFT模型,这个过程又可以称为Instruction tuning。

  1. Reward Model:SFT模型在同一个问题上会得到的多个回答,对其进行好坏程度标注,然后将标注数据训练一个GPT模型,使模型能够判别回答的好坏,这便得到了Reward Model。

  1. PPO Model:使用Proximal Policy Optimization算法,让Reward Model引导SFT模型进行符合人类意图的回答,便得到了PPO Model,即ChatGPT模型。

Part2Moss

让我们从中文的工作开始讲起,复旦大学的Moss在23年2月20日晚便打响了中文版ChatGPT的第一枪,但当晚我却一直无法打开官方主页。近日MOSS团队兑现了他们的诺言,将预训练模型、SFT模型(包括插件版)和训练数据一并开源出来,这应该是目前开源得最彻底的中文ChatGPT工作了,接下来从几个方面来展开看看:

整体效果

MOSS目前开源了moss-moon-003-sft,这并不是最终版,但主要的能力基本已具备,知乎上有网友对其进行了评估,结论为:MOSS的性能基本达到了ChatGLM-6b的78%。官方称后续会公布他们的评估结果,但就我个人的使用moss-moon-003-sft的主观体验来看,的确是ChatGLM-6b略胜一筹。

预训练模型

虽然相关的论文还没放出来,但根据参与者的介绍[2]:

基座是codegen初始化,它的训练语料包括pile bigquery bigpython,我们又在100B中文+20B英文和代码上继续预训练的

codegen作为一个代码生成模型,将其作用来初始化基座模型,难免有些违背直觉。但细想下:

  1. 放眼国内,大模型之风从18年底Bert发布开始,decoder-only的结构始终不如encoder-only和encoder-decoder盛行,导致学校和企业自研的decoder-only模型并不多,大规模的更是少之又少。

  1. 当时Bert的large版本不过3亿参数,如果要做百亿模型不仅需要魄力,更需要资源,能入局的玩家凤毛麟角,所以人家训练好的百亿模型也不会轻易开源。

  1. 大模型写代码现在来看已经是标配,但将代码作为预训练数据的开源中文大模型却不多。

所以,一个开源可用的中文decoder-only大模型几乎不存在,这么一来,如果没有自研的大模型,那在一个代码生成模型上做继续预训练也不失为一种曲线救国的方案。但估计是受限于计算资源,MOSS团队进行了120B的继续预训练,这个数量和现在受欢迎的LLaMA(1T+ tokens)相比,还是一段差距的。

SFT

SFT部分的核心在于标注数据的质量,MOSS所用的SFT数据一大亮点是来自于真实用户的提问,同时他们也引入了3H(helpfulness, honesty, harmlessness)数据,这样即使是SFT模型,也能够具备初步的有助、无害、诚实的能力。目前开源了moss-002的标注数据,这部分的数据回复偏短,可能是由于使用Self-Instruct生成的缘故。SFT对数据质量的要求非常高,所谓“garbage in, garbage out”,Alpaca使用了self-instruct生成的数据,而Vicuna使用了shareGPT上用户真实的数据,效果上Vicuna明显胜出,中文方面目前很缺少像shareGPT这样的高质量数据。

SFT-plugin

MOSS团队同时还放出了会使用工具(即plugin)的版本——moss-moon-003-sft-plugin。大模型让人惊艳的能力之一便是它的推理能力,所谓推理,是指将复杂问题拆分为多个简单子问题的能力,通过逐个解决这些简单子问题,便能得到最终的正确答案。但在实际中,即使强如ChatGPT,在解决简单子问题的时候仍然容易出错,比如4位数的乘除法,一旦其中一个子问题出错,便会导致最终结果的错误。自然而然地,我们可以想到:让模型在解决简单子问题时通过使用外部工具以保证答案的正确性。

换一个角度,将模型比作大脑,而一个个工具则相当于是模型能与外部世界交互的手脚,这是一个令人激动的方向。近期这方面有不少亮眼的工作,如:ToolFormer[3]、ReAct[4]、HuggingGPT[5]、TaskMatrix.AI[6]、AutoGPT[7]……open AI自己也相应推出了ChatGPT plugins

让ChatGPT使用工具,仅仅需要在Prompt里说明每个工具即可,借助于ChatGPT强大的zero-shot推理能力,即使ChatGPT从未在训练过程中用过这些工具,它也能使用这个工具较好地完成任务。但对于像MOSS一样的百亿模型也可以吗?MOSS选择的方案是为每个工具构造对应的训练数据,然后用于训练模型,通过这种方式教会模型使用特定的工具。

“使用搜索工具”的训练数据

“使用搜索工具”的训练数据

这种方案优点是能够确保模型能够深刻理解每个工具的用处,但缺点也很明显:

  1. 每次添加新工具,需要对应构造训练数据,重新训练模型

  1. 从给出的样例来看,用户的问题仅需一个工具就被解决了,但实际中,用户的要求可能需要调用多个工具才能达成,比如:姚明比奥尼尔高多少?

总之,让模型自己分解任务,组合使用工具完成任务,被认为是“自主智能体”,这个方向这近期将会有大量的工作涌现。

Reward Model+PPO

MOSS repo的README中提到其最终版是经过偏好模型训练得来的,这里的偏好模型即Reward Model。目前能在PPO上取得收益的开源工作好像不多,所以很多类Chatgpt的工作也只是做了第一步SFT。目前MOSS还未开源这部分的工作,很期待看他们的实现细节。

——2023.04.24

Reference

[1] Introducing ChatGPT

[2] 复旦团队大模型 MOSS 开源了,有哪些技术亮点值得关注? - 孙天祥的回答 - 知乎

[3] Language Models Can Teach Themselves to Use Tools

[4] REACT : SYNERGIZING REASONING AND ACTING INLANGUAGE MODELS

[5] HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face

[6] TaskMatrix.AI: Completing Tasks by Connecting Foundation Models with Millions of APIs

[7] Auto-GPT: An Autonomous GPT-4 Experiment https://github.com/Significant-Gravitas/Auto-GPT

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/1406.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面对ChatGPT我们未来有怎样变化,先了解ChatGPT工作流

不在沉默中毁灭,那就傍人门户,你吃肉我喝汤。 ChatGPT是一个基于神经网络的语言模型,可怕的是它具有强大的学习能力和语言理解能力,能没日没夜训练互联网上的各种文本数据。具体来说,OpenAI使用了大量的网络爬虫技术&a…

ChatGPT工作提效之初探路径独孤九剑遇强则强

ChatGPT工作提效之遇强则强 前言一、如何使用ChatGPT二、ChatGPT实战应用三、ChatGPT会叫的小孩有奶吃工具类的交互问答类的交互开发类的交互 前言 读《笑傲江湖》西湖比剑时,对于独孤九剑1的解读印象颇为深刻。令狐冲被任我行这个高手激发出许多精妙的剑招。这独孤…

ChatGPT工作原理解析

自 ChatGPT 发布以来,已经吸引了无数人一探究竟。但 ChatGPT 实际上是如何工作的?尽管它内部实现的细节尚未公布,我们却可以从最近的研究中一窥它的基本原理。 ChatGPT 是 OpenAI 发布的最新语言模型,比其前身 GPT-3 有显著提升。…

ChatGPT工作原理与技术细节

ChatGPT工作原理与技术细节 自ChatGPT发布以来,ChatGPT的能力一直在刷新大家对人工智能的认知,但 ChatGPT究竟是如何工作的呢?虽然其内部运作的细节尚未公布,但我们可以从最近的研究中拼凑出它的工作原理。 ChatGPT 的工作原理 Ch…

给程序员的ChatGPT使用指南:优化工作流程的 3 种实用方法

ChatGPT for Coders: 3 Practical Ways to Optimise your Workflow 自从 ChatGPT 发布以来,我在互联网上看到了很多关于它对未来编程可能意味着什么的讨论。 肯定有很多“FUD”在那里传播,但它基本上归结为两个论点: 编程将继续有利可图&…

ChatGPT能承担哪些工作?

ChatGPT拥有高效的自然语言处理能力,它最容易取代的领域可能是:文本分类、聊天机器人、文本生成、问答系统、文字识别和自动翻译方面。最容易取代的职业可能是:客服人员、技术类、媒体类、教师、法律类、金融类。使相关的人员在工作生活中更加…

重磅!ChatGPT 网页版来啦!响应速度超快!

平替 ChatGPT 继公众号对接 ChatGPT 以来,经过大家的试用与提出的建议,上线、优化了诸多功能,使得我们的公众号几乎完美~ 在此之上,不负众望,五一假期掏粪三天三夜,平替 ChatGPT 网页版 已经上线&#xf…

这个gayhub的大佬作者,更新起ChatGPT的项目,简直是高产如奶牛呐!实战网页版chatgpt-web源码(上)

大家好啊,我是测评君,欢迎来到web测评。 最近chatgpt真的是火了一遍又一遍,基本逛gayhub,gitee等开源社区的时候,随处可见各种大佬写的开源项目。今天给大家分享的是Chanzhaoyu大佬编写的一个网页版chatgpt&#xff0c…

如何使用 ChatGPT 完全自动化网页抓取

Web 抓取是使用脚本从网站自动提取数据的过程。ChatGPT 能够为您生成网络抓取脚本代码。让我们看看这是如何工作的…… IMDb 是一个提供有关电影、电视节目和其他娱乐形式的信息的网站,包括评分最高的电影图表,该网站https://www.imdb.com/chart/top/?r…

免费快速部署ChatGPT线上聊天网页:ChatGPT API + Github + Railway

1、使用工具 (1)需要自己生成的openai api,获取API的网站:openAI API 获取方式:OpenAI的API key获取方法 (2)本次使用该参考项目进行部署:chatweb 需要将该项目fork到自己的仓库里 …

ChatGPT网页版(基于SpringBoot和Vue)

目录 1.使用说明1.1 登录1.2 获取OpenAI KEY或User Token1.3 创建对话1.4 删除会话 1.使用说明 1.1 登录 登录http://chatgpt.alpacos.cn/ 1.2 获取OpenAI KEY或User Token 如果自己有OpenAI的token(sk-xxxx)的话,可以直接输入,点击右上角绑定按钮&am…

基于Vercel自建ChatGPT网页应用

因为平时我们在使用ChatGPT官方提供的网页应用的时候,总是经常访问不了,或者经常报错,越来越频繁,一旦你离开页面太久,再返回跟它对话的时候,就会出现如下报错等等。 An error occurred. If this issue per…

ChatGPT-Next-Web: 一键轻松拥有自己专属的 ChatGPT 网页服务

公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! ​ 今天给大家推荐一个非常好用的开源项目:ChatGPT-Next-Web。 这个开源项目可以做到一键免费部署你的私人 ChatGPT 网页应用。如果部署Vercel,Vercel可以绑…

ChatGPT实现HTML网页文本提取

网页自动化工具 既然ChatGPT对于编程语言有非常强大的理解能力,那么它是否可以用来自动化地处理网页呢?答案是肯定的。ChatGPT可以使用机器学习算法来识别网页元素中的文本,并抽取出有用的信息。 例如我们提供一段层数比较多的相对来说较为…

【ChatGPT实战】5.使用ChatGPT自动化操作网页

在当今数字化的时代,网页已经成为了人们获取信息、娱乐、社交和购物等方面的主要途径。然而,随着我们对网页的需求和使用不断增加,我们也经常会面临着一些繁琐的网页操作,例如自动填充表单、自动化浏览和搜索等,这些操…

【chatGPT】API 即将来临,GPT-3 不等同于chatGPT,chatGPT收费了?

今天的人工智能系统具有令人印象深刻但范围有限的能力。 似乎我们会不断削弱它们的限制,在极端情况下,它们几乎可以在每一项智力任务上达到人类的水平。 很难想象人类水平的人工智能能给社会带来多大的好处,同样也很难想象如果构建或使用不当…

chatgpt3.5实时插件

打开chrome的应用商店搜索webchatgpt 添加webchatgpt扩展插件打开chatgpt打开web开关

ChatGPT所有插件详细教程

​ 编辑切换为居中 添加图片注释,不超过 140 字(可选) 官方插件 ​ 编辑切换为居中 添加图片注释,不超过 140 字(可选) 插件名称:KeyMate.AISearch 描述:使用自定义搜索引擎进行…

技巧|使用Chatgpt练习多种类型口语

练雅思口语——其实练什么语言、什么形式的口语都可以。 ChatGPT作为一款聊天机器人,自然可以用于对练口语——只要你的输入和它的输出都变换为语音的形式即可。 一、语音插件 首先,谷歌搜索voice control for chatgpt,点击第一个chrome……

chatgpt赋能Python-python3_9怎么安装

Python 3.9:安装指南 如果你正在学习编程或者已经是一名程序员,那么一定会了解到Python这个编程语言。Python是一种高级编程语言,其强大的设计特点和易于操作的特性使其成为了开发人员的首选。Python 3.9已经发布了,它虽然不是Py…