机器学习驱动的编程助手 Amazon CodeWhisperer 概述

Java
Python
JavaScript
海外精选
Amazon CodeWhisperer
海外精选的内容汇集了全球优质的亚马逊云科技相关技术内容。同时,内容中提到的“AWS” 是 “Amazon Web Services” 的缩写,在此网站不作为商标展示。
0
0
我们宣布推出基于[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)的服务 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail),它基于开发人员使用自然语言编写的注释和先前的代码提供编程建议,从而提高开发人员的工作效率。借助 CodeWhisperer,开发人员只需要用简单的英语编写注释概述某项任务即可,比如“上传文件到 S3。”在此基础上,CodeWhisperer 可以自动确定最适合既定任务的云服务和公共库,进而飞速构建代码,并直接在集成开发环境中建议代码片段。 虽然云能让开发人员按需获得计算、存储、数据库、分析和[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)服务,从而让应用程序开发变得更加方便,不过构建软件应用的过程仍然传统,需要开发人员花大量时间来编写代码样板,而这些与他们想解决的核心问题并不直接相关。既要跟进各种编程语言、框架和软件库,又要兼顾正确的编程句法和最佳的编程实践,即便是经验丰富的开发人员也会觉得这并非易事。因此,开发人员需要耗费大量时间从网上搜索和定制代码片段。不过,在 CodeWhisperer 的帮助下,他们便可以在当前的 IDE(集成开发环境)中获得即时可用的定制建议。对当前 IDE 的更少干扰以及实时可用的建议有助于开发人员更快地完成编程任务,从而提高工作效率。 在这边博文中,我们将介绍 CodeWhisperer 的好处以及入门指南。 ### 让机器学习赋能开发人员 CodeWhisperer 是 Amazon Toolkit 针对主要IDE的扩展系列的一部分,该系列还包括 JetBrains、Visual Studio Code 和 Amazon Cloud9。CodeWhisperer 基于 Amazon Lambda 控制台构建,提供本地代码建议服务。启动后,你可以利用 CodeWhisperer 为 Python、Java 和 JavaScript 创建代码建议。你可以进入IDE插件或扩展屏幕,然后安装 Amazon Toolkit,或是直接搜索 Amazon Toolkit。 ![文章 2 插图 1.png](https://dev-media.amazoncloud.cn/c51df371247d43eb906756140ffface4_%E6%96%87%E7%AB%A0%202%20%20%E6%8F%92%E5%9B%BE%201.png "文章 2 插图 1.png") 安装 CodeWhisperer 后,在编写代码或注释时,你便可以在 IDE 中自动接收代码建议。CodeWhisperer 易于使用,易于试验,能够满足开发人员在开发环境中的需求。只需要短短几分钟时间,你便可以启动 CodeWhisperer,即刻享受更高的工作效率。 ### 远非传统的“自动完成”工具 传统的“自动完成”工具只能完成单句话的任务,比如列出某个对象的属性或方法清单。而 CodeWhisperer 则可以一次性生成整个功能和逻辑代码板块,从而大幅提高工作效率。同时,CodeWhisperer 也了解开发人员通过简单英语注释表达的意图。下面的例子显示了CodeWhisperer 将 JSON 文件转为 CSV 文件的整个过程,同时也考虑了开发人员利用 JSON 文件关键要素(比如 CSV 文件的标题)的意图。 ![文章 2 插图 2.png](https://dev-media.amazoncloud.cn/8619eec2868a4567a18ca87aa648171a_%E6%96%87%E7%AB%A0%202%20%20%E6%8F%92%E5%9B%BE%202.png "文章 2 插图 2.png") ### 在亚马逊云科技上构建应用程序变得更加容易 基于各种颇受欢迎的工具(比如 Amazon Elastic Compute Cloud(Amazon EC2)、Lambda 和 [Amazon Simple Storage Service](https://aws.amazon.com/cn/s3/?trk=cndc-detail)([Amazon S3](https://aws.amazon.com/cn/s3/?trk=cndc-detail)),CodeWhisperer 可以为亚马逊云科技应用程序接口(APIs)提供编程建议,让开发人员更轻松地使用亚马逊云科技的服务。当开发人员在 IDE 中编写代码时,CodeWhisperer 可以利用相关的云服务和公共软件库就预期服务自动分析注释、组合代码,并且直接在 IDE 中推荐代码片段甚至整个服务,以推动最佳实践。下面的例子显示了 CodeWhisperer 利用服务器侧加密将文件上传至 [Amazon S3](https://aws.amazon.com/cn/s3/?trk=cndc-detail) 的整个过程。 ![文章 2 插图 3.png](https://dev-media.amazoncloud.cn/3503bf94c2744484a846699f6eedd189_%E6%96%87%E7%AB%A0%202%20%20%E6%8F%92%E5%9B%BE%203.png "文章 2 插图 3.png") ### 负责任地利用人工智能的力量 基于大量可公开获得的代码,我们对CodeWhisperer 模型进行了训练,旨在提高建议的准确性。简言之,模型的准确性与训练数据的规模成正比。在提高准确性的同时,这些模型也会学到一些不需要的模式。我们认为,人工智能促进效率这一点毋庸置疑,不过我们应该以负责任的方式来利用这种力量。在这方面,CodeWhisperer 有一些独特的优势。 在亚马逊云科技,我们喜欢说“安全是重中之重”。因此,我们为 CodeWhisperer 赋予了代码(CodeWhisperer 生成以及开发人员编写的代码)扫描功能,以便检测安全漏洞。下面的截图显示了CodeWhisperer 的安全扫描功能,里面纳入了一个可能导致资源泄露的代码片段。当你选择 Run Security Scan 时,CodeWhisperer 就可以探测到这个漏洞并予以显示。 ![文章 2 插图 4.png](https://dev-media.amazoncloud.cn/0056fc7acb6343e4a45eeac8498525ce_%E6%96%87%E7%AB%A0%202%20%20%E6%8F%92%E5%9B%BE%204.png "文章 2 插图 4.png") 另外,我们也提供了参考追踪器,它可以检测到类似于特定训练数据的输出。虽然这个模型已学会如何编写代码并基于学习生成全新的代码,不过,在极少数的情况下,独立生成的代码建议可能看上去像训练数据中的独特代码片段。当这种情况发生时,CodeWhisperer 会向你发出通知并提供数据库和许可信息,以便于你确定是否在项目中使用该代码并进行恰当的源代码归因。 CodeWhisperer 可以在建议弹窗中发出通知,实时提供看上去可能像参考代码的代码建议。在下面的截图中,生成的代码就类似 MIT 许可的参考代码。如果开发人员接受这个建议,CodeWhisperer 就会记录“接受”以及相应的许可信息。然后,你就可以选择代码低语者节点下的“打开代码低语者参考面板”,查看参考日志。 ![文章 2 插图 5.png](https://dev-media.amazoncloud.cn/9816a1fb15bb400595a2da8e00826974_%E6%96%87%E7%AB%A0%202%20%20%E6%8F%92%E5%9B%BE%205.png "文章 2 插图 5.png") 最后,我们将利用特定技术来检测因一些成见造成的偏见。我们采用过滤器来检测生成代码中的偏差,并滤掉那些可能存在偏见或不公平的代码建议。我们以可以帮助招聘经理自动筛选应聘者的软件为例。当出现旗鼓相当的情况时,这个软件启动打破平局的逻辑。在这种场景下,AI模型可能基于不恰当的参数生成有利于候选者的代码建议,而 CodeWhisperer 可以检测到建议中的偏见,并在向开发人员给出建议之前滤掉这些偏见。 ### 借助 CodeWhisperer 释放生产力 “编程过程中常常受到干扰,需要离开当前环境、上网搜寻代码样本和文档。[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 可以在我需要时自动提供有用的建议,让我可以专心地编程,无需离开程序编辑器。”\ – SmugMug 资深软件工程师 Ryan Grove “我们十分开心能与亚马逊云科技合作,将 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 应用于 IntelliJ Platform。JetBrains 的目标是让软件开发成为一种流畅、愉悦的体验。在我们的工具中安装这种插件可以帮助开发人员专注于当前的集成开发环境,减少上网搜索和定制代码片段的需要。目前,IntelliJ IDEA、PyCharm 和 WebStorm 的用户均可以在自己的IDE中启用 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail),将来这种服务还可以支持更多的集成开发环境。” – JetBrains 首席执行官 Max Shafirov ### 入门指南 CodeWhisperer 预览版可供全球各地的所有开发人员免费使用。注册加入等候队列,便可获得预览版服务。欲了解更多有关该服务的信息,可访问 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail)。 ##### 关于作者 ![文章 2 作者 1.png](https://dev-media.amazoncloud.cn/efc107a514a94fc3bfc0abc0d60de90d_%E6%96%87%E7%AB%A0%202%20%20%E4%BD%9C%E8%80%85%201.png "文章 2 作者 1.png")\ Ankur Desai 是亚马逊云科技AI服务团队的首席产品经理。 ![文章 2 作者 2.png](https://dev-media.amazoncloud.cn/455e6559d2bb433d819274e05793e2df_%E6%96%87%E7%AB%A0%202%20%20%E4%BD%9C%E8%80%85%202.png "文章 2 作者 2.png")\ Atul Deo 是亚马逊云科技AI服务团队的产品管理总监。
0
目录
关闭