沃卡惠移动端logo

沃卡惠  行业资讯

资讯详情

人工智能编码辅助的力量

2022-09-02 10:36:294636

在计算机上工作的人的特写镜头,上面覆盖着抽象齿轮和开发人员代码

来自 Alamy Stock

直到最近,编码还涉及重复性任务,并且需要了解许多微小的细节。编码的这些方面减损了开发人员真正喜欢的创造性工作,并且减慢了开发人员的速度。

现在,人工智能技术有望消除大部分重复性工作,开发人员不再因不得不在网络上搜索那些微小的细节而被抛在脑后。

该技术的工作原理类似于文字处理中的自动完成,但编写代码而不是普通语言并一次完成整个功能。

AI 有助于算法、样板代码

人工智能驱动的最新产品之一是 Github 的 Copilot,这是一种人工智能驱动的结对编程工具,可供所有开发人员使用,每月 10 美元或每年 100 美元。

该公司声称 Copilot 可以建议完整的方法、样板代码、整个单元测试,甚至是复杂的算法。

GitHub Next 副总裁 Oege De Moor 解释说:“借助 Copilot 等 AI 驱动的编码技术,开发人员可以像以前一样工作,但速度和满意度更高,因此很容易引入。”“在你对人工智能的指示中明确说明确实有帮助。”

他解释说,在 Copilot 技术预览期间,GitHub 从用户那里听说,他们在代码注释中编写了更好、更准确的解释,因为 AI 为他们提供了更好的建议。

“用户还编写了更多测试,因为 Copilot 鼓励开发人员专注于制作好的测试的创造性部分,”De Moor 解释说。“所以,这些用户觉得他们编写了更好的代码,与 Copilot 携手并进。”

他补充说,让用户意识到技术的局限性当然很重要。

“像所有代码一样,来自 Copilot 等 AI 助手的建议需要经过仔细测试、审查和审查,”他说。“我们还不断努力提高人工智能提出的建议的质量。”

GitHub Copilot 是使用 Codex(GPT-3 的后代)构建的,它接受了公开可用的源代码和自然语言的培训。

“因为它接受了源代码和自然语言的训练,你可以用英语写评论,然后 Codex 会建议后面的代码,”De Moor 解释说。“事实上,它甚至可以编写一个完整的函数或类,只需用英文描述即可。”

未来的人工智能能力可以协助调试

Tabnine 首席执行官 Dror Weiss 表示,未来人工智能助手将能够为开发人员审查代码、自动创建测试、协助调试以及对系统进行智能的自动化维护操作。

“最终,每一项可以自动化的活动都将实现自动化,”他说。

从他的角度来看,组织的一个关键特性是能够为项目和组织集成特定的最佳实践和代码模式。

“使用这种定制的人工智能,组织不仅可以从加速中受益,还可以从更好的代码一致性和质量中受益,”他解释道。“另一个好处是减少了开发人员在加入新项目时提高生产力所需的时间。”

人工智能辅助编码工具的一个主要优势是上下文感知代码完成。

例如,微软的 Visual Studio IntelliCode 是一组 AI 辅助功能,使开发人员能够通过参数完成、代码格式化和样式规则参考等功能有效地完成代码。

IntelliCode 对 GitHub 上数千个评价很高的开源项目的代码进行了培训,并使用当前代码中的上下文来提出相关建议。

自推出 IntelliCode 以来,Microsoft 已经进行了整行代码完成和重构等更新,并提出了增强重复编辑体验的建议,从而为开发人员节省了时间。

AI Coding Assist 的路线图是关键

Weiss 表示,对于计划实施涉及 AI 编码助手的战略的组织来说,制定路线图是关键。

“组织需要进行战略性思考,并了解他们希望如何利用人工智能,即使市场上的任何产品都还没有一些基本功能,”他说。

他解释说,实现人工智能辅助的合乎逻辑的第一步是确定一组特定的开发人员,并让他们基于从公开可用代码中学习代码模式的预训练模型使用人工智能。

成功实施后,组织可以开始向其他组推广。同时,他们可以通过根据自己的代码创建自定义 AI 模型来根据自己的需求定制 AI 辅助。

De Moor 还指出,开发人员将大部分时间花在其他任务上,很快,这些其他任务也将受益于人工智能的帮助。

其他适合 AI 辅助的任务包括代码审查、测试和重构。

“这会改变开发人员的工作吗?当然,但为了更好,”德摩尔说。“我不预见未来 Copilot 会在没有人工输入的情况下产生任何有用的东西,但我确实看到了不受约束的人类创造力,不再被无关的细节所束缚。

他说编程现在是关于设计(将一个大问题分解为较小的问题),然后指定较小的块应该做什么——人工智能将填充细节。

Weiss 补充说,随着每家公司都在成为“软件公司”,软件开发是每个组织最具战略性和资源受限的活动。

“公司开始满足他们可以获得多少开发人员的限制,让更小的团队更有效率是至关重要的——在经济低迷时期更是如此,因为团队可能人手不足,”他说。“我们相信,人工智能是提高开发人员和团队生产力的最有效方式,对于每个采用基本 DevOps 和 CI 平台的组织来说,人工智能将是自然而然的下一步。”

Baidu
map