当前位置: 首页 > news >正文

Azure OpenAI 官方指南02|ChatGPT 的架构设计与应用实例

ChatGPT 作为即将在微软全球 Azure 公有云平台正式发布的服务,已经迅速成为了众多用户关心的服务之一。而由 OpenAI 发布的 ChatGPT 产品,仅仅上线两个月,就成为互联网历史上最快突破一亿月活的应用。本期从技术角度深度解析 ChatGPT 的架构设计与应用实例

ChatGPT的起源 ╱ 01

InsturctGPT的架构设计 ╱ 02

ChatGPT的技术应用场景及示例 ╱ 03

ChatGPT 的起源

ChatGPT 是由 OpenAI 公司在 2022年11月推出的一款智能聊天机器人程序,属于文本类AI应用。这里,Chat 即「聊天」,GPT 的全称为“Generative Pre-trained Transformer。由于采用 Transformer 架构,且 ChatGPT 在 GPT-3 大模型基础上专门针对 Chat 聊天能力做了性能上的调优,所以 ChatGPT 在自然语言的许多交互场景中表现出了卓越的性能。

Transformer 模型在2017年问世,能够同时并行进行数据计算和模型训练,训练时长更短,并且训练得出的模型可用语法解释,也就是模型具有可解释性。经过训练后,这个最初的 Transformer 模型在包括翻译准确度、英语成分句法分析等各项评分上都达到了业内第一,成为当时最先进的大型语言模型(Large Language Model, LLM)

2018年,在 Transformer 模型诞生还不到一年的时候,OpenAI 公司发表了论文“Improving Language Understanding by Generative Pre-training(用创造型预训练提高模型的语言理解力),并推出了具有1.17亿个参数的GPT-1(Generative Pre-training Transformers)模型。

这是一个用大量数据训练的、基于 Transformer 结构的模型。OpenAI 的工程师使用了经典的大型书籍文本数据集(BookCorpus)进行模型预训练。该数据集包含超过7000本从未出版的书籍,涵盖了冒险、奇幻、言情等类别。在预训练之后,工程师们又针对四种不同的语言场景、使用不同的特定数据集对模型进行进一步的训练(又称为微调,Fine-Tuning)。最终训练所得的模型在问答、文本相似性评估、语义蕴含判定,以及文本分类这四种语言场景,都取得了比基础 Transformer 模型更优的结果,成为了新的业内第一。

2019年,OpenAI 公布了一个具有15亿个参数的模型:GPT-2。该模型架构与 GPT-1 原理相同,主要区别在于 GPT-2 的规模更大(10倍)。同时,OpenAI 也发表了介绍该模型的论文“Language Models are Unsupervised Multitask Learners”

2020年,OpenAI 发表论文“Language Models are Few-Shot Learner”,并推出了最新的 GPT-3 模型——它有1750亿个参数。GPT-3 模型架构与 GPT-2 类似,但是规模大了整整两个数量级。GPT-3 的训练集也比前两款 GPT 模型要大得多:经过基础过滤的全网页爬虫数据集(4290亿个词符)、维基百科文章(30亿词符)、两个不同的书籍数据集(670亿词符)

2022年3月,OpenAI再次发表论文“Training Language Models to Follow Instructions with Human Feedback”,并推出了基于 GPT-3 模型并进一步微调的 InstructGPT 模型。InstructGPT 的模型训练中加入了人类的评价和反馈数据,而不仅仅是事先准备好的数据集,从而训练出更真实、更无害,且更好地遵循用户意图的语言模型。

2022年11月,ChatGP 横空出世,它是基于 GPT-3.5 架构开发的对话AI模型,是 InstructGPT 的兄弟模型。但两者在训练模型的数据量上,以及数据收集、数据如何设置用于训练方面有所不同。

InsturctGPT 的架构设计

目前 Azure OpenAI 还没有官方公开资源详细说明 ChatGPT 的技术原理,因此我们将以 ChatGPT 的兄弟模型 InstructGPT 为对象,深度解析其算法架构设计。

如上图所示,开发人员将提示分为三个阶段,并以不同的方式为每个阶段创建响应和训练:

第 1 阶段 训练监督策略模型

在这个阶段,工程师会在数据集中随机抽取问题,由专门的标注人员给出高质量答案,然后用这些人工标注好的数据来微调 GPT-3.5 模型。这些标注人员会在应聘前进行筛选测试,训练数据大约有1万3千个。相较于第二、三阶段,这里用到的数据量较少。

