你好,欢迎您来到福建信息主管(CIO)网! 设为首页|加入收藏|会员中心
您现在的位置:>> 新闻资讯 >>
使用生成式人工智能编码速度更快,但要注意这样做的风险
作者:CIOCDO 来源:zdnet.com 发布时间:2024年05月07日 点击数:

软件开发人员可以通过生成式人工智能驱动的编码帮助下实现显著的生产力提高,但这些可能会带来负担。在讨论生成式人工智能(AI)在软件开发中的应用时,采用一些关键性的实践和考虑因素,它们对于确保这些技术带来的益处能够被有效利用,并同时规避潜在风险至关重要。


图源:Yaroslav Kushta/Getty Images

【睿观:一些实践包括:

  1. 安全第一:虽然生成式AI能显著提升开发人员的工作效率,但必须保证生成的代码或配置的安全性。开发人员需要对自动生成的代码进行严格的审查和测试,确保代码的安全无漏洞。这涉及到代码审计、漏洞测试以及安全规范的实施。

  2. 质量控制:自动化工具虽然可以加快开发速度,但并不意味着可以完全替代人类开发者的细致审查。高质量的软件产品需要通过综合的测试和验证流程,确保满足用户需求并且性能稳定。这要求开发团队设立相应的质量保障措施,对AI生成的输出进行充分的检验。

  3. 知识产权和数据隐私:使用AI编码工具时,开发人员需要特别警觉于知识产权的保护和数据隐私的维护。当AI工具接触和学习自有或敏感数据时,必须确保数据不会被不当地使用或泄露。合理的数据管理和合规措施是必须的。

  4. 技术和政策的更新:AI技术迅速发展,相关的法律和行业标准也在不断更新。组织需要投入资源持续关注技术动态和法规变化,确保开发实践符合最新的要求。这包括对AI工具的性能评估,以及对开发过程的持续优化。

  5. 教育和培训:由于生成式AI技术的复杂性及其对开发流程的深刻影响,对开发人员进行相应的教育和培训是非常重要的。增强开发人员对AI工具的理解和正确使用的能力,可以最大化AI的利益,同时减少由于误用或滥用技术产生的风险。

通过这些举措,组织可以更好地融入生成式AI技术,将这股技术浪潮变为推动创新和效率提升的动力,而不是成为不稳定和风险的源泉。在不断变化的技术前景中,即时的适应和持续的学习是关键,而且开发人员和管理层都需要积极面对这些挑战和机遇。】


如今,开发者可以转向生成式人工智能来更快、更高效地进行编码。尽管如此,他们还是应该谨慎行事,而且要比以前更加注意。


Forrester(弗雷斯特市场咨询,是一家独立的技术和市场研究公司,针对技术给业务和客户所带来的影响提供务实和具有前瞻性的建议。公司已经被公认为思想的领导者和可信赖的咨询商,通过所从事的研究、咨询、市场活动和高层对等交流计划,帮助那些全球性的企业用户建立起市场领导地位。)副总裁兼首席分析师Diego Lo Giudice(迭戈·罗·朱迪斯)告诉笔者,尽管人工智能在软件开发中的应用可能不是什么新鲜事——至少从2019年开始就有了——但生成式人工智能在自然语言、图像以及最近的视频和其他资产(包括代码)的生成方面带来了显著的改进。


Giudice(朱迪斯)告诉笔者,之前的人工智能迭代主要用于代码测试,利用机器学习来优化测试策略的模型。生成式人工智能超越了这些用例,提供了对专家对等程序员或专家(如测试人员或业务分析师)的访问,他们可以进行交互式查询以快速查找信息。生成式人工智能还可以提出解决方案和测试用例。


他说:“我们第一次看到了传统人工智能和其他技术没有为我们提供的显著的生产率增长。”


Giudice(朱迪斯)指出,开发者可以在整个软件开发生命周期中利用人工智能,每个阶段都有一个专门的“TuringBots/图灵机器人”来增强技术堆栈和平台。


Forrester创造了“TuringBots”来描述帮助开发人员构建、测试和部署代码的人工智能工具。该研究公司相信,TuringBots将推动新一代的软件开发,在开发生命周期的每个阶段都提供帮助,包括查找技术文档和自动完成代码。


