打开网易新闻 查看精彩图片

作者 | Darryl K. Taft

译者 | 平川

策划 | 凌敏

本文最初发布于 The New Stack。

2023 年是 GenAI 帮助开发者开发应用的突破之年。工具创建者设法在开发人员最常从事的工作中满足他们。

很长一段时间以来,我一直想知道 AI 如何才能更好地帮助软件开发人员完成他们的工作。在软件开发领域,2023 年是人工智能的关键一年,像 GitHub Copilot 这样的工具不断发展,帮助开发人员构建应用程序。

至少十年来,我会时不时地向我的技术伙伴 Grady Booch 提出这个问题。他是 IBM 研究院软件工程首席科学家,并且是一名 IBM 杰出研究人员(IBM Fellow)。早些时候,他说他相信人工智能会在 软件开发 中发挥作用,但他对应用的程度持怀疑态度。

他一直这么认为。去年年底,Booch 在 Twitter(现在的 X)上与 Replit 首席执行官 Amjad Masad 就人工智能能给开发者带来什么进行了激烈的辩论。Masad 写道,随着人工智能模型的发展,在某个时候,“世界上的每个人都将至少拥有 John carmack 级别的软件能力。”Carmack 是一位著名的游戏开发者 (《毁灭战士》和其他游戏的共同创建者)和 AR/VR 专家,曾担任 Oculus VR 的首席技术官,并在 Meta 收购 Oculus 后担任顾问 CTO。

我们离那一步还远着呢。但就对开发人员生产力的提升而言,2023 年已经证明了人工智能的巨大作用。

“对于人工智能辅助编码和软件开发来说,2023 年确实是具有开创性的一年,”Omdia 应用智能首席分析师 Lian Jye Su 在给 The New Stack 的电子邮件中表示,“Copilot 和其他生成式人工智能工具在作为开发工具使用时,已经展示了很高的准确性、自动化程度,最重要的是,灵活性。开发人员可以使用自然语言来表达他们的意图,并专注于创造和评价方面,因为工具会处理那些单调枯燥的部分。

“因此,有一些开发人员使用这些工具生成了近 40% 的代码。除了 Copilot,其他关键工具还包括 OpenAI Codex、Replit、Tabnine、Codacy 和 Durable。”

最近,JetBrains 的一项关于开发者生态系统现状的研究表明,如果有机会,56% 的受访者会让人工智能助手编写代码注释和文档。

Copilot 的演进

与此同时,46% 的受访者表示他们使用 Copilot。

GitHub 于 2022 年 6 月推出了代码自动补全 / 结对编程工具 Copilot。GitHub 首席产品官 Inbal Shani 在接受 The New Stack 采访时表示,该网站目前拥有 150 多万用户。此外,她说,使用 Copilot 编写的新代码其比例已从 35% 增长到 60%,预计未来几年将达到 80-90%。

Shani 指出,像 GitHub Copilot 这样的人工智能开发工具正在大幅增长,并对软件开发产生了革命性影响,对生产力、质量和工作满意度也产生了积极的影响。

开发人员对人工智能工具的采用呈指数级增长。根据 GitHub 的数据,92% 的开发人员现在在工作中使用了某种形式的人工智能。这在很大程度上是因为 GenAI 模型的兴起推动了人工智能的民主化应用。

现在,像 GitHub Copilot 这样的人工智能辅助工具已经可以生成完整的代码块、代码说明、文档以及开发人员所提问题的答案。Amanda Silver 是微软开发部门的副总裁,负责产品、设计、用户研究和工程系统。他在接受 The New Stack 视频采访时表示,这有助于新的开发人员更快地参与到开发中来。

此外,Copilot 还可以优化和重构代码、排除问题、提出安全修复建议、辅助调试等等,这使得开发人员不需要在这些领域有很深入的专业知识。

微软内部,工程师们在构建自己的产品时会对 Copilot 的功能做“内部测试(dogfood)”,并向 GitHub 提供反馈以改进这项技术。Silver 说,事实上,微软的工程师们在使用 Copilot 执行大规模的内部系统迁移,这也有助于测试它的批量重构能力。

CodeWhisperer

去年,亚马逊也推出了 Copilot 的竞争对手 CodeWhisperer,就像 Copilot 和其他工具一样,到 2023 年,它才成为一款可供日常使用的工具。Amazon CodeWhisperer 是一种机器学习(ML) 驱动的服务,它可以基于开发人员之前的注释和代码提供代码建议,帮助提高开发人员的生产力。