标注人员根据提示 (prompt) 编写质量可靠的输出响应 (demonstrations)。这里采用的是 Supervised Fine-Tuning(SFT)模型有监督的策略来进行微调。微调之后,SFT 模型在遵循指令/对话方面已经优于 GPT-3.5,但不一定符合人类偏好。

第 2 阶段 训练奖励模型

这一阶段主要是训练一个奖励模型Reward Modeling (RM)。这里的训练数据是怎么得到的呢?首先通过在数据集中随机抽取问题,使用第一阶段生成的模型,对每个问题生成多个不同的回答,然后再让标注人员对这些回答进行排序。对于标注人员来说,对输出进行排序比从头开始打标要容易得多,因此这一过程可以扩展数据量,大约产生3万3千个训练用的数据。

接下来,再使用这个排序结果来训练奖励模型。对于多个排序结果,两两组合,形成多个训练数据对。RM 模型接受输入后,给出评价回答质量的分数。对于一对训练数据,通过调节参数使得高质量回答的打分比低质量的打分要高。奖励模型学会了为评分高的响应计算更高的奖励,为评分低的回答计算更低的奖励。

第 3 阶段 采用 PPO 强化学习进行优化

PPO (Proximal Policy Optimization,近端策略优化)是一种用于在强化学习中训练 agent 的策略,这里被用来微调 SFT 模型。这一阶段利用第二阶段训练好的奖励模型,靠奖励打分来更新预训练模型参数。在数据集中随机抽取问题后,使用 PPO 模型生成回答,并用上一阶段训练好的 RM 模型计算奖励,给出质量分数,然后用这个奖励来继续更新 PPO 模型。奖励依次传递,由此产生策略梯度,通过强化学习的方式更新 PPO 模型参数

不断重复第二和第三阶段,通过迭代,会训练出更高质量的 InstructGPT 模型。我们将来自于人类反馈的强化学习简称为 RLHF(reinforcement learning from human feedback):使用人类的偏好作为奖励信号来微调模型。这也是 ChatGPT 在实际对话过程中的输出更符合人类偏好的原因。

ChatGPT 的技术应用场景及示例

总的来说,ChatGPT 有如下几大类技术应用的领域——

⦿ 对话机器人:可以用于生成自然语言对话,实现人机交互。

⦿ 文本生成:可以用于生成摘要、文章、诗歌等文本。

⦿ 问答系统:可以用于回答用户提出的问题,提供相关信息。

⦿ 自动翻译:可以用于实现自动翻译,将文本从一种语言翻译为另一种语言。

⦿ 情感分析:可以用于分析文本的情感倾向,实现情感分析。

⦿ 语音合成:可以用于生成语音,将文本转换为语音。

场景示例 1 NLP 领域

⦿ 生成摘要

 

⦿ 情感分析(小样本或零样本)

few-shot or zero-shot

 

⦿ 开放领域问答

 

⦿ 由文字生成表格

 

⦿ 数据集生成(小样本或零样本)

few-shot or zero-shot

 

场景示例 2 代码领域

⦿ 代码生成

 

⦿ 解释代码

 

⦿ 知识库生成

 

Azure OpenAI 官方指南 Vol.02 ChatGPT 作者

Annie Hu 微软云 AI 高级技术专家

相关文章:

Azure OpenAI 官方指南02|ChatGPT 的架构设计与应用实例

ChatGPT 作为即将在微软全球 Azure 公有云平台正式发布的服务,已经迅速成为了众多用户关心的服务之一。而由 OpenAI 发布的 ChatGPT 产品,仅仅上线两个月,就成为互联网历史上最快突破一亿月活的应用。本期从技术角度深度解析 ChatGPT 的架构设…...

RK3568核心板以太网大数据测试报告-万象奥科

1. 测试对象HD-RK3568-IOT 底板基于HD-RK3568-CORE工业级核心板设计(双网口、双CAN、5路串口),接口丰富,适用于工业现场应用需求,亦方便用户评估核心板及CPU的性能。适用于工业自动化控制、人机界面、中小型医疗分析器…...

来 CSDN 三年,我写了一本Python书

