旷野之间8 - LLMOps 与 MLOps操作化 AI 模型

介绍

随着人工智能越来越多地应用于商业应用,简化人工智能系统(尤其是机器学习模型)的开发和持续管理的新实践也不断涌现。MLOps 已成为一种基于 DevOps 原则实施机器学习的流行方法。

现在,随着 GPT-3 等大型语言模型 (LLM) 的兴起,一系列新的功能和挑战也随之出现。因此,LLMOps 的独特实践正在形成,以满足在生产中扩展和管理大型语言 AI ​​模型的独特需求。

让我们来分析一下整个模型生命周期中 MLOps 和 LLMOps 之间的异同:

  • 比较机器学习和大型语言模型
  • 实施这两类人工智能的挑战
  • MLOps 概述和关键组件
  • LLMOps 概念和实践简介
  • LLMOps 如何在 MLOps 基础上进行构建并在新的领域进行创新
  • 可扩展性、治理和自动化架构
  • 针对 LLM 量身定制的监控和可观察性实践
  • 工作流程编排、CI/CD 管道和模型治理
  • 真实示例和用例
  • 实施生产型人工智能的关键风险及缓解措施
  • MLOps 和 LLMOps 的未来之路

最后,我将分享一个框架,用于确定贵组织中不同 AI 模型的正确操作化策略。让我们开始吧!

比较机器学习和大型语言模型

首先,让我们了解一下这两种类型的人工智能的区别:

机器学习概述

机器学习利用在大型数据集上训练的统计模型来执行分类、预测、模式识别等任务。需要数据科学和机器学习工程方面的专业知识。

大型语言模型概述

GPT-3 等 LLM 经过大量文本语料库的训练,可以生成类似人类的语言并模仿推理和对话。非专家也可通过文本提示来使用。

机器学习的主要差异

  • 数据依赖性——ML 严重依赖训练数据,而 LLM 则利用预先训练的功能
  • 定制——根据用例创建的 ML 模型与 LLM 微调
  • 可解释性——ML 模型通常充当“黑匣子”,而 LLM 可以解释一些推理
  • 计算要求——ML 需要 GPU 等专用硬件,而 LLM 则依赖于横向扩展计算

这些差异导致了不同的操作需求。

人工智能模型操作化的挑战

在生产中部署任何人工智能都会面临挑战,包括:

模型监控——跟踪模型性能、准确性和漂移

数据管理——对训练数据进行版本控制,监控新数据

合规性——监管和道德合规性

协作——协调数据科学家、工程师、合规专家之间的工作

迭代——用新数据重新训练模型

规模——以低延迟为大量用户提供预测服务

访问控制——管理模型访问授权

概念漂移——随着时间的推移,性能下降

为应对这些 AI Ops 挑战,专门的实践正在涌现。我们将首先检查 MLOps 成熟度。

MLOps 概述

MLOps 将 CI/CD、自动化和监控等 DevOps 最佳实践引入 ML 管道:

持续集成和交付

  • 自动在新数据上重新训练和部署模型

基础设施配置

  • 像 GPU 一样动态扩展计算以进行训练和服务

模型注册

  • 包含元数据和审计跟踪的目录模型版本

监控和可观察性

  • 性能指标、漂移检测、警报集成到 ML 管道中

一致的环境

  • 便携式模型部署的包装和容器

自动化测试

  • 对模型进行单元测试,推广前验证模型质量

模型治理

  • 访问控制、合规政策、模型风险管理

当有效实施时,MLOps 可以实现敏捷、可靠的 ML 模型开发和运营。

接下来让我们探索建立在这些基础上的新兴LLMOps学科。

LLMOps 简介

LLMOps 将 MLOps 基础知识应用于大型语言模型的独特需求:

预建基础

  • 利用现有的公共大语言模型 (LLM) 知识,而不是构建定制模型

数据最小化

  • 微调与大规模数据训练

专用硬件

  • 针对横向扩展计算(而非 GPU)进行了优化

可解释性

  • 自然语言模型交互实现一定的透明度

快速编程

  • 通过提示和数据集细化来调整能力

机密数据

  • 敏感的企业数据需要强大的访问控制

概念漂移

  • 监测生成能力随时间发生的细微变化

