0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过 AI 应用程序容器化实现高效的 MLOps

小麦地 来源:小麦地 作者:小麦地 2022-07-19 10:15 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

到 2021 年底,人工智能市场的价值估计为 583 亿美元。这一数字势必会增加,预计未来 5 年将增长 10 倍,到 2026 年将达到 3096 亿美元。鉴于人工智能技术如此受欢迎,公司广泛希望为其业务构建和部署人工智能应用解决方案。在当今技术驱动的世界中,人工智能已成为我们生活中不可或缺的一部分。根据麦肯锡的一份报告,人工智能的采用率正在继续稳步上升:56% 的受访者表示至少在一项业务功能中采用了人工智能,高于 2020 年的 50%。这种采用率的增加是由于构建和部署战略的不断发展人工智能应用。各种策略正在演变以构建和部署 AI 模型。AI 应用程序容器化就是这样一种策略。

机器学习操作 (MLOps) 正变得越来越稳定。如果您不熟悉 MLOps,它是有助于提高机器学习工作流程效率的原则、实践和技术的集合。它基于 DevOps,正如 DevOps 简化了从开发到部署的软件开发生命周期 (SDLC) 一样,MLOps 对机器学习应用程序也完成了同样的工作。容器化是用于开发和交付 AI 应用程序的最有趣和新兴的技术之一。容器是软件包的标准单元,它将代码及其所有依赖项封装在一个包中,允许程序快速可靠地从一个计算环境转移到另一个计算环境。Docker 处于应用程序容器化的最前沿。

什么是容器?

容器是包含应用程序执行所需的一切的逻辑框。操作系统、应用程序代码、运行时、系统工具、系统库、二进制文件和其他组件都包含在此软件包中。或者,根据特定硬件的可用性,可能会包含或排除某些依赖项。这些容器直接在主机内核中运行。容器将共享主机的资源(如 CPU、磁盘、内存等)并消除管理程序的额外负载。这就是容器“轻量级”的原因。

为什么容器如此受欢迎?

首先,它们是轻量级的,因为容器共享机器操作系统内核。它不需要整个操作系统来运行应用程序。VirtualBox,通常称为虚拟机 (VM),需要安装完整的操作系统,这使得它们非常庞大。

容器是可移植的,可以轻松地从一台机器传输到另一台机器,其中包含所有必需的依赖项。它们使开发人员和操作员能够提高物理机的 CPU 和内存利用率。

在容器技术中,Docker 是最流行和使用最广泛的平台。不仅基于 Linux 的 Red Hat 和 Canonical 已经采用了 Docker,微软、亚马逊和甲骨文等公司也在依赖它。如今,几乎所有 IT 和云公司都采用了 docker,并被广泛用于为其解决方案提供所有依赖项。

点击查看完整大小的图片

poYBAGLVcfSAE3GzAADIn1Y_6h4582.png


虚拟机与容器(来源:Softnautics)

Docker 和容器之间有什么区别吗?

Docker 已广泛成为容器的代名词,因为它是开源的,拥有庞大的社区基础,并且是一个相当稳定的平台。但容器技术并不新鲜,它以 LXC 的形式被纳入 Linux 已有 10 多年了,FreeBSD jails、AIX Workload Partitions 和 Solaris Containers 也提供了类似的操作系统级虚拟化。

Docker 可以通过将 OS 和包需求合并到一个包中来简化流程,这是容器和 docker 之间的区别之一。

我们经常对为什么 docker 被用于数据科学和人工智能领域感到困惑,但它主要用于 DevOps。ML 和 AI 与 DevOps 一样,具有跨操作系统的依赖性。因此,单个代码可以在 Ubuntu、Windows、AWS、Azure、谷歌云、ROS、各种边缘设备或其他任何地方运行。

AI/ML 的容器应用

与任何软件开发一样,AI 应用程序在由团队中的不同开发人员组装和运行或与多个团队协作时也面临 SDLC 挑战。由于 AI 应用程序的不断迭代和实验性质,有时依赖关系可能会交叉交叉,从而给同一项目中的其他依赖库带来不便。

点击查看完整大小的图片

pYYBAGLVcf2AR_qiAAGrL4eprqw589.png


AI/ML 对容器应用的需求(来源:Softnautics)

问题是真实的,因此,如果您要展示需要特定执行方法的项目,则需要遵循每个步骤的可接受文档。想象一下,对于同一个项目的不同模型,您有多个 python 虚拟环境,并且没有更新文档,您可能想知道这些依赖项是做什么用的?为什么在安装较新的库或更新的模型等时会发生冲突?

开发人员不断面临“它在我的机器上工作”的困境,并不断尝试解决它。

pYYBAGLVcgOALIgyAAOX4h6AocY677.png


为什么它可以在我的机器上运行(来源:Softnautics)