大家好,我是朱小五。转眼间已经来 CSDN 3年了,其中给大家一共分享了252篇Python文章。 但这三年,最大的收获还是写了一本Python书! 在这个自动化时代,我们有很多重复无聊的工作要做。想想这些你不再需要一次又一次地做…...

TIA博途中通过SCL语言实现快速排序的具体方法示例

TIA博途中通过SCL语言实现快速排序的具体方法示例 首先,了解一下快速排序的原理: 排序算法的思想非常简单,在待排序的数列中,我们首先要找一个数字作为基准数。为了方便,我们一般选择第 1 个数字作为基准数(其实选择第几个并没有关系)。接下来我们需要将这个待排序的数列…...

第 46 届世界技能大赛浙江省选拔赛“网络安全“项目B模块任务书

第46届世界技能大赛浙江省选拔赛"网络安全"项目B模块(网络安全事件响应、数字取证调查)第46届世界技能大赛浙江省选拔赛"网络安全"项目B模块2.1 第一部分 事件响应2.2 第二部分 数字取证调查2.3 第三部分 应用程序安全第46届世界技能…...

【C】字符串操作函数

初始化字符串 #include <string.h>void *memset(void *s, int c, size_t n); 返回值&#xff1a;s指向哪&#xff0c;返回的指针就指向哪memset函数把s所指的内存地址开始的n个字节都填充为c的值。通常c的值为0&#xff0c;把一块内存区清零。例如定义char buf[10];&…...

【python】 pytest自动化测试框架--selenium,requests,appium自动化工具

一、pytest简介 pytest是python的一种单元测试框架&#xff0c;与python自带的unittest测试框架类似&#xff0c;但是比unittest框架使用起来更简洁&#xff0c;效率更高 二、 pytest 单元测试框架 1、pytest 特点 pytest是python当中的一个单元框架&#xff0c;比unittest更灵…...

Spring boot 实战指南(三):配置事务,整合Elasticsearch、swagger、redis、rabbitMQ

文章目录一、配置事务依赖使用注解二、Elasticsearch创建项目配置maven完善依赖es连接配置实体映射repositoryservicecontroller三、swagger依赖启动类路径匹配配置配置类controller注解四、redis&#xff08;代码实现&#xff09;依赖yml配置配置类封装redisTamplate五、rabbi…...

九、Bean的循环依赖问题

1 什么是Bean的循环依赖 A对象中有B属性。B对象中有A属性。这就是循环依赖。我依赖你&#xff0c;你也依赖我。 比如&#xff1a;丈夫类Husband&#xff0c;妻子类Wife。Husband中有Wife的引用。Wife中有Husband的引用。 2 singleton下的set注入产生的循环依赖 丈夫类 pac…...

macOS关闭SIP后,仍无法修改/usr文件夹下文件

发现问题 MacOS 升级到Big Sur后&#xff0c;删除多余的python3文件&#xff0c;发现写不到磁盘&#xff0c;会报OSError: [Errno 30] Read-only file system的错误。经过了解&#xff0c;在Mac OS10.11 之后&#xff0c;苹果公司为了提高系统环境安全&#xff0c;引入了一个内…...

【编程基础之Python】8、Python复合数据类型

【编程基础之Python】8、Python复合数据类型Python复合数据类型列表&#xff08;List&#xff09;创建列表访问元素内置方法列表操作元组&#xff08;Tuple&#xff09;创建元组访问元素集合&#xff08;Set&#xff09;创建集合基本操作其他操作字典&#xff08;Dictionary&am…...

自动驾驶决策规划-控制方向学习资料总结(附相关资料的链接)

项目仓库 欢迎访问我的Github主页 项目名称说明chhCpp学习C仓库chhRobotics学习自动驾驶、控制理论相关仓库(python实现)chhRobotics_CPP学习自动驾驶、控制理论相关仓库(c实现)chhML 、chh-MachineLearning学习机器学习仓库chhRL学习强化学习仓库chhTricks存放一些有意思的t…...

网络安全岗位介绍——售前工程师

一、工作内容 1、独立完成并配合销售人员引导客户完成方案设计、产品选型、配置报价和能为客户提供安全咨询与方案优化等服务; 2、作为售前工程师&#xff0c;跟踪整个项目的进展&#xff0c;和销售进行配合&#xff0c;协调公司各种资源完成项目中标; 3、编写投标文件的技术…...

nodejs安装和卸载超详细步骤

