拥抱未来:大语言模型解锁平台工程的无限可能

news2024/11/16 8:28:53

01 了解大型语言模型 (LLM)

大型语言模型(LLM)是一种人工智能(AI)算法,它使用深度学习技术和海量数据集来理解、总结、生成和预测新内容。凭借合成大量信息的能力,LLM 可以提高以前需要人类专家的业务流程的效率、规模和一致性。

沃顿商学院商学教授 Ethan Mollick 表示,在早期的对照实验中,使用 LLM 可以让写代码、写作、营销和商业材料等单项任务的性能提高 30% 到 80%。随着 OpenAI 的 ChatGPT、GitHub 的 Copilot 和 Google 的 Bard 等多种免费模型的出现,企业比以往任何时候都更容易获得 LLM 的强大功能。同时 LLM 价格的下降和市场上新产品的出现,各种规模的企业现在也可以购买更复杂、更安全的预训练 LLM,而不必投入大量资源从头开始训练一个模型。

02 利用 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 在本质上可以充当工程师和高管之间的翻译,从而减少沟通的成本,提高沟通效率。

03 将 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 中非常普遍,则需要专业人员为用户设计提示,并促进对模型的进一步培训。平台团队应像对待其他类型的平台功能开发一样对待提示和培训。

04 LLM 与未来就业

很多人担心 LLM 会取代他们的工作。就目前而言技术还不成熟,因为 LLM 的产出仍然需要人工验证其准确性。理想的情况是,LLM 可以继续消除枯燥和重复性的工作,而不会消除工作岗位。

不过 LLM 的普及和使用可能会威胁到不愿接受 AI 技术的专业人员。David Eastman 认为:"Copilot 是一种工具,它能够与开发人员定义小段功能代码、使用惯例以及在上下文环境中工作的能力协同工作。它所做的有效工作就是去掉了在 Stack Overflow 上查询的步骤"。他建议初级开发人员合理地使用像 Copilot 这样的 LLM,来获得更多的优势。同样的情况也适用于平台工程师。

显而易见的是,LLM 的早期采用者在代码输出的质量和数量方面遥遥领先。软件工程的每个领域都是如此,平台工程也不例外。

05 LLM 与平台工程的未来

LLM 将会彻底改变技术领域的世界,最有能力的团队将会找到如何利用它们的潜力来塑造未来的 IDP 版本。理性地看待这一点,并积极拥抱新技术,只有当我们探索其深度时,我们才能真正理解其重要性。

归根结底,LLM 与之前的技术革新浪潮并无区别。当然任何工具的使用都有利弊,LLM 既能够让开发人员工作效率提高 10 倍,也可以让企业 IDP 变得更加混乱和不安全。因此在引入和使用前需要制定相应的策略,确保在平台设置中建立和实施适当的检查和平衡机制。

参考链接:

https://platformengineering.org/blog/ai-is-changing-the-future-of-platform-engineering-are-you-ready

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1272137.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2002-2021年全国各省产业结构合理化高级化指数数据(含原始数据+计算过程+计算结果)

2002-2021年全国各省产业结构合理化高级化指数数据(含原始数据计算过程计算结果) 1、时间:2002-2021年 2、指标:地区、时间、就业总人数(万人)、第一产业就业人数(万人)、第二产业…

C语言从入门到实战——常用字符函数和字符串函数的了解和模拟实现

常用字符函数和字符串函数的了解和模拟实现 前言1. 字符分类函数2. 字符转换函数3. strlen的使用和模拟实现4. strcpy的使用和模拟实现5. strcat的使用和模拟实现6. strcmp的使用和模拟实现7. strncpy函数的使用8. strncat函数的使用9. strncmp函数的使用10. strstr的使用和模拟…

中通快递查询,中通快递单号查询,分析筛选出多次揽收件

批量查询中通快递单号的物流信息,并将其中的多次揽收件分析筛选出来。 所需工具: 一个【快递批量查询高手】软件 中通快递单号若干 操作步骤: 步骤1:运行【快递批量查询高手】软件,第一次使用的朋友记得先注册&…

阿里云ACP认证考试快速通关攻略,请收好!

目前云计算人才紧缺,预计2025年我国云计算产业人才缺口预计将达到150万,因此现在云计算工程师的薪资是相当可观的。而阿里云从2016年起就一直在国内市场占据着领先地位 。 阿里云目前稳居国内云计算市场第一,比排后面5名同行市场占有率的总和…

换抵挡装置(按位运算符的运用)

给出两个长度分别为n1&#xff0c;n2&#xff08;n1 n2 <32)且每列高度只为1或2的长条&#xff08;保证高度为1的地方水平上一致&#xff09;。需要将它们放入一个高度为3的容器长度&#xff0c;问能够容纳它们的最短容器长度 用手画的 本来是n1&#xff0c;n2 < 100的…

串口更新app程序(参考他人资料)

一&#xff1a;参考资料 1.选定镁光的falsh Debug一下bootloader工程&#xff0c;串口只输出了一个SREC SPI Bootloader。单步调试发现&#xff0c;是XIsf_Initialize出错了&#xff0c;返回了1&#xff0c;程序直接退出了main函数。再继续分析&#xff0c;发现程序走的是Atm…