分布式执行

  • 查询并行化、链接和组合

让我们更深入地探讨为 LLM 量身定制 MLOps 原则。

为 LLM 调整 MLOps 架构

虽然基础 MLOps 模式仍然适用,但架构必须适应 LLM 的独特需求:

强大的 API 层

查询模型和管理容量的界面。可集成到应用程序和监控中。

分布式服务

LLM 分为多个分区并分布在各个服务器上。由 Kubernetes 或集群管理器进行管理。

查询批处理和优化

缓存、请求合并和预测扩展等策略可以最大限度地提高吞吐量。

仔细的容量规划

根据需求预测和可抢占容量进行自动扩展。

低延迟网络结构

LLM 计算需要在阶段之间移动大量数据。RDMA 网络可加速计算。

模型压缩

修剪,量化,提炼等方法来优化尺寸和速度。

专用硬件

新的硬件,如 TPU 舱、推理加速器、针对 LLM 优化的高内存。

多阶段处理

将请求分解到专门的模型组件中,而不是进行整体处理。

优化完整的软件硬件堆栈可实现可扩展的 LLM 部署。

LLMOps 监控和可观察性

大语言模型 (LLM) 的监控重点如下:

用户指标——查询延迟、错误率、可用性

生成内容审计——抽样内容质量、敏感度、抄袭

模型盗用——检测模型抄袭违规行为

概念漂移——新数据的准确性下降

利用率——吞吐量、饱和度、空闲时间优化成本

道德——检查输出是否存在潜在危害

合规性——根据监管和政策护栏进行验证

安全性——未经授权的访问、异常检测、滥用

丰富的指标为模型健康和风险提供了广泛的可见性。

使用 CI/CD 实现 LLM 工作流程自动化

现代 DevOps 实践加速了 LLM 项目:

版本控制——为可测试性和可重用性而编纂的模型、配置和提示

自动化测试——对关键模型组件进行单元测试、集成测试和回归测试

模块化架构——解耦的组件实现独立迭代

基础设施即代码— Terraform、CloudFormation、Pulumi 用于配置环境

CI/CD 管道——自动快速工程、测试、模型部署

蓝/绿部署——通过分阶段部署降低风险

部署后验证——新模型的自动冒烟测试

GitOps——通过 Git 拉取请求进行配置和部署

不可变基础设施——一次性组件可防止配置漂移

端到端自动化和基于 Git 的协作最大限度地减少了错误和延迟。

模型治理

治理策略有助于降低 LLM 风险:

  • 访问控制——管理查询模型的权限
  • 运行时约束——限制模型执行资源,如内存、运行时、并发性
  • 模型隔离——物理或逻辑上分离模型和数据
  • 输出过滤——阻止不可接受的内容,如亵渎、PII、毒性
  • 模式分析——检测表明滥用的异常模型行为
  • 人工审核——对具有统计代表性的样本响应进行人工审核
  • 可解释性——模型解释非直观的输出
  • 血统追踪——了解数据来源,提示源影响模型
  • Enclaving——基于硬件的机密计算保护 IP

治理对于可靠且负责任的 LLM 采用至关重要。

真实世界的 LLMOps 示例

让我们看一些 LLM 操作化的例子:

Anthropic — 使用 Kubernetes 和微服务在服务器之间分发 Claude LLM。通过自动扩展精心管理容量。

AI21 实验室——使用量化和修剪将 Jurassic-1 模型压缩 100 倍,以便从边缘设备提供服务。

Cohere——通过将所有预测运行到单独的反毒性分类模型来检测有毒、有偏见的输出。

HuggingFace — EasyDataset 跟踪数据集版本和元数据。模型链接到提供完整谱系的数据集。

英特尔——使用英特尔 SGX 的硬件隔离区域可防止模型复制和 IP 盗窃。

这些展示了现实世界的 LLM 挑战的创造性解决方案。

LLMOps 中的关键风险和缓解措施

实施 LLM 所涉及的一些主要风险包括:

安全漏洞——强化环境、监控异常

数据滥用——严格的访问控制、数据屏蔽、加密

模型退化——严格测试新版本,回滚计划

不可靠的输出——可解释性、低置信度预测的警告系统

有毒内容——内容过滤器、受限 API 以限制有害材料

