大语言模型
何为大语言模型,可以一句话概括:深度学习是机器学习的分支,大语言模型是深度学习的分支。
机器学习是人工智能(AI)的一个分支领域,核心是让计算机系统从数据中学习以提高性能。与直接编程不同,机器学习依赖于提供大量数据,让计算机通过数据挖掘隐藏的模式或规律,然后应用这些规律来预测新的、未知的数据。
大型语言模型在理解和生成人类语言,需要在大规模文本数据上进行训练,以学习语言的各种模式和结构。比如 Amazon CodeWhisperer
,经过数十亿行代码的训练,可以根据评论和现有代码实时生成从代码片段到全函数的代码建议。
Amazon CodeWhisperer
编程将是生成式AI技术迅速应用的领域之一。如今,软件开发者需要花费大量时间编写相对基础和重复的代码,还需要花费相当的时间来学习复杂的新工具和技术,这些工具和技术不断演进。因此,开发者真正用于开发创新功能和服务的时间非常有限。
为了解决这一挑战,开发者通常会尝试从互联网上复制代码片段,然后进行修改。然而,这种方法可能无意中导致包含无效或存在安全隐患的代码。这种搜索和复制的方式还会浪费开发者用于业务构建的宝贵时间。生成式AI可以显著减轻这一繁重的工作,通过“编写”大部分重复的代码,使开发人员能够更快地编写代码,从而有更多时间专注于更具创造性的编程任务。
Amazon CodeWhisperer 是亚马逊云科技推出的人工智能代码助手,可以在IDE中实时生成整行和全功能代码建议,旨在协助开发者更高效、更安全地构建应用程序。作为一款智能编程助手,它经过了广泛的开源代码训练,这些训练数据具有出色的可扩展性、安全性和优雅性等特点。使用它编写的代码能够快速生成稳健、优雅且高度可扩展的代码。具有以下特点:
1、 经过数十亿行代码的训练,可以根据您的评论和现有代码实时生成从代码片段到全函数的代码建议。绕过耗时的编码任务,加速使用不熟悉的 API 进行的构建。
2、可以标记或筛选类似于开源训练数据的代码建议。获取相关开源项目的存储库 URL 和许可证,以便您可以更轻松地查看它们并添加归因。
3、扫描代码以检测难以发现的漏洞,并获取代码建议以立即修复这些漏洞。 遵循跟踪安全漏洞的最佳实践,例如开放全球应用程序安全项目 (OWASP) 概述的漏洞,或者不符合加密库最佳实践及其他类似安全最佳实践的漏洞。
4、支持多个开发环境。从 15 种编程语言中进行选择,包括 Python、Java 和 JavaScript,以及您最喜欢的集成式开发环境(IDE),包括 VS Code、IntelliJ IDEA、AWS Cloud9、AWS Lambda 控制台、JupyterLab 和 Amazon SageMaker Studio。
5、您可以自定义 CodeWhisperer,使其了解您的内部库、API、包、类和方法,从而生成更相关的建议,显著加快开发速度。
Amazon CodeWhisperer 支持个人用户,并且个人用户免费使用!!!支持的语言:Python、Java、JavaScript、TypeScript、C#、Rust、Go、Ruby、Scala、Kotlin、PHP、C、C++、Shell 脚本编写、SQL。目前,仅在适用于 Python、Java 和 JavaScript 的 VS Code 和 JetBrains IDE 中支持代码安全扫描。CodeWhisperer 还可在 AWS Cloud9、AWS Lambda 控制台和 Amazon SageMaker Studio 上免费使用。
安装
本文讲解的是在 VS Code 开发工具中的使用,其他开发工具使用情况基本类似。在 VS Code 开发工具中搜索aws toolkit
,然后点击install
进行安装即可。
安装完后,主界面如下图所示:
注册AWS Builder ID
授权确认
输入邮箱以及姓名
输入发送到邮箱里验证码
设置密码
设置AWS ToolKit
允许访问你的数据
授权成功
使用
案例一:代码建议
当您开始输入单行代码或注释时,CodeWhisperer 会根据您当前和以前的输入提出建议。用户已开始输入一行代码。根据输入,CodeWhisperer 生成完成该线路的建议,用户可以使用箭头键循环浏览建议。
比如我在代码中已经输入了git push
、git clone
的指令,接下来我要自定义git pull
命令,AWS ToolKit
会自动给你提示git pull
命令的相关代码提示。
点击接受Tab
,可以看到灰色代码直接出现在编辑器中。
案例二:代码建议
我想代码里写一个数组里有20个随机数的函数,我先打一行注释:
// 数组里20个随机数
然后编辑器中就会有下面提示:
AWS ToolKit
已经自动给你生成啦,点击接受Tab
,就自动生成到编辑器中啦。
// 数组里20个随机数
function getRandomArray(n: number) {
const array = [];
for (let i = 0; i < n; i++) {
array.push(Math.floor(Math.random() * 100));
}
return array;
}
getRandomArray()
拿代码到浏览器中执行,结果如下:
案例三:安全扫描
使用代码安全扫描功能,写完代码之后,可以使用Amazon CodeWhisperer帮助我们进行代码的安全扫描,Amazon CodeWhisperer将帮助我们分析出代码漏洞,并且会针对我们业务代码中的漏洞提出更改优化建议与代码。
运行安全扫描对 IDE 编辑器中当前活动的文件及其项目中的依赖文件执行安全扫描。扫描完成后,扫描文件中的安全问题会在 VSC 的“问题”面板中突出显示。对于 JetBrains,安全问题在问题面板的单独CodeWhisperer 安全问题选项卡中突出显示 。
要在 VS Code 中开始安全扫描,注意下面两点:
-
在 VS Code 中,选择窗口左侧的 AWS 徽标,AWS Toolkit 面板将打开。
-
在 AWS Toolkit 面板中,在Developer Tools下的CodeWhisperer下,选择
Start Security Scan
。
扫描最多可能需要 60 秒。您可以通过选择“停止安全扫描”来选择停止正在进行的安全扫描。请注意,一旦开始,扫描将计入每月(每个用户)安全扫描使用限制。有关详细信息,请参阅安全扫描数据限制。
扫描结束会有提示说明~
扫描结束后,我们来查看扫描结果,可以看到对我项目中的代码有以下建议,代码还需要继续优化。
我淦,优化代码去了,不用不知道,一用吓一跳!
总结
上述从功能特点到安装使用体验,我们总结一下 Amazon CodeWhisperer 的优点:
1、上手贼快,安装即可用,不需要复杂操作。
2、支持多个开发环境,不论是前端用的VS Code,还是其他的开发工具,几乎全部覆盖。
3、建议针对性比较强,提示非常智能。我们在开发会遇到各种各样问题,Amazon CodeWhisperer 给予我们开发时提示,可以让我们工作效率更高。
4、代码安全性。降低了开发过程中的bug,安全扫描功能真的非常给力,能够帮助我们识别开发过程中的一些潜在的漏洞,能够更好的帮助我们进行开发。
体验之后,我对 Amazon CodeWhisperer 已经爱不释手了,在日常工作中已经成为我必不可少的开发辅助工具,不仅改善了代码质量和软件开发效率,还帮助我更快速、更安全地开发应用,非常棒的AI助手,在这里也安利给大家。