Github Copilot 程序员下岗指南

What is Github Copilot?

Github Copilot 是 Github 推出的一款AI辅佐编程的产品,依托于 OpenAI 的 Codex 模型的微弱才干,为开发人员在实际开发进程中供给实时有用的编码建议,并集成如Fix Bug、言语转化、代码解说、代码优化、单元测验等许多有价值的的功用。

本文将向你介绍 Github Copilot 相关的基础概念,运用方法,作用演示,模型练习,和根据个人理解的剖析评论。

注: 本文中大部分的数据来源,解说和图表首要出自 OpenAI 发表的一篇主题为在一个大型言语模型上经过代码练习后作用评价的论文,点击检查: Evaluating Large Language Models Trained on Code

纲要

  • ChatGPT VS Codex 的对比
  • OpenAI 首要宗族成员
  • Github Copilot
  • 演示
  • 练习微调
  • 作用
  • 局限性
  • 危险
  • 趋势
  • Github Copilot
  • 总结
  • 参考文献

ChatGPT VS Codex

假如说在2022年最后一个月发布的 ChatGPT 是一款火出圈的产品,现在时间来到了2023年,ChatGPT 俨然成为了互联网的又一里程碑,现在广义的 ChatGPT 已经成为了新时代人工智能的代名词。一个新的风口正在快速崛起!过去的一周更是被称为AI届最张狂的一周,各大互联网企业争先恐后的推出自家人工智能相关产品,似乎晚一步就将被时代的浪潮淹没。

ChatGPT 是一款天然言语对话模型,而 Codex 便是 GPT 模型的另一个分支,是一款将天然言语翻译成代码的言语模型,也是为 Github Copilot 供给中心才干的模型。

OpenAI 宗族

无论是 chatGPT 还是 Codex,都出自一家在美国的人工智能公司 OpenAI,OpenAI 早年由马斯克和硅谷大佬联合创立,现在微软是其最大的股东,首要负责人工智能范畴的研究。

一张图看懂 OpenAI 主流的宗族产品

Github Copilot 程序员下岗指南

GPT3 是 OpenAI 几年前推出的一款天然言语模型,能够说是 OpenAI 里程碑式的产品,咱们后边看到的其所有为人熟知的产品、模型都是在 GPT3 之上生根发芽的,天然言语模型也是从 GPT3 开始有了质的飞跃。

相比较出道即巅峰的 ChatGPT ,更早推出的 Codex 就显得“默默无闻”起来。

Github Copilot 程序员下岗指南

但 Codex 志不在此,他不需求 ChatGPT 这种带有娱乐属性的热度,能被大众接受的仅有条件便是在编程方向上更专业。

经过一段时间的打磨,一款搭载了 Codex 真正的产品来了,它便是 Github Copilot。

Github Copilot

GitHub Copilot 是一款真正搭载了codex模型,旨在节约开发者的开发成本,辅佐开发者编程的一款开发者工具

当前售卖价格10美金一个月,100美金一年,可谓是名副其实,童叟无欺。

你的AI编程助理,让你的编程不再孑立。

从 GPT3 到 Codex,Github Copilot才是这款模型的终极形态.

Github Copilot 程序员下岗指南

以Vscode为例,当你下单后,你会得到两个插件:

  • GitHub Copilot :AI智能提示
  • GitHub Copilot Labs:编程小工具调集

演示

写注释,自动生成代码
在编码进程中实时猜想你要写的逻辑,并给出建议

Github Copilot 程序员下岗指南

解说代码(天然言语翻译代码逻辑)

Github Copilot 程序员下岗指南

言语转化(例如将js逻辑转化成python)

Github Copilot 程序员下岗指南

代码优化小工具

  • 可读性增强:如添加注释,三目运算转为if else
  • 添加类型:传参添加类型
  • Fix Bug:修正代码bug
  • Debug:添加调试断点
  • 清洁代码:精简冗余逻辑,删去console
  • 履行步骤:注释代码每一步履行进程
  • 健壮性增强:添加代码健壮性,如添加过错catch
  • Chunk:代码分块,更契合模块化拆分
  • 生成文档

Github Copilot 程序员下岗指南

生成测验用例

Github Copilot 程序员下岗指南

练习微调

前面说到 Codex 并不是从0练习的一款模型,它是在 GPT3 天然言语模型的基础上的微调版本,使得 Codex 在编程才干上有极大提高,那它到底是怎么从一个天然言语模型,进化成一个能处理编程范畴问题的模型的呢。

从 Evaluating Large Language Models Trained on Code 这篇论文里大概说到4点能大大提高模型编程才干的方法:

1.GitHub全球最专业的数据集

GPT3是爬取网络上的所有数据去练习出的一款天然言语模型,天然也会爬取许多跟编程有关的数据,所以 GPT3 本身就带有一些编程才干,但由于网络上有关编程的代码琐碎混乱,并不足以让 GPT3 成为一个编程大师,所以让 GPT3 升级编程才干,有一份足够专业的数据集至关重要。

所以 Codex 专门选用 GitHub 上所有公共库房的代码,整理出一份全球最广最全最专业的数据集,供给给 GPT3 练习,使 GPT3 的编程基础有了很大进步。

2.编程方向上的专业微调

许多人都知道 ChatGPT 有个特色便是不做微调,因为只有你不去人工干预模型的练习,才干得出一个有更多或许的天然言语模型,它的回复才干表现的更像人类,但相同 ChatGPT 也会经常给出过错答案甚至是胡乱假造的答案。

