0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

通過(guò) AI 應(yīng)用程序容器化實(shí)現(xiàn)高效的 MLOps

小麥地 ? 來(lái)源:小麥地 ? 作者:小麥地 ? 2022-07-19 10:15 ? 次閱讀

到 2021 年底,人工智能市場(chǎng)的價(jià)值估計(jì)為 583 億美元。這一數(shù)字勢(shì)必會(huì)增加,預(yù)計(jì)未來(lái) 5 年將增長(zhǎng) 10 倍,到 2026 年將達(dá)到 3096 億美元。鑒于人工智能技術(shù)如此受歡迎,公司廣泛希望為其業(yè)務(wù)構(gòu)建和部署人工智能應(yīng)用解決方案。在當(dāng)今技術(shù)驅(qū)動(dòng)的世界中,人工智能已成為我們生活中不可或缺的一部分。根據(jù)麥肯錫的一份報(bào)告,人工智能的采用率正在繼續(xù)穩(wěn)步上升:56% 的受訪者表示至少在一項(xiàng)業(yè)務(wù)功能中采用了人工智能,高于 2020 年的 50%。這種采用率的增加是由于構(gòu)建和部署戰(zhàn)略的不斷發(fā)展人工智能應(yīng)用。各種策略正在演變以構(gòu)建和部署 AI 模型。AI 應(yīng)用程序容器化就是這樣一種策略。

機(jī)器學(xué)習(xí)操作 (MLOps) 正變得越來(lái)越穩(wěn)定。如果您不熟悉 MLOps,它是有助于提高機(jī)器學(xué)習(xí)工作流程效率的原則、實(shí)踐和技術(shù)的集合。它基于 DevOps,正如 DevOps 簡(jiǎn)化了從開(kāi)發(fā)到部署的軟件開(kāi)發(fā)生命周期 (SDLC) 一樣,MLOps 對(duì)機(jī)器學(xué)習(xí)應(yīng)用程序也完成了同樣的工作。容器化是用于開(kāi)發(fā)和交付 AI 應(yīng)用程序的最有趣和新興的技術(shù)之一。容器是軟件包的標(biāo)準(zhǔn)單元,它將代碼及其所有依賴項(xiàng)封裝在一個(gè)包中,允許程序快速可靠地從一個(gè)計(jì)算環(huán)境轉(zhuǎn)移到另一個(gè)計(jì)算環(huán)境。Docker 處于應(yīng)用程序容器化的最前沿。

什么是容器?

容器是包含應(yīng)用程序執(zhí)行所需的一切的邏輯框。操作系統(tǒng)、應(yīng)用程序代碼、運(yùn)行時(shí)、系統(tǒng)工具、系統(tǒng)庫(kù)、二進(jìn)制文件和其他組件都包含在此軟件包中?;蛘?,根據(jù)特定硬件的可用性,可能會(huì)包含或排除某些依賴項(xiàng)。這些容器直接在主機(jī)內(nèi)核中運(yùn)行。容器將共享主機(jī)的資源(如 CPU、磁盤、內(nèi)存等)并消除管理程序的額外負(fù)載。這就是容器“輕量級(jí)”的原因。

為什么容器如此受歡迎?

首先,它們是輕量級(jí)的,因?yàn)槿萜鞴蚕頇C(jī)器操作系統(tǒng)內(nèi)核。它不需要整個(gè)操作系統(tǒng)來(lái)運(yùn)行應(yīng)用程序。VirtualBox,通常稱為虛擬機(jī) (VM),需要安裝完整的操作系統(tǒng),這使得它們非常龐大。

容器是可移植的,可以輕松地從一臺(tái)機(jī)器傳輸?shù)搅硪慌_(tái)機(jī)器,其中包含所有必需的依賴項(xiàng)。它們使開(kāi)發(fā)人員和操作員能夠提高物理機(jī)的 CPU 和內(nèi)存利用率。

在容器技術(shù)中,Docker 是最流行和使用最廣泛的平臺(tái)。不僅基于 Linux 的 Red Hat 和 Canonical 已經(jīng)采用了 Docker,微軟、亞馬遜和甲骨文等公司也在依賴它。如今,幾乎所有 IT 和云公司都采用了 docker,并被廣泛用于為其解決方案提供所有依賴項(xiàng)。

點(diǎn)擊查看完整大小的圖片

poYBAGLVcfSAE3GzAADIn1Y_6h4582.png


虛擬機(jī)與容器(來(lái)源:Softnautics)

