拥抱未来:大语言模型解锁平台工程的无限可能
了解大型语言模型 (LLM)
大型语言模型(LLM)是一种人工智能(AI)算法,它使用深度学习技术和海量数据集来理解、总结、生成和预测新内容。凭借合成大量信息的能力,LLM 可以提高以前需要人类专家的业务流程的效率、规模和一致性。
沃顿商学院商学教授 Ethan Mollick 表示,在早期的对照实验中,使用 LLM 可以让写代码、写作、营销和商业材料等单项任务的性能提高 30% 到 80%。随着 OpenAI 的 ChatGPT、GitHub 的 Copilot 和 Google 的 Bard 等多种免费模型的出现,企业比以往任何时候都更容易获得 LLM 的强大功能。同时 LLM 价格的下降和市场上新产品的出现,各种规模的企业现在也可以购买更复杂、更安全的预训练 LLM,而不必投入大量资源从头开始训练一个模型。
利用 LLM 开展平台工程
平台工程是一门设计和构建内部开发人员平台(IDP)的学科,目的是在云原生时代为软件工程组织提供开发人员自助服务和标准化设计。IDP 由许多不同的技术和工具组成,这些技术和工具以一种降低开发人员认知负荷的方式粘合在一起,而不会抽象掉上下文和底层技术。
LLM 可以帮助平台团队构建更具吸引力的 IDP。虽然个人开发人员和平台工程师可以在没有组织支持的情况下使用 ChatGPT,但有意将 LLM 集成到平台中的组织可以以标准化的方式进一步自动化重复性任务,提高可发现性,并为开发人员、平台工程师和管理人员提供支持。
下表列出了平台工程领域的一些潜在使用案例:
有些用例很容易实现,它们可以独立实施或与第三方解决方案一起实施,在几周内至少 95% 的时间是可靠的,使用可用数据,并且需要结合上下文的知识。另一部分则是难以实施的用例,要求用户需要有 LLM 方面的专业知识,经过更多的时间才能达到可接受的可靠性;同时还需要企业创建自己的数据集,改进现有模型,或根据需求自行训练一个新模型。
重要的是,不仅要考虑 LLM 如何增强当前的平台工程,还要考虑未来的发展趋势。更长远的考虑可以帮助企业更好地理解是否以及何时值得对 LLM 进行投资。根据我们目前对 LLM 的了解,我认为值得考虑利用 LLM 来实现这些潜在优势:
减少重复性工作
LLM 可以最大限度地减轻枯燥和重复性工作的负担。将他们视为助手,你可以将最乏味的工作委托给他们:创建配置文件、识别配置文件、文档、资源定义、报告等中的错误。无论您是开发人员、平台工程师还是经理,LLM 都能让您腾出更多时间,专注于创造性的高价值任务。这不仅能提高工作效率,还有可能降低单调工作中经常出现的人为错误风险。通过加快完成以前需要花费大量时间和精力的任务,LLM 可以使用户获得更高效、更愉快的 IDP 体验。
这里我们采访过一位开发人员 Manuel Odendahl,他描述了 LLM 如何改变了他的工作,我认为这是一个特别有说服力的例子,说明了为什么值得考虑利用 LLM:
这可能是较为微妙的转变,但也是使用 LLM 给我带来的最深刻的变化。经过一天专注于正确处理“乏味的事情”(比如使用正确的 API,检查正确的工作,正确调用 API X,为 Y 实现单元测试和模拟,为 Z 编写 API 包装器),为了避免出错,我的大量精力需要集中在工作细节上。所以我习惯在工作后通过玩游戏和看电影的方式来放松自己。
在使用 Copilot 和 ChatGPT 后,这种认知疲惫感基本神奇地消失了。每天工作结束后,我就觉得自己好像和在朋友聊天,但是已经合并了 5 个 PR,编写了单元测试,改进了两个工具,代码也已经发布。
不难理解,大量重复性的工作会导致开发人员倦怠。除了帮助开发人员提高工作效率外,LLM 还有可能让他们在工作时的体验更佳。
Odendahl 在同一篇文章中写道,他从 Copilot 的测试版开始就使用该工具进行编程。他从 LLM 中获得的好处,在很大程度上可能是他渴望学习和完善使用该技术的结果。而其他开发人员可能缺乏熟练使用 LLM 进行编码的经验或动力。如果没有将 LLM 有意义地集成到平台的黄金路径中,平台团队就不应该假设企业的开发人员会使用 LLM。此外,平台团队应避免依赖未经训练或未根据企业特定平台进行微调的模型,因为这会增加 LLM 生成错误答案的风险。因此,通过将 LLM 与 IDP 相结合,企业的平台团队可以更好地确保 LLM 在提高开发人员体验的同时,实现更大程度的标准化。
更容易上手使用
LLM 的自然语言处理能力可以让开发人员使用自然语言查询来探索平台的功能、应用示例或示例代码以及命令语法。它们还可以将大量文档综合为与上下文相关的建议或指导教程,从而简化对平台资源的理解。
提供更好的支持
如果在企业的 IDP 中对 LLM 进行适当的特定培训,LLM 可以充当平台的技术助手,回答开发人员的询问,解决技术问题,并提供实时指导。通过将 LLM 集成到 IDP 中,平台团队可以提供更高效、反应更迅速的支持,确保开发人员获得所需的协助,从而顺利开展工作并及时解决问题。使用 LLM 为用户提供支持,意味着平台团队可以减少处理工单的时间,能够更加专注于复杂而有意义的工作。
这还可以最大限度地减少管理人员对平台团队的依赖,来去生成最新的、易读懂的报告,去衡量 IDP 的表现。LLM 在本质上可以充当工程师和高管之间的翻译,从而减少沟通的成本,提高沟通效率。
将 LLM 纳入平台工程的重要因素
当然,企业在如何将 LLM 纳入其平台时应该慎之又慎。作为一项新兴技术,LLM 并不完美,如果被误用,可能会造成严重后果。最好的策略就是从开始使用就设置正确的防护。
谨慎对待 LLM 回复
与其他技术一样,LLM 的使用也存在潜在的安全风险。漏洞和风险管理公司 Vulcan Cyber 进行的研究发现,ChatGPT 有时会推荐目前并不存在的代码库。研究人员警告说,威胁行为者可能会收集 ChatGPT 推荐的不存在的库名称,并创建恶意版本供开发人员下载。
开放式全球应用安全项目(OWASP)是一个致力于提高软件安全性的非营利性基金会,它与数百名专家合作开发了一份十大关键的 LLM 漏洞列表。Kainos 高级安全架构师、OWASP 十大 LLM 核心小组成员 John Sotireopolous 解释了如何确定每个漏洞的相对危险性,例如,Prompt Injection(LLM01)是一种通过特定的、难以检测的指令来影响语言模型输出的能力,它是最重要的漏洞,因为无论你使用什么模型以及如何使用它,你都将无法避免该风险。
LLM 不可免于安全威胁,同时在执行任务时也存在一定风险。这些语言模型有时可能会产生错误的回复,类似于"幻觉"。因此用户需要对 LLM 生成的任何内容进行检查,以确保内容的正确性和合规性。理想情况下,平台团队也会对集成到 IDP 中的 LLM 进行测试,以更好地了解它能最可靠地协助完成哪些任务。
如之前所提到,LLM 的功能的确能够有效消除重复性工作对开发人员带来的倦怠。例如,LLM 可以根据自然语言提示为基于 AWS 的设置,开发人员可能不需要了解配置的细节。但实际上,用户在使用 LLM 作为辅助工具时需要具备验证 LLM 输出的专业知识。也就是说专家可以使用 LLM 更快地执行简单任务。反之,不熟练的用户可能只是使用 LLM 更快地生成错误代码。
平台团队应了解将 LLM 集成到 IDP 中的风险,并决定相应的策略,确保在平台设置中建立正确的检查和平衡机制。
投资于特定领域的 LLM 提示工程或培训
利用 LLM 辅助 IDP 的企业也可以考虑训练自己的模型。或者对预先训练好的模型进行微调,以提高 LLM 的可靠性,使其更适合组织的工作流。这样做的成本会更高,但也能提高 LLM 的可用性和可靠性。
如果 LLM 在企业的 IDP 中非常普遍,则需要专业人员为用户设计提示,并促进对模型的进一步培训。平台团队应像对待其他类型的平台功能开发一样对待提示和培训。
LLM 与未来就业
很多人担心 LLM 会取代他们的工作。就目前而言技术还不成熟,因为 LLM 的产出仍然需要人工验证其准确性。理想的情况是,LLM 可以继续消除枯燥和重复性的工作,而不会消除工作岗位。
不过 LLM 的普及和使用可能会威胁到不愿接受 AI 技术的专业人员。David Eastman 认为:"Copilot 是一种工具,它能够与开发人员定义小段功能代码、使用惯例以及在上下文环境中工作的能力协同工作。它所做的有效工作就是去掉了在 Stack Overflow 上查询的步骤"。他建议初级开发人员合理地使用像 Copilot 这样的 LLM,来获得更多的优势。同样的情况也适用于平台工程师。
显而易见的是,LLM 的早期采用者在代码输出的质量和数量方面遥遥领先。软件工程的每个领域都是如此,平台工程也不例外。
LLM 与平台工程的未来
LLM 将会彻底改变技术领域的世界,最有能力的团队将会找到如何利用它们的潜力来塑造未来的 IDP 版本。理性地看待这一点,并积极拥抱新技术,只有当我们探索其深度时,我们才能真正理解其重要性。
归根结底,LLM 与之前的技术革新浪潮并无区别。当然任何工具的使用都有利弊,LLM 既能够让开发人员工作效率提高 10 倍,也可以让企业 IDP 变得更加混乱和不安全。因此在引入和使用前需要制定相应的策略,确保在平台设置中建立和实施适当的检查和平衡机制。