亚马逊 Q 开拓者,一个经由改进的 AI 代码助手,帮助亚马逊将 30,000 个运用程序转换为 Java 17,并节省了 4,500 年的开拓事情。
译自 Amazon Revamps Developer AI With Code Conversion, Security,作者 Loraine Lawson。
亚马逊花费了 50 个开拓者日才将一个运用程序从 Java 8/11 更新到 Java 17。凭借其最近发布的 重塑的 AI 协同程序,Amazon Q Developer,这家电子商务公司能够在 10 分钟内 转换类似的运用程序。

该公司表示,一个由五名开拓职员组成的团队利用 Q Developer 将 30,000 个生产运用程序从 Java 8 或 Java 11 转换为 Java 17。该公司补充说,这节省了超过 4,500 年的开拓事情,并从性能改进中每年节省了 2.6 亿美元。
Amazon Q Developer 是 Code Whisperer 的重新设计版本,Code Whisperer 于 4 月合并到 Q Developer 中。
Q Developer 作为编码伙伴亚马逊天生式 AI 运用程序和开拓者体验总监 Srini Iragavarapu 表示,Amazon Q Developer 的设计并非仅仅实行代码补全,而是为了支持全体软件开拓生命周期。
来自 Amazon Q Developer 视频 的屏幕截图。
“我们不是从编码的角度或开拓的角度来看待它,”Iragavarapu 见告 The New Stack。“我们实际年夜将其视为一个完全的软件开拓生命周期,开拓职员从‘我操持我的项目,我理解须要做什么,获取需求,我实现它们,我支配它们,对它们进行故障打消,然后掩护它们’开始。”
他说,Q Developer 能够编写测试、优化代码、调试云打算和 AWS 资源。它可以利用描述性的 自然措辞提示 构建新的运用程序功能。用户还可以与 Amazon Q 一起迭代操持,审查潜在的代码建议并哀求改进。
他还补充说,它还通过实行 代码安全扫描 并向开拓职员更新潜在的安全问题,帮助开拓团队“左移”。该公司声称,Amazon Q Developer 在大多数盛行的编程措辞的检测方面已经超越了领先的公开可比工具。
亚马逊希望 Q Developer 的功能与另一位软件开拓职员一样,在您编码时为您供应帮助。例如,对付一个不熟习的仓库,开拓职员要么阅读文档,要么讯问高等软件工程师或同事它是什么。
“您可以做的一件事是讯问 Q,您能阐明一下这个特定函数在做什么吗?以是它实际上是在查看这个函数,”他说。“它逐行地进行。觉得就像你身边坐着一位开拓职员,和你聊着所有这些事情。”
当然,它还会天生代码建议,并且超越单行补全,供应进一步的编码建议。
Q 堆栈除了 Q Developer 之外,亚马逊还供应 Q Business,它专注于业务角色和内部数据。
Q 办理方案有三个层。底层包括两个定制芯片,AWS Trainium,它经由微调以演习模型,以及 AWS Inferential,它经由微调以进行推理。底层还包括 Sagemaker,亚马逊的基于云的机器学习平台。Sagemaker 构建、演习和支配机器学习和天生式 AI 模型。
“同样,我们希望使其具有交互性。把它想象成你正在与一个配对程序员一起编码,”
— 亚马逊天生式 AI 运用程序和开拓者体验总监 Srini Iragavarapu
中间层由工具和预演习的根本模型组成,用于构建和扩展由天生式 AI 驱动的运用程序。它建立在 Bedrock 之上,Bedrock 是亚马逊的天生式 AI 平台。他说,Bedrock 集成了各种大小和功能不同的大型措辞模型 (LLM),包括 Anthropic 的模型、亚马逊自己的模型和 Llama 模型,供客户构建运用程序。
顶层是 Amazon Q Business 和 Q Developer,它们是内置天生式 AI 的运用程序,不须要任何特定的机器学习专业知识。
亚马逊:不该用企业数据进行演习Iragavarapu 说,亚马逊不会存储或利用任何客户数据来改进企业版本的底层做事。免费层 为开拓职员供应了一个选择退出任何代码网络的选项。
“与传统的 AI 做事不同,在传统的 AI 做事中,您必须选择退出才能说‘请不要利用我的任何数据’,而作为客户,在这种情形下,在专业版中,您乃至不必选择退出,由于我们根本不会存储任何数据,”他说。“在我们踏上这段旅程时做出的第一个决定是,我们很快意识到代码以及与软件干系的任何内容都是每个客户都希望能够利用和供应的知识产权。因此,我们说,让我们不要利用客户供应给我们的任何做事,只进行相应,而不是利用或存储任何内容来改进我们的做事。”
理解他人的代码Q Developer 办理的一个痛点是剖析一个代码库以确定代码的实际功能。Copilot 也能做到这一点,但与 Copilot 不同的是,Q Developer 会回答开拓职员可能对代码库提出的问题。例如,如果代码库利用 DynamoDB 或开拓职员不理解的其他内容,开拓职员还可以提出后续问题,例如为什么利用它。
“我们的想法是,这是一个多步骤推理系统,它结合了我们通过 Bedrock 得到的大型措辞模型,以及程序剖析和我们在亚马逊构建运用程序数十年积累的丰富履历,”他说。
Q Developer 的事情事理亚马逊利用 SWE-bench 来评估其模型。SWE-bench 是一个基准数据集,旨在评估 LLM 在办理现实天下软件工程 (SWE) 问题方面的能力。它是一个 GitHub 问题与相应拉取要求的凑集,供应了一个数据集,帮助研究职员确定 LLM 在理解、剖析和天生代码办理方案方面的能力。
亚马逊博客 中的屏幕截图显示了审查和接管或谢绝 Amazon Q Developer 代码的能力。
在 SWE-bench 的排行榜上,截至 2024 年 5 月 9 日,亚马逊 Q Developer 在精简版中办理了 20.33% 的问题。自首次评估以来,亚马逊已利用其他 LLM 更新了 Q,并网络了有关开拓职员喜好和不喜好的内容的反馈——包括来自其约 80,000 名开拓职员的内部反馈,以及来自外部用户的反馈。
在内部,AWS 进行了一项生产力寻衅,创造利用 Q Developer 的开拓职员成功完成任务的可能性赶过 27%。亚马逊还报告称,Q Developer 在实行多行代码建议的助手领域拥有业界最高的代码接管率,BT 集团最近报告称他们接管了 Q 37% 的代码建议,澳大利亚国民银行报告称接管率为 50%,据公司发言人称。
他们收到的反馈之一是,很难判断该工具更新了什么。现在,Q Developer 供应了有关其实际实行操作的持续状态,这很主要,由于它可以修正多个文件并创建新文件,他补充道。
“同样,我们希望使其具有交互性。把它想象成你正在与一个配对程序员一起编码,”他说。“在这种情形下,如果我接管它,它实际上会获取代码,然后开始实行它。相反,你也可以说供应反馈并重新天生。”
开拓职员须要理解的内容到目前为止,Q Developer 支持 15 种编程措辞:
JavaScriptTypeScriptPythonJavaC#GoRustPHPRubyKotlinCC++Shell 脚本SQLScala它还支持根本举动步伐即代码措辞和工具,包括 TerraForm 的 HCL(HashiCorp 配置措辞)和 CDK(云开拓工具包)。
目前,AI 代理供应免费层和付费企业层,企业层许可管理员为组织内的所有开拓职员启用该工具,并供应有关可访问代码的管理员掌握。
“我的一些朋友一贯问我,‘等等,一定有陷阱。是免费增值模式吗?你想要从中得到什么?’ 真的什么都没有。它是免费的。任何人都可以利用它,安装它,”Iragavarapu 说。“我们的想法是,我们希望让开发职员能够构建运用程序,利用天生式 AI,并为客户想动身明性的问题办理方法。”
要开始利用,开拓职员须要拥有 AWS Builder ID 或属于已设置 AWS IAM Identity Center 实例的组织,该实例许可他们利用 Amazon Q。要利用 Amazon Q 开拓职员代理在 IDE 中,请先安装 Amazon Q 扩展,该扩展适用于 JetBrains、Visual Studio Code、Visual Studio(预览版)和 macOS 上的命令行。