例如,Giudice(朱迪斯)说,“分析/规划TuringBots”可以促进软件开发的分析和规划阶段,并指出OpenAI在美国成立的人工智能研究公司,核心宗旨在于“实现安全的通用人工智能,AGI”,使其有益于人类。OpenAI于2015年由一群科技领袖,包括山姆·阿尔特曼、彼得·泰尔、里德·霍夫曼和埃隆·马斯克等人创办。)的ChatGPT(Chat Generative Pre-trained Transformer,是人工智能技术驱动的自然语言处理工具,它能够通过理解和学习人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件、视频脚本、文案、翻译、代码,写论文等任务)和Atlassian Intelligence(是Atlassian云产品中人工智能功能的集合,利用Atlassian的人工智能模型和OpenAI技术打造而成。通过Atlassian Intelligence,团队能够借助人工智能加速工作、提高效率并更快提供价值。就是此类人工智能产品的例子。他说,其他公司,如谷歌云的Gemini Advanced(Google 发布了一款新的付费聊天机器人,由 Ultra 1.0 提供支持。借助Ultra 1.0模型,Gemini Advanced在完成复杂任务方面,性能暴涨。),可以通过代码实现生成微服务和API(应用程序编程接口,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。)的设计,而微软Sketch2Code(是一个基于 Web 的解决方案,使用 AI 将手绘的用户界面草图转换为可用的 HTML 代码。由微软和 Kabel、Spike Techniques 合作开发。读者可以在 GitHub 上找到与 Sketch2Code 相关的代码、解决方案开发过程和其他详细信息。)可以从手写的草图UI(user interface,也就是界面的设计)生成工作代码。


Giudice(朱迪斯)补充说,“编码器-TuringBots”是生成式人工智能目前在软件开发中最受欢迎的用例,通过对流行的integrated development environments集成开发环境,可以辅助开发程序的应用软件。一般包括代码编辑器、编译器、调试器和图形用户界面工具。IDE为用户使用C、Java、ASP、PHP等编程语言提供了方便。)的自动补全,从提示以及代码上下文和注释中生成代码。这些语言包括常见的语言,如JavaScript、C++、Python和Rust。


Boomi以智能集成和自动化为商业的未来赋能。作为所在领域领先的全球软件即服务/SaaS公司,拥有2万多家全球客户和由800家合作伙伴组成的全球网络。各大组织均采用Boomi屡获殊荣的平台来连接其应用程序、数据和人员,以加快数字化转型。)的架构和人工智能战略主管Michael Bachman(迈克尔·巴赫曼)表示,生成模型的一大吸引力在于,它们可以用多种语言编写代码,允许开发人员输入提示来生成、重构或调试代码行。“从本质上讲,所有与生成式人工智能交互的人类都是准高级开发人员,”他说。


这家软件供应商将生成式人工智能集成到其一些产品中,包括Boomi AI,它可以将自然语言请求转化为行动。Boomi表示,开发者可以使用Boomi AI来设计集成流程、应用程序编程接口和数据模型,以连接应用程序、数据和流程。


该公司使用生成式人工智能来支持自己的软件开发者,他们密切关注运行其平台的代码。


“这就是关键,”Bachman(巴赫曼)说“如果你使用生成式人工智能作为构建整个应用程序的主要来源,你可能会感到失望。优秀的开发人员将生成式人工智能作为起点,或者在将代码投入生产之前彻底测试失败场景。这就是我们内部处理的方式。”


他的团队还致力于构建功能,以满足客户的“实用人工智能目标”。例如,Boomi正在创建一个检索系统,因为它的许多客户希望用自然语言查找内容(如网站上的目录)来取代关键词搜索。


Giudice(朱迪斯)说,开发者还可以使用生成式人工智能来修复安全问题,寻找人工智能生成的代码中的漏洞,并提供建议以帮助开发者修复某些漏洞。


Forrester的首席分析师John Bratincevic(约翰·布拉廷切维奇)表示,与传统编码相比,无代码或低代码开发策略可以提供速度、内置质量和适应性。


Bratincevic(布拉廷切维奇)说,它还提供了一个集成的软件开发生命周期工具链,并提供了访问扩展人才库计划,包括IT社区之外的非编码员和“citizen developers”(项目管理协会/PMI将公民开发人员定义为无需编码知识即可构建应用程序的人,但通常需要 IT 的支持。)


