成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面向MLOps的機(jī)器學(xué)習(xí)設(shè)計(jì)模式

譯文 精選
人工智能 機(jī)器學(xué)習(xí)
本文將介紹成功創(chuàng)建機(jī)器學(xué)習(xí)解決方案時(shí),一些最常見的設(shè)計(jì)模式。

作者 | 彼爾·保羅·伊波利托(Pier Paolo Ippolito),數(shù)據(jù)科學(xué)家

譯者 | 盧鑫旺

審校 | 梁策 孫淑娟

介紹

設(shè)計(jì)模式是針對(duì)常見通用問題的一整套最佳實(shí)踐和可重用解決方案。在數(shù)據(jù)科學(xué)和軟件開發(fā)、建筑設(shè)計(jì)等學(xué)科中,有大量問題重復(fù)出現(xiàn),因此,嘗試對(duì)最常見的問題進(jìn)行分類,并提供不同形式的計(jì)劃藍(lán)圖,以便輕松識(shí)別和解決這些問題,為更多人群帶來(lái)巨大的好處。

在軟件開發(fā)中使用設(shè)計(jì)模式,這一想法首先由埃里克·加馬(Erich Gamma)等人在《設(shè)計(jì)模式:可重用面向?qū)ο筌浖亍?Design Patterns: Elements of Reusable Object-Oriented Software)[1]中提出。此外,根據(jù)薩拉·羅賓森(Sara Robinson)等人的《機(jī)器學(xué)習(xí)設(shè)計(jì)模式》(Machine Learning Design Patterns)[2]一文,設(shè)計(jì)模式也得以應(yīng)用到了機(jī)器學(xué)習(xí)過程。

在本文中,我們將探討組成MLOps的不同設(shè)計(jì)模式。MLOps (Machine Learning -> Operations,即機(jī)器學(xué)習(xí)->運(yùn)營(yíng))是一整套流程,旨在將實(shí)驗(yàn)性的機(jī)器學(xué)習(xí)模型轉(zhuǎn)換為可在現(xiàn)實(shí)世界中做決策的生產(chǎn)性服務(wù)。其核心是,MLOps與DevOps基于相同原則,但還額外關(guān)注數(shù)據(jù)驗(yàn)證和持續(xù)訓(xùn)練/評(píng)估(圖1)。

圖1:DevOps和MLOps(圖片來(lái)自作者)

MLOps的一些主要好處:

  • 上市時(shí)間縮短(部署更快)
  • 模型穩(wěn)健性增強(qiáng)(識(shí)別數(shù)據(jù)漂移、重新訓(xùn)練模型等更便捷)
  • 訓(xùn)練/比較不同ML模型更靈活

另一方面,DevOps強(qiáng)調(diào)軟件開發(fā)的兩個(gè)關(guān)鍵概念:持續(xù)集成(CI)和持續(xù)交付(CD)。持續(xù)集成的重點(diǎn)是使用一個(gè)中心庫(kù)作為團(tuán)隊(duì)在項(xiàng)目中協(xié)作的一種方式,并且在不同團(tuán)隊(duì)成員添加新代碼時(shí),盡可能自動(dòng)化添加、測(cè)試和驗(yàn)證新代碼。通過這種方式,人們可以在任何時(shí)候測(cè)試應(yīng)用程序的不同部分是否能夠正確地相互通信,并對(duì)任何形式的錯(cuò)誤快速識(shí)別。持續(xù)交付則側(cè)重于平穩(wěn)地更新軟件部署,盡量避免任何形式的宕機(jī)。

MLOps設(shè)計(jì)模式

工作流管道

機(jī)器學(xué)習(xí)(ML)項(xiàng)目由許多不同步驟構(gòu)建(圖2):

圖2:ML項(xiàng)目關(guān)鍵步驟(圖片來(lái)自作者)

