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

news2024/11/15 17:48:14

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 微软云解决方案工程师

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

乌班图安装kvm并配置网络

乌班图22安装KVM 1.安装KVM sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager virtinstsudo adduser id -un libvirt sudo adduser id -un kvm sudo apt install virtinst qemu-efi sudo systemctl enable --now libvirtd sudo s…

Tcl_Init error: Can‘t find a usable init.tcl in the following directories

目录 问题 解决 小结 问题 最近在研究开源波形显示软件gtkwave时,Ubuntu18.04下编译打包完成,移植到另一个电脑上运行时,出现以下错误,如图: 擦掉的部分是一些路径信息,这个错误提示意味着您的系统中缺少所需的 Tcl 初始化文件,路径下确实没有init.tcl文…

嵌入式 LVGL移植到STM32F4

目录 LVGL简介 1、特点 2、LVGL的硬件要求 3、相关网站 4、LVGL源码下载 5、LVGL移植要求 5.1 移植过程-添加源码 2、更改接口文件 3、显示实现 4、添加外部中文字体的方法 5、编译下载后有几种情况 6、调用显示 6、GUI-Guider使用 6.1 安装软件 6.2 使用…

Kakfa详解(一)

kafka使用场景 canal同步mysqlelk日志系统业务系统Topic kafka基础概念 Producer: 消息生产者,向kafka发送消息Consumer: 从kafka中拉取消息消费的客户端Consumer Group: 消费者组,消费者组是多个消费者的集合。消费者组之间互不影响,所有…

Wireshark+Go捕获本地TCP通信

初学计网,使用Wireshark观察本地端口间TCP通信过程。 目录 步骤1: 步骤2: 步骤3: 步骤1: 使用go语言搭建本地客户端与服务器TCP通信,测试完成后在步骤2先运行服务器,再运行客户端。 服务器…

C语言查漏补缺(进阶)volatile、__attribute__、void*、地址对齐、$$Super$main

最近在学习RT-Thread,在看其源码的时候发现了许多自己不太了解的C语言知识点,在此查漏补缺一下。 1. 关键字 volatile volatile是C90新增关键字,volatile的的中文意思是adj.易变的;无定性的;无常性的;可…

如何使用FarsightAD在活动目录域中检测攻击者部署的持久化机制

关于FarsightAD FarsightAD是一款功能强大的PowerShell脚本,该工具可以帮助广大研究人员在活动目录域遭受到渗透攻击之后,检测到由攻击者部署的持久化机制。 该脚本能够生成并导出各种对象及其属性的CSV/JSON文件,并附带从元数据副本中获取…

Python|每日一练|递归|数学|数组|动态规划|树|深度优先搜索|单选记录:排列序列|三角形最小路径和|求根节点到叶节点数字之和

1、排列序列(递归,数学) 给出集合 [1,2,3,...,n],其所有元素共有 n! 种排列。 按大小顺序列出所有排列情况,并一一标记,当 n 3 时, 所有排列如下: "123""132""213…

webpack基本使用和开发环境配置

目录 1 webpack 基本使用 01 webpack 简介 02 webpack 初体验 2 webpack开发环境配置 03 打包样式资源 04 打包html资源 05 打包图片资源 06 打包其他资源(以打包icon为例) 07 devServer 08.开发环境配置 1 webpack 基本使用 由于笔记文档没有…

批量下载Landsat遥感影像的方法

本文介绍在USGS网站批量下载Landsat系列遥感影像的方法。首先打开EarthExplorer的官网,首先完成注册与登录。接下来点击左侧“Search Criteria”,首先选择研究区域。研究区域的划定有多种方法,可以依据地理名称选定研究区域,也可以…

klipper使用webcam设置多个摄像头方式

一、前言 使用klipper设置多个摄像头,折腾了好些天,网上资料很少,这里写一个帖子记录一下 二、环境 参考链接:https://www.cnblogs.com/sjqlwy/p/klipper_webcam.html 我的klipper安装在香橙派上面,系统是debian&a…

这一次,彻底入门前端测试,覆盖单元测试、组件测试(2.4w 字)

前端测试一直是前端工程化中很重要的话题,但是很多人往往对测试产生误解,认为测试不仅没有什么用而且还浪费时间,或者测试应该让测试人员来做,自己应该专注于开发。所以,文章开头会先从"软件工程语境下的软件测试…

【运筹优化】剩余空间法求解带顺序约束的二维矩形装箱问题 + Java代码实现

文章目录一、带顺序约束的二维矩形装箱问题二、剩余空间法三、完整代码实现3.1 Instance 实例类3.2 Item 物品类3.3 PlaceItem 已放置物品类3.4 Solution 结果类3.5 RSPackingWithWeight 剩余空间算法类3.6 Run 运行类3.7 测试案例3.8 ReadDataUtil 数据读取类3.9 运行结果展示…

Spring boot + mybatis-plus 遇到 数据库字段 创建不规范 大驼峰 下划线 导致前端传参数 后端收不到参数 解决方案

最近使用springboot 连接了一个 sqlserver 数据库 由于数据库年数久远 ,建表字段不规范 大驼峰 下划线的字段名都有 但是 java 中 Spring boot mybatis-plus 又严格按照小驼峰 格式 生成实体类 如果不是小驼峰格式 Data 注解 get set 方法 在前端请求参数 使用这个…

如何评估模糊测试工具-unibench的使用

unibench是一个用来评估模糊测试工具的benchmark。这个benchmark集成了20多个常用的测试程序,以及许多模糊测试工具。 这篇文章(https://zhuanlan.zhihu.com/p/421124258)对unibench进行了简单的介绍,本文就不再赘诉,…

设计模式-第6章(工厂模式)

工厂模式简单工厂实现工厂模式实现简单工厂 VS 工厂方法商场收银程序再再升级(简单工厂策略装饰工厂方法)工厂方法模式总结简单工厂实现 在简单工厂类中,通过不同的运算符,创建具体的运算类。 public class OperationFactory {pu…

CMMI流程规范—实现与测试

一、概述实现与测试(Implementation and Test, IT)的目的是依据系统设计文档,编写并测试整个系统的代码。在本规范中,实现与测试是“编程、代码审查、单元测试、集成测试、缺陷管理与改错”的综合表述。实现与测试过程域是SPP模型…

从 AI 绘画到 ChatGPT,聊聊生成式 AI

我们小时候经常有幻想,未来不用再去上班了,在工厂工作的都是机器人。在家也不用打扫卫生,机器人可以包揽一切。不知不觉间,我们小时候的幻想已经慢慢变成现实,工厂里有了多种型号的机械臂,代替了部分流水线…

Vue3中watch的value问题

目录前言一,ref和reactive的简单复习1.ref函数1.2 reactive函数1.3 用ref定义对象类型数据不用reactive二,watch的value问题2.1 ref2.1.1 普通类型数据2.1.2 对象类型数据2.1.3 另一种方式2.2 reactive三,总结后记前言 在Vue3中,…

论文投稿指南——中文核心期刊推荐(中国文学作品)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…