Azure OpenAI 官方指南 01|GPT-3 的原理揭秘与微调技巧

Azure OpenAI 服务在微软全球 Azure 平台正式发布后,迅速成为众多用户最关心的服务之一。
Azure OpenAI 服务允许用户通过 REST API 访问 OpenAI 的强大语言模型,包括 GPT-3、Codex 和 Embeddings 模型系列。本期,我们将为您揭秘 Azure OpenAI 的“屠榜”神器——GPT-3 的原理与使用技巧。
GPT-3的底层算法 ╱ 01
GPT-3的四种模型 ╱ 02
在Azure OpenAI中使用GPT-3 ╱ 03
OpenAI API组件选择 ╱ 04
自定义模型 ╱ 05
Fine-Tuning(微调) ╱ 06
GPT-3的企业级使用场景 ╱ 07
GPT-3 的底层算法
GPT-3 全称“Generative Pre-trained Transformer - 3”, 参数高达 1750“亿”个,是微软和 OpenAI 联合推出的超级人工智能。
简单地说,GPT-3 作为一个自监督模型,几乎可以完成自然语言处理的绝大部分任务。GPT-3 本质上是一个预训练自然语言处理模型,能够同时完成自然语言理解、文本生成、文本总结、自动问答、机器翻译、算术运算和代码生成等多种任务。GPT-3 的面世有望帮助开发者更加快速地构架和部署自然语言处理应用程序,也拓宽了更多不同领域不同知识背景的用户使用 AI 模型的可能性。
GPT 系列作为 OpenAI 开发的一系列大型预训练语言模型,是基于 Transformer 算法的复杂堆叠、超大量的训练语料与数以亿计的模型参数训练出的一系列生成式预训练语言模型。
与传统的自然语言处理(NLP)有监督模型不同,GPT 先通过充满多样性的大量数据进行无监督预训练,然后再将带有标签的数据集给入预训练模型中进行有监督微调。GPT 强化了模型从大量无标签原始文本中学习语言或语义本身的能力,并在模型有广泛语言学能力的基础上提供部分有标签数据对特定任务进行微调。这一方面解决了大多数 NLP 任务中高质量标签数据量少的问题,另一方面建立了一个真正从语言学角度理解自然语言的模型。
GPT-3 作为 GPT 系列的第三代模型,是 Transformer 算法在 800 万网页数据集的基础上训练而成的。GPT-3 与前两代模型相比,在模型参数量以及预训练数据量上进行了几百倍的扩充,从 GPT-2 的 15 亿参数与 40GB 数据量扩展到了如今的 1750 亿参数与 45 TB 的预训练数据。这在很大程度上增强了 GPT 系列在语言理解能力上的提升,形成了现如今爆红的 GPT-3 服务,并为后续的 ChatGPT 等生成式自然语言模型提供基础。
GPT-3 的四种模型
OpenAI 提供四种主要的 GPT-3 模型。其中 Davinci 是功能最强大的模型,Ada 是速度最快的模型。以下详细介绍了每种模型的特点以及适用场景:




虽然通常情况下 Davinci 是功能最强大的 GPT-3 模型,但其它模型也能够非常出色地执行某些任务,并且有着明显的速度或者成本优势。比如,Curie 模型也可以执行许多与 Davinci 相同的任务,但速度更快,并且成本仅为 Davinci 的十分之一。
模型选择建议
当我们在选择模型时,最好是在实验阶段先使用 Davinci, 确保我们能使用 GPT-3 先得到一个最好的结果,明确正确的使用方向。一切正常之后,我们就可以继续尝试其它模型,看看是否能以更低的延迟和更优的成本选择获得相同的结果。
有大量优质(指人工审核/达标的)数据的情况下,建议选择低复杂度的模型,精度或许能媲美 Davinci,且 ROI 更高。
如果是分类/归纳这类相对简单的任务,建议选择 Ada 模型。
如果数据量不大(几百)或质量不保证(如未经校准的数据)的情况下,建议选择 Davinci 模型。
在 Azure OpenAI 服务中使用 GPT-3
Azure GPT-3 Playground 的使用界面非常简洁,我们只需要在文本框中输入提示语或需要 GPT-3 分析的内容,等待 GPT-3 根据提示返回相应结果即可。

