Azure OpenAI 官方指南04|Codex的模型结构和应用场景

Codex 是 OpenAI 公司推出的 GPT-3(Generative Pre-trained Transformer – 3)的多个派生模型之一。它是基于GPT语言模型,使用代码数据进行 Fine-Tune(微调)而训练出的专门用于代码生成/文档生成的模型。Codex 模型参数从12M到12B不等,是目前最强的编程语言预训练模型。Codex 能够帮助程序员根据函数名和注释自动补全代码、直接生成代码、自动补充测试样例,并支持多种编程语言。本期 Azure OpenAI 官方指南将详解 Codex 的模型结构如何帮助程序员实现自动代码生成。

Codex 的模型结构  01

Azure Codex 模型家族简介 ╱ 02

Codex 的应用场景示例 ╱ 03

Codex的模型结构

OpenAI CTO 兼联合创始人 Greg Brockman 表示,“Codex 将是一款能够施展程序员力量的重要工具”。Codex 项目负责人 Wojciech Zaremba 则将 Codex 视为编码历史演变的下一阶段。那么,Codex 是如何颠覆编码的?

编程主要分为两个阶段,第一个阶段是认真思考问题并尝试理解,第二个阶段是把这些小片段与现有代码映射起来,包括库、函数以及 API。通过自然语言模型结构与代码数据集训练,在第二个阶段,Codex 模型的优势显露无疑。“Codex 的出现,让专业程序员们告别了不少令人头痛的苦差事。”

模型结构 在GPT模型上加入额外token

Codex 的模型结构和 GPT 完全一样,为了尽可能地利用 GPT 的文本表示,Codex 使用了和 GPT-3 一样的分词器。但因为代码中词的分布和自然语言中词的分布有很大区别,GPT-3 的分词器在表示代码时可能不是非常有效。Codex 论文显示在 GPT-3 的分词器中加入了额外的一些 token 来表示不同长度的空格,这样在表示代码时可以少使用 30% 的 token。

推理时,使用核采样不断采样 Codex 生成的 token,直到碰见以下字符中的任何一个:"\nclass","\ndef","\n#","\nif" , '\nprint'。这样可以大大减小模型第一和最后一层的参数量。实验证明 Codex 可以通过增加模型规模持续精进。如下图所示:

数据集 用于微调与评测

●  Fine-Tuning 数据集

首先是用来做 Fine-Tuning 的 code 数据集。在2020年5月,Codex 从 Github 的 54,000,000 个公开代码仓上收集了数据,包括 179 GB 大小在 1 MB 以下的独一无二的 python 文件,在经过过滤后,最终的数据集大小为 159GB。

●  评测数据集

Codex 将生成代码的功能正确性作为评测指标,关注从 docstrings 生成 python 函数的任务,并通过 unit tests 的方法来评测生成代码的正确性。评测指标采用的是 pass@k。评测数据集包含 HumanEval 和 APPS 两个数据集。

HumanEval 构建了一个包括164个人工手写的编程问题的数据集,其中每个编程问题包括函数头、docstrings、函数体和几个 unit tests。HumanEval 中的编程问题可以用来评估语言理解能力、推理能力、算法能力和简单的数学能力,该数据集已经开源。人工手写是非常重要的:因为如果直接从网上找,比如说从 leetcode 上去扒,很有可能导致数据穿越。

Codex、GPT-Neo、GPT-J 和 TabNine 在 HumanEval 上的实验结果对比如下图所示,可以发现 Codex-300M 的效果优于 GPT-J 6B。

Azure Codex 模型家族

Codex 擅长 Python,精通十多种语言,包括c#、JavaScript、Go、Perl、PHP、Ruby、Swift、TypeScript、SQL 和 Shell。Codex 的模型包含:code-davinci-002、code-cushman-001(按能力大小排列)。

●  Davinci

与 GPT-3 类似,Davinci 是最强大的 Codex 模型,可以执行其他模型能够执行的任何任务,而需要更少的指令。对于需要深入理解内容的应用程序,Davinci 可以产生最好的结果。更强大的功能需要更多的计算资源,因此 Davinci 的成本更高,速度也不如其它模型。

●  Cushman

很强大,同时速度很快。当谈到分析复杂任务时,Davinci 更强,而 Cushman 是许多代码生成任务的能干模型。Cushman 通常也比 Davinci 跑得更快、更便宜。