然而,他提醒说,组织可能面临与大规模实施的治理相关的挑战,尤其是在管理成千上万的公民开发人员方面。他说,定价也可能构成障碍,因为它通常是基于最终用户的数量。


Giudice(朱迪斯)表示,尽管生成式人工智能或注入人工智能的软件助理可以使初级专业人员填补人才缺口,包括网络安全方面的人才缺口,但对所有这些任务仍有必要进行专家评审。


Bratincevic(布拉廷切维奇)对此表示赞同,强调软件开发生命周期中的开发者和其他员工需要审查平台使用人工智能生成或自动配置的所有内容。


他说:“我们还没有,也可能永远不会,在软件开发中盲目相信人工智能。”


首先,Thoughtworks(是一家全球技术咨询公司。它集成了战略、设计和软件工程,为企业和技术颠覆者提供支持。该公司成立于1993年,总部位于伊利诺伊州芝加哥。)亚太首席技术官Scott Shaw(斯科特·肖)说,需要考虑安全要求。这家技术咨询公司定期测试新的工具,以提高其效率,无论是在集成开发环境中,还是为了支持开发人员的工作方式。Shaw(肖)告诉笔者,公司在适合客户的情况下,只有得到客户的同意才会进行测试,并指出一些企业仍对使用生成式人工智能感到紧张。


“我们的经验是,(生成式人工智能驱动的)软件编码工具没有那么有安全意识和(适应)安全编码实践,”他说。例如,在受监管或数据敏感的环境中为组织工作的开发人员可能必须遵守额外的安全实践和控制,作为其软件交付过程的一部分。


他指出,使用编码助手可以提高生产力,但开发人员需要询问他们是否能够充分测试代码并满足管道中的质量要求。


这是一把双刃剑:组织必须研究生成式人工智能如何增强他们的编码实践,使其开发的产品更安全,同时研究人工智能如何通过新的攻击载体和漏洞带来额外的安全风险。


Shaw(肖)指出,由于生成式人工智能具有显著的规模,它放大了组织所做的一切,包括相关的风险。使用它可以生成更多的代码,这也意味着潜在风险的数量呈指数级增长。


了解您的人工智能模型


虽然低代码平台可能是生成式人工智能TuringBots帮助软件开发的良好基础,但Bratincevic(布拉廷切维奇)指出,组织需要知道使用了哪些大型语言模型,并确保它们符合公司政策。


他说,生成式人工智能玩家在这方面“差异很大”,并敦促企业如果使用OpenAI的ChatGPT等公共大型语言模型,就检查版本和许可协议。


他补充说,用于从自然语言生成代码或组件配置的生成式人工智能驱动的功能尚未成熟。他们可能会看到公民开发者越来越多地采用他们,但不太可能给专业开发者留下深刻印象。


Bratincevic(布拉廷切维奇)说:“目前,一个经过验证且集成良好的低代码平台加上生成式人工智能是一种比一个未经验证或轻量级的平台更明智的方法,它可以在人工智能上进行一场精彩的比赛。”


Bachman(巴赫曼)说,虽然大型语言模型承担着代码编写的重任,但人类仍然需要知道需要什么,并提供相关的上下文、专业知识和调试,以确保输出的准确性


他说,开发者还需要注意共享专有数据和intellectual property/IP/知识产权,特别是使用开源工具。他们应该避免使用代码和财务数据等私人IP,以确保他们不会使用另一个组织的IP来训练生成式人工智能模型,反之亦然。他补充说:“如果你选择使用一个开源的大型语言模型,请确保它在投入生产之前是经过充分测试的。”


“我对生成式人工智能工具训练的模型非常谨慎。如果您希望这些模型很有价值,那么您就必须设置适当的管道。如果你不这样做,生成式人工智能可能会造成更多的问题。”


现在还处于早期阶段,技术还在不断发展;它对包括软件开发人员在内的角色将如何改变的影响还远未确定。


例如,人工智能驱动的编码助理可能会改变技能的价值。Shaw(肖)打趣道:开发人员会被认为是更好的,因为他们更有经验,还是因为他们能记住所有的编码序列?


目前,他认为最大的潜力是生成式人工智能总结信息的能力,为开发人员更好地理解业务提供了良好的知识库。然后,他们可以将这些知识转化为特定的指令,这样系统就可以执行任务并构建客户想要的产品和功能。


作者:Eileen Yu(艾琳·余)

译者:宝蓝   @lex