Docker 和容器之間有什么區(qū)別嗎?

Docker 已廣泛成為容器的代名詞,因?yàn)樗情_(kāi)源的,擁有龐大的社區(qū)基礎(chǔ),并且是一個(gè)相當(dāng)穩(wěn)定的平臺(tái)。但容器技術(shù)并不新鮮,它以 LXC 的形式被納入 Linux 已有 10 多年了,F(xiàn)reeBSD jails、AIX Workload Partitions 和 Solaris Containers 也提供了類似的操作系統(tǒng)級(jí)虛擬化。

Docker 可以通過(guò)將 OS 和包需求合并到一個(gè)包中來(lái)簡(jiǎn)化流程,這是容器和 docker 之間的區(qū)別之一。

我們經(jīng)常對(duì)為什么 docker 被用于數(shù)據(jù)科學(xué)和人工智能領(lǐng)域感到困惑,但它主要用于 DevOps。ML 和 AI 與 DevOps 一樣,具有跨操作系統(tǒng)的依賴性。因此,單個(gè)代碼可以在 Ubuntu、Windows、AWS、Azure、谷歌云、ROS、各種邊緣設(shè)備或其他任何地方運(yùn)行。

AI/ML 的容器應(yīng)用

與任何軟件開(kāi)發(fā)一樣,AI 應(yīng)用程序在由團(tuán)隊(duì)中的不同開(kāi)發(fā)人員組裝和運(yùn)行或與多個(gè)團(tuán)隊(duì)協(xié)作時(shí)也面臨 SDLC 挑戰(zhàn)。由于 AI 應(yīng)用程序的不斷迭代和實(shí)驗(yàn)性質(zhì),有時(shí)依賴關(guān)系可能會(huì)交叉交叉,從而給同一項(xiàng)目中的其他依賴庫(kù)帶來(lái)不便。

點(diǎn)擊查看完整大小的圖片

pYYBAGLVcf2AR_qiAAGrL4eprqw589.png


AI/ML 對(duì)容器應(yīng)用的需求(來(lái)源:Softnautics)

問(wèn)題是真實(shí)的,因此,如果您要展示需要特定執(zhí)行方法的項(xiàng)目,則需要遵循每個(gè)步驟的可接受文檔。想象一下,對(duì)于同一個(gè)項(xiàng)目的不同模型,您有多個(gè) python 虛擬環(huán)境,并且沒(méi)有更新文檔,您可能想知道這些依賴項(xiàng)是做什么用的?為什么在安裝較新的庫(kù)或更新的模型等時(shí)會(huì)發(fā)生沖突?

開(kāi)發(fā)人員不斷面臨“它在我的機(jī)器上工作”的困境,并不斷嘗試解決它。

pYYBAGLVcgOALIgyAAOX4h6AocY677.png


為什么它可以在我的機(jī)器上運(yùn)行(來(lái)源:Softnautics)

使用 Docker,所有這些都可以變得更容易和更快。容器化可以幫助您節(jié)省大量更新文檔的時(shí)間,并使您的程序的開(kāi)發(fā)和部署從長(zhǎng)遠(yuǎn)來(lái)看更加順利。即使通過(guò)提取多個(gè)與平臺(tái)無(wú)關(guān)的圖像,我們也可以使用 docker 容器為多個(gè) AI 模型提供服務(wù)。

完全在 Linux 平臺(tái)上編寫的應(yīng)用程序可以使用 docker 在 Windows 平臺(tái)上運(yùn)行,它可以安裝在 Windows 工作站上,使跨平臺(tái)的代碼部署變得更加容易。

點(diǎn)擊查看完整大小的圖片

poYBAGLVcgqAcCGeAAHFkgV_mHI758.png


使用 docker 容器部署代碼(來(lái)源:Softnautics)

容器與虛擬機(jī)上 AI 模型的性能

已經(jīng)進(jìn)行了許多實(shí)驗(yàn)來(lái)比較 Docker 與市場(chǎng)上用于 AI 部署的各種虛擬機(jī)的性能:下表可以大致了解影響 AI 模型部署的 VM 和 Docker 容器的性能和差異。