使用 Docker,所有这些都可以变得更容易和更快。容器化可以帮助您节省大量更新文档的时间,并使您的程序的开发和部署从长远来看更加顺利。即使通过提取多个与平台无关的图像,我们也可以使用 docker 容器为多个 AI 模型提供服务。

完全在 Linux 平台上编写的应用程序可以使用 docker 在 Windows 平台上运行,它可以安装在 Windows 工作站上,使跨平台的代码部署变得更加容易。

点击查看完整大小的图片

poYBAGLVcgqAcCGeAAHFkgV_mHI758.png


使用 docker 容器部署代码(来源:Softnautics)

容器与虚拟机上 AI 模型的性能

已经进行了许多实验来比较 Docker 与市场上用于 AI 部署的各种虚拟机的性能:下表可以大致了解影响 AI 模型部署的 VM 和 Docker 容器的性能和差异。

方差 虚拟机 容器
操作系统 需要一个客人 共享
开机速度 比传统机器慢 比虚拟机快
标准化 本质上特定的操作系统标准 特定于应用程序的性质
可移植性 不是很便携 更快、更容易移植
需要服务器 需要更多 很少的服务器
安全 管理程序定义安全性 安全是共享的
冗余级别 VM拥有资源 共享操作系统,减少冗余
硬件抽象 硬件抽象 可实现硬件接入
资源共享 需要更多资源 需要和共享的资源更少
资源隔离 高的 缓和
记忆 高内存占用 更少的内存占用和共享
文件共享 无法共享文件 文件可以共享

表 1:虚拟机与容器(来源:Softnautics)

从所有比较实验的结论中得出的广泛结论如下:

容器的开销比虚拟机低,性能与非虚拟化版本一样好。

在高性能计算 (HPC) 中,容器的性能优于基于管理程序的虚拟化。

深度学习计算工作负载主要卸载到 GPU,从而导致资源争用,这对于众多容器来说很严重,但由于出色的资源隔离,在虚拟机中这种情况很少。

服务大型 AI 模型通常通过 REST API 容器完成。

多模型服务主要使用容器完成,因为它们可以使用更少的资源轻松扩展。

现在,让我们通过Kennedy Chengeta在他最近的研究中收集的以下实验结果来总结容器对任何 VM 的优势。基于 Prosper Lending 和 Lending Club 数据集的深度学习数据集进行分类,下表比较了 4 种不同的虚拟化技术(KVM、Xen、Docker、Docker + Kubernetes)的启动时间、网络延迟、数据下载和网络延迟. KVM(基于内核的 VM)是表中其他的基准值。

poYBAGLVcg-AUvO9AAFwHHdsQKY857.png


表 2:Lending Club 数据集表现(越低越好)(来源:Softnautics)

poYBAGLVchSADGTOAAFPUPFnxnE863.png


表 3:Prosper 数据集(越低越好)(来源:Softnautics)

如您所见,Docker 和由 Kubernetes 管理的 Docker 的性能优于 KVM 和 Xen Hypervisors。

大型 AI 模型是否对容器部署构成挑战?

由于开发人员将使用容器进行训练和推断他们的 AI 模型,因此对两者来说最关键的将是内存占用。随着 AI 架构变得越来越大,在它们上训练的模型也变得越来越大,从 100 MB 到 2 GB。由于容器被认为是轻量级的,因此此类模型变得笨重而无法装在容器中携带。开发人员使用模型压缩技术使它们具有互操作性和轻量级。模型量化是最流行的压缩技术,您可以通过将模型的内存占用从 float32 集更改为 float16 或 int8 集来减小模型的大小。领先平台提供的大多数预训练即用型 AI 模型都是容器中的量化模型。

结论

总而言之,将整个 AI 应用程序开发到部署管道转换为容器的好处如下:

针对不同版本的框架、操作系统和边缘设备/平台,为每个 AI 模型提供单独的容器。

每个 AI 模型都有一个容器,用于自定义部署。例如:一个容器对开发人员友好,而另一个容器对用户友好且无需编码即可使用。

每个 AI 模型的单独容器,用于 AI 项目中的不同版本或环境(开发团队、QA 团队、UAT(用户验收测试)等)

容器应用程序真正更有效地加速了 AI 应用程序开发-部署管道,并有助于维护和管理用于多种用途的多个模型。

