本系列介紹 開發(fā)和部署 ( M L ) 模型 。本文概述了 ML 工作流,考慮到使用機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)來實(shí)現(xiàn)業(yè)務(wù)價(jià)值所涉及的各個(gè)階段。在第 2 部分中,訓(xùn)練并保存 ML 模型 可以將其部署為 ML 系統(tǒng)的一部分。第 3 部分向您展示了 如何部署 ML 模型到 Google 云平臺(tái) ( GCP )。
當(dāng)使用 machine learning 解決問題并提供業(yè)務(wù)價(jià)值時(shí),您使用的技術(shù)、工具和模型會(huì)根據(jù)用例而變化。然而,當(dāng)從一個(gè)想法轉(zhuǎn)移到一個(gè)已部署的模型時(shí),需要經(jīng)過一組通用的工作流階段。
之前,我討論過 如何搭建機(jī)器學(xué)習(xí)微服務(wù) 和 如何使用 Streamlit 和 FastAPI 構(gòu)建即時(shí)機(jī)器學(xué)習(xí) Web 應(yīng)用程序 。在這兩個(gè)教程中, ML 模型僅在本地運(yùn)行。這對(duì)于演示來說已經(jīng)足夠了,但如果您的模型必須在互聯(lián)網(wǎng)上持續(xù)提供預(yù)測,則這是不切實(shí)際的。
機(jī)器學(xué)習(xí)工作流
ML 工作流包含以下主要組件:
勘探和數(shù)據(jù)處理
建模
部署
每個(gè)階段都可以細(xì)分為更小的程序。
圖 1. 機(jī)器學(xué)習(xí)工作流
(Source: Become a Machine Learning Engineer Nanodegree (Udacity) )
圖 1 顯示了典型機(jī)器學(xué)習(xí)項(xiàng)目的端到端工作流的可視化表示。下面是有關(guān)每個(gè)組件的更多信息。
勘探和加工
重要的工作是確保用于 ML 項(xiàng)目的數(shù)據(jù)集質(zhì)量良好,因?yàn)檫@些數(shù)據(jù)是建模階段可靠性能的基礎(chǔ)。如果您向模型提供低質(zhì)量的數(shù)據(jù),則可能會(huì)產(chǎn)生較差或錯(cuò)誤的結(jié)果。
這部分工作流程通常占用最多的時(shí)間。數(shù)據(jù)勘探和處理可進(jìn)一步分為以下幾個(gè)階段:
Data retrieval : ML 項(xiàng)目需要高質(zhì)量的數(shù)據(jù),而這些數(shù)據(jù)并不總是可以立即訪問的。您可能需要實(shí)施數(shù)據(jù)采集技術(shù),例如刮取或手動(dòng)數(shù)據(jù)采集。
數(shù)據(jù)清理和探索 :數(shù)據(jù)也很少能夠立即處理。您必須對(duì)其進(jìn)行清理,以在所需的用例中獲得最佳性能。您還應(yīng)該了解正在使用的數(shù)據(jù)集,因此需要進(jìn)行探索。
數(shù)據(jù)準(zhǔn)備或轉(zhuǎn)換 :在最后階段,對(duì)數(shù)據(jù)進(jìn)行設(shè)計(jì),以提取正在解決的現(xiàn)實(shí)世界問題的代表性特征。然后將數(shù)據(jù)轉(zhuǎn)換為 ML 模型可以使用的格式。
建模
當(dāng)大多數(shù)數(shù)據(jù)從業(yè)者想到機(jī)器學(xué)習(xí)時(shí),他們的注意力都集中在建模組件上。建模階段包括以下階段:
模型開發(fā)和培訓(xùn) :這一階段是關(guān)于向機(jī)器學(xué)習(xí)模型提供數(shù)據(jù),然后調(diào)整超參數(shù),以便模型可以很好地推廣到不可見的數(shù)據(jù)輸入。
模型驗(yàn)證和評(píng)估 :必須評(píng)估機(jī)器學(xué)習(xí)模型的性能,以確定其行為是否符合預(yù)期。這涉及到確定一個(gè)數(shù)字度量,以評(píng)估模型對(duì)未知數(shù)據(jù)輸入的性能。
模型部署
最后,部署階段涉及使最終用戶可以訪問 ML 模型,監(jiān)控模型在生產(chǎn)中的性能,并更新模型。
部署 ML 模型不僅僅是孤立的模型。數(shù)據(jù)從業(yè)者部署整個(gè) ML 管道,這決定了如何編碼和自動(dòng)化端到端工作流。
如何實(shí)現(xiàn)這一點(diǎn)有幾個(gè)選項(xiàng)。
不同的模型部署選項(xiàng)
生成 ML 應(yīng)用程序是為了解決特定問題。因此,任何 ML 應(yīng)用程序的真正價(jià)值通常只有在模型或算法在生產(chǎn)環(huán)境中被積極使用時(shí)才能實(shí)現(xiàn)。
將 ML 模型從離線研究環(huán)境轉(zhuǎn)換到實(shí)時(shí)生產(chǎn)環(huán)境的過程稱為 deployment 。
部署是 ML 工作流的一個(gè)關(guān)鍵組件。它使模型能夠達(dá)到其預(yù)期目的。在項(xiàng)目規(guī)劃階段,必須考慮如何部署 ML 模型。在決定部署類型時(shí)要考慮的因素超出了本文的范圍。然而,我提供了一些關(guān)于可用選項(xiàng)的見解。
Web 服務(wù)
部署機(jī)器學(xué)習(xí)模型最直接的選擇是創(chuàng)建 web 服務(wù)。這意味著通過查詢 web 服務(wù)來獲得來自模型的預(yù)測。
使用 web 服務(wù)部署機(jī)器學(xué)習(xí)模型包括以下主要步驟:
Building the model: 必須創(chuàng)建 ML 模型,然后將其包裝在 web 服務(wù)中。然而,模型構(gòu)建通常需要與主 web 服務(wù)應(yīng)用程序不同的一組資源。將模型培訓(xùn)和 web 服務(wù)應(yīng)用程序環(huán)境分開是有意義的。
構(gòu)建 web 應(yīng)用程序: 訓(xùn)練模型后,必須將其持久化,以便將其導(dǎo)入 web 應(yīng)用程序。 web 應(yīng)用程序是使用開發(fā) web 服務(wù)的框架(如 Flask 、 FastAPI 和 Django )包裝的推理邏輯。
托管 web 服務(wù): 為了讓您的 web 服務(wù)全天候、自動(dòng)化和可擴(kuò)展,您必須托管應(yīng)用程序。這可以通過使用托管提供商來完成。在本系列的第三部分中,您將使用 Google App Engine 。
有關(guān)前兩個(gè)步驟的更多信息,請(qǐng)參見 Building a Machine Learning Microservice with FastAPI 。
無服務(wù)器計(jì)算
使用無服務(wù)器計(jì)算部署機(jī)器學(xué)習(xí)模型意味著您希望為模型預(yù)測提供服務(wù),而不必?fù)?dān)心如何管理底層基礎(chǔ)設(shè)施,例如計(jì)算資源。
仍然有一個(gè)服務(wù)器。所發(fā)生的一切是,您將管理服務(wù)器的責(zé)任交給了云提供商。現(xiàn)在,您可以更加專注于編寫性能更好的代碼。
無服務(wù)器計(jì)算提供程序的示例包括:
Amazon Web Services (AWS) Lambda
Microsoft Azure
Google Cloud Functions
要使用 Google Cloud Functions 部署機(jī)器學(xué)習(xí)模型,請(qǐng)參閱本系列的第 3 部分“實(shí)踐中的機(jī)器學(xué)習(xí):在 Google Cloud Provider 上部署 ML 模型[LINK]”。
托管 AI 云
一個(gè)管理的人工智能云正是它在錫上所說的。您提供了一個(gè)串行化模型,云提供商以較少的控制為代價(jià),為您完全管理基礎(chǔ)架構(gòu)。換句話說,您可以獲得云計(jì)算的優(yōu)化好處,而不必成為任何方面的專家。
托管 AI 云提供商的示例包括:
Amazon SageMaker
Google Cloud AI Platform
IBM Watson
Microsoft Azure Machine Learning
接下來是什么?
現(xiàn)在您已經(jīng)了解了端到端 ML 工作流,并且已經(jīng)看到了部署 ML 模型的可能方法,請(qǐng)繼續(xù)第 2 部分 Machine Learning in Practice: Build an ML Model ,在這里您將根據(jù)一些數(shù)據(jù)訓(xùn)練模型。
-
NVIDIA
+關(guān)注
關(guān)注
14文章
4994瀏覽量
103163 -
AI
+關(guān)注
關(guān)注
87文章
30998瀏覽量
269303 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8422瀏覽量
132720
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論