九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
58人工智能平臺WPAI設(shè)計與實現(xiàn)

簡介

AI正在驅(qū)動行業(yè)變革,為加速58生活服務(wù)行業(yè)AI應(yīng)用的落地,構(gòu)建一套通用的AI算法平臺以提高算法研發(fā)效率很有必要。我們設(shè)計實現(xiàn)了五八同城人工智能平臺(WPAI,Wuba Platform of AI),旨在為全集團各業(yè)務(wù)部門賦能AI算法研發(fā)能力。WPAI支持深度學(xué)習(xí)和傳統(tǒng)機器學(xué)習(xí)功能,將特征工程、模型訓(xùn)練和在線預(yù)測一整套算法研發(fā)流程抽象到Web系統(tǒng),已發(fā)展成一站式算法研發(fā)平臺,支撐了58集團內(nèi)推薦、搜索、廣告、圖文識別、智能客服、智能外呼等各類應(yīng)用。

整體架構(gòu)

上圖是WPAI的整體架構(gòu),對外提供特征工程、模型訓(xùn)練和在線預(yù)測等功能,包括機器學(xué)習(xí)和深度學(xué)習(xí)兩部分。機器學(xué)習(xí)部分基于Spark MLib、DMLC等技術(shù)實現(xiàn),對各種數(shù)據(jù)源、組件、算法、模型和評估模塊進行組合,使得算法工程師在其上能夠方便地進行特征提取、模型訓(xùn)練和在線預(yù)測。深度學(xué)習(xí)部分實現(xiàn)對GPU/CPU資源的統(tǒng)一管理和調(diào)度,基于TensorFlow、Caffe等框架進行DNN、CNN、RNN等深度學(xué)習(xí)模型的訓(xùn)練和預(yù)測。平臺向各種算法應(yīng)用輸出算法能力,如推薦、搜索等傳統(tǒng)算法,圖文、語音識別的感知類AI算法,以及智能客服的認(rèn)知類AI算法。下面將分別從機器學(xué)習(xí)和深度學(xué)習(xí)兩方面來詳細(xì)介紹平臺的實現(xiàn)。

機器學(xué)習(xí)平臺

平臺架構(gòu)及流程設(shè)計

機器學(xué)習(xí)平臺提供征工程、離線訓(xùn)練、在線預(yù)測三個主要功能,整體架構(gòu)如下圖所示:

平臺包括計算層、任務(wù)調(diào)度、數(shù)據(jù)存儲層、管理后臺、Web層和在線預(yù)測服務(wù):

  • 計算層包括Hadoop、Spark、Yarn等,是離線任務(wù)的計算資源。

  • 任務(wù)調(diào)度層包括Kubernetes和Docker,Kubernetes負(fù)責(zé)Docker容器的調(diào)度。特征工程和XGBoost/FM/LR模型的調(diào)度執(zhí)行封裝在Docker鏡像中。Kubernetes會啟動多個Pod進行任務(wù)的分布式調(diào)度。

  • 數(shù)據(jù)存儲層主要包括HDFS和MySQL,HDFS存儲樣本數(shù)據(jù)、特征數(shù)據(jù)以及訓(xùn)練好的模型。MySQL存儲任務(wù)信息及操作日志等。

  • 管理后臺實現(xiàn)特征工程管理、模型管理、作業(yè)管理和日志管理等功能。

  • Web層對外提供可視化操作頁面,用戶在頁面上可以完成任務(wù)新建、結(jié)果查看、日志查看等操作。

  • 我們對外以SCF服務(wù)的方式提供在線預(yù)測服務(wù),訓(xùn)練好的模型在平臺上申請上線后即可進行在線預(yù)測打分。

機器學(xué)習(xí)平臺從特征工程、模型訓(xùn)練到在線預(yù)測整體的流程設(shè)計如下圖所示:

整個流程分為線下和線上兩部分,線下利用準(zhǔn)備好的樣本數(shù)據(jù)先后執(zhí)行數(shù)據(jù)預(yù)處理、特征提取得到特征數(shù)據(jù),再將得到的特征數(shù)據(jù)進行離線訓(xùn)練得到模型文件并對模型文件進行評價,判斷是否達到上線標(biāo)準(zhǔn)。線下流程生成的特征映射文件、模型文件提供到線上預(yù)測使用。線上服務(wù)會加載離線生成的特征映射文件和模型文件,對線上請求進行特征提取和模型預(yù)測。

整體流程在設(shè)計上將特征庫和模型庫獨立出來,供離線和線上共同使用,這樣設(shè)計具有特征提取和模型預(yù)測 線上和線下一致、特征自動編號等優(yōu)點。特征庫實現(xiàn)如下圖所示,新增加模型只需要根據(jù)實際情況,重寫Init和Predict方法。

特征工程

特征工程是指從原始樣本數(shù)據(jù)轉(zhuǎn)換為特征向量的過程,樣本數(shù)據(jù)經(jīng)過特征工程后得到libsvm格式的特征數(shù)據(jù)供機器學(xué)習(xí)模型訓(xùn)練使用。特征工程是機器學(xué)習(xí)中最重要的起始步驟,會直接影響機器學(xué)習(xí)模型的效果。


不同業(yè)務(wù)部門的原始樣本數(shù)據(jù)千差萬別,使得原始樣本數(shù)據(jù)到特征向量的轉(zhuǎn)換過程非常個性化,比如租房關(guān)注的是廳、室、面積、租金等,而二手車關(guān)注的是車的品牌、車齡、里程等特征。在WPAI之前,我們做推薦業(yè)務(wù)時特征工程的實現(xiàn)是不同業(yè)務(wù)線不同模型單獨實現(xiàn),如下圖所示,每個業(yè)務(wù)線定義各自用到的字段和特征提取方法。這種實現(xiàn)方式的缺點是不具備通用性,每次都得單獨進行開發(fā),效率低下。

WPAI實現(xiàn)了通用特征工程處理框架。我們對特征提取方法進行了抽象,提供7種通用特征抽取函數(shù)供用戶選擇,如下所示,后面會根據(jù)需求進行擴充。

1)oneHotWithHashBucket

哈希分桶,設(shè)置Bucket大小,系統(tǒng)根據(jù)Bucket大小對字段進行哈希離散。

2)oneHotWithInt

直接用Int型字段值作為維度。

3)oneHotWithEnum

枚舉類型字段,如星期、性別。

4)discreteWithZone

區(qū)間離散化,用戶設(shè)置需要離散的區(qū)間數(shù),系統(tǒng)提供“等頻“和”等距“兩種方式,等頻方式劃分每個區(qū)間里樣本出現(xiàn)頻次相同,等距方式劃分每個區(qū)間的步長一致。

5)generateCrossFeature

對兩個離散后的字段進行交叉,如 性別為男,年齡為青年, 對性別、年齡求交叉特征后得到男性青年。

6)noDiscrete

不進行離散化,如果字段是數(shù)字則直接將字段值作為特征值,如果字段是字符,將字符轉(zhuǎn)換后數(shù)字后作為特征值。

7)sentenceEmbeddingWithBow

句子按分詞進行特征提取,如“回龍觀三室出租“分詞為”回龍觀“、”三室“、”出租“,然后分別對每個單詞進行特征提取,支持平臺分詞和手動分詞兩種方式。

基于以上思想,整個特征框架設(shè)計如下圖所示。

用戶在創(chuàng)建特征工程任務(wù)時配置樣本數(shù)據(jù)格式和特征提取方法,平臺通過Java反射利用特征提取函數(shù)庫進行特征抽取,得到id:local:value格式特征數(shù)據(jù),其中id為特征配置中對應(yīng)的特征編號,local為這個特征的維度,value為特征值。生成的id:local:value格式特征數(shù)據(jù)經(jīng)過特征轉(zhuǎn)換得到最終的libsvm格式數(shù)據(jù)。