在對(duì)一個(gè)新模型進(jìn)行原型設(shè)計(jì)時(shí),通常使用單個(gè)腳本(單片)來(lái)編寫整個(gè)過程,但隨著項(xiàng)目愈發(fā)復(fù)雜,團(tuán)隊(duì)參與成員增多,這時(shí)就有必要將項(xiàng)目的每個(gè)不同步驟劃分為一個(gè)單獨(dú)的腳本(微服務(wù))。因此,采取這種方法可能會(huì)帶來(lái)一些好處:

  • 更容易對(duì)不同步驟的編排進(jìn)行更改試驗(yàn)
  • 根據(jù)定義使項(xiàng)目具有可擴(kuò)展性(可以輕松添加和刪除新步驟)
  • 每個(gè)團(tuán)隊(duì)成員都可以專注于流程中的不同步驟
  • 每個(gè)不同的步驟都可以獲得分散的模型產(chǎn)出

工作流管道設(shè)計(jì)模式,旨在定義一個(gè)計(jì)劃藍(lán)圖來(lái)創(chuàng)建ML管道。ML管道可以用一個(gè)有向無(wú)環(huán)圖(DAG)表示,其中每一步都由一個(gè)容器來(lái)體現(xiàn)(圖3)。

圖3:有向無(wú)環(huán)圖(DAG)示例(圖片來(lái)自作者)

遵循這種結(jié)構(gòu),就有可能創(chuàng)建可重用和可管理的ML過程。使用工作流管道的一些好處是:

  • 通過在流程中添加和刪除步驟,可以創(chuàng)建復(fù)雜的實(shí)驗(yàn)來(lái)測(cè)試不同的預(yù)處理技術(shù)、機(jī)器學(xué)習(xí)模型和超參數(shù)
  • 單獨(dú)保存每個(gè)不同步驟的輸出。如果在最后步驟中應(yīng)用了任何更改,可避免在管道開始時(shí)重新運(yùn)行步驟(從而節(jié)省時(shí)間和算力)
  • 在出現(xiàn)錯(cuò)誤的情況下,可以很容易地確定哪些步驟需要更新修改
  • 一旦使用CI/CD部署到生產(chǎn)環(huán)境中,就可根據(jù)不同的因素(如時(shí)間間隔、外部觸發(fā)器、ML指標(biāo)變化等)調(diào)度管道重新運(yùn)行

特征平臺(tái)

特征平臺(tái)是一個(gè)為機(jī)器學(xué)習(xí)過程設(shè)計(jì)的數(shù)據(jù)管理層(圖4)。這個(gè)設(shè)計(jì)模式的主要用途是簡(jiǎn)化組織管理和使用機(jī)器學(xué)習(xí)特征的方式。這通過創(chuàng)建某種形式的中心庫(kù)來(lái)實(shí)現(xiàn),該中心庫(kù)用來(lái)存儲(chǔ)公司曾經(jīng)為構(gòu)建ML流程創(chuàng)建的所有特征。通過這種方式,如果數(shù)據(jù)科學(xué)家需要為不同的ML項(xiàng)目提供相同的特征子集,他們就無(wú)需多次把原始數(shù)據(jù)轉(zhuǎn)換為處理過的特征,因?yàn)檫@可能更費(fèi)時(shí)間。最常見的兩種開源特征平臺(tái)解決方案是Feast和Hopsworks。

圖4:特征平臺(tái)設(shè)計(jì)模式(圖片來(lái)自作者)

了解更多關(guān)于特征平臺(tái)的信息可以查閱 (https://towardsdatascience.com/getting-started-with-feature-stores-121006ee81c9)

轉(zhuǎn)換

轉(zhuǎn)換(Transform)設(shè)計(jì)模式旨在通過將輸入、特征和轉(zhuǎn)換保持為單獨(dú)的實(shí)體,使機(jī)器學(xué)習(xí)模型在生產(chǎn)中更易于部署和維護(hù)(圖5)。事實(shí)上,原始數(shù)據(jù)通常需要經(jīng)過不同的預(yù)處理步驟,然后才能用作機(jī)器學(xué)習(xí)模型的輸入,其中一些轉(zhuǎn)換需要保存,以便在預(yù)處理推理所用數(shù)據(jù)時(shí)重用。

圖5:輸入和特征之間的關(guān)系(圖片來(lái)自作者)

例如,在訓(xùn)練ML模型之前,為了處理離群值并使數(shù)據(jù)看起來(lái)更像高斯分布,通常將歸一化/標(biāo)準(zhǔn)化技術(shù)應(yīng)用于數(shù)值數(shù)據(jù)。這些轉(zhuǎn)換應(yīng)該保存下來(lái),以便在將來(lái)提供新數(shù)據(jù)進(jìn)行推斷時(shí)重用。而如果不保存這些轉(zhuǎn)換,那么在訓(xùn)練和服務(wù)之間我們將會(huì)產(chǎn)生數(shù)據(jù)傾斜問題,造成為推理提供的輸入數(shù)據(jù)與用于訓(xùn)練ML模型的輸入數(shù)據(jù)分布不同。

為了避免訓(xùn)練模型和服務(wù)之間產(chǎn)生任意類型的數(shù)據(jù)傾斜,一個(gè)可行的解決方案是使用特征平臺(tái)設(shè)計(jì)模式。

多模式輸入

在訓(xùn)練ML模型時(shí),圖像、文本、數(shù)字等不同類型的數(shù)據(jù)都可使用,不過某些類型的模型只能接受特定類型的輸入數(shù)據(jù)。例如,Resnet-50只能取圖像作為輸入數(shù)據(jù),而其他的ML模型,如KNN (K Nearest Neighbor,K最近鄰)只能夠取數(shù)字?jǐn)?shù)據(jù)作為輸入。

