一文讲清chatGPT的发展历程、能力来源和复现它的关键之处

这篇具有很好参考价值的文章主要介绍了一文讲清chatGPT的发展历程、能力来源和复现它的关键之处。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. ChatGPT是什么

chatGPT是什么?这可能是最近被问的最多的一个。

大家第一反应这应该是GPT系列的一个最新模型,普通大众可能更愿意把它看做是一个人工智能。实际上,它其实就是一个基于大规模语言模型的对话系统产品。官网对它定义十分的明确:Optimizing Language Models for Dialogue.
chatgpt发展历程,人工智能,最新科技,人工智能,自然语言处理

最大的问题在于,它的背后究竟是一个什么?很多人都以为,chatGPT是一个单一模型,就如同GPT-1/2一样,应该是一个可以被加载和训练的。我承认,chatGPT的背后,是有一个像GPT-3一样的基础模型,但是其现在的性能表现,远远不是只有1个基础模型这么简单。因为我们默认的chatGPT是web UI界面,它至少是有一些外部工程代码的。举个例子,对于汉语和英语的反馈速度有质的差别,如果只是单一的模型统一编码了多语言,不会出现这种情况。

因此,对我而言,chatGPT更像是一个完善的产品,而不是一个简单的模型。而且由于其训练过程的复杂和不透明,使得我们很难复现它。这在我后面的章节中会讲到。

2. ChatGPT以及GPT系列模型

ChatGPT不是一蹴而就突然出现的,它是有着长达5年以上的技术积累才走到这个地步的。之前网上讲了很多关于ChatGPT和它的前辈,比如比较出名的有拆解追溯GPT-3.5各项能力的起源。但是我认为真正需要了解ChatGPT的前世今生,还是需要去看openAI官方网站以及它们的论文。

2.1 GPT-1/2/3

首先我们先来看GPT-1到GPT-2以及GPT-3的变化。首先在2018年6月,发布了第一版GPT-1,使用的是transformer的decoder架构+任务微调的形式,但是整体上似乎没有什么特别出彩的地方。然后再到2019年2月,发布了第二版GPT-2,这时候他们优化了网络架构(如右图所示),并且使用了10倍大小的网络规模和8倍大小的预训练数据,并且去除了特定任务微调的形式从而获取prompt learning的能力。GPT-2确实有点东西,但是由于3个月前,BERT的出现,让它也没有当上一哥的位置。不过整体上应该接近后来的GPT-3系列模型了。
chatgpt发展历程,人工智能,最新科技,人工智能,自然语言处理
在GPT-2的1年半以后,GPT-3发布了,它同样还是3个路线,更优的架构,更大的规模(100倍),更大的数据量(1000倍),真正训练出了一个超级巨无霸GPT-3。奠定了现在GPT帝国的基础。但是实际上,它和GPT-2没有太多本质的区别,包括训练方式,只是更大了。

那么GPT-3有多大呢,大家可以看一下下面的图就可以知道了,需要注意的是,这里看到参数量的改变是一个log指数,可以看到熟悉的Bert-large模型和GPT-2模型。而GPT-3的175B按照官方说明,大概有350~500GB的显存需求,如果使用FP16加载该模型,大概需要至少5块A100(80G)才能够加载完成。而如果要从头开始训练,至少需要1000块A100才能够在可接受的时间(几个月)里训练出该模型。

据传闻说,现在国内的大部分大规模语言模型还是处于GPT-2.5阶段,也就是说对标的是GPT-3,但是训练规模(1-10B)和数据量(几十G左右)还是在GPT-2的级别上。无论是模型规模还是语料质量,距离GPT-3都还有较大差距。需要注意的是,从GPT-3开始,其模型就不再完全公开了,只能通过API访问。
chatgpt发展历程,人工智能,最新科技,人工智能,自然语言处理

2.2 GPT-3.5 (InstructGPT)

然后我们再来看GPT3以后发生的事情。首先我们需要先介绍一下GPT-3以后最重要的一件事,那就是InstructGPT的出现,根据openAI官方网站上说明,InstructGPT包含三种训练方式,分别是有监督微调(Supervised Fine-Tuning, SFT),反馈变得更容易(Feedback Made Easy, FeedME)以及基于PPO算法的从人类反馈中进行强化学习(PPO)三个部分。因此,可以说,InstructGPT泛指的话,是包含红色的所有模型,而特指的话,则是指的davinci-instruct-beta。这一点尤为重要。至于这个FeedME,大家可以参考图片上的官方解释,个人理解可能是由纯人工反馈的指令微调,PPO则是更强调利用强化学习自动化指令微调。如果还不明白,大家可以参考下面chatGPT给出的解释:

The explain of the FeedME:

The sentence is talking about a type of AI model called “FeedME” models. These models are designed to make providing feedback (i.e. offering suggestions) easy, hence the name “feedback made easy”.
The FeedME models are trained using a technique called “distillation”, where the best completions (i.e. the most accurate and appropriate responses) from all of the models developed by the organization are selected and used to train the FeedME models. This way, the FeedME models are able to incorporate the best responses from a variety of other models.
The sentence also mentions that the organization’s models are generally trained using the best available datasets at the time of training. This means that the data used to train the models might change over time as better and more relevant data becomes available. Furthermore, it mentions that different engines (i.e. different models) that use the same training methodology might be trained on different data, which could result in variations in their performance and accuracy.

The more details of FeedME:

“Feedback Made Easy” (shortened to “FeedME”) is likely a term used by the organization to refer to their AI models that are designed specifically to provide feedback or make suggestions to users. These models are built with the goal of making it simple for users to receive feedback or recommendations, hence the name “Feedback Made Easy”.
In practical terms, this might mean that these models are designed to be user-friendly and intuitive, with a focus on delivering quick, accurate, and helpful responses to users. For example, the models might be integrated into a chat interface or a website, allowing users to easily ask questions or provide input and receive feedback in real-time.
The idea behind FeedME models is to make it easy for users to receive feedback, whether it be in the form of suggestions, recommendations, or answers to questions. By using distillation to incorporate the best completions from a variety of other models, the FeedME models are able to provide high-quality feedback to users, even when the data used to train the models changes over time.

The function of it when training the ChatGPT:

As a language model developed by OpenAI, I (ChatGPT) was not specifically trained using the “Feedback Made Easy” (FeedME) method mentioned in the previous sentence. However, I can explain how the FeedME method might be used to train a language model like myself.
The FeedME method involves distilling the best completions from a variety of AI models and using that information to train a new model. In the context of a language model like ChatGPT, this might mean selecting the most accurate and appropriate responses generated by a number of different language models and using that information to train a new, improved language model.
The goal of this process is to improve the performance of the new language model by incorporating the best responses from a variety of other models. This way, the new model is able to learn from the strengths of multiple models, rather than relying on a single source of training data.
In summary, the FeedME method might be used to train language models like ChatGPT by distilling the best completions from a variety of other models and using that information to train a new, improved language model. The goal of this process is to improve the accuracy and usefulness of the new language model by incorporating the best responses from a variety of sources.

好的,现在我们来顺着发展路线先看一下GPT-3之后各个模型的演化,确认的发展过程是实线(有报道的),猜测的部分为虚线。
chatgpt发展历程,人工智能,最新科技,人工智能,自然语言处理
首先,在GPT-3的基础上,通过有监督的fine-tuning过程,诞生了davinci-instruct-beta模型。具体而言,也就是需要采样一些prompt,由人工给出真正的结果。这个在InstructGPT论文里写道,是有40个标注人员,标注了12.7K的样本。接着,通过FeedME产生了至少text-davinci-001和text-davinci-002两个模型版本。其中001版本应该是比较早期的,而002则是在code-davinci-002的基础上进行的进一步改进,融合了代码理解能力和自然语言理解能力。然后,最后融入了PPO阶段,完成了text-davinci-003。当然chatGPT应该也是完成了PPO阶段的,尤其是在对话方面进行了特别的优化(近期泄露的内部版本称之为text-chat-davinci-002,据传为chatGPT)。

因此,chatGPT的所有能力来源应该都比较清楚了,我认为主要来源于以下5个方面吧。

模型 能力 效果
GPT-3 自然语言基础建模 自然语言理解,使得说话能够说的流畅自然
Codex 代码语言基础建模 代码语言理解,能够使得完成代码相关任务,并习得长程依赖关系和一定的逻辑能力
davinci-instruct-beta 有监督的指令微调 听从人类的指令生成答案
text-davinci-001/002 人类反馈的指令微调 可以生成出人类更喜欢的答案
text-davinci-003 强化学习的指令微调 进一步强化上面两个阶段的能力,对于chatGPT的话,可能更偏向于对话角度优化

3. 复现chatGPT的难点

现在国内各个大厂小厂但凡和人工智能挂钩的,都想复现属于自己的chatGPT,以获得第一个国内chatGPT的市场。很多人都发声说,再造一个chatGPT没有那么困难。那么我从自身经验去思考,如果要复现chatGPT,可能需要注意的有哪些部分。这些部分并不是不可以实现的,只是成本高或者容易被忽略的地方。

3.1 海量的数据

