一文了解ChatGPT

news/2024/12/30 1:09:12/

5a2585dded9b416fb4ea58637b42ed39.png

  Yan-英杰的主页

悟已往之不谏 知来者之可追  

C++程序员,2024届电子信息研究生


目录

导读

1 ChatGPT是什么?

1.1 让ChatGPT介绍自己

1.2 全球范围的兴起和爆发

1.3 背后的金主OpenAI

        看看ChatGPT是怎么介绍自家公司的? 

ChatGPT一些有趣的体验

       1. ChatGPT可在三分钟内生成PPT

3 ChatGPT之前技术沿袭

 3.1 语言模型的技术演进

3.2 深度强化学习技术演进

4 ChatGPT背后的技术原理

4.1 核心提升了什么?

4.1 整体技术流程

4.3 主要涉及的技术细节

        4.3.1 GPT3.5理解能力提升


导读


        OpenAI近期发布聊天机器人模型ChatGPT,迅速出圈全网。它以对话方式进行交互。以更贴近人的对话方式与使用者互动,可以回答问题、承认错误、挑战不正确的前提、拒绝不适当的请求。高质量的回答、上瘾式的交互体验,圈内外都纷纷惊呼。

        为什么有如此高的评价?理论支撑是什么?背后的技术原理是什么?待解决的问题和方案有哪些?资本怎么看待这件事?本文的目标是将这些问题详细的给大家讲清楚。

1 ChatGPT是什么?


        ChatGPT本质是一个应用在对话场景的语言模型,基于GPT3.5通过人类反馈的强化学习微调而来,能够回答后续问题、承认错误、质疑不正确的前提以及拒绝不适当的请求。首先让我们今天的主角ChatGPT来亲自介绍自己。

1.1 让ChatGPT介绍自己


        ChatGPT是什么?既然ChatGPT是语言模型,语言模型是什么?通过强化学习训练,强化学习又是什么?

 

 

 

1.2 全球范围的兴起和爆发


        OpenAI 11月30号发布,首先在北美、欧洲等已经引发了热烈的讨论。随后在国内开始火起来。全球用户争相晒出自己极具创意的与ChatGPT交流的成果。ChatGPT在大量网友的疯狂测试中表现出各种惊人的能力,如流畅对答、写代码、写剧本、纠错等,甚至让记者编辑、程序员等从业者都感受到了威胁,更不乏其将取代谷歌搜索引擎之说。继AlphaGo击败李世石、AI绘画大火之后,ChatGPT成为又一新晋网红。下面是谷歌全球指数,我们可以看到火爆的程度。

        国内对比各大平台,最先火起来是在微信上,通过微信指数我们可以看到,97.48%来自于公众号,开始于科技圈,迅速拓展到投资圈等。我最先了解到ChatGPT相关信息的也是在关注的科技公众号上,随后看到各大公众号出现关于介绍ChatGPT各种震惊体关键词地震、杀疯了、毁灭人类等。随后各行各业都参与进来有趣的整活,问数学题,问历史,还有写小说,写日报,写代码找BUG......

 

     

1.3 背后的金主OpenAI


        OpenAI是一个人工智能研究实验室,目的是促进和发展友好的人工智能,使人类整体受益。OpenAI原是非营利机构,但为了更好地实现产研结合,2019年3月成立OpenAI LP子公司,目的为营利所用。

        2019年7月微软投资双方将携手合作,2020年6月宣布了GPT-3语言模型,刷新了人们对AI的认知。GPT系列语言模型让我们不断对通用人工智能(AGI)充满了期待。

        OpenAI目标之初就很远大,解决通用人工智能问题,主要涉及强化学习和生成模型。

        强化学习最早被认为是实现人类通用智能重要手段,2016年DeepMind开发的AlphaGo Zero 使用强化学习训练,让人类围棋的历史经验成为了「Zero」,标志着人类向通用型的人工智能迈出了重要一步。2019年OpenAI 在《Dota2》的比赛中战胜了人类世界冠军。OpenAI在强化学习有很多深入的研究,Dactyl也是一款OpenAI通过强化强化学习训练能够高精度操纵物体的机器人手,OpenAI Gym是一款用于研发和比较强化学习算法的工具包,所以ChatGPT中使用强化学习也是顺理成章。

        生成模型方面,为我们熟知的是GPT-3,这是一个强大的语言模型能够生成人类一样流畅的语言。DellE 2是最近很火的AI绘画根据文本描述生成图片。Codex是和微软合作通过github代码训练而来,可以生成代码和Debug,已经商业化。

        作为OpenAI曾经的创始人伊隆·马斯克也发表了对ChatGPT的评价!

        看看ChatGPT是怎么介绍自家公司的? 

 