Amazon Web Services 在生成式人工智能方面表现出色,它已经推出了 CodeWhisperer(正式发布)、Bedrock(用于构建自定义人工智能应用)以及 PartyRock(用于无代码人工智能应用构建,目前处于预览阶段)。在去年秋末的 re:Invent 大会上,该公司还发布了一款名为 Amazon Q 的 GenAI 助手,专用于工作场合,可以根据组织的业务进行定制。

Doug Seven 是亚马逊软件开发总监、Amazon CodeWhisperer 和 Amazon Q 的总经理。他在接受 The New Stack 采访时表示,根据亚马逊的研究,CodeWhisperer 将开发人员的生产力提高了 50% 至 60%,而像自定义这样的功能进一步提高了生产力。

Seven 表示:“从针对人工智能工作负载优化芯片到利用人工智能的开发工具,亚马逊在人工智能领域很有竞争力。”

GenAI 工具概览

直到 2023 年,在整个数字计算的历史中,编程的核心活动一直是人类编写代码行。人工智能工具的出现增强了这种能力,但人类编码一直是核心。

这种情况现在已经变了。Intellyx 分析师 Jason Bloomberg 在发给 The New Stack 的电子邮件中说:“今天,不断发展的核心编程活动是让人工智能(主要是生成式人工智能和神经网络)创建应用程序。人类不再编码,而是创建和管理训练人工智能的模型和数据集。”

当然,手工编码还会存在,但 Bloomberg 表示,他认为手工编码已经退居次要地位。他说:“任何组织、供应商或企业,如果没有意识到这一点,就注定会失去竞争力,最终变得无足轻重。”

事实上,正如 GitHub 的 Shani 所说,“人工智能现在成了软件开发的筹码。”GitHub 希望他们的工具可以覆盖软件开发生命周期(SDLC)的更多部分。

Gartner 分析师 Thomas Murphy 在电子邮件中表示:“显然,Copilot 在上市时间和销量方面取得了先机,但 Tabnine、CodeStory、Codium 等其他工具也都在扩展 GenAI 的空间。”他说,除了 AWS 和谷歌,GitLab 和 Atlassian 等云提供商也在进军代码生成领域,并为 SDLC 提供更广泛的人工智能辅助功能。

JetBrains 也是一个杰出的开发工具制造商。他们一直在构建自己的 AI 助手特性,并在其最新的产品更新中发布。他们的工作重心在其旗舰产品 IntelliJ IDEA 集成开发环境(IDE)上。他们新推出的 AI 助手插件引入了不同的功能——它可以“在更高、更抽象的层面上提供代码重构建议,而不仅仅是修复特定的模式,”JetBrains 开发大使 Matt Ellis 告诉 The New Stack。

Ellis 说,未来,他们希望改进这款助手,使其“更智能”——这样它就可以利用现有的内部代码索引和元数据更好地理解代码上下文,并探索其模型的企业托管选项。

AppMap 首席执行官 Elizabeth Lawler 告诉 The New Stack:“像 Copilot 这样的工具擅长于提供局部代码建议,但不了解应用程序背景。新玩家可以整合可观察性数据、架构信息等,提高建议的准确性。”

然而,2023 年已经使人工智能基础设施和模型的使用变得足够简单,现在,即使是比较小的公司也可以利用可定制的人工智能。Lawler 指出,这将催生新的增值服务。此外,她补充说,人工智能生成的代码仍然存在质量问题,但它会要求开发人员必须认真评估这些建议。

与此同时,从风险投资的角度来看,Differential Ventures 创始人兼管理合伙人 Nick Adams 表示,有些公司的业务分析师经常会编写重复的查询以提取数据,对于这些公司来说,利用 GenAI 来协助业务分析师是一个机会。

Adams 告诉 The New Stack:“人工智能工具可以从业务用户那里获得自然语言问题,然后帮助生成 SQL 或 Python 查询,并允许分析师改进代码。这可以加快这个过程,避免每次都从头开始编写查询。”

他指出,迁移像 COBOL 这样的遗留代码也是一个机会。IBM 在将旧的 COBOL 代码迁移到 Java 时就利用了 watsonx 的 GenAI 功能。

Adams 说:“许多老系统都是由即将退休的开发人员编写的。电气工程领域也有许多即将退休的专家,他们几十年来积累的知识需要通过现代工具和培训传递给下一代。”

GenAI 与低代码