方差 虛擬機(jī) 容器
操作系統(tǒng) 需要一個(gè)客人 共享
開(kāi)機(jī)速度 比傳統(tǒng)機(jī)器慢 比虛擬機(jī)快
標(biāo)準(zhǔn)化 本質(zhì)上特定的操作系統(tǒng)標(biāo)準(zhǔn) 特定于應(yīng)用程序的性質(zhì)
可移植性 不是很便攜 更快、更容易移植
需要服務(wù)器 需要更多 很少的服務(wù)器
安全 管理程序定義安全性 安全是共享的
冗余級(jí)別 VM擁有資源 共享操作系統(tǒng),減少冗余
硬件抽象 硬件抽象 可實(shí)現(xiàn)硬件接入
資源共享 需要更多資源 需要和共享的資源更少
資源隔離 高的 緩和
記憶 高內(nèi)存占用 更少的內(nèi)存占用和共享
文件共享 無(wú)法共享文件 文件可以共享

表 1:虛擬機(jī)與容器(來(lái)源:Softnautics)

從所有比較實(shí)驗(yàn)的結(jié)論中得出的廣泛結(jié)論如下:

容器的開(kāi)銷比虛擬機(jī)低,性能與非虛擬化版本一樣好。

在高性能計(jì)算 (HPC) 中,容器的性能優(yōu)于基于管理程序的虛擬化。

深度學(xué)習(xí)計(jì)算工作負(fù)載主要卸載到 GPU,從而導(dǎo)致資源爭(zhēng)用,這對(duì)于眾多容器來(lái)說(shuō)很嚴(yán)重,但由于出色的資源隔離,在虛擬機(jī)中這種情況很少。

服務(wù)大型 AI 模型通常通過(guò) REST API 容器完成。

多模型服務(wù)主要使用容器完成,因?yàn)樗鼈兛梢允褂酶俚馁Y源輕松擴(kuò)展。

現(xiàn)在,讓我們通過(guò)Kennedy Chengeta在他最近的研究中收集的以下實(shí)驗(yàn)結(jié)果來(lái)總結(jié)容器對(duì)任何 VM 的優(yōu)勢(shì)?;?Prosper Lending 和 Lending Club 數(shù)據(jù)集的深度學(xué)習(xí)數(shù)據(jù)集進(jìn)行分類,下表比較了 4 種不同的虛擬化技術(shù)(KVM、Xen、Docker、Docker + Kubernetes)的啟動(dòng)時(shí)間、網(wǎng)絡(luò)延遲、數(shù)據(jù)下載和網(wǎng)絡(luò)延遲. KVM(基于內(nèi)核的 VM)是表中其他的基準(zhǔn)值。

poYBAGLVcg-AUvO9AAFwHHdsQKY857.png


表 2:Lending Club 數(shù)據(jù)集表現(xiàn)(越低越好)(來(lái)源:Softnautics)

poYBAGLVchSADGTOAAFPUPFnxnE863.png


表 3:Prosper 數(shù)據(jù)集(越低越好)(來(lái)源:Softnautics)

如您所見(jiàn),Docker 和由 Kubernetes 管理的 Docker 的性能優(yōu)于 KVM 和 Xen Hypervisors。

大型 AI 模型是否對(duì)容器部署構(gòu)成挑戰(zhàn)?

由于開(kāi)發(fā)人員將使用容器進(jìn)行訓(xùn)練和推斷他們的 AI 模型,因此對(duì)兩者來(lái)說(shuō)最關(guān)鍵的將是內(nèi)存占用。隨著 AI 架構(gòu)變得越來(lái)越大,在它們上訓(xùn)練的模型也變得越來(lái)越大,從 100 MB 到 2 GB。由于容器被認(rèn)為是輕量級(jí)的,因此此類模型變得笨重而無(wú)法裝在容器中攜帶。開(kāi)發(fā)人員使用模型壓縮技術(shù)使它們具有互操作性和輕量級(jí)。模型量化是最流行的壓縮技術(shù),您可以通過(guò)將模型的內(nèi)存占用從 float32 集更改為 float16 或 int8 集來(lái)減小模型的大小。領(lǐng)先平臺(tái)提供的大多數(shù)預(yù)訓(xùn)練即用型 AI 模型都是容器中的量化模型。

結(jié)論

總而言之,將整個(gè) AI 應(yīng)用程序開(kāi)發(fā)到部署管道轉(zhuǎn)換為容器的好處如下:

針對(duì)不同版本的框架、操作系統(tǒng)和邊緣設(shè)備/平臺(tái),為每個(gè) AI 模型提供單獨(dú)的容器。

每個(gè) AI 模型都有一個(gè)容器,用于自定義部署。例如:一個(gè)容器對(duì)開(kāi)發(fā)人員友好,而另一個(gè)容器對(duì)用戶友好且無(wú)需編碼即可使用。