违反政策——持续合规监控、审批工作流程

声誉损害——人工审计、质量保证测试代表回应

主动降低这些风险对于负责任地将 LLM 转化为生产至关重要。

前方的路

在不久的将来,我们可以期待:

混合 AI 系统——将各种 ML、LLM 和基于规则的模型协调在一起。

MLOps + LLMOps 融合——在通用平台上统一所有 AI 模型的 DevOps。

基于 Kubernetes 的部署— 以 Kubernetes 为标准的容器化模型。

利用 LLM 的 ML 工具——自动化更多 MLOps 功能,如数据标记、特征工程。

云原生开发——将模型构建迁移到 SageMaker Studio Lab 等服务。

治理自动化——自动执行政策编码的护栏。

集成的 AI 开发流程将加速组织利用 ML 和 LLM 功能。

结论

本指南涵盖了实施 ML 和 LLM AI 模型的关键考虑因素:

  • MLOps 为 CI/CD、自动化和监控提供了坚实的基础
  • LLMOps 对这些进行调整,以应对大型语言模型的新挑战
  • 架构针对可扩展性、治理和开发人员生产力进行了优化
  • 监控提供了对模型和业务健康状况的全面可视性
  • 自动化、协作和模块化设计加速开发

无论专注于 ML、LLM 还是两者兼而有之,周到的运营架构都能快速、可靠且负责任地部署 AI 创新。最终,AI 驱动的解决方案的稳健性取决于构建和运行它们的实践。通过采取“运营优先”的方法,企业可以放心地将 AI 功能扩展到最大潜力。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法训练营day27--122.买卖股票的最佳时机II +55. 跳跃游戏 +45.跳跃游戏 II+1005.K次取反后最大化的数组和

一、 122.买卖股票的最佳时机II 题目链接:https://leetcode.cn/problems/binary-search/description/ 文章讲解:https://www.programmercarl.com/0122.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BAII.html 视频…

数字统计

import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别// 注意 while 处理多个 caseint a in.nextInt();i…

【ajax+node.js+webpack+git】学习笔记---ajax01

一、学习资料 1.学习课程 黑马程序员前端AJAX入门到实战全套教程,包含学前端框架必会的(ajaxnode.jswebpackgit),一套全覆盖_哔哩哔哩_bilibili 2.学习框架 二、AJAX 1.定义 使用XMLHttpRequest对象与服务器通信。具有异步特性…

python04——类(基础new)

类其实也是一种封装的思想,类就是把变量、方法等封装在一起,然后可以通过不同的实例化对其进行调用操作。 1.类的定义 class 类名: 变量a def __init__ (self,参数2,参数2...):初始化函数!!&…

深度学习调参基础

文章目录 深度学习调参基础1.需要调节的超参数有哪些?2.什么时候需要调参?3.如何调参?3.1过拟合情况调参3.2欠拟合情况调参3.3收敛但震荡情况调参3.4不收敛情况调参 4.调参示例参考 深度学习调参基础 1.需要调节的超参数有哪些? …

类与对象(2)

我们在了解了类的简单创建后,需要对类的创建与销毁有进一步的了解,也就是对于类的构造函数与析构函数的了解。 目录 注意: 构造函数的特性: 析构函数: 注意: 该部分内容为重难点内容,在正常…

Ae After Effects2024 for Mac 视频处理软件

Mac分享吧 文章目录 效果一、准备工作二、开始安装1、Anticc简化版安装1.1双击运行软件,安装1.2 解决来源身份不明的开发者问题1.3 再次运行软件,即可进行AntiCC安装 2. Ae2024安装2.1 打开 Ae 2024 安装包组2.2 将 Ae 安装包拖至桌面2.3 安装 Ae2024 &…

溶解氧(DO)理论指南(3)

转载自梅特勒官网资料,仅用于学习交流,侵权则删! 溶解氧理论指南 设备操作3.1 DO电极准备3.2 DO电极校准3.3 进行DO测量3.4 转换单位3.5 维护和储存 设备操作 本章总结了 DO电极日常使用的一些建议。它们基于普遍接受的操作规则。 3.1 DO电…

【Nvidia+AI相机】涂布视觉检测方案专注提高锂电池质量把控标准

