GitHub Copilot 全新升级,工作效率提升 55%
2021年 6 月,GitHub 和 OpenAI 推出了 GitHub Copilot 预览版,可根据命名或者正在编辑的代码上下文为开发者提供代码建议,被称为“你的 AI 结对程序员”。
近日,GitHub 宣布,经过去年 12 月以来的短暂测试后,发布了个人版和企业版 Copilot 的全新升级。升级后的 GitHub Copilot 将会具有更高的代码质量,以及更快的响应速度。
GitHub CEO Thomas Dohmke 表示,“Copilot 1.0 版本的故事就此终于告一段落。2021 年 6 月我们发布了预览版,现在回想起来似乎是很久以前的事了。去年夏季,Copilot 全面上市。现在,我们又准备将其推广到组织、公司、团队、部门,或者说每一个人手中。事实上,Copilot 商业版在发布之初就吸引到了 400 多家组织。他们都对此表现出了巨大的兴趣。”
01、创新方法解决代码问题 成为更好的代码工具
随着模型的不断升级和演进,开发团队也让很多功能成为了现实。例如模型不仅能够补全单行,甚至可以精细补全光标指定的起始和结束位置间的特定单词,还可以创新方法解决代码的问题,给你不同的思路从而让你选择。
Dohmke 指出,为了提高补全质量,模型还会查看用户正在处理的相关文件,据此建立模型查询。“它不仅能参考用户当前打开的文件中已经键入的内容,还能结合相邻文件与相邻信息做出推理。”
自 GitHub Copilot 发布以来,百万开发者的生产力被重新定义。据研究报告显示,GitHub Copilot 集成了多达 40% 的代码,也让开发者的代码编写效率提升了 55%!从最早的只有 27% 的开发者会使用到现在的 46%,甚至在 Java 中,已达到了 61%。
官方研究显示,在使用 GitHub Copilot 的开发者中,有 90% 表示可以更快地完成任务,其中 73% 的人能够更好地保持顺畅并节省精力。高达 75% 的开发者在使用 Copilot 时感到更有成就感,并且能够专注于工作。
02、GitHub Copilot 关键技术的改进与升级
GitHub Copilot 在此次升级后都有哪些关键技术的改进呢?
1、升级后的 AI Codex 模型
将 copilot 升级为新的 OpenAI Codex 模型,可以在更短的时间内提供更优质的代码建议。
2、更好的上下文理解
Copilot 将引入一种名为 Fill-In-the-Middle(FIM)的新范式,改进了 GitHub Copilot 给出的代码建议。这种方法不仅会考虑代码的前缀,还会利用已知的代码后缀,并在中间留出空白让 GitHub Copilot 来填补。如此一来,Copilot 就有了更多关于预期代码的上下文信息,从而实现与项目其余代码更好的相关性和一致性。
3、轻量级的客户端模型
使用轻量级客户端模型更新了 VS Code 的 GitHub Copilot 扩展,从而提高了建议代码的整体接受率。此外,GitHub Copilot通过使用关于用户上下文的基本信息,将不必要的建议减少了4.5%,从而提高了整体代码接受率。
4、更安全的建议
Copilot 此次更新的最大亮点之一是引入了新的安全漏洞过滤系统,该系统将有助于识别和阻止不安全的建议,例如硬编码凭据、路径注入和 SQL 注入。
一旦发现漏洞,它会自动提供更安全的补全建议。
新系统采用的是通过 LLM 来近似静态分析工具的操作。凭借着强大的的计算资源和先进的 AI模 型,GitHub Copilot 甚至可以在不完整的代码片段中,检测到易受攻击的模式。
实时阻止系统的示例
通过实时阻止在编辑器中的不安全建议,GitHub 还可以提供一些针对中毒数据集攻击的抵抗力,这些攻击旨在暗中训练 AI 助手提出包含恶意负载的建议。
目前,新系统仍在培训中,从而更好的区分易受攻击和非易受攻击的代码模式,因此 AI 模型在安全性能有望在不久的将来逐步提高。
03、GitHub Copilot for Business 上线
GitHub Copilot 如此受欢迎,越来越多的企业也在为团队购买 GitHub Copilot。企业版的 Copilot 都有哪些功能呢?
1、AI 赋能
借助 AI 让开发者更快地构建软件、更长时间地沉浸在“心流”中、并以创新的方式解决问题,从而提高代码建议的质量。
2、简单的许可证管理
管理员可以为他们的团队启用 GitHub Copilot,并选择哪些组织、团队和开发者可以获得许可证。
3、组织范围内的政策管理
您可以轻松地设置政策控制,代表你的组织强制执行公共代码匹配用户设置。
4、安全守护代码
在企业版 GitHub Copilot 上,将不会保留代码片段,或存储、共享您的代码,无论数据是否来自公有库、私有库、非 GitHub 存储库还是本地文件。
GitHub 同时宣布,Copilot 现已支持代理连接,包括使用自签名证书的连接。其 AI 驱动的 Copilot 代码补全工具,现由 OpenAI 驱动的改进模型提供支持。在通过 Azure OpenAI Service 发布以来,该团队一直在不断完善这套模型并添加新的功能。他将整个过程比作硬件业务中的规格调整,一切都是为了让模型更加强大,之后团队才能将成果引入 Copilot。
随着模型的演进,开发团队也让很多新功能成为了现实。例如“中间填充”,该模型不仅能够补全单行,甚至可以精细补全光标指定的起始和结束位置间的特定单词。
Dohmke指出,为了提高补全质量,模型还会查看用户正在处理的相关文件,据此建立模型查询。“它不仅能参考用户当前打开的文件中已经键入的内容,还能结合相邻文件与相邻信息做出推理。”
通过这些最新更新,开发团队又在另一个模型的帮助下,让 Copilot 获得了从返回代码中识别常见安全漏洞的能力。一旦发现漏洞,它会自动提供更安全的补全建议。
光是变得更好还不够,整个过程还必须要变得更快。Dohmke 提到,开发团队一直在努力改善延迟。GitHub 的数据显示,一旦 Copilot 在生成代码时耗时过长,开发人员就会很快变得焦躁不安。
Dkohmke 预计,Copilot 很快就能为开发人员生成 80% 的代码。并表示 Copilot 属于专业开发辅助产品,所以用户对于生成代码的要求肯定会更高。考虑到当前模型经常会输出不正确的代码,项目团队还是希望先把开发辅助方面的工作做好。
相关文章:
GitHub Copilot 全新升级,工作效率提升 55%
2021年 6 月,GitHub 和 OpenAI 推出了 GitHub Copilot 预览版,可根据命名或者正在编辑的代码上下文为开发者提供代码建议,被称为“你的 AI 结对程序员”。 近日,GitHub 宣布,经过去年 12 月以来的短暂测试后ÿ…...
【IoT】《天道》中音响案例的SWOT分析
在20世纪80年代初,SWOT最初是由美国知名管理学教授海因茨韦里克提出的。 之后这个工具就经常被用于企业的战略分析、竞争对手分析等场景。 在每年例行的公司产品规划过程中,我个人也经常使用这个工具。 由于涉及一些公司商业上的信息,下面会用…...
如何实现接口幂等性
1 什么是幂等 幂等操作的特点是一次或者任意多次执行所产生的影响均与一次执行的影响相同,不会因为多次的请求而产生不一样的结果。换句话说,就是我使用相同的请求参数,去请求同一个接口,不管请求多少次获取到的响应数据应该是一…...
相恨见晚的office办公神器(不坑盒子/打工人Excel插件2023年最新版)
不坑盒子 这是一个非常好用的插件工具,专门应用在Word文档和wps,支持Office 2010以上的版本,操作也简单且实用。 不坑盒子下载及使用说明 一键排版功能 像是下面的自动排版功能,可以在配置里面先设定好需要的格式,…...
matlab基础到实战(1)
目录概述sin函数例子四则运算实数复数逻辑运算复数运算模幅角共轭向量二维向量定义序列生成向量向量索引方式加减乘除向量间运算加减乘法除法概述 MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理…...
谷歌发布编写分布式应用的框架Service Weaver
一个新的框架,在本地以模块化单体的形式运行,一旦部署,则为分布式微服务架构 转载请注明来源:https://janrs.com/2023/03/%e8%b0%b7%e6%ad%8c%e5%8f%91%e5%b8%83%e7%bc%96%e5%86%99%e5%88%86%e5%b8%83%e5%bc%8f%e5%ba%94%e7%94%a8…...
详解FPGA:人工智能时代的驱动引擎观后感
详解FPGA:人工智能时代的驱动引擎观后感 本书大目录 第一章 延续摩尔定律 第二章 拥抱大数据的洪流 第三章 FPGA在人工智能时代的独特优势 第四章 更简单也更复杂——FPGA开发的新方法 第五章 站在巨人肩上——FPGA发展新趋势 文章目录详解FPGA:人工智能…...
Rest/Restful接口
Rest Rest的全称是Representational State Transfer 。Rest是一种架构风格。Rest有很多原则和限制: 客户端-服务端架构模式无状态可缓存统一接口分层系统按需缓存 Rest对我们开发人员来说基本上就是资源,我们一般通过URI表示我们请求的一个资源。例如:…...
【vue init】三.项目引入axios、申明全局变量、设置跨域
教程目录 一:《【vue init】使用vue init搭建vue项目》 二:《【vue init】项目使用vue-router,引入ant-design-vue的UI框架,引入less》 三:《【vue init】项目引入axios、申明全局变量、设置跨域》 根据前文《【vue init】项目使…...
搭建nextcloud私有云盘
要搭建Nextcloud,需要在服务器上安装和配置Nginx、PHP和SQLite3。下面是一些基本步骤: 安装Nginx 可以使用包管理器进行安装。例如,在Ubuntu上可以运行以下命令: sudo apt update sudo apt install nginx配置Nginxwget -P /home/u…...
05 | 如何安全、快速地接入OAuth 2.0?
05 | 如何安全、快速地接入OAuth 2.0? 构建第三方软件应用 第一点,注册信息 小兔软件的研发人员提前登录到京东商家开放平台进行手动注册,以便后续使用这些注册的相关信息来请求访问令牌。兔软件需要先拥有自己的 app_id 和 app_serect 等信…...
nest.js学习笔记(一)
nest.js学习笔记(一)一、安装nest.js前置条件运行项目目录介绍二、nest.js cli 常用命令三、RESTful 风格设计1.接口url2.RESTful 版本控制四、获取前端传过来的参数1.获取Get请求参数2.获取Post请求参数3.动态路由4.获取Header信息5.自定义状态码nest.j…...
win下载配置CIC Flowmeter环境并提取流量特征
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、下载CIC Flowmeter二、安装java、maven、gradle和IDEA1.java 1.82.maven3.gradle4.IDEA三、CICFlowMeter-master使用四、流量特征1.含义2.获取前言 配了一整…...
【LeetCode刷题-Java/Python】二分查找
二分查找704.二分查找题目实现总结35.搜索插入位置题目实现34. 在排序数组中查找元素的第一个和最后一个位置题目实现69.x的平方根题目实现367. 有效的完全平方数题目实现704.二分查找 题目 题目链接 给定一个 n 个元素有序的(升序)整型数组 nums 和一…...
Linux 6.2 已正式发布
Linus Torvalds 发布了稳定的 Linux 6.2 内核,这是 2023 年的第一个主要内核版本。硬件方面,Linux 6.2 提升了 Intel Arc 显卡 (DG2/Alchemist) 的稳定性,真正做到开箱即用。英特尔的 On Demand 驱动程序现在状态良好,适用于第 4 …...
Kubernetes 101,第一部分,基础知识
已经有一段时间了,我想花点时间坐下来写写关于Kubernetes 的文章。时机已到。 简而言之,Kubernetes是一个用于自动化和管理容器化应用程序的开源系统。Kubernetes 就是关于容器的。 ❗如果你对什么...
企业级信息系统开发学习笔记1.7 基于XML配置方式使用Spring MVC
文章目录零、本节学习目标一、Spring MVC概述1、MVC架构2、Spring MVC3、使用Spring MVC的两种方式二、基于XML配置与注解的方式使用Spring MVC(一)创建Spring项目【SpringMVCDemo01】(二)在pom文件里添加相关依赖(三&…...
java反射,动态代理
1. 反射 1.1 反射的概述: 专业的解释(了解一下): 是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能够调用它的任意属性和方法…...
React(六):Redux的使用、react-redux简化代码、redux模块化、RTK的使用
React(六)一、Redux测试项目搭建1.创建store仓库2.创建reducer函数(纯函数)3.constants.js保存action名字4.修改store中的数据5.动态生成action二、React中如何使用redux1.安装redux2.创建store3.组件中订阅store4.派发action修改…...
静态库和动态库的打包与使用
静态库和动态库 静态库和动态库的打包 生成可执行程序时链接使用 运行可执行程序时加载使用 提前声明,笔者示例的文件有mian.c/child.c/child.h。OK,我们先了解一下,库文件是什么?它其实就是打包了一堆实现常用功能的代码文件. ⭐…...
h264编码之SPS解析
一、概念 SPS即Sequence Paramater Set,又称作序列参数集。SPS中保存了一组编码视频序列(Coded video sequence)的全局参数。 二、定义 H.264标准协议中规定的SPS格式位于文档的7.3.2.1.1,如下图所示: 1、profile_idc 根据《T-REC-H.264-2…...
使用R语言包clusterProfiler做KEGG富集分析时出现的错误及解决方法
使用enrichKEGG做通路富集分析时,一直报错:显示No gene can be mapped....k <- enrichKEGG(gene gene, organism "hsa", pvalueCutoff 1, qvalueCutoff 1)但是之前用同样的基因做分析是能够成功地富集到通路,即便是网上的数据…...
框架——MyBatis的入门案例
框架概述1.1什么是框架框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交与的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义…...
hadoop兼容性验证
前言 Hadoop是一个由Apache基金会所开发的分布式系统基础架构,主要解决海量数据的存储和海量数据的分析计算问题,广义上来说,Hadoop通常是指一个更广泛的概念–hadoop生态圈 Hadoop优缺点: 优点: 1、高可靠性&#x…...
运维提质增效,有哪些办法可以做
凡是代码,难免有 bug。 开发者们的日常,除了用一行行代码搭产品外,便是找出代码里的虫,俗称 debug。 随着移动互联网的快速发展,App 已经成为日常生活中不可或缺的一部分。但是在开发者/运维人员的眼里简直就是痛苦的…...
c++基础——结构体
结构体结构体(struct),可以看做是一系列称为成员元素的组合体。可以看做是自定义的数据类型。定义结构体struct abc {int x;int y; } e[array_length];const abc a; abc b, B[array_length], tmp; abc *c;上例中定义了一个名为 abc 的结构体&…...
applicationContext相关加载
spring refresh 概述 refresh是一个方法,spring中所有的ApplicationContext容器都需要通过refresh方法初始化; 处理步骤 其中refresh方法包含12个主要的处理步骤: 1、第1个步骤做前置准备 2、第2~6步骤创建BeanFactory(Appl…...
数据同步工具Sqoop
大数据Hadoop之——数据同步工具SqoopSqoop基本原理及常用方法 1 概述 Apache Sqoop(SQL-to-Hadoop)项目旨在协助RDBMS(Relational Database Management System:关系型数据库管理系统)与Hadoop之间进行高效的大数据交…...
Kafka 版本
kafka-2.11-2.1.1 : Kafka 1.0.0 后,Kafka 版本命名规则从 4 位到 3 位Kafka版本号是 2.1.1前 2 : 大版本号 (MajorVersion)中 1 : 小版本号或次版本号 (Minor Version)后 1 : 修订版本号 (Patch) Kafka 0.7 最早开源版本 : 只提供最基础的消息队列功…...
ElasticSearch 在Java中的各种实现
ES JavaAPI的相关体系: 词条查询 所谓词条查询,也就是ES不会对查询条件进行分词处理,只有当词条和查询字符串完全匹配时,才会被查询到。 等值查询-term 等值查询,即筛选出一个字段等于特定值的所有记录。 【SQL】 s…...
如何做可以微信转发的网站/wap网站html5
2019独角兽企业重金招聘Python工程师标准>>> 在前几篇中,我们搭建好了Go语言的开发环境,从今天开始就正式进入Go语言的编程学习了。 一、Go语言程序基本结构与外部包的导入 首先来看Go语言程序的基本结构: 以上就是最基本的结构&a…...
番禺网站排名优化公司/慧生活798app下载
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/course/detail/35475 目录* - * 版本说明 一、概述二、基本构建三、Git 导入编译器四、模块描述浅析五、配置文档 application.yml修改,涉及模块…...
怎么制作一个国外网站/产品软文范例软文
2019独角兽企业重金招聘Python工程师标准>>> 有设计经验的一般都知道,版式设计需要对画面元素之间的关系有充分的认识,并能够在足够有限空间内合理布局,将图形与文字合理结合,下面就来给大家介绍下版式设计的方法。 一…...
网站域名到期怎么续费/网站权重怎么看
TCL电脑科技(深圳)有限公司企业概要TCL电脑科技(深圳)有限公司成立于1998年,主要以研究、开发、生产和销售电脑及其他相关互联网接入设备等信息产品为主要业务,拥有年产200万台的生产制造基地,在…...
国中建设委员会网站/市场宣传推广方案
功能编程和测试。 也许您已经孤立地尝试了它们,但是以某种方式您从未将它们作为常规练习的一部分。 它们本身听起来可能很无辜,但是将测试和功能编程结合在一起会产生难以抗拒的诱惑,几乎迫使您编写更简洁,更紧凑,更可…...
5000元网站seo推广/上海牛巨微seo
文章目录第一节:数组第二节:稀疏矩阵第三节:数据结构的定义1. 数据结构的概念2. 数据逻辑结构第四节:线性表1. 线性表的概念2. 顺序表和链表对比3. 链表的基本操作4. 顺序存储和链式存储对比5. 队列与栈第五节:广义表第…...