ChatGPT一些有趣的体验


        作为一个聊天机器人,我们体验发现相比传统的机器人在连贯性问答中更加流畅自然。微信上已经有很多的小程序可以体验,或者直接讲ChatGPT接入了微信中,下面体验一下已经接入到企业微信的ChatGPT。

       1. ChatGPT可在三分钟内生成PPT

        我之前写过的文章,可以利用ChatGPT在三分钟内生成PPT

        【ChatGPT】ChatGPT+MindShow三分钟生成PPT

 

        2.利用ChatGPT+飞书打造智能语音助手

                国内强大的智能语言模型AI

        

3 ChatGPT之前技术沿袭


        ChatGPT是基于GPT3.5语言模型,人类反馈的强化学习微调而来。本节将对涉及语言模型和强化学习两个重要技术做一个科普,已经熟悉的可直接跳过本节。

 3.1 语言模型的技术演进


        语言模型通俗讲是判断这句话是否通顺、正确。数学函数表达为给定前N个词,预测第N+1 个词概率,将概率序列分解成条件概率乘积的形式,这个函数就可以实现语言模型去生成句子。那么是什么样的语言模型如此强大,本小节梳理了深度学习开始的语言模型演技过程,如下图所示:

 

        第一次开始用神经网络做语言模型是2003年Bengio提出的NNLM的网络结构,随着图像领域预训练的取得的突破迅速迁移到NLP领域,有了我们熟知的word2vec,通常做NLP任务句子中每个单词Onehot形式输入,使用预训练好的word embedding初始化网络的第一层,进行下游任务。word2vec的弊端是word embedding静态的,后续代表性工作中ELMo通过采用双层双向LSTM实现了根据当前上下文对Word Embedding动态调整。

        ELMo非常明显的缺点在特征抽取器LSTM结构带来的,17年Google在机器翻译Transformer取得了效果的突破,NLP各种任务开始验证Transformer特征提取的能力比LSTM强很多。自此NLP开启了Transformer时代。

        2018年OpenAI采用Transformer Decoder结构在大规模语料上训练 GPT1模型横扫了各项NLP任务,自此迈入大规模预训练时代NLP任务标准的预训练+微调范式。由于GPT采用Decoder的单向结构天然缺陷是无法感知上下文,Google很快提出了Encoder结构的Bert模型可以感知上下文效果上也明显有提升。随后2019年OpenAI提出了GPT2,GPT2拥有和GPT1一样的模型结构,但得益于更高的数据质量和更大的数据规模有了惊人的生成能力。同年Google采用了Encoder-Decoder结构,提出了T5模型。从此大规模预训练语言模型兵分三路,开始了一系列延续的工作。

        2020年OpenAI提出GPT3将GPT模型提升到全新的高度,其训练参数达到了1750亿,自此超大模型时代开启。技术路线上摒弃了之前预训练+微调的范式,通过输入自然语言当作指示生成答案,开始了NLP任务新的范式预训练+提示学习。由于GPT3可以产生通顺的句子但是准确性等问题一直存在,出现WebGPT、InstructGPT、ChatGPT等后续优化的工作,实现了模型可以理解人类指令的含义,会甄别高水准答案,质疑错误问题和拒绝不适当的请求。