模型訓(xùn)練

機器學(xué)習(xí)模型離線訓(xùn)練過程實現(xiàn)根據(jù)特征數(shù)據(jù)生成模型文件。離線訓(xùn)練特點是數(shù)據(jù)量大,單機訓(xùn)練時存在訓(xùn)練時間過長、內(nèi)存不夠用、模型收斂速度慢等問題。WPAI基于Spark MLib、DMLC實現(xiàn)了XGBoost、FM、LR等模型的大規(guī)模分布式訓(xùn)練。整個離線訓(xùn)練流程如下圖所示,從樣本數(shù)據(jù)生成libsvm格式特征數(shù)據(jù)后就可以選擇一個模型,配置好模型參數(shù)后開始訓(xùn)練,訓(xùn)練完成后利用測試數(shù)據(jù)進行評價,得到auc、rmse等評價指標(biāo)評判模型好壞,通過特征選擇、模型參數(shù)調(diào)整等方法進行模型訓(xùn)練的迭代,通過評價指標(biāo)來比較模型的效果。

模型離線訓(xùn)練架構(gòu)設(shè)計如下圖所示,向用戶提供Web可視化操作頁面,用戶通過Web頁面可以完成模型的新建、調(diào)參、訓(xùn)練、發(fā)布上線等操作。模型訓(xùn)練程序執(zhí)行環(huán)境封裝成Docker鏡像,通過Kubernetes進行調(diào)度,Kubernetes會啟動多個pod,實現(xiàn)訓(xùn)練任務(wù)的分布式調(diào)度,達到負(fù)載均衡目的,pod中部署有日志收集模塊實時收集任務(wù)運行日志供web查看。底層的Spark、Yarn為平臺提供計算資源。

在線預(yù)測

離線訓(xùn)練模型最終目的是應(yīng)用到生產(chǎn)環(huán)境,所以設(shè)計一個通用的在線預(yù)測服務(wù)十分關(guān)鍵。機器學(xué)習(xí)在線預(yù)測服務(wù)整體設(shè)計如下圖所示,包括數(shù)據(jù)層、數(shù)據(jù)更新層和邏輯層。

  • 數(shù)據(jù)層

數(shù)據(jù)層包括HDFS和MySQL。在線預(yù)測用到的模型文件和特征索引文件存儲在HDFS上中,通過文件讀寫服務(wù)提供接口供在線預(yù)測調(diào)用。MySQL用于存儲特征工程和模型的配置信息。

  • 數(shù)據(jù)更新層

數(shù)據(jù)更新層實現(xiàn)模型、特征的初始化和更新,與模型訓(xùn)練、特征工程模塊互連互通,以主動拉取的方式自動更新。服務(wù)啟動時會將已經(jīng)上線的模型和特征配置批量初始化,離線訓(xùn)練模型有更新時會同步更新到線上,線上模型更新不影響在線預(yù)測請求。

  • 邏輯層

邏輯層實現(xiàn)對輸入數(shù)據(jù)的預(yù)測打分。預(yù)測包括特征數(shù)據(jù)預(yù)測和樣本數(shù)據(jù)預(yù)測兩個接口。特征數(shù)據(jù)預(yù)測接口適用于自己實現(xiàn)特征工程在平臺做模型訓(xùn)練的任務(wù),直接調(diào)用平臺的模型打分。樣本數(shù)據(jù)預(yù)測接口適用于特征工程和模型訓(xùn)練都在平臺完成的任務(wù),預(yù)測時先將輸入的樣本數(shù)據(jù)抽取為特征再批量進行打分。

邏輯層主要模塊包括特征抽取和批量打分。特征抽取由FeatureCenter完成,其中FeatureGenerator實現(xiàn)不同類型的特征抽取,F(xiàn)eatureManager加載各個特征工程的配置調(diào)用FeatureGenerator中方法完成特征抽取。ModelCenter實現(xiàn)XGBoost、FM、LR等模型的打分邏輯。