而 Codex 与它有极大的不同,咱们需求它的仅仅专业和严谨,所以codex做专业方向的微调,会让他的作用有极大的提升。

论文中列举了一些专业微调的方法,比方准备一份更加精粹编程题,写好相关文档与单元测验,交个 GPT 练习。

3.重复抽样策略

一起工程师们发现对一个问题重复抽样,比方对一个编程问题生成100个答案,假如有一个答案是正确的就算他经过,那经过率将极大提升。所以让 GPT 对一个问题重复抽样,是十分有用的策略。

可是咱们不或许每次让 GPT 生成100个成果,再由人去挑选出其间正确的一个,所以有个最优的排序算法就至关重要。

4.最优的排序算法

工程师们发现在重复抽样的100个答案中,选取平均对数最高的1个样本作为答案,经过率最高。

作用

说了半天 Codex 模型的运用和练习,那它的作用到底怎么呢?

评价框架

为了衡量模型的作用,工程师们手写了一份测验数据集,该测验集包括164个编程问题,并顺便各自的文档字符串和对应的单元测验,让模型去回答该测验集中的编程问题,并经过每个编程问题的单元测验判别模型是否给出了正确答案。最后经过计算模型在这份测验数据集的经过率来衡量它的编程才干。

这份测验数据集开源在GitHub上,并被命名为:HumanEavl

经过率

经过测验计算出 Codex 模型的经过率,并绘制出下图

Github Copilot 程序员下岗指南

从图中能够看出:

  • 用 GPT3 直接回答测验数据集的问题经过率为0%,简直不能处理任何问题。
  • 将 GPT3 在 Github 数据集练习一遍后经过率能到达 28.8%
  • 将 Codex 在编程方向进一步微调后经过率能到达 37.7%
  • 让 Codex 生成100个样本,并经过排序算法挑选出1个答案的经过率是44.5%
  • 假如你供给了想要代码的单元测验,成功率到达77.5%

当然现实中咱们不或许每次都写好一份单元测验去给 Codex 生成答案,所以 Codex 的经过率大概便是在44.5%,这个经过率的提升已经是十分大了。

局限性

Codex 也并非完美,模型本身有许多的局限性:

  • Codex练习功率低,需求十分多的练习数据,才干让模型做出很简略的编程问题,远不及人类的学习才干
  • 练习好的模型并不能即时更新技术知识,知识点或许滞后或过错
  • 很难精细处理杂乱指令,如逻辑中包括多步骤的数学计算,简略疏漏
  • 随着指令杂乱度添加,生成代码精确度呈指数下降。

下图是指令模块数量和样本合格率的关系,每添加一个指令模块,合格率会下降2-3倍,所以 Codex 很难处理杂乱指令。

Github Copilot 程序员下岗指南

危险

关于广大开发者需求实际运用的 Github Copilot 来说, Codex 这款模型本身存在的危险因素,是每个开发者需求慎重考虑的

开发危险

  • 过渡依靠代码生成,自测质量变差,简略出现不易发觉的bug
  • 杂乱模型会有自己的习惯偏好,或许不会按人的实在想法回来代码

网络危险

  • 假如Codex生成代码过度运用某个依靠包,将导致包的运用率发生巨大变化,严重影响开源环境的发展。
  • 能够轻易生成恶意代码,恶化网络环境

法令危险

  • 危险: 爬取Github数据用来练习模型
  • 争议: 运用Github公共代码并未遵照开源协议
  • 危险: 练习后的模型用于商业化盈余
  • 危险: Codex或许生成与练习集中高度相似的代码,运用者无法感知,或许存在抄袭侵权的法令危险(尽管官方解说这种概率<0.1%)

其他危险

  • 性别偏见,Github男性开发者占大多数
  • 每次模型练习消耗很多资源,不利于环保

趋势

  • 新风口,热度会一直持续,互联网从业者应当保持持续重视
    AI之于互联网,犹如以前互联网之于传统职业

  • 一些简略重复的人工岗位或许会快速消亡:
    客服,助理,媒体类(撰稿、编辑、文案策划)…

  • 现有的一些职业的工作形式或许会被颠覆:
    程序员,设计师,产品/运营,剖析师 …

Github Copilot X

GPT4 的推出给 GitHub Copilot 带来了新的或许,官方公布了新一代 Github Copilot X 和未来的愿景,从视频演示中看到 Copilot X 将在编辑器内置一个谈天窗口,可直接进行谈天对话,做更高效的开发。

但此功用现在还没有推出计划,也纷歧定会出现在已有的 GitHub Copilot 中,也或许是一款新产品。你能够在此参加候补名单,提前体验内测功用。

总结

  • 本次讲的首要内容是OpenAI有一款十分凶猛的天然言语模型GPT3,为了让它有杰出的编程才干,把GPT3在一个新的代码数据集上从头跑了下,并做了一些编程方向的微调,得到了一个新模型 Codex。 经过一个手写的测验数据集做评价,这个新模型处理编程问题的概率到达44.5%。
  • OpenAI将此模型授权给了Github,推出了一款付费AI辅佐编程产品 Github Copilot。

参考文献

  • OpenAI Codex 论文精读【论文精读】
  • Evaluating Large Language Models Trained on Code

注:原文链接:原创文章,非授权不得转载,原文链接:/post/721801…