如图所示,我希望 GPT-3 能根据我的产品介绍构思一些合适的产品名称,GPT-3 返回的绿色高亮部分即为分析结果。
OpenAI API 组件选择
以下介绍了 OpenAI API 中一些重要的组件:







自定义模型
Zero-Shot(零样本)
直接将提示和文本给到 GPT-3,让 GPT-3 自行理解提示并给出回答:

One-Shot(单样本)
通过给 GPT-3 一个简单示例,让模型了解我们想要的输出形式以及风格,从而给出回答:

Few-Shot(小样本)
通过给 GPT-3 一些简单的示例,让模型了解我们想要的输出形式以及风格,从而给出回答:

Fine-Tuning(微调)

GPT-3 的企业级使用场景
RPG 游戏
GPT 和 Open AI 可以帮助收集并分析玩家信息及游戏进程等数据,从而动态生成符合场景条件的 NPC,让玩家能够更自然且更真实地与游戏中的 NPC 进行互动。
AI 客服
GPT 强大的语义理解、文本生成和文本总结等能力,能更好地协助客服完成自动交易,并更自然地与客户聊天。
Azure OpenAI 官方指南 Vol.01 GPT-3 作者
罗贵欢 Sunny Luo 微软云解决方案工程师
周锐君 Milo Zhou 微软云解决方案工程师
相关文章:
Azure OpenAI 官方指南 01|GPT-3 的原理揭秘与微调技巧
Azure OpenAI 服务在微软全球 Azure 平台正式发布后,迅速成为众多用户最关心的服务之一。 Azure OpenAI 服务允许用户通过 REST API 访问 OpenAI 的强大语言模型,包括 GPT-3、Codex 和 Embeddings 模型系列。本期,我们将为您揭秘 Azure Open…...
神垕古镇景区三方背后的博弈,争夺许昌第一家5A景区主导权
钧 瓷 内 参 第37期(总第368期) 2023年3月2日 神垕古镇景区景域,建业,孔家三方背后的博弈,争夺许昌第一家5A景区主导权 在博弈论(Game Theory)经济学中,“智猪博弈”是一个著名的…...
【C++】vector的模拟实现(SGI版本)
吃不了自律的苦,又接受不了平庸的罪。想让自己变好,但又想舒服些。 你啊你……要么就不要去想,想了又不去做,犹犹豫豫,徘徊不前,患得患失… 文章目录一、四种构造函数1.vector的框架和无参构造2.构造函数调…...
【9】SCI易中期刊推荐——工程技术-计算机:软件工程(中科院4区)
🚀🚀🚀NEW!!!SCI易中期刊推荐栏目来啦 ~ 📚🍀 SCI即《科学引文索引》(Science Citation Index, SCI),是1961年由美国科学信息研究所(Institute for Scientific Information, ISI)创办的文献检索工具,创始人是美国著名情报专家尤金加菲尔德(Eugene Garfield…...
SOTA!目标检测开源框架YOLOv6 3.0版本来啦
近日,美团视觉智能部发布了 YOLOv6 3.0 版本,再一次将目标检测的综合性能推向新高。YOLOv6-L6 检测精度和速度超越 YOLOv7-E6E,取得当前实时目标检测榜单 SOTA。本文主要介绍了 YOLOv6 3.0 版本中引入的技术创新和优化,希望能为从…...
svn使用
一、SVN概述 1.1为什么需要SVN版本控制软件 1.2解决之道 SCM:软件配置管理 所谓的软件配置管理实际就是对软件源代码进行控制与管理 CVS:元老级产品 VSS:入门级产品 ClearCase:IBM公司提供技术支持,中坚级产品 1.…...
LeetCode 1487. Making File Names Unique【字符串,哈希表】中等
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...
Java——电话号码的字母组合
题目链接 leetcode在线oj题——电话号码的字母组合 题目描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 题目示例…...
LDR6028市面上最具有性价比的Type-C OTG音频协议方案
目前市面上的大部分手机都取消了3.5mm音频耳机接口,仅保留一个Type-C接口,但是追求音质和零延迟的用户仍然会选择3.5mm有线耳机,因为在玩手机游戏的时候,音画不同步真的很影响游戏体验,所以Type-C转3.5mm接口线应运而生…...
SpringMVC-0228
一、SpringMVC简介1、什么是MVCMVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分M:Model,模型层,指工程中的JavaBean,作用是处理数据补充:框架其实就是配置文件jar包JavaBean分为两类ÿ…...
【测试岗】那个准点下班的人,比我先升职了...
前言 陈双喜最近心态很崩。和他同期一道进公司的陈琪又升了一级,可是明明大家在进公司时,陈琪不论是学历还是工作经验,样样都不如自己,眼下不过短短的两年时间便一跃在自己的职级之上,这着实让他有几分不甘心。 程双…...
【C++】适配器模式 -- stack/queue/dqueue
一、适配器模式 设计模式 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结;Java 语言非常关注设计模式,而 C 并没有太关注,但是一些常见的设计模式我们还是要学习。 迭代器模式 其实我们在前面学习 strin…...
sql server 分页查询
sql server 分页查询[toc]前言SQL server 2012版本。下面都用pageIndex表示页数,pageSize表示一页包含的记录。并且下面涉及到具体例子的,设定查询第2页,每页含10条记录。首先说一下SQL server的分页与MySQL的分页的不同,mysql的分…...
RV1126新增驱动IMX415 SENSOR,实现v4l2抓图
RV1126新增驱动IMX415 SENSOR,实现v4l2抓图。1:内核dts修改&csi_dphy0 {status "okay";ports {#address-cells <1>;#size-cells <0>;port0 {reg <0>;#address-cells <1>;#size-cells <0>;mipi_in_uca…...
Hive 数据倾斜
数据倾斜,即单个节点任务所处理的数据量远大于同类型任务所处理的数据量,导致该节点成为整个作业的瓶颈,这是分布式系统不可能避免的问题。从本质来说,导致数据倾斜有两种原因,一是任务读取大文件,二是任务…...
2月刚上岸字节跳动测试岗面经
这时候发应该还不算太晚,金三银四找工作的小伙伴需要的可以看看。 一、测试工程师的工作是什么? 测试工程师简单点说就是找bug,然后反馈给开发人员,不要小看这个工作。 首先很明显的bug开发人员有时候自己就能找到,测…...
图解KMP算法
子串的定位操作通常称作串的模式匹配。你可以理解为在一篇英语文章中查找某个单词是否存在,或者说在一个主串中寻找某子串是否存在。朴素的模式匹配算法假设我们要从下面的主串S "goodgoogle" 中,找到T "google" 这个子串的位置。…...
Java Map和Set
目录1. 二叉排序树(二叉搜索树)1.1 二叉搜索树的查找1.2 二叉搜索树的插入1.3 二叉搜索树的删除(7种情况)1.4 二叉搜索树和TreeMap、TreeSet的关系2. Map和Set的区别与联系2.1 从接口框架的角度分析2.2 从存储的模型角度分析【2种模型】3. 关于Map3.1 Ma…...
【C/C++ 数据结构】-八大排序之 冒泡排序快速排序
作者:学Java的冬瓜 博客主页:☀冬瓜的主页🌙 专栏:【C/C数据结构与算法】 分享:那我便像你一样,永远躲在水面之下,面具之后! ——《画江湖之不良人》 主要内容:八大排序选…...
苹果ipa软件下载网站和软件的汇总
随着时间的流逝,做苹果版软件安装包下载网站和软件的渐渐多了起来。 当然,已经关站、停运、下架、倒闭的苹果软件下载网站和软件我就不说了,也不必多说那些关站停运下架倒闭的网站和软件了。 下面我统计介绍的就是苹果软件安装包下载网站和软…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...