◉ 上图为 Azure Codex 模型概要

1 该模型仅可根据要求进行微调。目前我们不接受微调模型的新请求。

2 由于需求量大,美国东部目前无法为新客户提供微调服务。请使用美国中南部地区进行培训。

Codex 应用场景示例

Codex 模型主要应用在IT科技部门的代码研发流程自动化上。

●  编写程序

比如开发小游戏,准确率高达72%!Codex 不仅能够收到指令后自行编程,还能够开发小游戏。

● 辅助编程

微软、OpenAI、GitHub 联合推出了自动代码生成 AI Copilot,Copilot 能够在用户输入过程中随时提供补全代码行内容的建议。

企业级Azure OpenAI国际版官方指南

Vol.04 Codex 作者

陈珊珊 微软云大数据与人工智能架构师

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[论文] LIMA: Less Is More for Alignment

文章目录 概要内容关键方法高质量样本获取模型评估方法 结论思考 Meta新模型LIMA,基于LLaMa-65B,精选1000个微调样本进行训练,对比GPT-4/Bard/DaVinci003,表现出强大的性能。 结果表明,大语言模型中的几乎所有知识都是…

ChatGpt万能公式以及详细使用方法(实时更新最新方法)

万能公式: 1. 我希望你 / 我想让你 充当 / 担任 / 扮演( 设定角色) 2. 我将为你提供 (关键信息) 3. 你的工作 / 任务是 (工作内容) 4. 我的第一个要求是(输出目标) 例如: 我希望你充当一名广告商。您将创建…

九类AI应用和五个简单LLM的Prompt技巧

文章目录 一、九类AI应用二、五个提示词技巧三、MidJourney的prompt使用举例Reference 一、九类AI应用 AI艺术:造梦日记、MidJourney、Stable Diffusion、Adobe、Stability、Remove AI聊天:ChatGPT、Discord、文心一言、Google Bard、星火、Character.…

使用 ChatGPT 和 React 创建一个惊艳的3D卡片(二)

在上一篇文章中,我们一起使用 ChatGPT 和 React 构建了一个基本的卡片布局,效果如下图所示。如果您还没有看过上一篇文章,可以通过这个链接快速查看《使用 ChatGPT 和 React 创建一个惊艳的3D卡片(一)》。 在此基础上&…

【Figma技巧】根据JSON文件自动生成色标图例

最近工作中有个需求,就是根据json文件里的参数,在figma中做出色标图例。 由于要素很多,不同的要素的色标配置文件都不同,如果手动一个颜色一个颜色去复制粘贴很费时间,所以我让chatGPT去帮我实现。但是我用的是GPT-3&…

ChatGPT加持下的微软New Bing 错误频出,别只骂谷歌的Bard了

文|李星漩、丁博生、赵若辰、谢耀赓、邴立东 源|机器之心 这些天看下来,在与谷歌 Bard 加持的搜索引擎较量中,微软基于 ChatGPT 的新必应似乎完全占据了上风。但仍不禁要问,新必应的搜索结果真的无懈可击吗&#xff1f…

ChatGPT时代情感分析还存在吗?一份真实调查

深度学习自然语言处理 原创作者:qazw 引言 最近几年,GPT-3、PaLM和GPT-4等LLM刷爆了各种NLP任务,特别是在zero-shot和few-shot方面表现出它们强大的性能。因此,情感分析(SA)领域也必然少不了LLM的影子,但是哪种LLM适用…

【精妙绝伦】写出查询所有用户的第2笔订单sql!!!

叹为观止的sql语句 SELECT user_id, order_id, order_date, amount FROM orders WHERE (SELECT COUNT(*) FROM orders o WHERE o.user_id orders.user_id AND o.order_date < orders.order_date ) 1 ORDER BY user_id, order_date阿里渣渣研发组群主分享

chatgpt赋能python:探索Python:如何找出大于5的数

探索Python&#xff1a;如何找出大于5的数 在Python编程中&#xff0c;我们常常需要对一系列数字进行操作和筛选。例如&#xff0c;我们需要找出一个列表中所有大于5的数字。本文将详细说明如何使用Python找出大于5的数&#xff0c;并讨论在实际应用中可能遇到的问题和解决方案…

利用chatgpt+低代码技术搭建进销存系统