锂电池单元的质量在多个生产制造领域都至关重要,特别是在新能源汽车、高端消费电子等行业。这些领域的产品高度依赖锂电池提供持续、稳定的能量供应。优质的锂电池单元不仅能提升产品的性能和用户体验,还能确保使用安全。因此,保证锂电池单元…

【C语言之高级编程】如何将指定变量或函数编译至固定的内存区域中?

如何将指定变量或函数编译至固定的内存区域? 1. 内存类型1.1 bss段(Block Started by Symbol)1.2 data段(data segment)1.3 text段(code segment/text segment)1.4 dec1.5 堆(heap&a…

【人工智能】Transformers之Pipeline(概述):30w+大模型极简应用

​​​​​​​ 目录 一、引言 二、pipeline库 2.1 概述 2.2 使用task实例化pipeline对象 2.2.1 基于task实例化“自动语音识别” 2.2.2 task列表 2.2.3 task默认模型 2.3 使用model实例化pipeline对象 2.3.1 基于model实例化“自动语音识别” 2.3.2 查看model与task…

谷粒商城学习笔记-22-分布式组件-SpringCloud-OpenFeign测试远程调用

文章目录 一,OpenFeign的简介二,OpenFeign的使用步骤1,场景说明2,引入依赖2,开启OpenFeign3,编写Feign接口4,使用feign调用远程接口5,验证 错误记录 上一节学习了注册中心&#xff0…

区块链论文速读A会-ISSTA 2023(2/2)如何检测DeFi协议中的价格操纵漏洞

Conference:ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA) CCF level:CCF A Categories:Software Engineering/System Software/Programming Languages Year:2023 第1~5篇区块链文章 请点击此…

讲讲 JVM 的内存结构(附上Demo讲解)

讲讲 JVM 的内存结构 什么是 JVM 内存结构?线程私有程序计数器​虚拟机栈本地方法栈 线程共享堆​方法区​注意永久代​元空间​运行时常量池​直接内存​ 代码详解 什么是 JVM 内存结构? JVM内存结构分为5大区域,程序计数器、虚拟机栈、本地…

用SurfaceView实现落花动画效果

上篇文章 Android子线程真的不能刷新UI吗?(一)复现异常 中可以看出子线程更新main线程创建的View,会抛出异常。SurfaceView不依赖main线程,可以直接使用自己的线程控制绘制逻辑。具体代码怎么实现了? 这篇文章用Surfa…

C++入门基础篇(下)

目录 6.引用 6.1 引用的特性 6.2 const引用 7.指针和引用的关系 8.内联函数 9.nullptr 6.引用 引⽤不是新定义⼀个变量,⽽是给已存在变量取了⼀个别名,编译器不会为引⽤变量开辟内存空间, 它和它引⽤的变量共⽤同⼀块内存空间。比如&a…

Linux系统(Centos)下MySQL数据库中文乱码问题解决

问题描述:在进行数据库使用过程中,数据库里的数据中文都显示乱码。操作数据库的时候,会出现中文乱码问题。 解决方法如下: 第一步:打开虚拟机进入系统,启动MySQL。 第二步:连接登录MySQL输入…

2.5 C#视觉程序开发实例1----IO_Manager实现脉冲输出控制

2.5 C#视觉程序开发实例1----IO_Manager实现脉冲输出控制 1 目标效果视频 目标效果展示 IO_Manager 2 信号输出流程说明 为了防止线程不同步导致输出信号没有被输出, 尽量使用一个输出队列来进行输出的管理 3 IO_Manager中添加内容 3.0 添加两个类 1 Out_Sta…

idea中打开静态网页端口是63342而不是8080

问题: 安装了tomcat 并且也配置了环境,但是在tomcat下运行,总是在63342下面显示。这也就意味着,并没有运行到tomcat环境下。 找了好几个教程(中间还去学习了maven,因为跟的教程里面,没有maven,但…

C++ STL IO流介绍

目录 一:IO流的继承关系: 二:输入输出功能 1. 基本用法 2. 格式化输入 3.非格式化输入 4. 格式化输出 三:流 1. 字符流 2. 向字符流中写入数据 3. 从字符流中读出数据 4. 清空字符流 5.完整的例子 四:文件…