為了解決ML問題,有必要使用不同形式的輸入數(shù)據(jù)。在這種情況下,我們需要應(yīng)用某種形式的轉(zhuǎn)換,以為所有不同類型輸入數(shù)據(jù)(多模式輸入設(shè)計(jì)模式)創(chuàng)建共同表示。舉個(gè)例子,假如我們有一個(gè)文本、數(shù)字和分類數(shù)據(jù)的組合,為了訓(xùn)練ML模型,我們可以利用情感分析、詞包或詞嵌入等技術(shù)將文本數(shù)據(jù)轉(zhuǎn)換為數(shù)字格式,并利用獨(dú)熱編碼(one-hot-encoding)對(duì)分類數(shù)據(jù)進(jìn)行轉(zhuǎn)換。這樣,我們就可以將所有數(shù)據(jù)以相同的格式(數(shù)值)保存下來(lái),以便用于模型訓(xùn)練。

級(jí)聯(lián)

在某些場(chǎng)景中,僅用一個(gè)ML模型不可能解決問題。在這種情況下,有必要?jiǎng)?chuàng)建一系列相互依賴的ML模型來(lái)實(shí)現(xiàn)最終目標(biāo)。舉個(gè)例子,假設(shè)我們嘗試預(yù)測(cè)向用戶推薦的物品內(nèi)容(圖6)。為了解決這個(gè)問題,我們首先要?jiǎng)?chuàng)建一個(gè)模型,它能夠預(yù)測(cè)用戶小于還是大于18歲。然后,根據(jù)該模型的響應(yīng),路由到兩個(gè)不同ML推薦引擎中的一個(gè)(一個(gè)向18歲以上的用戶推薦產(chǎn)品,另一個(gè)向18歲以下的用戶推薦產(chǎn)品)。

圖6:級(jí)聯(lián)設(shè)計(jì)模式(圖片來(lái)自作者)

為了創(chuàng)建這個(gè)級(jí)聯(lián)的ML模型,我們需要確保它們一起訓(xùn)練。事實(shí)上,由于其相互依賴,那么如果第一個(gè)模型發(fā)生變化(而不更新其他模型),就可能導(dǎo)致后續(xù)模型不穩(wěn)定。我們可以使用工作流管道設(shè)計(jì)模式(Workflow Pipeline)自動(dòng)化此類流程。

結(jié)論

在本文中,我們探討了支持MLOps的一些最常見的設(shè)計(jì)模式。如果你有興趣了解更多關(guān)于機(jī)器學(xué)習(xí)中的設(shè)計(jì)模式問題,請(qǐng)參閱瓦力阿帕·拉克沙馬南(Valliappa Lakshmanan) 在AIDVFest20上的演講以及《機(jī)器學(xué)習(xí)設(shè)計(jì)模式》(Machine Learning Design Patterns)一書的公共GitHub知識(shí)庫(kù)。

參考文獻(xiàn)

[1] "Design Patterns: Elements of Reusable Object-Oriented Software" (Addison-Wesley,1995): www.uml.org.cn/c%2B%2B/pdf/DesignPatterns.pdf

[2] "Machine Learning Design Patterns" (Sara Robinson et. al., 2020):