安装程序①下载完成后&#xff0c;双击安装包&#xff0c;开始安装&#xff0c;使用默认配置安装一直点next即可&#xff0c;安装路径默认在C:\Program Files下&#xff0c;也可以自定义修改②安装路径默认在C:\Program Files下面&#xff0c;也能够自定义修改&#xff0c;而后…...

【Leetcode】移除链表元素 链表的中间节点 链表中倒数第k个节点

目录 一.【Leetcode203】移除链表元素 1.链接 2.题目再现 A.双指针法 B.类尾删法 C.哨兵位 二.【Leetcode876】链表的中间节点 1.链接&#xff1a;链表的中间节点 2.题目再现 3.解法&#xff1a;快慢指针 三.链表中倒数第k个节点 1.链接&#xff1a;链表中倒数第k个…...

快速上手配置firewalld

firewalld使用firewall-cmd命令配置策略。 查看当前firewalld当前服务运行状态 firewall-cmd --state firewalld防火墙状态还用使用如下命令查看状态 systemctl status firewalld 查看所有打开运行的端口 firewall-cmd --zonepublic --list-ports 查看区域信息情况 firewall…...

treap使用mt19937会导致问题原因分析

Treap 是一种使用随机数生成器来维护树形结构的数据结构&#xff0c;而 mt19937 是一种常用的伪随机数生成器。虽然 mt19937 可以生成高质量的随机数序列&#xff0c;但是在 Treap 中使用它可能会导致一些问题。 mt19937 返回的是一个 unsigned int 其中一个问题是&#xff0…...

tmux和vim

tmux 作用 分屏 允许断开Terminal连接后继续运行进程 结构 一个tmux可以开一堆session tmux: session 1, session 2, session 3 … Session: window 1, window 2, window 3… Window: pane 1, pane 2, pane 3… pane是最小单位&#xff0c;用shell语言编程 操作 输入…...

2023年全国最新保安员精选真题及答案12

百分百题库提供保安员考试试题、保安职业资格考试预测题、保安员考试真题、保安职业资格证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 121.《保安员证》是经由设区的&#xff08;&#xff09;单位进行发放。 A:市级人民政…...

Hbase的基本概念与架构

一、Hbase的概念 HBase是Hadoop的生态系统&#xff0c;是建立在Hadoop文件系统&#xff08;HDFS&#xff09;之上的分布式、面向列的数据库&#xff0c;通过利用Hadoop的文件系统提供容错能力。如果你需要进行实时读写或者随机访问大规模的数据集的时候&#xff0c;请考虑使用H…...

颠覆你的认知,业务同事都能开发软件,我简直无地自容……

经常看到网络鼓吹业务人员也能搭建应用&#xff0c;本是嗤之以鼻、半信半疑&#xff0c;但当这件事真实发生在自己身上时&#xff0c;竟觉得此言不虚&#xff1f; 一、背景 最近公司为了集成系统、提升扩展能力&#xff0c;引进了低代码平台JNPF&#xff0c;说个题外话&#…...

01 | n2n虚拟局域网

1 n2n简介 为了满足两个不同局域网的机器进行通信&#xff0c;让不同网段的机器能够进行P2P( 点对点 peer-to-peer ) 通信。2 n2n源码 https://github.com/ntop/n2n.git3 n2n名词 3.1 SuperNode 超级节点 SuperNode 相当与注册中心, 它会记录边缘节点的连接信息&#xff0c;…...

MFC界面控件BCGControlBar v33.4 - 支持Win 11 Mica material主题

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中&#xff0c;并为您节省数百个开发和调试时间。BCGControlBar专业版和BCGSuite for MFC v33.4已正式发布了&#xff0c;该版本包含了对Windows 11 Mica materia…...

手把手教你用js实现手机通讯录功能(附源码)

js实现手机通讯录效果图需求需求一&#xff1a;锚点通过#id配合a标签使用css中scroll-behavior属性的使用需求二需求三获取汉字拼音的首字母方法1&#xff1a;使用插件&#xff0c;这里推荐pinyin-pro方法2&#xff1a;使用unicode去重数组中冗余的对象法一&#xff1a;用Map去…...

【C/C++】逗号表达式、算术运算符优先级

一、逗号表达式 1、如下图中代码&#xff0c;为变量d赋值&#xff0c;d的值为逗号表达式中的哪一个呢&#xff1f; 运行结果&#xff1a;d的值为6 2、再举个例子 运行结果&#xff1a;d的结果还是6 3、再举个例子 运行结果 以上面三种不同的逗号表达式为例&#xff0c;…...