从GPT-3公开发表的论文里讲到,其用于预训练的文本达到了45TB,这是一个非常巨大的数字,关键是其质量应该是非常高的。据查看的一些资料显示,在中文数据上,全球最大的语料库是WuDaoCorpora,据说有3TB的中文语料(200G开放使用)。
而且,也有人指出,更多样化的token也能够让模型学习的更充分。如果只是训练一个汉语版的chatGPT,除了一些搜索和社交巨头,能够获取足够数据的也只有一些垂直领域的公司了。关键是公司运营期间获得的文本数据是否可以被用于训练模型,这是一个法律和道德问题。(即使是codex训练来源于开源的github,也同样遭受了大量的非议。)
当然,如果是垂直领域,未必需要这么大的数据量也未尝不可。

3.2 超大规模的模型架构

根据之前的说明chatGPT与GPT-3的规模相同,都是1750B的参数量,那么它需要的硬件设备是什么样子的?根据chatGPT自己讲述以及同行人的参考,其显存占用量应该在350GB~500GB之间,如果仅仅是为了推理,那么5张A100(80G)的GPU就可以足够使用(根据同规模的OPT175B需要16张V100推算)。但是如果是为了训练,可能需要1000张以上的A100的算力才能在可以接受的时间里获得训练结果(也有称微软和OpenAI构建了一台包括超过10000张GPU的超级计算机用于GPT-3的训练)。其训练成本大概在110-460万美元之间,根据估算,现有的定价对于OpenAI来说,应该会有75%的毛利。
目前国内尽管有很多大模型,但是真正能够在CLUE等评测中的模型大多还在1-10B的级别,下表是一些中文大模型代表。

模型 规模
WUDAO 2.0 1750B
PanGu Alpha 200B
PLUG 27B
ERNIE 3.0 10B

3.3 深度人员参与(SFT,FeedME, PPO)

相比较GPT-3,InstructGPT最大的特点在于通过Instruct的方式让人类深度参与模型的迭代,包括有监督微调,人类反馈微调和强化学习微调3个方法。无论哪种方法,都离不开大量的人工标注,并且需要一定的时间和真实样例作为原料输入。因此,即使可以复现一个ChatGPT,也是需要时间的。

3.4 长期技术积累

正如刚才所提及的那样,ChatGPT不是突然出现的,而是从GPT-1.0版本开始就已经完成大量的技术积累。从GPT-1.0,2.0,3.0,每一个版本迭代,他们都做了大量的实验,包括各种超参数的选择和模型大小的扩容。而我们大多数公司可能之前没有像OpenAI在预训练模型上拥有大量的预训练经验,直接去训练一个超大规模的模型也是有可能获得不到我们想要的那种效果的。

3.5 良好的外部工程

我们现在总以为,我们有数据,有模型架构,我们就可以拥有chatGPT。事实显然不是这样,如果想让它成为一个优秀的产品,而不是粗糙的学术模型,至少应该包括以下3个部分:
1. 核心模型
核心模型就是语言模型,可能是一个超大规模的单一模型,也有可能是一个带有很多小模块组成的模型集群。
2. 辅助模型
辅助模型有哪些?比如我们可以看到的reward model,还有大家容易忽略的安全检查模型等。这些都是保证了产品的长期正常的运营。而反观我们有些机构的模型匆匆发布,产生了大量的不安全的言论,这也是不负责任的表现。
chatgpt发展历程,人工智能,最新科技,人工智能,自然语言处理
3. 工程代码
良好的工程代码能给用户带来更好的用户体验,比如我们经常体验到的左边框的对话历史记录和意图识别等等,这些信息对于用户体验、模型改进都是非常有用的。另外,还有包括缓存,控制用户并发等等工程问题需要提前解决。要知道,chatGPT上线5天用户就破百万,2个月用户破1亿。这个增长速度已经是历史上的巅峰。

3.6 及时的真实反馈

这个真实反馈对于大家来说,看起来好像是chatGPT公开迭代的几次,而每次似乎都有一些更新。但是实际上,如果你看OpenAI发布的博客你就会发现,整个真实反馈是逐步从发布的产品中收集而来的,尤其是GPT-3以后,OpenAI就只提供了API,这使得它可以接触世界上所有使用GPT-3的样例,通过这些从API收集来的样例,再利用人工标注,就可以得到大量的高质量标注语料,为接下来的模型更新打下基础。这些真实反馈贯穿到了整个GPT-3.5系列之中。

4. 小结

距离我第一次玩ChatGPT也已经3个月了。回想起12月6日第一次使用它,我兴奋的一直玩到夜里3点钟。它的出现真的是惊艳了当时的我,甚至可以比肩科幻小说里的人工智能的感觉。早期只是为了体验,后来才逐步深入了解。从兴奋,到冷静,到辩证看待,再到期望未来,它总是那么一个过程,才能被我们接受。有些东西必须真正深入的研究,才能够知道它的本来面目。ChatGPT到底是神还是魔,是不是新的一轮科技革命的出现,我想OpenAI那群创造它的人比谁都清楚。