??https://www.oreilly.com/library/view/machine-learning-design/9781098115777/??

作者:

彼爾·保羅·伊波利托(Pier Paolo Ippolito) 是一名畢業(yè)于南安普頓大學(xué)的數(shù)據(jù)科學(xué)家。他持有人工智能碩士學(xué)位,對(duì)人工智能的發(fā)展和機(jī)器學(xué)習(xí)應(yīng)用(如金融和醫(yī)學(xué)領(lǐng)域)有著濃厚的興趣。

聯(lián)系方式:

如想了解作者最新的文章和項(xiàng)目,可通過以下方式聯(lián)絡(luò):

譯者介紹

盧鑫旺,51CTO社區(qū)編輯,半路出家的九零后程序員。做過前端頁(yè)面,寫過業(yè)務(wù)接口,搞過爬蟲,研究過JS,有幸接觸Golang,參與微服務(wù)架構(gòu)轉(zhuǎn)型。目前主寫Java,負(fù)責(zé)公司可定制化低代碼平臺(tái)的數(shù)據(jù)引擎層設(shè)計(jì)開發(fā)工作。

原文標(biāo)題:??Design Patterns in Machine Learning for MLOps??,作者:Pier Paolo Ippolito

2022年1月13日發(fā)布于Towards Data Science

責(zé)任編輯:華軒 來(lái)源: 51CTO
相關(guān)推薦

2020-11-24 10:21:14

人工智能機(jī)器學(xué)習(xí)技術(shù)

2013-06-07 11:31:36

面向?qū)ο?/a>設(shè)計(jì)模式

2021-12-13 09:14:06

清單管理數(shù)據(jù)集

2021-08-20 16:13:40

機(jī)器學(xué)習(xí)人工智能計(jì)算機(jī)

2009-07-09 17:30:59

Singleton模式C++ SingletJava Single

2010-06-10 10:03:42

UML面向?qū)ο?/a>

2012-07-10 02:01:53

設(shè)計(jì)模式命令模式

2019-01-16 18:22:24

機(jī)器學(xué)習(xí)人工智能計(jì)算機(jī)

2022-02-08 09:55:19

機(jī)器學(xué)習(xí)數(shù)據(jù)模型

2022-12-12 09:20:59

適配器模式接口

2021-04-20 14:18:57

人工智能機(jī)器學(xué)習(xí)

2024-02-21 08:00:00

機(jī)器學(xué)習(xí)Java大語(yǔ)言模型

2017-03-02 08:28:09

科技新聞早報(bào)

2023-04-27 13:09:10

MLOps工程師軟技能

2010-08-02 16:19:00

ibmdw面向?qū)ο?/a>

2021-07-06 14:17:16

MLOps機(jī)器學(xué)習(xí)AI

2023-09-13 08:00:00

MLOps數(shù)據(jù)科學(xué)

2010-10-25 10:05:00

ibmdwJava

2011-07-26 17:31:52

iOS 設(shè)計(jì)模式

2011-07-26 15:29:36

Cocoa 模式
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: www日本在线观看 | 丁香五月网久久综合 | 日韩久久精品 | 成人一区二区三区视频 | 日韩久久综合 | 亚洲九色| 一区二区三区视频免费观看 | 国产高清在线观看 | 国产欧美在线观看 | 国产高清免费 | 亚洲成人高清 | 国产精品欧美大片 | 国产午夜精品一区二区三区嫩草 | 欧美成人精品一区 | 亚洲欧美精品在线观看 | 亚洲视频在线观看 | gogo肉体亚洲高清在线视 | 久久se精品一区精品二区 | 狠狠操狠狠干 | 国产久| 国产一级在线观看 | 国产专区在线 | 毛片一区 | 久久久久久久久久一区二区 | 久操亚洲| a级大片免费观看 | www.黄网| 亚洲国产一区二区三区 | 国产高清一二三区 | 日韩欧美在 | 一级毛片色一级 | 伊人免费视频二 | 91精品国产一区二区三区 | 亚洲一区二区三区四区av | 欧美激情一区二区三级高清视频 | 天天干天天玩天天操 | 国产精品1区2区 | 日韩精品区 | 日韩精品中文字幕在线 | 国产在线观看av | 日韩精品在线播放 |