3.2 深度强化学习技术演进


        深度强化学习(deep reinforcement learning,DRL)是强化学习一个分支,基于深度学习强大的感知能力来处理复杂的、高维的环境特征,并结合强化学习的思想与环境进行交互,完成决策过程。DRL在游戏场景这种封闭、静态和确定性环境可以达到甚至超越人类的决策水平。比较著名的事件是2017年DeepMind 根据深度学习和策略搜索的 AlphaGo 击败了围棋世界冠军李世石。2018 年OpenAI 团队基于多智能体 DRL推出的OpenAI Five 在Dota2游戏中击败了人类玩家。DRL算法主要分为以下两类:

        值函数算法:值函数算法通过迭代更新值函数来间接得到智能体的策略,智能体的最优策略通过最优值函数得到。基于值函数的 DRL 算法采用深度神经网络对值函数或者动作值函数进行近似,通过时间差分学习或者 Q 学习的方式分别对值函数或者动作值函数进行更新。代表性的是2015 年 DeepMind 团队提出深度Q网络(DQN),及其后的各种变种DDQN、Dueling DQN、分布式DQN等。

        策略梯度算法:策略梯度算法直接采用函数近似的方法建立策略网络,通过策略网络选取动作得到奖励值,并沿梯度方向对策略网络参数进行优化,得到优化的策略最大化奖励值。可以用来处理连续动作。在实际应用中流行的做法是将值函数算法和策略梯度算法结合得到的执行器‒评价器(AC)结构。代表性工作有策略梯度算法、AC 算法以及各种变种DDPG、A3C、PPO等。ChatGPT使用的就是策略梯度算法PPO。

4 ChatGPT背后的技术原理


        ChatGPT整体技术方案是基于 GPT-3.5 大规模语言模型通过人工反馈强化学习来微调模型,让模型一方面学习人的指令,另一方面学习回答的好不好。

        本节首先阐述ChatGPT提升的效果及背后对应的技术,然后介绍ChatGPT的整体训练流程,其次介绍提升涉及几个技术细节。

4.1 核心提升了什么?


 ChatGPT在对话场景核心提升了以下三方面:

        1)更好的理解用户的提问,提升模型和人类意图的一致性,同时具备连续多轮对话能力。

        2)大幅提升结果的准确性,主要表现在回答的更加的全面,同时可以承认错误、发现无法回答的问题。

        3)具备识别非法和偏见的机制,针对不合理提问提示并拒绝回答。

ChatGPT的提升主要涉及以下三方面技术:

1)性能强大的预训练语言模型GPT3.5,使得模型具备了博学的基础。

2)webGPT等工作验证了监督学习信号可大幅提升模型准确性。

3)InstructGPT等工作引入强化学习验证了对齐模型和用户意图的能力。

4.1 整体技术流程


        ChatGPT的训练过程分为微调GPT3.5模型、训练回报模型、强化学习来增强微调模型三步:

 

        第一步:微调GPT3.5模型。让GPT 3.5在对话场景初步具备理解人类的的意图,从用户的prompt集合中采样,人工标注prompt对应的答案,然后将标注好的prompt和对应的答案去Fine-tune GPT3.5,经过微调的模型具备了一定理解人类意图的能力。

        第二步:训练回报模型。第一步微调的模型显然不够好,至少他不知道自己答的好不好,这一步通过人工标注数据训练一个回报模型,让回报模型来帮助评估回答的好不好。具体做法是采样用户提交的prompt,先通过第一步微调的模型生成n个不同的答案,比如A、B、C、D。接下来人工对A、B、C、D按照相关性、有害性等标准标准并进行综合打分。有了这个人工标准数据,采取pair-wise 损失函数来训练回报模型RM。这一步实现了模型判别答案的好坏。

        第三步:强化学习来增强微调模型。使用第一步微调GPT3.5模型初始化PPO模型,采样一批和前面用户提交prompt不同的集合,使用PPO模型生成答案,使用第二步回报模型对答案打分。通过产生的策略梯度去更新PPO模型。这一步利用强化学习来鼓励PPO模型生成更符合RM模型判别高质量的答案。

        通过第二和第三步的迭代训练并相互促进,使得PPO模型能力越来越强。

 