携禾生物面试总结

面试时间&#xff1a; 2022年2月3日 1.项目C11的特性具体有用到哪些&#xff1f; 智能指针 lambda表达式 auto unordered_map 2.智能指针用到了哪几种智能指针 3.shared_ptr和weak_ptr区别 4.多线程实现方式 prosix线程》pthread windows的_beginthreaex MFC多线程 ACEM中…...

FPGA纯verilog手写HDMI发送IP 提供源码和技术支持

目录1、前言2、设计思路和框架TMDS 编码算法OSERDESE串并转换3、顶层源码和IP封装4、源码和IP获取1、前言 本设计使用Xilinx原语和自己手写的代码实现了HDMI发送功能&#xff0c;纯verilog手写&#xff0c;有源码&#xff0c;也提供封装好的IP&#xff0c;你喜欢用例化的方式就…...

【知识点】OkHttp 原理 8 连问

前言OkHttp可以说是Android开发中最常见的网络请求框架,OkHttp使用方便&#xff0c;扩展性强&#xff0c;功能强大&#xff0c;OKHttp源码与原理也是面试中的常客但是OKHttp的源码内容比较多&#xff0c;想要学习它的源码往往千头万绪&#xff0c;一时抓不住重点.本文从几个问题…...

【python】深入了解Selenium-PageObject

1、PageObject 定义 Page Object(简称PO)模式&#xff0c;是Selenium实战中最为流行&#xff0c;并且是自动化测试中最为熟悉和推崇的一种设计模式。在设计自动化测试时&#xff0c;把页面元素和元素的操作方法按照页面抽象出来&#xff0c;分离成一定的对象&#xff0c;然后再…...

PAT——7-4 简易测谎 (20 分)

测谎通常使用一套准备好的问题提问被测试者&#xff0c;通过分析被测试者的反应得到结果。比较高级的测谎技术会使用测谎仪&#xff0c;监视被测试者的生理活动状况。我们这里的简易测谎则是通过对问题答案的特征分析来做出判断。 首先我们要求被测试者做完 N 道单选题&#x…...

前端做网站都要做哪些/seo排名优化联系13火星软件

Description有一个a*b的整数组成的矩阵&#xff0c;现请你从中找出一个n*n的正方形区域&#xff0c;使得该区域所有数中的最大值和最小值的差最小。Input第一行为3个整数&#xff0c;分别表示a,b,n的值第二行至第a1行每行为b个非负整数&#xff0c;表示矩阵中相应位置上的数。每…...

怎样做网站变手机软件/韩国vs加纳分析比分

JSON的定义&#xff1a; 一种轻量级的数据交换格式&#xff0c;具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案&#xff08;有点类似于正则表达式 &#xff0c;获得了当今大部分语言的支持&#xff09;&#xff0c;从而可以在不同平台间进行数据交…...

建网站的流程/微信软文广告经典案例

function dbc2sbc(obj){ var str obj.value; var result""; for(var i0;i<str.length;i) { code str.charCodeAt(i);//获取当前字符的unicode编码 if (code > 65281 && code < 65373)//在这个unicode编码范围中的是所有的英文字母已经各种字符 { …...

湖南做网站/宁波网站推广代运营

1)贴图&#xff1a;<img src"图片地址">2)加入连接&#xff1a;<a href"所要连接的相关地址">写上你想写的字</a>3)在新窗口打开连接&#xff1a;<a href"相关地址" target"_blank">写上要写的字</a>消…...

闵行做网站费用/清远网站seo

目录 在前面的章节中&#xff0c;我们是通过动态创建子进程&#xff08;或子线程&#xff09;来实现并发服务器的。这样做有如下缺点&#xff1a; 动态创建进程&#xff08;或线程&#xff09;是比较耗费时间的&#xff0c;这将导致较慢的客户响应。动态创建的子进程&#xf…...

wordpress修改html/有哪些免费推广网站

Class对象是没办法用new关键字得到的&#xff0c;因为它是jvm生成用来保存对应类的信息的,换句话说&#xff0c;当我们定义好一个类文件并编译成.class字节码后&#xff0c;编译器同时为我们创建了一个Class对象并将它保存.class文件中。我不知道这样描述是否妥当&#xff0c;因…...