深度學(xué)習(xí)平臺

平臺架構(gòu)

深度學(xué)習(xí)平臺實現(xiàn)對GPU、CPU資源的統(tǒng)一管理,支持TensorFlow單機、分布式離線訓(xùn)練,TensorFlow、Caffe及自定義框架的在線預(yù)測,其整體架構(gòu)如下圖所示。

平臺包括硬件層、集群管理層、算法層、Web層和在線預(yù)測:

  • 硬件層提供CPU和GPU資源,由Kubernetes進行統(tǒng)一管理和調(diào)度,為離線訓(xùn)練和線上預(yù)測提供計算資源。

  • 集群管理層包括Kubernetes、Docker、Calico、ETCD等組件,Kubernetes負(fù)責(zé)離線訓(xùn)練、在線預(yù)測等任務(wù)pod的統(tǒng)一調(diào)度,Docker提供虛擬容器支持,Calico為Kubernetes和Docker容器提供多主機間通信,ETCD負(fù)責(zé)集群信息的存儲。集群管理層實現(xiàn)了對GPU、CPU資源的統(tǒng)一管理。

  • 算法層支持TensorFlow、Caffe深度學(xué)習(xí)框架,在框架之上封裝了DNN、CNN、RNN、LSTM等深度學(xué)習(xí)模型。

  • 在線預(yù)測服務(wù)基于TensorFlow-Serving、GRPC和五八自研的RPC框架SCF實現(xiàn),通用性高,支持TensorFlow、Caffe及用戶自定義模型的GPU/CPU預(yù)測。

  • Web管理層提供可視化操作,用戶在Web頁面可以完成資源申請、離線訓(xùn)練、在線預(yù)測上線、模型部署及日志查看等操作。

離線訓(xùn)練

深度學(xué)習(xí)離線訓(xùn)練使用TensorFlow框架通過樣本數(shù)據(jù)生成DNN、CNN、RNN等深度學(xué)習(xí)模型,包括單機和分布式版本,整體架構(gòu)設(shè)計如下圖所示。

Web管理層向用戶提供可視化操作界面,通過Web界面用戶可以進行訓(xùn)練任務(wù)創(chuàng)建、訓(xùn)練日志實時查看、模型管理、資源配置等操作。Web層還提供了TensorFlow可視化工具TensorBoard功能,可以對訓(xùn)練過程進行查看。

訓(xùn)練邏輯層基于TensorFlow框架實現(xiàn),平臺提供TensorFlow 1.6 1.8 1.10等版本的 CPU/GPU鏡像供用戶選擇使用。平臺內(nèi)部基于apt-mirror搭建了Ubantu私有源,基于python devpi搭建了私有pypi源,用戶可以在鏡像中自行安裝需要的依賴包環(huán)境。訓(xùn)練任務(wù)通過Kubernetes進行調(diào)度分配到底層的GPU或CPU硬件計算資源上執(zhí)行,實現(xiàn)對GPU多卡資源、CPU資源的統(tǒng)一管理。

WPAI與公司Hadoop集群打通,訓(xùn)練輸入數(shù)據(jù)和結(jié)果輸出統(tǒng)一存儲于公司HDFS上。

在線預(yù)測

深度學(xué)習(xí)模型應(yīng)用到實際生產(chǎn)線上環(huán)境需要實現(xiàn)在線預(yù)測功能,由于不同業(yè)務(wù)方模型種類和數(shù)據(jù)類型不同,所以需要一套通用的在線預(yù)測框架。

WPAI基于Kubernetes、Docker、TensorFlow-Serving、gRPC、SCF等實現(xiàn)了深度學(xué)習(xí)通用在線預(yù)測框架??蚣苄枰鉀Q通用性問題:1)不同模型預(yù)測請求數(shù)據(jù)和返回數(shù)據(jù)格式不同。 2)模型種類凡多,除不同的TensorFlow模型外,還有一些用戶個性化模型。

