去年,ChatGPT、Bard 和其他著名的大型语言模型(LLM)占据了我们的新闻源。 这也是理所当然的。 这些令人兴奋的技术让我们看到了人工智能的未来、力量和可能性。
虽然公众的兴奋点主要集中在创建文本、图像和视频上,但这些工具也可用于许多其他领域,如软件自动化。
本文将深入探讨提示工程如何帮助我们实现软件自动化。 然而,我们首先要做的应该是对及时工程本身进行研究。
什么是及时工程?
像 ChatGPT 这样的大型语言模型会根据我们提供的提示或句子生成输出结果。 然而,由于我们使用的词语或指令不同,结果也大相径庭。 当我们输入模糊和不精确的指令时,输出的结果可能不尽人意。
提示工程是指经过深思熟虑的输入设计,有助于从这些令人兴奋的人工智能系统中获得更精确、准确和最终可用的内容。
大型语言模型 (LLM) 系统使用自然语言处理 (NLP) 来解释我们给出的语句。 机器将这些问题或指令(即提示)转化为代码,并在其庞大的数据存储库中运行,以我们指定的任何格式(即文本、图像、代码)生成内容。
ChatGPT 在超过
570 GB 数据
. 培训材料包括书籍、文章、网络文本等。 换句话说,这些数据集包含了难以想象的大量知识。
虽然我们可能了解这一过程,但在这些系统的引擎盖下发生的许多事情却不在我们的视线之内。 当然,我们可以控制输入和输出,对系统进行训练,但这些算法是如何精确工作和做出决策的,仍然是个谜。 用纽约大学人工智能教授萨姆-鲍曼(Sam Bowman)的话来说就是 “我们建造了它 训练了它 但我们不知道它在做什么”
及时工程通过使用能产生可预测和可用结果的输出,帮助我们管理这种混乱。 它们为我们提供了一条途径,让我们能够开启这些应用程序内部的大量知识。
这门学科正在成为一种新的职业
随着企业开始研究如何利用这一强大的技术,相关课程如雨后春笋般涌现。
及时工程如何提供帮助
软件自动化?
软件自动化和法律硕士有很多共同之处。 它们都让人看到了未来的景象:机器将增强人类的创造力,创造出更快、更富有成效的工作场所。
这两种技术可以在几个令人兴奋的领域实现融合。 以下是我们在软件自动化中使用提示工程的三种方法。
#1. 生成代码
编写代码是大型语言模型最有前途的应用之一。 人工智能 LLM 尚处于起步阶段。 未来几年,随着计算和培训资源的增加,这项技术也将得到改善。
从长远来看,这些进步可以让人工智能在有限或没有人类干预的情况下编写整个程序。 不过,就目前而言,法律硕士还存在一些局限性。 LLM 编码的输出质量主要取决于输入的质量。 俗话说,垃圾进,垃圾出。
当然,阻碍发展的不仅仅是有效的提示工程。 正如 学术界的 ChatGPT 和大型语言模型:机遇与挑战 (Meyer, 2023),”目前,ChatGPT 在准确编写较小的代码块方面更有可能取得成功,而在编写较大/较复杂的程序(如软件包)方面,其可靠性则值得怀疑”。
此外,在《自然》杂志最近发表的一篇文章中,一些计算机科学家警告说,我们应该谨慎对待使用 LLM 生成代码的问题。 另一份当代文件、
大型语言模型与简单、愚蠢的错误
(Jesse,2023)展示了一种流行的 LLM–Codex(由供应商 Copilot 使用)如何产生 “已知的逐字 SStuBs,其可能性是已知的逐字正确代码的 2 倍”。
虽然这些问题不容忽视,但对于这些程序如何通过支持技术团队和非技术团队来帮助实现软件开发的民主化,人们仍有理由感到兴奋。
也许最令人印象深刻的是,像 ChatGPT 这样的工具可以快速生成功能代码。 有了正确的提示,工程师就能缩短某些类型代码的编程时间,从而确保更快的软件开发生命周期。
2022 年底,流行的编程中心
Stack Overflow 禁止使用人工智能生成的
论坛上的答案。 他们指出,与该应用程序相关的错误率和不准确性很高。 然而,这项技术还处于萌芽阶段;此外,人们对人工智能生成的结果不满意,既有技术本身的原因,也有工程设计不及时的原因。
尽管人们对这项技术心存疑虑,但麦肯锡最近发表的一份
麦肯锡
凸显了及时工程已经在编程领域产生的影响。 咨询公司的 2023 年的人工智能发展状况:生成式人工智能的爆发之年 他们分享了两个有趣的趋势。 首先,在投资人工智能的企业中,有 7% 正在招聘及时工程师。 其次,使用人工智能的公司已将人工智能相关的软件工程职位从 38% 减少到 28%。
解读这些趋势的一种方法是,企业已经适应了这种设置,并准备将软件自动化交给机器。 虽然这些数字可能会让现有的工程师们感到震惊,但麦肯锡的调查表明,”只有 8% 的人表示他们的员工人数将减少五分之一以上”。 总体而言,工程师可能需要重新掌握技能,以利用人工智能生成软件自动化的趋势。
人工智能生成的软件自动化的一个明显应用包括创建自动化机器人。 不过,虽然提示工程以对话为重点,表面上看是一个方便用户的界面,但它能否取代现有的解决方案还有待观察。
在许多方面,ZAPTEST等软件已经使软件自动化市场民主化。 现在,无代码工具已经出现,让非技术团队也能构建 高质量的 RPA机器人。 虽然 ChatGPT 等软件可以构建机器人,但对于不是软件工程师甚至是软件工程师的人来说,实施和维护都很棘手。
从图形用户界面中记录人机交互,并将这些动作转换成代码,要比使用提示更方便用户。 再加上 LLM 有可能产生不稳定和错误百出的代码,可以说 RPA 软件在可预见的未来不会有任何发展。
#2. 转换非结构化数据
非结构化数据不是机器人流程自动化的强项。 这种技术无法处理电子邮件、图片、音频等内容。 RPA 工具需要有组织结构的预定义数据模型。
非结构化数据中有很大一部分涉及自然语言文本。 建立大型语言模型是为了 “理解 “这些信息,并从中提取语义。 因此,这为想要解释这些文本并将其转换为 RPA 工具所需的格式的团队创造了大量机会。
多年来,许多团队一直在使用自然语言处理 (NLP) 来帮助他们进行情感分析。 这一过程也被称为 “意见挖掘”,可帮助企业随时了解消费者对品牌的感受和态度。 在大多数情况下,这些工具用于检测文本中的正面、负面和中性情绪。 不过,该技术还能进行更精细的情绪检测。
虽然市场上有几种工具可以提供这种功能,但 LLM 提供了一种途径,除了了解人们对产品或服务的感受外,还可以提供更多用途。 例如,数据分析近年来大受欢迎。 大数据使公司能够获得有助于数据驱动决策的洞察力和理解力,从而为公司带来优势。
机器人流程自动化工具可以帮助收集数据。 然而,正如我们在上文提到的,他们在处理特定类型的信息时很吃力。 不过,如果与使用大型语言模型的人工智能工具搭配使用,RPA 可以收集大量数据,并利用这些数据生成商业智能 (BI) 工具所需的信息。
生成式人工智能更令人兴奋的方面之一是它能够理解数据输入。 通过正确的提示工程,团队可以将这些数据转化为适合 RPA 工具的格式。
RPA 可以帮助提高大数据工作流程的效率。 首先,您可以用它来帮助输入和提取数据。 不过,最有价值、最吸引人的使用案例可能是使用 RPA 工具转换、清理和加载数据,或确保数据迁移快速、高效、准确地运行。
另一个值得注意的要点是数据管理。 数据请求自动化有助于组织保持合规性,并使数据远离人工操作人员的视线。
#3. 测试自动化
测试自动化已在软件开发领域悄然兴起,因为它提供了一种更快捷的软件验证方法。 测试和质量保证历来是既昂贵又耗时的过程;测试自动化为这两个挑战提供了解决方案。
及时工程的首要任务之一就是提高测试用例的质量。 有了正确的提示,这些机器就能分析测试案例,找出问题和补救措施。 这一过程可以扩大测试用例的范围,并带来更全面的测试。
例如,您可以用与人工审核员相同的方式向大型语言模型提供代码。 这些机器可以快速运行代码,发现错误和漏洞,甚至找出性能问题。 也许更吸引人的是,LLM 还提供了从简单片段完成测试用例代码的可能性,从而加快了测试用例的创建速度。
即时工程旨在解决推动敏捷/DevOps软件开发方法出现的许多问题。 工程师需要高效、易于重复的测试,以便在应用程序部署前发现问题。 这里的理念是,通过释放时间,软件开发人员可以专注于更具创造性和价值驱动型的任务。
正如一篇经典论文所概述的那样、
测试自动化中的技术债务
(K. Wiklund, 2012),软件开发团队如果在软件的人工测试和验证上花费太多时间,就会遇到问题。 测试自动化解决方案的初始成本、自动化经验的缺乏,甚至是对旧方法的偏好,都可能导致测试自动化进程放缓。
敏捷软件开发最有趣的方面之一是
行为驱动开发(BDD)。
这一概念指的是根据预期的用户行为开发软件。 虽然实施这种方法显然可以节省时间,但许多团队都在努力实现这种自动化。 然而,本地语言学习者可以提供一种解决方案。
技术债务最常见的一些症状包括文档不完善和缺乏强有力的测试。 这些都是当今法律硕士可以帮助解决的问题。 然而,对于当前的生成式人工智能来说,重构等其他显著症状过于复杂,可能无法节省时间。
最后的想法
生成式人工智能应用潜力巨大。 然而,用户友好的对话式界面可能会产生误导。 许多人认为,这些机器可以直接产生高质量的输出。 然而,出色的提示工程比你想象的要复杂得多。
有效的提示工程需要反复试验。 工程师还需要深思熟虑,以确保答案有用。 最后,检查和复查工作非常重要,因为有可能出现错误,这一点已广为人知。
虽然及时工程工作岗位可能会增加,但并非所有人都相信这一点。 Oguz A. Acar 在《哈佛商业评论》上撰文,提出了一个引人入胜的论点,即 “未来几代人工智能系统将变得更加直观,更善于理解自然语言,从而减少对精心设计的提示的需求”。
无论未来如何发展,生成式人工智能都将参与其中。 虽然及时工程大有可为,但很难确定它将发挥什么确切的作用。
有趣的是,软件测试自动化软件已经有很多使用案例和成功案例,证明它适合加快软件开发速度,同时又不影响应用程序的准确性或全面验证。
ZAPTEST 等工具已经允许开发人员解决时间和资源不足、技术债务、文档以及全面测试和 RPA 等问题。 更重要的是,这些工具比提示工程更方便用户使用,因此更适合非技术团队使用。 与以往一样,真正的潜力在于这些令人兴奋的自动化技术的交叉点。