1 前言 在当今数字化时代&#xff0c;企业管理系统已经成为各行各业不可或缺的一部分。而进销存系统更是企业管理中的重要组成部分&#xff0c;它可以帮助企业实现产品库存管理、采购管理、销售管理等多个方面的自动化管理。 然而&#xff0c;搭建一个高质量的进销存系统需要…

吴恩达联手OpenAI的免费课程笔记—面向开发人员的 ChatGPT 提示工程

目录 前言一、大语言模型介绍二、提示指南2-0、导入API key和相关的python库2-1、写清楚的、具体的提示2-1-1、使用分隔符清楚的指示输入的不同部分2-1-2、要求结构化的输出2-1-3、按照指定的条件输出2-1-4、少样本学习 2-2、给模型时间去思考2-2-1、指定完成任务所需要的具体步…

我用ChatGPT 7分钟生成一个Spring Boot博客项目,有点瑟瑟发抖!

我的《用ChatGPT生成一个SpringBoot应用》保姆级教程上线了。教程的核心是&#xff1a;思路和ChatGPT提示语&#xff0c;已经更新到我的知识星球专栏&#xff0c;目前已经累计实战项目60&#xff0c;目标500 看看ChatGPT生成的项目&#xff0c;Maven结构完整&#xff0c;可正常…

ChatGPT快速搞定前后端开发、测试、运维项目实战,一点代码都不用写!

《面向ChatGPT全栈开发实战》专栏上线了&#xff0c;写这个专栏的过程中&#xff0c;我真有点恐慌&#xff0c;感觉我得失业&#xff0c;因为ChatGPT实在太牛逼了。 注意&#xff1a;由于账号越来难注册&#xff0c;仅限前200名送ChatGPT独立账号&#xff0c;没有的抓紧了。 Ch…

使用机器学习预测股价

股票价格预测有助于确定未来几天或几周内股票的走势&#xff0c;或者至少显示趋势。股票价格取决于多种因素&#xff0c;例如&#xff1a; 基本因素&#xff1a;收入&#xff0c;利润&#xff0c;市场份额&#xff0c;业务的潜在增长前景 外部因素&#xff1a;大流行病&#…

[股票预测]股票历史数据获取

目 录 一、编程环境准备 第一步&#xff1a;安装Anaconda3 第二步&#xff1a;安装工具包Pandas、tushare 第三步&#xff1a;查看Pandas、tushare版本 二、股票历史行情数据提取 2.1获取近3年个股日线交易数据 2.1.1 个股交易接口函数get_hist_data() 2.1.2兴蓉环境(…

股票预测数据与真实数据对比图(八)2021/07/16

重点在于echarts的option 经过查阅文档可以知道&#xff0c;对于echarts的使用&#xff0c;对于图表要绘制的内容是填写在option这一选项&#xff0c;并通过 charts.setOption(option,true); 这条命令来达到刷新图表内容的作用&#xff0c;因此在已经监听了绘制图表类型的基础…

解读:通过挖掘股票内在特征预测股票趋势

写在前面 下面这篇文章的内容主要是来自发表于KDD2019的一篇文章《Investment Behaviors Can Tell What Inside: Exploring Stock Intrinsic Properties for Stock Trend Prediction》。这篇文章发现&#xff0c;职业基金经理们对于股票的共同投资行为可以反应股票的内在属性&a…

使用DeepAR实现股价预测

使用DeepAR实现股价预测 文章目录 使用DeepAR实现股价预测获取股票列表从众多股票中采样100支日期处理函数拉取等长度的股票&#xff0c;并保存 各指标解释预测区间长度及上下文选取给这78支股票所在行业进行归类 目标变量处理协变量处理协变量归一化操作 训练、测试数据划分训…

基于tushare的股票评级与预测

本文内容 股票评级思路&#xff08;一&#xff09; 用百度得到的股票评级六大要素进行股票评分&#xff0c;并用后面的数据对其进行正确性检测。股票评级思路&#xff08;二&#xff09; 在思路一的基础上加入大盘历史的涨跌数据&#xff0c;对评分进行了优化&#xff0c;也进…

python采集往期股票数据进行分析预测

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 准备工作 既然要去赚马内&#xff0c;咱们首先要获取往期的数据来进行分析&#xff0c; 通过往期的规律来对当前进行预测&#xff0c;准不准我不知道&#xff0c;反正比人预测的准&#xff0c; 不准也不要喷我&#xff0…