針對請求/返回數(shù)據(jù)格式不同問題,WPAI向用戶提供SCF服務(wù),SCF服務(wù)請求和返回協(xié)議設(shè)計為通用的Object類型,每個模型由用戶提供一個請求/返回數(shù)據(jù)解析的jar包,在模型上線時上傳到平臺。平臺SCF服務(wù)對解析jar包進行熱加載,SCF收到請求后根據(jù)jar包將請求解析為TensorFlow-Serving需要的格式,預(yù)測完成后又將返回的預(yù)測結(jié)果調(diào)用jar包解析為用戶需要的格式進行返回,整個解析流程如下圖所示。

針對用戶個性化模型問題,WPAI實現(xiàn)了用戶自定義模型的在線預(yù)測功能。用戶自定義模型通過gRPC框架啟動,封裝在Docker鏡像中,SCF服務(wù)中通過gRPC客戶端進行調(diào)用,如下圖所示。

深度學(xué)習(xí)在線預(yù)測框架整體設(shè)計如下圖所示。

  • SCF服務(wù)作為接入層負(fù)責(zé)接收業(yè)務(wù)方調(diào)用請求,并將請求轉(zhuǎn)發(fā)到后端pod上,實現(xiàn)對解析jar包的熱加載,對請求和返回數(shù)據(jù)進行解析。

  • Serving包括TensorFlow-Serving、自定義gRPC服務(wù)等,運行在pod中執(zhí)行預(yù)測計算。一個預(yù)測任務(wù)對應(yīng)一組pod,pod統(tǒng)一由Kubernetes調(diào)度。Kubernetes記錄了任務(wù)運行對應(yīng)的pod ip,并實時進行更新。SCF服務(wù)通過調(diào)用Kubernetes watch接口,能實時拿到任務(wù)對應(yīng)的pod ip信息,以加權(quán)輪詢方式將請求轉(zhuǎn)發(fā)到對應(yīng)的pod上,實現(xiàn)負(fù)載均衡。

  • Web系統(tǒng)提供可視化操作界面,方便用戶完成預(yù)測jar包上傳、預(yù)測服務(wù)上線、模型部署及日志查看等操作。

總結(jié)

本文重點介紹了58人工智能平臺WPAI的整體架構(gòu),并分別介紹了機器學(xué)習(xí)和深度學(xué)習(xí)兩部分的架構(gòu)和流程設(shè)計。WPAI支持模型大規(guī)模建模、GPU/CPU任務(wù)調(diào)度,加速業(yè)務(wù)AI應(yīng)用過程,提高工作效率。

WPAI平臺上線后為公司各大業(yè)務(wù)線算法模型迭代提供支持,目前平臺離線訓(xùn)練模型數(shù)300+,線上預(yù)測模型數(shù)80+,線上預(yù)測服務(wù)日均調(diào)用量25億+,在推薦、搜索、圖像處理、文本分析、智能客服、智能外呼等產(chǎn)品上得到了廣泛應(yīng)用。后續(xù)我們將持續(xù)在功能、性能、易用以及開放性等方面不斷優(yōu)化,支持更多的算法組件,在人工智能方面為公司各個業(yè)務(wù)提效賦能。

參考資料《58同城人工智能平臺架構(gòu)實踐》


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
人物 | 陳興振:58同城機器學(xué)習(xí)平臺資源使用率優(yōu)化實踐
【年度系列】使用Tensorflow預(yù)測股票市場變動
從算法到工程,推薦系統(tǒng)全面總結(jié)
Amazon SageMaker在中國區(qū)上線,10分鐘即可訓(xùn)練出機器學(xué)習(xí)模型
快20倍!谷歌AI推TensorFlow 3D,智能汽車好用
【人工智能工程師】掌握這10個項目,秒殺90%面試者!
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服