一文了解 AI 商品模型訓練平臺
AI平臺的初衷永遠是提高開發(fā)效率,加快算法迭代周期。通過產品化AI技術,讓運營人員能夠更貼近技術,更好地指導賦能業(yè)務場景,給客戶帶來更好的技術體驗和產品體驗。
本文是2020年的正式第一文,介紹了人工智能領域深度學習平臺的相關信息,內容包括:AI平臺的基本介紹、系統(tǒng)架構、實現(xiàn)難點和相關能力。
接下來,圍繞著作者自身搭建商品模型訓練平臺案例,分享相關設計經驗,內容包括:業(yè)務場景、訓練平臺系統(tǒng)架構的規(guī)劃、數(shù)據(jù)和模型中心、投產比問題和相關總結。
一、關于AI平臺
1.1 AI平臺介紹
AI模型訓練平臺,基于核心模塊和應用場景不同,又可以稱作深度學習平臺、機器學習平臺、人工智能平臺(以下統(tǒng)稱做AI平臺)。
AI平臺提供業(yè)務到產品、數(shù)據(jù)到模型、端到端,線上化的人工智能應用解決方案。
用戶在AI平臺能夠使用不同的深度學習框架進行大規(guī)模的訓練,對數(shù)據(jù)集和模型進行管理和迭代,同時通過API和本地部署等方式接入到具體業(yè)務場景中使用。
簡單理解,AI平臺=AI SAAS+(PAAS)+(IAAS)。
以下是騰訊DI-X和阿里PAI平臺的介紹:
DI-X(Data Intelligence X)是基于騰訊云強大計算能力的一站式深度學習平臺。它通過可視化的拖拽布局,組合各種數(shù)據(jù)源、組件、算法、模型和評估模塊,讓算法工程師和數(shù)據(jù)科學家在其之上,方便地進行模型訓練、評估及預測。
阿里云機器學習平臺PAI(Platform of Artificial Intelligence),為傳統(tǒng)機器學習和深度學習提供了從數(shù)據(jù)處理、模型訓練、服務部署到預測的一站式服務。
使用AI平臺,能夠簡化開發(fā)人員對數(shù)據(jù)預處理和管理、模型訓練和部署等繁瑣的代碼操作,加快算法開發(fā)效率,提高產品的迭代周期;并且通過AI平臺能整合計算資源、數(shù)據(jù)資源、模型資源,使用者能對不同資源進行復用和調度。
開放AI平臺后,也能有效進行商業(yè)化,對企業(yè)所處領域的AI業(yè)務生態(tài)環(huán)境有一定的推動和反饋。
國內外相關的AI平臺有:
國內:
- 華為ModelArts
- 阿里云 PAI
- 百度 Paddle Paddle
- 騰訊 DI-X深度學習平臺
- 金山云 人工智能平臺
- qingcloud 人工智能平臺
- 京東 JDAINeuFoundry
- 小米Cloud-ml平臺
國外:
- Microsoft Azure Machine Learning
- AWS Machine Learning
- Google Cloud Platform
1.2 AI平臺系統(tǒng)架構
基于一個企業(yè)整體系統(tǒng)的架構來看,AI平臺可視為業(yè)務的技術支撐中臺之一 (平行于數(shù)據(jù)中臺),起到承上啟下(承載業(yè)務,對接技術底層)的作用。
若一個企業(yè)當前已有數(shù)據(jù)中臺,則可將數(shù)據(jù)中臺作為AI中臺的數(shù)據(jù)輸入和數(shù)據(jù)輸出系統(tǒng)對象,AI中臺作為業(yè)務前臺的模型和算法供給平臺。若業(yè)務前臺有AI需求(如圖像識別、語義識別、商品推薦等),算法運營團隊則通過在AI平臺對模型的訓練迭代以支持。
根據(jù)企業(yè)不同的規(guī)模、資源和業(yè)務場景,其AI平臺會有不一樣的定位。
例如AI和數(shù)據(jù)可同為一個中臺、AI平臺可視為業(yè)務中臺一部分、AI平臺整合進技術中臺或后臺等。規(guī)模較小、資源有限的企業(yè)通常會選擇使用第三方AI平臺對業(yè)務進行服務,而非自建AI平臺。
企業(yè)架構示例:AI平臺作為AI中臺
關于AI平臺自身的架構設計,各第三方平臺都大同小異,主要是技術架構上的不同,暫時沒有必要去深入研究。
這里以京東NeuFoundry神鑄項目系統(tǒng)架構為例,初探一二:
NeuFoundry平臺架構圖
NeuFoundry基礎設施層采用Docker容器進行算力資源的池化,通過Kubernetes進行整體的資源管理、資源分配、任務運行、狀態(tài)監(jiān)控等,平臺集成了MySQL、Redis、MQ等多種中間件服務,通過數(shù)據(jù)標注、模型訓練、模型發(fā)布,生成自定義的AI能力,為各行各業(yè)的業(yè)務服務提供有力的支撐。
1.3 AI平臺實現(xiàn)難點
1)大數(shù)據(jù)處理問題
在當前階段,AI底層技術原理決定了“有多少數(shù)據(jù),模型能力就有多好”的情況。同時,企業(yè)在日常業(yè)務運行中會不斷產生新數(shù)據(jù)。
當數(shù)據(jù)需求和客觀數(shù)據(jù)量都很大,大數(shù)據(jù)的管理和處理能力對于一個AI平臺來說是最基礎的能力,開發(fā)人員需要結合AI模型訓練任務的制定合理的數(shù)據(jù)調度方案,同時對數(shù)據(jù)進行生命周期的管理(如定期的刪除冗余數(shù)據(jù)、不規(guī)則數(shù)據(jù))。
2)分布式計算
大數(shù)據(jù)的處理、模型的訓練都十分消耗資源。如果業(yè)務場景復雜,模型訓練時間長或者樣本規(guī)模大,超過單臺服務器能力時,需要支持分布式訓練。
微博深度學習訓練集群的解決方式是:
以TensorFlow分布式運行方式為例進行說明,如圖5所示。
一個TensorFlow分布式程序對應一個抽象的集群,集群(cluster)由工作節(jié)點(worker)和參數(shù)服務器(parameter server)組成。工作節(jié)點(worker)承擔矩陣乘、向量加等具體計算任務,計算出相應參數(shù)(weight和bias),并把參數(shù)匯總到參數(shù)服務器;參數(shù)服務器(parameter server)把從眾多工作節(jié)點收集參數(shù)匯總并計算,并傳遞給相應工作節(jié)點,由工作節(jié)點進行下一輪計算,如此循環(huán)往復。
3)AI平臺實現(xiàn)的最大瓶頸
在于企業(yè)對AI平臺投產比的權衡(頂層、中層、執(zhí)行層對AI平臺的價值認知),這一點會在下文重點說明 。
1.4 AI平臺相關能力
AI平臺不僅需要提供AI開發(fā)流程所需基礎技能,還需針對不同的用戶(產品經理、運營人員、算法工程師……)、不同的客戶(大企業(yè)、中小企業(yè)、傳統(tǒng)企業(yè)、科技企業(yè)……)提供對應所需服務。
我將AI平臺能力分為以下五類:
- 數(shù)據(jù)能力:數(shù)據(jù)獲取、數(shù)據(jù)預處理(ETL)、數(shù)據(jù)集管理、數(shù)據(jù)標注、數(shù)據(jù)增強……
- 模型能力:模型管理、模型訓練、模型驗證、模型部署、模型處理、模型詳情……
- 算法能力:支持各種算法、深度學習、數(shù)據(jù)運算處理框架、預置模型、算法調用、對算法組合操作……
- 部署能力:多重部署方式、在線部署、私有化部署、邊緣端部署、灰度/增量/全量部署……
- 其他能力:AI服務市場、工單客服、權限管理、工作流可視化……
華為ModelArts平臺技能
二、AI商品模型訓練平臺設計經驗分享
2.1 業(yè)務場景
在日常經營的過程中,每個新的商品都需要進行數(shù)據(jù)采集、標注,隨后將數(shù)據(jù)扔進對應模型文件進行訓練,其中涉及非常多重復且繁瑣的工作問題。
將數(shù)據(jù)采集處理到模型訓練部署的流程平臺化,能夠極大提升開發(fā)效率,讓運營人員和算法人員更好地分別針對場景和模型進行管理。
而且,數(shù)據(jù)、模型(可線上使用)對于企業(yè)來說是最核心的技術資源,不過初期一直處在黑匣子狀態(tài),只有算法人員可接觸和查看。所以在業(yè)務發(fā)展到達一定的階段時,就需要開始對其進行有效管理。
本文的AI平臺,主要服務零售行業(yè)商品模型訓練的業(yè)務場景,故稱作AI商品模型訓練平臺。
2.2 系統(tǒng)架構
綜合資源、場景、服務效率、商業(yè)化等多個維度去考量,作者設計的商品模型訓練平臺主要以數(shù)據(jù)中心和模型中心兩大核心子系統(tǒng)組成,一方面可以以最小的開發(fā)資源實現(xiàn)涵蓋了當前業(yè)務所需要的核心流程和個性化流程,另一方面也有利于平臺后續(xù)的能力拓展和進行商業(yè)化。
AI商品模型訓練平臺
數(shù)據(jù)中心主要服務3點數(shù)據(jù)管理業(yè)務需求:數(shù)據(jù)獲取、數(shù)據(jù)處理、數(shù)據(jù)評估。其中涉及能力有數(shù)據(jù)集獲取、數(shù)據(jù)集管理、數(shù)據(jù)增強、增強策略配置、數(shù)據(jù)標注、標注任務系統(tǒng)、半自動標注等。
模型中心主要服務3點模型管理業(yè)務需求:模型訓練和驗證、模型管理、模型部署。其中涉及能力有模型訓練、參數(shù)配置、訓練任務管理、訓練狀態(tài)可視化、模型文件管理、模型版本管理、模型狀態(tài)管理、模型操作、模型處理、模型處理策略管理、模型部署、部署業(yè)務管理等。
接下來,針對核心的業(yè)務需求逐一說明解決方案。
2.3 數(shù)據(jù)中心
2.3.1 數(shù)據(jù)獲取
AI模型訓練的第一步是對數(shù)據(jù)的獲?。ù颂幍臄?shù)據(jù)都為圖片數(shù)據(jù))。
數(shù)據(jù)的采集可以通過線下構建對應業(yè)務場景需要的環(huán)境進行拍攝采集,也可以通過平臺內已有數(shù)據(jù)(線上數(shù)據(jù)、舊數(shù)據(jù))、第三方數(shù)據(jù)(通過開源、付費購買、爬蟲爬取多多種形式)獲取。
- 線上數(shù)據(jù)集的處理:多采用badcase,重新標注、增強。
- 爬取數(shù)據(jù)集:爬取公開渠道如百度圖片的對應label數(shù)據(jù)集,并區(qū)分可用不可用。
因數(shù)據(jù)集都為圖片數(shù)據(jù),并且模型是基于深度學習技術構建,故涉及到數(shù)據(jù)ETL、特征工程等一些處理暫時不需要,后續(xù)可根據(jù)業(yè)務場景和應用技術的拓展,在技術架構和平臺架構補充上對應的能力。
數(shù)據(jù)集獲取完成后,可以將數(shù)據(jù)按照不同的類型存放,通過數(shù)據(jù)集管理頁面進管理。
數(shù)據(jù)類型可以按照不同的維度區(qū)分:
1)以標品和非標品區(qū)分
- 標品數(shù)據(jù):標品靜態(tài)狀態(tài)數(shù)據(jù)、標品動態(tài)狀態(tài)數(shù)據(jù);
- 非標品數(shù)據(jù):標品多角度數(shù)據(jù)、標品靜態(tài)狀數(shù)據(jù)、標品動態(tài)狀態(tài)數(shù)據(jù)、其他異常情況數(shù)據(jù)。
2)以數(shù)據(jù)來源渠道區(qū)分
- 線下:構建不同的場景(靜態(tài)動態(tài))進行拍攝采集;
- 線上:平臺內已有數(shù)據(jù)(線上數(shù)據(jù)、舊數(shù)據(jù))、第三方數(shù)據(jù)(開源數(shù)據(jù)集、付費數(shù)據(jù)集、爬取數(shù)據(jù)集)。
3)以數(shù)據(jù)格式區(qū)分
圖片、視頻、其他格式(2d、3d)。
4)以數(shù)據(jù)使用性區(qū)分
基本數(shù)據(jù)集、訓練數(shù)據(jù)集(含標注)、驗證數(shù)據(jù)集、異常數(shù)據(jù)集、自定義數(shù)據(jù)集。
數(shù)據(jù)集應當有生命周期的管理和備注信息,以免在運營一段時間后數(shù)據(jù)量雜亂冗余。
2.3.2 數(shù)據(jù)處理
部分場景的模型訓練前,需要對數(shù)據(jù)進行不同程度、不同方案的增強。運營人員或算法人員可以在數(shù)據(jù)增強的頁面上,選擇對應的數(shù)據(jù)集和數(shù)據(jù)增強策略,對數(shù)據(jù)進行增強,增強后的數(shù)據(jù)集將會同步以原數(shù)據(jù)的子文件形式,在數(shù)據(jù)集管理中以“增強數(shù)據(jù)集”類型展示。
同時,為適應多種業(yè)務場景和加快數(shù)據(jù)增強實驗的有效性,可利用已實現(xiàn)的數(shù)據(jù)增強技術,配置出多重數(shù)據(jù)增強方案。如:
- 旋轉:90°。
- 左右鏡像。
- 增亮2倍。
- 對比度1.25倍。
- 數(shù)據(jù)模糊3倍。
在數(shù)據(jù)集資源管理整合完成后,則可以在平臺上對數(shù)據(jù)進行標注。運營人員可以對平臺上已有數(shù)據(jù)集進行標注,也可以導入新的數(shù)據(jù)集文件進行標注。
通常標注工作有:
- 對基本數(shù)據(jù)集(沒有標注過的)進行標注或者半標注(半自動標注:利用少量數(shù)據(jù)集生成的模型進行自動標注,減少人工標注的工作量);
- 對異常數(shù)據(jù)集進行重新標準;
- 對自定義數(shù)據(jù)集進行標注。
標注方式支持圖像分類標注、方形框標注、圓形框標注、多邊形標注、語義分割標注、3d標注。標注內容有標品和非標品,也有其他需要標注的內容信息如手、人臉。
2.3.3 數(shù)據(jù)評估
數(shù)據(jù)評估工作貫穿數(shù)據(jù)獲取到數(shù)據(jù)處理整個過程,其操作質量和流程嚴密程度直接決定了數(shù)據(jù)質量的好壞,間接決定了模型表現(xiàn)效果的好壞。
在獲取數(shù)據(jù)以及對數(shù)據(jù)進行增強時,運營人員根據(jù)通用規(guī)則和經驗進行數(shù)據(jù)評估是否可用,不確定的情況下需詢問算法。但一般界定不確定的數(shù)據(jù)規(guī)則根據(jù)商品、當前模型、當前需求、算法認知和經驗等多個因素確定,不確定性比較大,現(xiàn)實中還是多以“個人經驗”為準則。這一部分隨著相關員工經驗和認知的增長,一定存在比較大的優(yōu)化空間。
日常需要對已有的數(shù)據(jù)集進行定期檢查、定量檢查,對數(shù)據(jù)質量和標注質量有一定的回歸驗證。同樣,標注任務流程化(包括標注任務指派、標注任務完成的多重審核、標注人員的任務完成度和錯誤數(shù)據(jù)統(tǒng)計以及對應的獎懲機制)也是數(shù)據(jù)質量保證的重要環(huán)節(jié)。
2.4 模型中心
2.4.1 模型訓練和驗證
確保數(shù)據(jù)提供到位后,運營人員或者算法人員可以在模型訓練的頁面上,選擇模型,選擇對應的數(shù)據(jù)集和對應的訓練參數(shù)(如AI算法以及網(wǎng)絡深度、訓練step)即可開始進行增量或全量的模型訓練。
如果涉及GPU服務器運算量等考量,還可選擇對應訓練GPU服務器。訓練過程中訓練狀態(tài)的可視化的展示可幫助運營人員對當前訓練任務的進度有所了解,以便對損失度停止下降或者其他異常等不符合預期的模型訓練任務進行暫停、取消等操作,解放算法人員的生產力。
TensorBoard界面
模型訓練完成后,可以對訓練集的數(shù)據(jù)進行,得出模型MAP、精確率、召回率等指標,評估模型效果和質量;也可以選取未標注的驗證數(shù)據(jù)集用模型進行識別,對模型的質量進行驗證。
2.4.2 模型管理
初始的模型資源可通過外部文件導入,或者直接新增訓練任務生成。
通常來說,模型大部分時間處于“使用”的狀態(tài)(線上的使用和更新的使用),故模型的管理主要針對模型的版本、模型的各種狀態(tài)(服務狀態(tài)、訓練狀態(tài))、模型的操作記錄、模型的詳細參數(shù)等四個方面進行。
在模型有優(yōu)化更新、替代、異常等情況下,通過“模型管理“:可以對模型進行操作,如暫停服務,復制模型、上線模型、刪除模型等操作。
有一些模型可能需要在比較特殊的業(yè)務場景下運行(例如邊緣端、硬件資源有限、網(wǎng)絡延遲較高)進行,所以針對該種情況,也需要設計對模型進行壓縮、調優(yōu)等傻瓜式一鍵式處理方案,目的也是減少開發(fā)在繁瑣工程上的工作量。
2.4.3 模型部署
在完成模型的訓練生成模型,并且對模型進行一定驗證后,可在”模型部署”對模型進行部署上線,部署流程通常為灰度部署過渡到全量部署。
在邊緣端應用場景下,也可以通過邊緣端定期請求拉取最新模型文件或者通過邊緣節(jié)點實現(xiàn)邊緣端部署。
2.5 AI平臺投產比權衡
上文提到,AI平臺實現(xiàn)的最大瓶頸,其實在于企業(yè)對平臺投產比的權衡。
作者團隊內部經過多次溝通考量,集中回答了以下三個問題,最終才決定對平臺進行1.0的初步開發(fā)(主要也是先驗證效用為主)。
AI平臺是否真的能支持業(yè)務,整體效率(開發(fā)效率、業(yè)務效率)能有多大提升?是否有潛在的實現(xiàn)后的未知成本(如算法人員需要花費大量時間教育運營人員使用某些模型訓練功能)?能否使用數(shù)字對價值進行量化?就算能量化,是否又額外需要開發(fā)和溝通成本?
現(xiàn)有的第三方AI平臺已支持大部分業(yè)務,是否能先使用第三方AI平臺進行業(yè)務鏈條的孵化?個性化的數(shù)據(jù)處理和訓練業(yè)務是否可依舊可通過開發(fā)手動處理?
AI平臺的商業(yè)化價值短期能否提現(xiàn)(因為其他企業(yè)因數(shù)據(jù)安全問題不會安心使用,同時也極度依賴企業(yè)的知名度)?若短期無法體現(xiàn),在什么階段可以體現(xiàn)?
關于價值權衡考量的問題沒有標準化答案,每個企業(yè)都以自身的資源、業(yè)務等多個因素綜合去考量,相關決策者和執(zhí)行者對AI平臺也有不一樣的認知,故主要是看不同企業(yè)各自最終討論出的最優(yōu)投產比是否能大于投入成本后決定是否開發(fā)AI平臺。
總結
不管是針對任何業(yè)務場景,AI平臺的初衷永遠是提高開發(fā)效率,加快算法迭代周期。通過產品化AI技術,讓運營人員能夠更貼近技術,更好地指導賦能業(yè)務場景,給客戶帶來更好的技術體驗和產品體驗。
不僅如此,企業(yè)從內部服務起完善AI平臺,逐漸開放平臺并對平臺進行商業(yè)化,服務原來沒有足夠資源和資金撬動AI技術的外部客戶,為互聯(lián)網(wǎng)AI生態(tài)的發(fā)展也起到了推動的作用。
AI平臺的發(fā)展和使用也是AI技術應用層面發(fā)展的重要節(jié)點,代表了AI技術開始產品化,更加落地,更加貼近業(yè)務層,也代表了企業(yè)有了更高效率的運用AI技術的方式。
作者:德拉克馬 ;公眾號:五百桶戶(ID:Drachmaos),交流是最好的進步途徑之一。
本文由 @德拉克馬 原創(chuàng)發(fā)布于人人都是產品經理,未經作者許可,禁止轉載。
題圖來自Unsplash,基于CC0協(xié)議。
我們公司有個項目是數(shù)據(jù)開放平臺,主要是給各地方展示他們可以共享的信息資源,有需要的人可以進行下載查看,
系統(tǒng)要求要有數(shù)據(jù)基礎模塊(從各個渠道獲取數(shù)據(jù)包括抽取方法規(guī)則等)、數(shù)據(jù)中心模塊(收集匯總加工后的數(shù)據(jù))、前端數(shù)據(jù)庫開放平臺(展示可以發(fā)布共享的信息資源)。但是不知道從頭開始做系統(tǒng),還麻煩指教下。