审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    89

    文章

    38091

    浏览量

    296576
  • 人工智能
    +关注

    关注

    1813

    文章

    49734

    浏览量

    261507
  • Docker
    +关注

    关注

    0

    文章

    526

    浏览量

    14017
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    订单退款自动接口:高效处理退款流程的技术实现

    高效的订单退款自动接口,涵盖核心概念、技术实现、代码示例和最佳实践。我们将使用RESTful API作为基础,并以Python示例展示具体实现。 1. 什么是订单退款自动
    的头像 发表于 10-21 10:41 217次阅读
    订单退款自动<b class='flag-5'>化</b>接口:<b class='flag-5'>高效</b>处理退款流程的技术<b class='flag-5'>实现</b>

    电子行业如何通过MES系统实现数字升级

    对电子行业而言,万界星空MES系统是实现数字升级的核心运营平台。它通过将人、机、料、法、环等生产要素数字并互联互通,构建了一个透明、高效
    的头像 发表于 09-29 12:09 294次阅读

    睿海光电以高效交付与广泛兼容助力AI数据中心800G光模块升级

    400G/800G光模块已实现规模量产,并基于AI工厂与AI云的核心需求进行深度优化: 速率突破:采用PAM4调制技术,单通道速率达100Gbps,整模块
    发表于 08-13 19:01

    Helm实现容器运维高效包管理与应用部署

    在当今快速演变的云原生生态系统中,容器技术已成为运维工程师不可或缺的核心能力。
    的头像 发表于 07-14 11:16 602次阅读

    如何在 Raspberry Pi AI Camera 上构建为开发人员提供实时的智能应用程序

    。最近推出的RaspberryPiAICamera是一款功能强大的硬件,可让您在RaspberryPi上构建功能强大的AI应用程序通过将人工智能推理卸载到IMX
    的头像 发表于 03-25 09:37 613次阅读
    如何在 Raspberry Pi <b class='flag-5'>AI</b> Camera 上构建为开发人员提供实时的智能<b class='flag-5'>应用程序</b>!

    MCP:连接AI应用程序的开放标准!

    作者:算力魔方创始人/英特尔创新大使刘力 扩展AI大模型的方式有两种,第一种是通过训练增强AI大模型自身的能力;第二种是让AI大模型与其它现有的应用
    的头像 发表于 03-21 18:21 1881次阅读
    MCP:连接<b class='flag-5'>AI</b>与<b class='flag-5'>应用程序</b>的开放标准!

    开源mlops平台好用吗

    MLOps平台的选择上,开源平台因其成本效益、灵活性以及社区支持等优势,受到了越来越多开发者和企业的青睐。那么,开源MLOps平台真的好用吗?下面,AI部落小编带您了解。
    的头像 发表于 03-05 11:09 513次阅读

    使用HDDL卡运行OpenVINO应用程序容器或HDDL daemon容器时遇到错误,怎么解决?

    说明在使用 HDDL 卡运行OpenVINO应用程序容器或 HDDL daemon 容器时遇到错误: 错误: shm_open() failed: errno=2 (No such file
    发表于 03-05 08:11

    探索DeepSeek的Ai-WB2模组程序:功能强大

    DeepSeek是什么? DeepSeek,一家以代码编写能力为核心竞争力的 AI 科技公司,致力于通过高性能 AI 模型赋能企业智能转型。公司拥有一支由顶尖
    的头像 发表于 02-11 09:37 948次阅读
    探索DeepSeek的<b class='flag-5'>Ai</b>-WB2模组<b class='flag-5'>程序</b>:功能强大

    Kubernetes:构建高效容器应用平台

    Kubernetes 作为容器编排的事实标准,在容器应用部署中发挥着关键作用。 搭建 Kubernetes 集群是应用的基础。可以使用kubeadm工具快速搭建。在主节点执行kubeadm
    的头像 发表于 01-23 15:22 576次阅读

    MLOps托管服务怎么样

    MLOps托管服务以其卓越的性能和显著的优势,成为企业加速机器学习应用落地的理想选择。以下,是对MLOps托管服务优势的介绍,由AI部落小编整理。
    的头像 发表于 01-22 10:21 478次阅读

    容器能替代微服务吗?两者有何区别

    容器不能替代微服务,但它是微服务的解决方案之一。微服务架构的核心在于将大型应用程序拆分为一系列小型、独立的服务,每个服务都可以独立开发、部署和扩展。这种架构风格提高了系统的灵活性、可伸缩性
    的头像 发表于 01-13 10:40 687次阅读

    容器引擎是什么意思

    容器引擎是一种虚拟技术,它利用操作系统的内核来实现应用程序的隔离和打包,使得应用程序可以在不同的环境中运行而无需修改代码。主机推荐小编为
    的头像 发表于 01-09 09:49 718次阅读

    MLOps平台的发展方向

    MLOps平台作为机器学习开发运维一体的重要工具,其发展方向将深刻影响人工智能技术的普及和应用。下面,是对MLOps平台发展方向的探讨,由AI部落小编整理。
    的头像 发表于 12-31 11:51 809次阅读

    什么是云原生MLOps平台

    云原生MLOps平台,是指利用云计算的基础设施和开发工具,来构建、部署和管理机器学习模型的全生命周期的平台。以下,是对云原生MLOps平台的介绍,由AI部落小编整理。
    的头像 发表于 12-12 13:13 840次阅读