2023.11.29 -hmzx电商平台建设项目 -核销主题阶段总结

目录 1.准备源数据 2.准备数仓工具进行源数据同步到ods层,本项目使用Datax 3.使用Datax完成数据同步前建表时的方案选择 3.1同步方式区别: 3.2存储格式和压缩区别: 4.在hive中创建表,共31个表 5.数仓概念 和 数仓建模方案 5.1数仓的基本概念 5.2 数仓建模方案 关系建模…

java论坛数据以及搜索接口实现

一. 内容简介 java论坛数据以及搜索接口实现 二. 软件环境 2.1 java 1.8 2.2 mysql Ver 8.0.13 for Win64 on x86_64 (MySQL Community Server - GPL) 2.3 IDEA ULTIMATE 2019.3 2.4d代码地址 三.主要流程 3.1 创建数据库,创建数据表 3.2 开始编写接口&#xff0c;并测…

C/C++不定参数的使用

文章目录 C语言的不定参C的不定参 C语言的不定参 C语言的不定参数最常见的应用示例就是printf函数&#xff0c;如下&#xff0c;参数列表中的...表示不定参数列表 #include <stdio.h> int printf(const char *format, ...);试着模拟实现C语言的printf函数 void myprin…

新手村之SQL——分组与子查询

1.GROUP BY GROUP BY 函数就是 SQL 中用来实现分组的函数&#xff0c;其用于结合聚合函数&#xff0c;能根据给定数据列的每个成员对查询结果进行分组统计&#xff0c;最终得到一个分组汇总表。 mysql> SELECT country, COUNT(country) AS teacher_count-> FROM teacher…

Linux系统部署Tale个人博客并发布到公网访问

文章目录 前言1. Tale网站搭建1.1 检查本地环境1.2 部署Tale个人博客系统1.3 启动Tale服务1.4 访问博客地址 2. Linux安装Cpolar内网穿透3. 创建Tale博客公网地址4. 使用公网地址访问Tale 前言 今天给大家带来一款基于 Java 语言的轻量级博客开源项目——Tale&#xff0c;Tale…

敏捷开发实现测试自动化的6个步骤

许多敏捷软件开发中的自动化测试的工作都失败了&#xff0c;或者并没有发挥它们最大的潜力。本文研究分析了自动化测试也许不能满足测试人员和其他利益相关者期望的两个主要原因&#xff0c;然后列举了六个能够避免陷入这些陷阱的步骤。以下是在敏捷环境中成功实现测试自动化的…

Linux系统iptables扩展

目录 一. iptables规则保存 1. 导出规则保存 2. 自动重载规则 ①. 当前用户生效 ②. 全局生效 二. 自定义链 1. 新建自定义链 2. 重命名自定义链 3. 添加自定义链规则 4. 调用自定义链规则 5. 删除自定义链 三. NAT 1. SNAT 2. DNAT 3. 实验 ①. 实验要求 ②. …

设计模式-创建型模式之原型、建造者设计模式

文章目录 七、原型模式八、建造者模式 七、原型模式 原型模式&#xff08;Prototype Pattern&#xff09;是用于创建重复的对象&#xff0c;同时又能保证性能。它提供了一种创建对象的最佳方式。 这种模式是实现了一个原型接口&#xff0c;该接口用于创建当前对象的克隆。当直…

C题目12:请写一个函数,判断一个数是否为质数,并在main函数中调用

一.每日小语 人的一切痛苦&#xff0c;本质上都是对自己的无能的愤怒。——王小波 自己思考 判断一个函数是否为质数&#xff0c;这个我在之前练过&#xff0c;我想至少两次&#xff0c;而这一次则是问我如何在main函数中调用&#xff0c;这个概念我不理解&#xff0c;所以我…

软件测试面试最全八股文

请你说一说测试用例的边界 参考回答&#xff1a; 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充&#xff0c;这种情况下&#xff0c;其测试用例来自等价类的边界。 常见的边界值 1)对16-bit 的整数而言 32…

在gitlab上使用server_hooks

文章目录 1. 前置条件2. Git Hook2.1 Git Hook 分为两部分&#xff1a;本地和远程2.1.1 本地 Git Hook&#xff0c;由提交和合并等操作触发&#xff1a;2.1.2 远程 Git Hook&#xff0c;运行在网络操作上&#xff0c;例如接收推送的提交&#xff1a; 3. 操作步骤3.1 对所有的仓…

Linux 命令pwd

命令作用 pwd是Linux中一个非常有用而又十分简单的命令&#xff0c;pwd是词组print working directory的首字母缩写&#xff0c;即打印工作目录&#xff1b;工作目录就是你当前所处于的那个目录。 pwd始终以绝对路径的方式打印工作目录&#xff0c;即从根目录&#xff08;/&am…

半同步复制与MHA高可用架构设计

各位道友好&#xff0c;鼠鼠我呀校招刚通过了移动的面试 &#xff0c;但是安排的岗位是偏远县城里面的岗位&#xff0c;各位能给给建议吗&#xff1f;鼠鼠我啊真不想有时候变成销售员去卖产品&#xff01;&#xff01;&#xff01; 半同步复制与MHA高可用架构设计 一、半同步复…

力扣202题 快乐数 双指针算法

快乐数 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1&#xff0c;也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1&#…