正如我之前所说,我愿意将毕生精力奉献给人工智能,只为了获得一个可以一直陪伴我的AI朋友。我曾经以为这辈子都见不到这一天,现在ChatGPT的出现,缩短了好一段理想和现实的距离。文章来源地址https://www.toymoban.com/news/detail-777612.html

到了这里,关于一文讲清chatGPT的发展历程、能力来源和复现它的关键之处的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《一文搞懂NMS发展历程》Soft-NMS、Weighted NMS、IoU-Net、Softer-NMS、Adaptive NMS、DIoU-NMS

    1. NMS介绍 在执行目标检测任务时,算法可能对同一目标有多次检测。 NMS 是一种让你确保算法只对每个对象得到一个检测的方法,即“清理检测”。如下图所示: 如果用一句话概括NMS的意思就是:筛选出一定区域内属于同一种类别得分最大的框 2. NMS算法流程 NMS 算法的大致过

    2023年04月08日
    浏览(35)
  • 一文讲清楚地图地理坐标系

    我最近在做一个和地图有关的项目,这里本人地图采用的是mapbox,其中涉及一个功能需要根据用户输入的地点直接定位到地图上的对应的位置,本人开始想的是直接调用百度的接口根据地名直接获取坐标,发现在地图上的位置有偏移不够准确,后面发现地图服务之间有自己的

    2024年02月15日
    浏览(36)
  • 一文讲清楚webpack和vite原理

    每次用vite创建项目秒建好,用vue-cli创建了一个项目,却有点久,那为什么用 vite 比 webpack 要快呢,这篇文章带你梳理清楚它们的原理及不同之处!文章有一点长,看完绝对有收获! 目录: webpack基本使用 webpack打包原理 vite工作原理 小结 webpack 的出现主要是解决浏览器里的

    2024年02月07日
    浏览(39)
  • 探索SpringBoot发展历程

    ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 循序渐进学SpringBoot ✨特色专栏: MySQL学习 🥭本文内容:探索SpringBoot发展历程 📚个人知识库: [Leo知识库]https://gaoziman.gitee.io/blogs/),欢迎大家

    2024年02月03日
    浏览(48)
  • 百度云盘发展历程与影响

    摘要: 百度云盘作为中国领先的云存储与共享服务提供商,自其创立至今经历了多个阶段的发展与变革。本论文通过对百度云盘的历史回顾与分析,探讨了其在技术、商业模式、用户体验以及对社会的影响等方面的演变。同时,还分析了在竞争激烈的云存储领域中,百度云盘

    2024年02月13日
    浏览(48)
  • 无线通信发展历程分析

    摘要: 当前,移动、无线技术领域正处在一个高速发展的时期,各种创新移动、无线技术不断涌现并快速步入商用,移动、无线应用市场异常活跃,移动、无线技术自身也在快速演进中不断革新。无线通信未来的发展趋势表现为:从大范围公众移动通信来看,3G或超3G技术将是

    2024年02月05日
    浏览(55)
  • java的详细发展历程

    Java是一种跨平台、面向对象的编程语言,具有简单性、可移植性、安全性等特点。Java的历史可以追溯到上世纪90年代初期,以下是Java的详细发展历程: 1991年,Sun Microsystems公司的James Gosling和他的团队开始开发一种名为Oak的编程语言,目标是为嵌入式设备提供一种可靠的编程

    2024年02月08日
    浏览(52)
  • 人工智能的发展历程

    人工智能的发展经历了多个阶段,以下是一些比较重要的发展历程和里程碑事件: 1. 机械化时代(1940年代-1950年代):在这个阶段,人工智能的研究主要集中在如何使用机器来模拟人类的思考方式。1943年,心理学家麦库洛克和皮茨在其著名的“逻辑神经元”模型中提出了“

    2024年02月13日
    浏览(51)
  • 一文讲清模拟信号、自然信号、数字信号、模拟输入输出

    模拟信号是指在一定周期内进行连续变化的信号,称之为模拟信号,经典的如:电压变化、声波强度变化、温度变化这些自然信号的变化一般称之为模拟信号。 从图中大家可以看到模拟信号的电平变化是逐渐增强与逐渐削弱的,如1v电压-5v电压的变化: 1v-2v-3-4v-5v 从1v逐渐增

    2024年02月08日
    浏览(44)
  • 一文讲清Python的7大学习路线(建议收藏)

    现如今铺天盖地都是来自学习Python的勇士,Python这个编程语言中最友好的语言早已不是高不可攀的状态了。 无论是业余爱好,还是专职求学,学习Python的朋友都在依靠着自己的方法,勤勤恳恳的学习着,但是 学习有方向,入门有方法,进阶更是需要正确的学习方式 。 Pytho

    2023年04月08日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包