我曾经认为 GenAI 会以某种方式涵盖低代码、无代码开发,但 Pegasystems 首席技术官和产品营销副总裁 Don Schuerman 让我看清了现实。

GenAI 对软件行业产生了重大影响,包括低代码平台,因为自动生成代码的工具可能会扰乱低端市场。

Schuerman 告诉 The New Stack,“然而,企业级低代码更关注架构、集成、DevOps、安全性、可重用性等。这种复杂性可不仅仅是生成代码片段”。

Pegasystems 正在使用 GenAI 自动生成低代码工件以加速开发,如标准工作流模板、测试数据、过程文档、数据映射等。

来自亚马逊的 Seven 表示,CodeWhisperer 帮助使用 IDE 进行开发的专业开发人员,而 Party Rock 则针对其他群体(如主题专家)用很少的代码或不用代码来构建应用程序。

他说:“我不认为 GenAI 会让低代码、无代码过时。我认为它将使低代码变得更好。”

在谈到人工智能是否会取代开发人员的问题时,Schuerman 表示:“我不认为生成式人工智能会完全取代开发人员。它将通过完成一些初始工作及提供建议来提升他们的效率。无论如何,开发人员很少完全从头开始编写所有内容。”

JetBrains 的调查显示,60% 的受访者认为人工智能编码工具将从根本上改变就业市场,51% 的受访者认为这些工具将增加市场对专业软件开发人员的需求。然而,人们一致认为,人工智能永远不会完全取代开发人员编写代码的工作。

Studio 之年

微软人工智能平台项目管理副总裁 John Montgomery 告诉 The New Stack,去年 11 月,微软推出了 Azure AI Studio 预览版。这是一个新平台,旨在使拥有各种能力和偏好的开发人员能够利用人工智能进行创新,并以可靠的人工智能实践为基础,使用最新的人工智能工具和机器学习模型进行探索、构建、测试和部署。

他说,“我们相信人工智能是终极放大器。这种向生成式人工智能的最新转变已经彻底改变了世界。它改变了应用程序的游戏规则。我已经在微软工作了 25 年;我从未见过客户如此迅速地接受一项技术。在不到一年的时间里,我们有超过 1.8 万名客户在用 Azure OpenAI 构建自己的东西。”

他举例说,Instacart 正借助 GPT-4 Turbo with Vision 使用户能够拍摄手写的购物清单,并在他们的应用程序中生成虚拟购物清单。

Montgomery 说道:“你可以将 AI Studio 视为生成式 AI 的终极工具包。它将恰当的模型、数据和可靠的人工智能系统结合在一起,这样客户就可以相信他们的解决方案是安全、可靠和可扩展的。”

微软宣布支持自己最新的大型语言模型(LLM),以及来自 OpenAI、Meta、Nvidia、Mistral AI 和 Hugging Face 的最新模型。

此外,该公司还宣布以 Azure AI 服务的形式推出 Azure AI 模型即服务。Montgomery 说,“这将使客户更容易部署和运行尖端模型”。微软还推出了名为“提示流”的提示工程工具。提示流是一种先进的提示工程、评估和部署系统,是 Azure AI Studio 和 Azure Machine Learning 的关键组成部分。

尽管 OpenAI 是这个领域的重要玩家,并且与微软有着密切的合作关系,但该公司的一位发言人告诉 The New Stack,他们无法接受采访。

与此同时,谷歌也不甘示弱,他们最近也发布了 Google AI Studio。这是一个免费的工具,使开发人员能够快速开发提示,然后获取 API 密钥用于他们的应用开发。谷歌表示,该工具目前是有限免费使用,未来的价格也将很有竞争力。

在新闻发布会上,谷歌实验室副总裁 Josh Woodward 展示了如何用谷歌账户登录 Google AI Studio,并使用每分钟允许 60 个请求的免费配额。Woodward 还演示了如何通过简单地点击“Get Code”将开发人员的工作转移到他们选择的 IDE 中。

谷歌 Developer X 和 DevRel 副总裁兼总经理 Jeanine Banks 在接受 The New Stack 采访时表示,在内部,谷歌一直在将其人工智能技术应用于代码补全、文档、聊天机器人等方面。她说,“在内部应用这项技术,确实让我们学到了很多东西,我们会把这些东西带回到产品中。”

https://thenewstack.io/generative-ai-in-2023-genai-tools-became-table-stakes

声明:本文由 InfoQ 翻译,未经许可禁止转载。