ChatGPT 及其替代品将对编写代码的程序员特别有用。但对于开发人员而言,该技术的可靠性如何? Antony Savvas 考虑什么是可用的以及有哪些替代方案
ChatGPT 所有者 OpenAI 最近发布了更新的 GPT-4,旨在减少错误和潜在的误用,并带来图像数据输入等新功能。
OpenAI 估计修改后的工具现在可以在前 10% 的应试者中通过模拟法律律师考试,而 GPT-3.5 则为后 10%。
GPT-4 最初将提供给 ChatGPT Plus 订阅者,他们每月需要支付 20 美元才能获得该服务的高级访问权限。尽管它有能力,但它仍然缺乏对 2021 年 9 月之后生成的互联网数据的了解。
Checkmarx 产品管理副总裁 Ori Bendet 表示:“生成式 AI 允许开发人员编写部分代码,使他们能够主要关注纯业务逻辑。”我不建议开发人员简单地复制和粘贴,而是先了解大概的想法,然后根据自己的需要进行调整。”
ChatGPT 的早期解决方案是 Github Copilot(基于 OpenAI 的 Codex)、AWS Code Whisperer 和 Tabnine(例如,基于 GPT-2 并被 Facebook 和谷歌使用),所有这些解决方案都经过专门设计和培训,可以编写代码并在开发者的IDE(集成开发环境)。 AskCodi、CodeT5 和 PolyCoder 也值得一提。
限制使用?
技术咨询公司 Chaos Based 的开发人员 Owen Vermeulen 谈到 ChatGPT 时说:“尽管大肆宣传,但值得一提的是,首先,ChatGPT 很少用于开发。由于它是一种预测算法,它只真正用于繁重的工作,它无法做出逻辑上的飞跃——它实际上并不理解它在说什么,它只是试图预测某些代码会是什么样子。”
Vermeulen 说,即便如此,它也只对相对较短的脚本有用,人类可以将这些脚本缝合到可运行的程序中。除了定义的脚本之外,它也“几乎无法用于”调试,因为它缺乏理解整体的逻辑和能力,因此只能调试片段。 “它实际上是开发人员通过谷歌搜索功能代码片段的替代方案,”他说。
结对编程
Mia-Platform 的首席技术官 Giulio Roggero 表示,在 ChatGPT 出现之前,他的组织正在使用人工智能工具 Github Copilot 来协助程序员进行编码。 Roggero 同意 Vermeulen 的观点,即此类技术可用于帮助编写简单的代码片段以加速任务完成。
他说,一种确保避免代码错误的流行方法是使用一种称为结对编程的技术,其中一名开发人员编写代码,另一名开发人员坐在他们旁边,根据战略愿景帮助编写代码,每 30 分钟交换一次角色。 Roggero 说,这些新技术为这种配对提供了机会,现在包括 AI 机器人而不是人类。
Great State 的工程主管 James Hobbs 表示,Copilot、Tabnine、AskCodi 和他们的同类正在“证明他们作为结对编程助手的价值”。一段时间以来,代码补全一直是功能强大的 IDE 的一项功能,但这些系统更具有上下文意识和能力。在您自己的代码库上训练私有模型的能力有可能使它们变得更加有用。 Hobbs 说:“它们并不完美——甚至并不总是正确的——但对称职的程序员来说确实有用。
由于并非 AI 编写的所有代码在设计上都是正确的,因此仍然需要有人了解他们正在查看的内容来监督项目。 “AI 对人类编写代码有很大帮助,但汽车的方向盘必须始终掌握在你的手中,”Roggero 说。
xDesign 的 CPTO Jeff Watkins 说:“虽然上面的许多代码都显示出过长、有错误或不安全的代码,这需要努力将其制作成可用和可维护的东西,但谷歌的 Alphacode 听起来有点不同,因为基于 DeepMind [一家被谷歌收购的人工智能公司]。它在训练时考虑到了竞争性编码,并且在测试中显示它是第一个与普通编码器相媲美的产品。”
生成式 AI x 生产力
RELEX Labs 主管 Tommi Vilkamo 说,程序员的潜在生产力提高似乎“完全是前所未有的”。例如,最近的一项研究发现,使用 Copilot 时,程序员的工作效率提高了 56% 以上。 Vilkamo 说,为了帮助说明这一点,对于 19 世纪典型的美国小型工厂,增加蒸汽动力使生产率提高了 25%。
当然,这些生成式 AI 模型都不是完美的。 “他们仍然会产生不存在的幻觉,他们会产生错误,并且会产生安全漏洞,”Vilkamo 说。在一项大规模随机对照试验中,研究人员发现能够访问 OpenAI 的 Codex code-davinci-002 模型的程序员编写的“代码安全性明显低于那些没有访问过的代码”,同时更有可能错误地相信他们的代码很安全。在生成人工智能方面,似乎只有那些持健康怀疑态度的人才能设法保证他们的代码安全。
低代码
随着这些 AI 驱动的工具变得更加智能,它们对开发人员的价值可能会消除从空白页面或屏幕开始的恐惧。当与低代码结合时,生成式 AI 模型有助于集思广益新应用程序的轮廓可能成为关键。
人工智能辅助已经开始被低代码平台所采用,公民开发人员使用这些平台无需编码即可开发应用程序。例如,Pegasystems 最近展示了生成式 AI 如何创建一个工作原型应用程序,包括工作流、数据模型和 UI,只需提供一个简单的句子,例如“为牙科保险索赔流程构建一个应用程序”。
Pegasystems AI 实验室负责人 Peter van der Putten 表示:“这将大大加快开发速度,并降低领域专家参与设计和开发可解决自身问题的应用程序的门槛。”也是荷兰莱顿大学 AI 助理教授。
生成式人工智能与程序员——未来
UX(用户体验)机构 Illustrate Digital 的前端开发人员 Manuel Doc 自 1 月以来一直在使用 ChatGPT 进行翻译、文本更正和偶尔编码。他说:“的确,当我第一次开始使用 ChatGPT 时,我对它的代码级响应感到非常惊讶,以至于我感到害怕并想象我的工作很快就会处于危险之中。
“然而,在与我们的首席开发人员一对一的交流中,他让我明白,我不仅受雇于编写代码,而且受雇于分析问题并提供 ChatGPT 无法提供的解决方案。这让我非常安心,如今,ChatGPT 只是一个让我更有效率的咨询工具。”
xDesign 的 Watkins 说:“很明显,我们在这个旅程中处于早期阶段,需要解决道德和法律问题,并且需要保证不良行为者不会毒害训练集以包含漏洞。”不过,他表示,用不了多久,“可能两年”,这些工具就可以轻松编写代码,并由有能力的开发人员提供清晰的简介,这将使它们成为一种非常有用的生产力工具。 “但我们仍然需要将代码生产化并能够评估和确保输出的技能,”沃特金斯说。
SambaNova 产品高级副总裁 Marshall Choy 表示:“为了获得真正的竞争优势,企业需要更进一步,打造定制的生成式 AI 模型,使其成为组织的核心。正如他们需要定制的 ERP 系统来运行他们的业务一样,他说,一旦这项技术在企业中获得显着的吸引力,他们很快也将需要一个定制的 AI 模型来运行他们的业务。 “微软和 OpenAI 的一刀切模型是不够的,”Choy 说。
当然,微软已经为 OpenAI 的运营投入了巨资,并将其技术整合到其云服务和办公生产力应用程序中。谷歌最近也做了同样的事情,推出了 Bard AI 产品。
AI 编码空间正在迅速发展,但可能还需要一段时间,如果有的话,任何人类开发人员都可以简单地被编码机器人取代,特别是在安全关键行业,监管机构和政府必须对这些行业的实力充满信心这样的系统。
有关生成式 AI 的更多信息
将 ChatGPT 用于搜索引擎的挑战 – ChatGPT 等大型语言模型 (LLM) 可能会作为搜索引擎的补充出现,但仍有一些陷阱需要考虑
ChatGPT 会让低代码过时吗? – Romy Hughes 认为 ChatGPT 可以实现低代码多年来一直试图实现的目标——将软件开发交到用户手中
我们与 ChatGPT 本身讨论人工智能的未来 – 关于人工智能的未来,ChatGPT 能告诉我们什么?生成式 AI 的最佳用例是什么?人工智能会有一天超越人类,将我们甩在后面吗?