4.3 主要涉及的技术细节


        4.3.1 GPT3.5理解能力提升

        ChatGPT是在GPT3.5模型技术上进行微调的,这里对GPT-3.5在GPT3基础上做的工作进行梳理,官方列举了以下GPT-3.5系列几个型号:

        code-davinci-002 是一个基础模型,对于纯代码补全任务。这也是ChatGPT具备超强代码生成能力的原因。

        text-davinci-002 是在code-davinci-002基础上训练的InstructGPT模型,训练策略是instructGPT+FeedRM。

        text-davinci-003 是基于text-davinci-002模型的增强版本,训练策略是instructGPT+PPO。

        根据如下图官方发布的模型时间线和文档,我们可以了解到ChatGPT是在text-davinci-003 基础上微调而来,这也是ChatGPT模型性能如此强大的核心要素。因为GPT-3.5系列模型是在2021年第四季度之前的文本和代码样本上训练,所以我们体验ChatGPT时候同样无法回答训练样本日期之后的问题。


http://www.ppmy.cn/news/949639.html

相关文章

chatgpt的原理 第一部分

前言 这两天,ChatGPT模型真可谓称得上是狂拽酷炫D炸天的存在了。一度登上了CSDN热搜,这对科技类话题是非常难的存在。不光是做人工智能、机器学习的人关注,而是大量的各行各业从业人员都来关注这个模型,真可谓空前盛世。 我赶紧把…

物理机传输大文件到虚拟机

物理机快速传输大文件到虚拟机 测试使用Tabby传输大文件到虚拟机 1.1 准备大文件 1.2 通过Tabby上传文件到Linux 总耗时约:7分钟 1.3 通过EveryThing配置服务 打开EveryThing,点击工具—> 选项—>http服务器 启用HTTP服务器,配置…

[pyqt5]pyqt5关闭窗口弹出提示是否关闭窗口

# -*- coding: utf-8 -*-import sys from PyQt5 import QtWidgets from PyQt5.QtGui import QFontclass MainWindow(QtWidgets.QWidget):def __init__(self, parentNone): QtWidgets.QWidget.__init__(self)self.setGeometry(300, 300, 640,480)self.setWindowTitle(u窗口) sel…

ChatGPT的代码是否开源

是的,ChatGPT 的代码是开源的。你可以在 GitHub 上找到它的代码库:https://github.com/openai/chatbot-human-evaluation 。你也可以在这里阅读 ChatGPT 的文档:https://openai.com/blog/better-language-models/ 。希望这些信息能帮到你。

快来看,我让chatGPT帮我写代码了!!!

现在AIGC很火,chatGPT的功能也是非常的强大,作为一个学计算机的,我想chatGPT必须要玩起来,哈哈哈哈~~~ 突发奇想,虽然学了几年的计算机,但是编程能力还是不行&#xff0c…

ChatGPT API实现多轮对话的实战代码

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

体验chatGPT编写代码

今天注册了openAI账号,并且体验了以下chatGPT。体验过程中,我明显感觉到chatGPT不是所谓的“人工智障”,比起原来简单的问答机器人有了巨大的进步。 我主要体验的是chatGPT自动编写代码的功能。 下面两段是由chatGPT生成的代码: 提…

chatGPT 生成随机漫步代码

目录 1. chatGPT 写的随机漫步代码 2. 笔者写的随机漫步代码 3. 总结 1. chatGPT 写的随机漫步代码 最近在学习 Python 中的 随机漫步 知识点,突发奇想,心血来潮,想着用 chatGPT 来生成随机漫步代码,让我们来看看是啥效果…