每個(gè) AI 模型的單獨(dú)容器,用于 AI 項(xiàng)目中的不同版本或環(huán)境(開(kāi)發(fā)團(tuán)隊(duì)、QA 團(tuán)隊(duì)、UAT(用戶驗(yàn)收測(cè)試)等)

容器應(yīng)用程序真正更有效地加速了 AI 應(yīng)用程序開(kāi)發(fā)-部署管道,并有助于維護(hù)和管理用于多種用途的多個(gè)模型。

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    31396

    瀏覽量

    269787
  • 人工智能
    +關(guān)注

    關(guān)注

    1793

    文章

    47588

    瀏覽量

    239466
  • Docker
    +關(guān)注

    關(guān)注

    0

    文章

    489

    瀏覽量

    11910
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    容器引擎是什么意思

    容器引擎是一種虛擬技術(shù),它利用操作系統(tǒng)的內(nèi)核來(lái)實(shí)現(xiàn)對(duì)應(yīng)用程序的隔離和打包,使得應(yīng)用程序可以在不同的環(huán)境中運(yùn)行而無(wú)需修改代碼。主機(jī)推薦小編為
    的頭像 發(fā)表于 01-09 09:49 ?78次閱讀

    MLOps平臺(tái)的發(fā)展方向

    MLOps平臺(tái)作為機(jī)器學(xué)習(xí)開(kāi)發(fā)運(yùn)維一體的重要工具,其發(fā)展方向?qū)⑸羁逃绊懭斯ぶ悄芗夹g(shù)的普及和應(yīng)用。下面,是對(duì)MLOps平臺(tái)發(fā)展方向的探討,由AI部落小編整理。
    的頭像 發(fā)表于 12-31 11:51 ?94次閱讀

    什么是云原生MLOps平臺(tái)

    云原生MLOps平臺(tái),是指利用云計(jì)算的基礎(chǔ)設(shè)施和開(kāi)發(fā)工具,來(lái)構(gòu)建、部署和管理機(jī)器學(xué)習(xí)模型的全生命周期的平臺(tái)。以下,是對(duì)云原生MLOps平臺(tái)的介紹,由AI部落小編整理。
    的頭像 發(fā)表于 12-12 13:13 ?142次閱讀

    Jtti:Linux中虛擬文件系統(tǒng)和容器的關(guān)系

    在Linux中,虛擬文件系統(tǒng)(VFS)和容器技術(shù)之間有密切的關(guān)系。容器是指通過(guò)使用容器來(lái)運(yùn)行
    的頭像 發(fā)表于 11-27 15:38 ?177次閱讀

    MLOps平臺(tái)優(yōu)點(diǎn)

    MLOps平臺(tái)在提升機(jī)器學(xué)習(xí)模型的開(kāi)發(fā)與部署效率、可擴(kuò)展性與靈活性、透明度與可重復(fù)性以及降低風(fēng)險(xiǎn)和持續(xù)改進(jìn)方面具有顯著優(yōu)點(diǎn)。
    的頭像 發(fā)表于 11-06 10:10 ?189次閱讀

    通過(guò)DaVinci TMS320DM644x的串行接口加載基本應(yīng)用程序

    電子發(fā)燒友網(wǎng)站提供《通過(guò)DaVinci TMS320DM644x的串行接口加載基本應(yīng)用程序.pdf》資料免費(fèi)下載
    發(fā)表于 10-16 11:52 ?0次下載
    <b class='flag-5'>通過(guò)</b>DaVinci TMS320DM644x的串行接口加載基本<b class='flag-5'>應(yīng)用程序</b>

    使用OpenVINO GenAI API在C++中構(gòu)建AI應(yīng)用程序

    許多桌面應(yīng)用程序是使用 C++ 開(kāi)發(fā)的,而將生成式AI(GenAI)功能集成到這些應(yīng)用程序中可能會(huì)很具有挑戰(zhàn)性,尤其是因?yàn)槭褂孟?Hugging Face 這樣的 Python 庫(kù)的復(fù)雜性。C++
    的頭像 發(fā)表于 10-12 09:36 ?432次閱讀
    使用OpenVINO GenAI API在C++中構(gòu)建<b class='flag-5'>AI</b><b class='flag-5'>應(yīng)用程序</b>

    容器怎么完成和容器引擎的映射

    Javascript與Java應(yīng)用程序綁定在一起,從而實(shí)現(xiàn)應(yīng)用程序的自動(dòng)測(cè)試。 Docker 示例 docker run -d -p 宿主機(jī)端口:
    的頭像 發(fā)表于 06-06 15:18 ?400次閱讀

    使用Redis和Spring?Ai構(gòu)建rag應(yīng)用程序

    整合如何通過(guò)簡(jiǎn)化的開(kāi)發(fā)流程,讓開(kāi)發(fā)者能夠更專注于創(chuàng)新而非底層實(shí)現(xiàn)。一、SpringAI簡(jiǎn)介由大型語(yǔ)言模型(LLM)驅(qū)動(dòng)的應(yīng)用程序中,向量數(shù)據(jù)庫(kù)常作為人工智能應(yīng)用程
    的頭像 發(fā)表于 04-29 08:04 ?1086次閱讀
    使用Redis和Spring?<b class='flag-5'>Ai</b>構(gòu)建rag<b class='flag-5'>應(yīng)用程序</b>

    基于全志T113-i的Docker容器實(shí)現(xiàn)方案

    通過(guò)使用Docker,開(kāi)發(fā)人員可以更容易地構(gòu)建、交付和運(yùn)行應(yīng)用程序,同時(shí)確保應(yīng)用程序的一致性及可移植性。它也使得應(yīng)用程序的部署更加靈活、高效
    發(fā)表于 04-19 09:45 ?968次閱讀
    基于全志T113-i的Docker<b class='flag-5'>容器</b><b class='flag-5'>實(shí)現(xiàn)</b>方案

    Docker容器技術(shù)的安裝和使用

    通過(guò)Docker,開(kāi)發(fā)人員可以更容易地構(gòu)建、交付和運(yùn)行應(yīng)用程序,同時(shí)確保應(yīng)用程序的一致性和可移植性。它也使得應(yīng)用程序的部署更加靈活和高效,因
    發(fā)表于 04-16 11:24 ?349次閱讀
    Docker<b class='flag-5'>容器</b>技術(shù)的安裝和使用

    開(kāi)發(fā)者手機(jī) AI - 目標(biāo)識(shí)別 demo

    應(yīng)用的demo。 應(yīng)用程序通過(guò)相機(jī)進(jìn)行預(yù)覽,對(duì)預(yù)覽畫面中的物體進(jìn)行目標(biāo)識(shí)別,目前該應(yīng)用程序支持識(shí)別100種物體。 系統(tǒng)架構(gòu) 下圖為demo應(yīng)用以及Openharmony AI子系統(tǒng)的架
    發(fā)表于 04-11 16:14

    NanoEdge AI的技術(shù)原理、應(yīng)用場(chǎng)景及優(yōu)勢(shì)

    等領(lǐng)域。以下是一些具體的應(yīng)用場(chǎng)景: 1 . 智能家居:通過(guò)將 NanoEdge AI 集成到智能家居設(shè)備中,可以實(shí)現(xiàn)對(duì)家庭環(huán)境的實(shí)時(shí)監(jiān)控和智能控制,如溫度調(diào)節(jié)、照明控制、安防監(jiān)控等。 2.工業(yè)自動(dòng)
    發(fā)表于 03-12 08:09

    ARM平臺(tái)實(shí)現(xiàn)Docker容器技術(shù)

    ,亦可實(shí)現(xiàn)虛擬。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。使用Docker,可像管理應(yīng)用程序一樣管理基礎(chǔ)結(jié)構(gòu)。通過(guò)利用Docker的
    的頭像 發(fā)表于 03-07 13:48 ?831次閱讀
    ARM平臺(tái)<b class='flag-5'>實(shí)現(xiàn)</b>Docker<b class='flag-5'>容器</b>技術(shù)

    通過(guò)實(shí)時(shí)加速器技術(shù)實(shí)現(xiàn)實(shí)時(shí)應(yīng)用程序的 Windows

    時(shí)功能應(yīng)用程序。這是通過(guò)專門為實(shí)時(shí)應(yīng)用程序保留一個(gè)或多個(gè)CPU來(lái)實(shí)現(xiàn)的,設(shè)置 Windows 適當(dāng)?shù)膮?shù)并利用 acontis 內(nèi)核驅(qū)動(dòng)
    的頭像 發(fā)表于 01-29 16:03 ?948次閱讀
    <b class='flag-5'>通過(guò)</b>實(shí)時(shí)加速器技術(shù)<b class='flag-5'>實(shí)現(xiàn)</b>實(shí)時(shí)<b class='flag-5'>應(yīng)用程序</b>的 Windows