部(bù)署(shǔ)NVIDIAT4GPUVIVIVO推薦系(xì)統:支持(chí)1亿(yì)用(yòng)戶智能(néng)服(fú)務(wù)

 行業动态     |      2022-05-16 10:18:57    |      瀝拓

  案(àn)例介紹及(jí)其(qí)應(yìng)用(yòng)背景。

  VIVOAI中(zhōng)間(jiān)平台(tái)的(de)最(zuì)終(zhōng)目标(biāo)是(shì)为2.6亿(yì)+VIVO用(yòng)戶提(tí)供終(zhōng)极智能(néng)服(fú)務(wù),而(ér)NVIDIA則为VIVO推薦系(xì)統提(tí)供強(qiáng)大(dà)的(de)计算支持(chí),實(shí)際優化(huà)。

  推薦系(xì)統的(de)大(dà)規模部(bù)署(shǔ)带(dài)来(lái)了(le)许多(duō)工程挑战,借(jiè)助NVIDIATensort,TritonandMPS(Multi-Processservice)和(hé)單张(zhāng)T4GPU推理(lǐ)卡,其(qí)性(xìng)能(néng)優于(yú)78核CPU服(fú)務(wù)器,成(chéng)本(běn)也(yě)降低(dī)了(le)75%。

  团(tuán)隊實(shí)踐並(bìng)比較了(le)三(sān)種(zhǒng)不(bù)同(tóng)的(de)工程方(fāng)案(àn),其(qí)中(zhōng)性(xìng)價比最(zuì)高(gāo)的(de)通(tòng)用(yòng)GPU方(fāng)案(àn)充分(fēn)發(fà)挥了(le)MPS和(hé)Tensorflow的(de)性(xìng)能(néng),創造性(xìng)地(dì)解(jiě)決了(le)推薦场(chǎng)景的(de)問(wèn)题,包(bāo)括:如(rú)何滿足頻繁的(de)算法(fǎ)叠代(dài)需求,如(rú)何開(kāi)發(fà)不(bù)支持(chí)的(de)操作(zuò)插件(jiàn),如(rú)何提(tí)高(gāo)低(dī)效的(de)推理(lǐ)服(fú)務(wù)性(xìng)能(néng)。

  VIVOAI平台(tái)致(zhì)力于(yú)打(dǎ)造一(yī)个(gè)完整的(de)人(rén)工智能(néng)中(zhōng)間(jiān)平台(tái),打(dǎ)造一(yī)个(gè)全(quán)面(miàn)的(de)行業領先(xiān)的(de)大(dà)型分(fēn)布(bù)式机器學(xué)習平台(tái),應(yìng)用(yòng)于(yú)內(nèi)容推薦、商業實(shí)現(xiàn)、搜索等業務(wù)场(chǎng)景,为2.6亿(yì)+VIVO用(yòng)戶提(tí)供极致(zhì)的(de)智能(néng)服(fú)務(wù)。

  VIVOAI中(zhōng)間(jiān)平台(tái)始(shǐ)終(zhōng)服(fú)務(wù)于(yú)企業对智能(néng)深度(dù)發(fà)展(zhǎn)的(de)需求,並(bìng)在(zài)數據(jù)中(zhōng)心平台(tái)的(de)基礎上(shàng)增加了(le)集成(chéng)智能(néng)服(fú)務(wù)的(de)概念。並(bìng)以數據(jù)采集、存儲、特(tè)征處(chù)理(lǐ)、分(fēn)析、模型構建、培訓、評儲、特(tè)征處(chù)理(lǐ)、分(fēn)析、模型構建、培訓和(hé)評估,使其(qí)高(gāo)度(dù)组成(chéng)、配置和(hé)自(zì)动化(huà)。

  Figure1.AI中(zhōng)台(tái)系(xì)統架構图(tú)(VIVO研究所(suǒ)授權的(de)图(tú)片)

  在(zài)整个(gè)AI中(zhōng)間(jiān)平台(tái)架構中(zhōng),推薦中(zhōng)間(jiān)平台(tái)是(shì)最(zuì)重(zhòng)要(yào)的(de)核心,也(yě)是(shì)最(zuì)具商業價值的(de)部(bù)分(fēn)。它(tā)不(bù)僅需要(yào)承载(zài)數亿(yì)VIVO用(yòng)戶,還(huán)包(bāo)括每天(tiān)數千(qiān)万(wàn)的(de)數據(jù)。本(běn)文(wén)從推薦系(xì)統工程的(de)角(jiǎo)度(dù)解(jiě)读(dú)了(le)以下(xià)三(sān)个(gè)方(fāng)面(miàn):VIVO的(de)智能(néng)推薦系(xì)統是(shì)如(rú)何運行的(de)?在(zài)實(shí)際應(yìng)用(yòng)场(chǎng)景中(zhōng)遇到(dào)了(le)哪些(xiē)挑战?如(rú)何加快(kuài)推薦系(xì)統的(de)部(bù)署(shǔ)?

  Figure2.推薦中(zhōng)台(tái)系(xì)統架構(VIVO研究所(suǒ)授權的(de)图(tú)片)

  經(jīng)过(guò)验(yàn)證,該方(fāng)案(àn)可(kě)以有(yǒu)效解(jiě)決GPU在(zài)推薦業務(wù)中(zhōng)的(de)通(tòng)用(yòng)性(xìng)問(wèn)题;同(tóng)时(shí),GPU可(kě)以更(gèng)有(yǒu)效地(dì)使用(yòng)。目前(qián),它(tā)已經(jīng)在(zài)一(yī)些(xiē)推薦業務(wù)中(zhōng)實(shí)施。在(zài)壓力測量(liàng)和(hé)性(xìng)能(néng)方(fāng)面(miàn),單张(zhāng)T4GPU推理(lǐ)卡的(de)性(xìng)能(néng)優于(yú)78核CPU服(fú)務(wù)器,约6台(tái)以上(shàng)。在(zài)成(chéng)本(běn)方(fāng)面(miàn),VIVO自(zì)主(zhǔ)研發(fà)的(de)通(tòng)用(yòng)GPU方(fāng)案(àn)在(zài)Tensort方(fāng)案(àn)的(de)基礎上(shàng)實(shí)現(xiàn)了(le)更(gèng)高(gāo)的(de)QPS和(hé)更(gèng)低(dī)的(de)延遲,可(kě)以节(jié)省(shěng)约75%的(de)成(chéng)本(běn)!

  本(běn)案(àn)主(zhǔ)要(yào)應(yìng)用(yòng)于(yú)NVIDIAT4GPU及(jí)相關(guān)工具,包(bāo)括NVIDATensort、Triton、MPS等。

  客戶簡介

  VIVO是(shì)一(yī)家(jiā)全(quán)球移动互聯网(wǎng)智能(néng)終(zhōng)端公(gōng)司,以設计驅动創造伟大(dà)産品,打(dǎ)造以智能(néng)終(zhōng)端和(hé)智能(néng)服(fú)務(wù)为核心的(de)科技公(gōng)司。致(zhì)力于(yú)为消費者(zhě)打(dǎ)造智能(néng)手(shǒu)机産品,拥有(yǒu)极致(zhì)的(de)攝影、免費遊戲和(hé)高(gāo)保真(zhēn)音(yīn)乐(lè)。根(gēn)據(jù)《2020年(nián)胡潤中(zhōng)國(guó)十(shí)大(dà)消費電(diàn)子企業報告》,VIVO以1750亿(yì)元(yuán)排名(míng)第(dì)三(sān)。

  客戶挑战

  在(zài)工程實(shí)踐中(zhōng),VIVO推薦系(xì)統面(miàn)臨的(de)第(dì)一(yī)个(gè)問(wèn)题是(shì)如(rú)何平穩地(dì)将各(gè)種(zhǒng)推薦業務(wù)邏輯從CPU平台(tái)遷移到(dào)GPU平台(tái)。鑒于(yú)目前(qián)有(yǒu)多(duō)種(zhǒng)推薦業務(wù)场(chǎng)景,包(bāo)括應(yìng)用(yòng)商店(diàn)、移动浏覽器、負屏幕信(xìn)息流等。每个(gè)场(chǎng)景都有(yǒu)自(zì)己的(de)算法(fǎ)模型和(hé)業務(wù)流程。考慮到(dào)當前(qián)業務(wù)的(de)無損遷移,如(rú)何将各(gè)種(zhǒng)分(fēn)散(sàn)的(de)智能(néng)服(fú)務(wù)整合到(dào)一(yī)个(gè)統一(yī)的(de)推薦平台(tái)是(shì)一(yī)个(gè)巨大(dà)的(de)挑战。

  长(cháng)期以来(lái),CPU一(yī)直(zhí)是(shì)支持(chí)和(hé)推薦業務(wù)场(chǎng)景的(de)主(zhǔ)流硬(yìng)件(jiàn)平台(tái)。然而(ér),VIVO工程团(tuán)隊發(fà)現(xiàn),在(zài)推理(lǐ)服(fú)務(wù)中(zhōng),CPU的(de)性(xìng)能(néng)始(shǐ)終(zhōng)达(dá)不(bù)到(dào)要(yào)求的(de)标(biāo)準,不(bù)僅计算能(néng)力弱(ruò),而(ér)且(qiě)響應(yìng)延遲和(hé)QPS在(zài)應(yìng)对複雜模型时(shí)也(yě)無法(fǎ)滿足實(shí)时(shí)性(xìng)和(hé)高(gāo)並(bìng)發(fà)性(xìng)的(de)需求。

  此(cǐ)时(shí)客戶尝試使用(yòng)NVIDIAGPU實(shí)現(xiàn)推薦業務(wù)的(de)推理(lǐ)服(fú)務(wù),有(yǒu)效解(jiě)決CPU计算能(néng)力和(hé)性(xìng)能(néng)的(de)瓶(píng)頸,期待更(gèng)大(dà)的(de)成(chéng)本(běn)優勢。經(jīng)过(guò)大(dà)量(liàng)的(de)工程實(shí)踐,結果(guǒ)表(biǎo)明(míng),一(yī)台(tái)基于(yú)NVIDIAT4GPU的(de)推理(lǐ)服(fú)務(wù)器的(de)性(xìng)能(néng)可(kě)以相當于(yú)24台(tái)CPU机器。毫(háo)無疑問(wèn),GPU的(de)整體(tǐ)性(xìng)能(néng)具有(yǒu)性(xìng)能(néng)和(hé)成(chéng)本(běn)優勢。因此(cǐ),客戶也(yě)認为,公(gōng)司甚至(zhì)行業都已經(jīng)認为,使用(yòng)GPU作(zuò)为推薦業務(wù)场(chǎng)景的(de)推理(lǐ)平台(tái)。

  應(yìng)用(yòng)方(fāng)案(àn)

  由(yóu)于(yú)GPU芯片體(tǐ)系(xì)結構的(de)獨特(tè)性(xìng),很难有(yǒu)效利用(yòng)GPU的(de)计算能(néng)力,而(ér)不(bù)需要(yào)優化(huà)原始(shǐ)的(de)TensorFlow模型。为了(le)解(jiě)決这(zhè)个(gè)問(wèn)题,VIVO工程团(tuán)隊投入(rù)了(le)大(dà)量(liàng)的(de)人(rén)力和(hé)时(shí)間(jiān)来(lái)優化(huà)和(hé)轉(zhuǎn)換推薦的(de)模型。首先(xiān)設计的(de)是(shì)Tensorrt方(fāng)案(àn),即使用(yòng)NVIDIA推理(lǐ)加速工具Tensorrt,結合Triton的(de)serving模式,最(zuì)大(dà)化(huà)GPU的(de)整體(tǐ)收(shōu)益。

  具體(tǐ)来(lái)说(shuō),通(tòng)过(guò)Onnx将訓练導出(chū)的(de)Tensorflow模型轉(zhuǎn)換为Tensorrt模型,然後(hòu)使用(yòng)NVIDIA提(tí)供的(de)推理(lǐ)服(fú)務(wù)框架Triton加载(zài)TensorRT模型。業務(wù)代(dài)碼使用(yòng)VIV封裝(zhuāng)Triton的(de)JNI接口,将業務(wù)请求輸入(rù)TensorRT模型進(jìn)行推理(lǐ)计算。

  Figure3(VIV研究所(suǒ)授權的(de)图(tú)片)

  測量(liàng)結果(guǒ)表(biǎo)明(míng),該方(fāng)案(àn)獲得了(le)預期的(de)在(zài)線(xiàn)收(shōu)益。性(xìng)能(néng)方(fāng)面(miàn),單张(zhāng)T4GPU推理(lǐ)卡,性(xìng)能(néng)優于(yú)78核CPU服(fú)務(wù)器,约6台(tái)以上(shàng)。以下(xià)面(miàn)的(de)场(chǎng)景为例,在(zài)相同(tóng)的(de)精排服(fú)務(wù)请求中(zhōng),QPS为600,BatchSize为3000,不(bù)同(tóng)方(fāng)案(àn)的(de)成(chéng)本(běn),Tensort方(fāng)案(àn)可(kě)以节(jié)省(shěng)约14%的(de)成(chéng)本(běn):

  方(fāng)案(àn)CU机器數量(liàng)GPU机器數量(liàng)相比CPU方(fāng)案(àn)成(chéng)本(běn)。

  -

  ?

  NVIDIA机器學(xué)習团(tuán)隊为了(le)進(jìn)一(yī)步提(tí)高(gāo)線(xiàn)上(shàng)收(shōu)益,最(zuì)大(dà)限度(dù)地(dì)提(tí)高(gāo)GPU利用(yòng)率,與(yǔ)VIVO合作(zuò),不(bù)斷優化(huà)現(xiàn)有(yǒu)效果(guǒ),探索更(gèng)多(duō)技術(shù)方(fāng)案(àn)的(de)可(kě)行性(xìng)。

  經(jīng)过(guò)深入(rù)讨論,我(wǒ)们(men)發(fà)現(xiàn)目前(qián)的(de)方(fāng)案(àn)(triton+tensort)确實(shí)可(kě)以有(yǒu)效利用(yòng)GPU,但也(yě)存在(zài)一(yī)些(xiē)問(wèn)题。比如(rú)很多(duō)推薦的(de)業務(wù)场(chǎng)景,算法(fǎ)模型叠代(dài)更(gèng)新(xīn)頻率高(gāo),工程開(kāi)發(fà)周期無法(fǎ)滿足頻繁更(gèng)新(xīn)的(de)需求。此(cǐ)外(wài),一(yī)些(xiē)推薦的(de)模型不(bù)受算子的(de)支持(chí),需要(yào)手(shǒu)动開(kāi)發(fà)tensorrtplugin,短(duǎn)时(shí)間(jiān)內(nèi)無法(fǎ)上(shàng)線(xiàn)。一(yī)般来(lái)说(shuō),这(zhè)種(zhǒng)開(kāi)發(fà)过(guò)程的(de)通(tòng)用(yòng)性(xìng)不(bù)夠好(hǎo),很难有(yǒu)效地(dì)支持(chí)算法(fǎ)的(de)連(lián)續叠代(dài)。

  因此(cǐ),我(wǒ)们(men)迫切(qiè)需要(yào)實(shí)現(xiàn)一(yī)套(tào)机制,既要(yào)保證GPU的(de)推理(lǐ)性(xìng)能(néng),又要(yào)有(yǒu)良好(hǎo)的(de)通(tòng)用(yòng)性(xìng)。經(jīng)过(guò)多(duō)次(cì)工程尝試,我(wǒ)们(men)提(tí)出(chū)了(le)适合自(zì)己的(de)推薦系(xì)統推理(lǐ)加速方(fāng)案(àn),即VIVO自(zì)主(zhǔ)開(kāi)發(fà)的(de)通(tòng)用(yòng)GPU方(fāng)案(àn)。

  該方(fāng)案(àn)通(tòng)过(guò)多(duō)个(gè)过(guò)程+MPS+Tensorflowruntime的(de)方(fāng)式有(yǒu)效提(tí)高(gāo)了(le)GPU的(de)使用(yòng)率,並(bìng)且(qiě)在(zài)某些(xiē)场(chǎng)景中(zhōng)不(bù)需要(yào)轉(zhuǎn)換Tensorrt模型。該方(fāng)案(àn)的(de)主(zhǔ)要(yào)設计目标(biāo)是(shì):

  多(duō)流程模型,管(guǎn)理(lǐ)和(hé)保护模型服(fú)務(wù)流程,有(yǒu)序更(gèng)新(xīn)模型。

  在(zài)本(běn)地(dì)TensorFlow中(zhōng)添加不(bù)支持(chí)GPU的(de)算子。

  加载(zài)模型时(shí),动态替換不(bù)支持(chí)GPU的(de)原始(shǐ)算子。

  Figure4.自(zì)研通(tòng)用(yòng)GPU方(fāng)案(àn)示意(yì)图(tú)(VIVO研究所(suǒ)授權的(de)图(tú)片)

  此(cǐ)外(wài),考慮到(dào)VIVO算法(fǎ)部(bù)門(mén)和(hé)工程部(bù)門(mén)在(zài)具體(tǐ)工程實(shí)踐中(zhōng)需要(yào)同(tóng)步開(kāi)發(fà),如(rú)何解(jiě)耦算法(fǎ)工程团(tuán)隊和(hé)推理(lǐ)加速团(tuán)隊的(de)開(kāi)發(fà)任務(wù),從而(ér)推出(chū)可(kě)配置的(de)推理(lǐ)引擎服(fú)務(wù),提(tí)高(gāo)叠代(dài)開(kāi)發(fà)效率。

  Figure5.自(zì)研可(kě)配置推理(lǐ)引擎示意(yì)图(tú)(VIVO研究所(suǒ)授權的(de)图(tú)片)

  方(fāng)案(àn)效果(guǒ)及(jí)影響。

  經(jīng)过(guò)验(yàn)證,該方(fāng)案(àn)可(kě)以有(yǒu)效解(jiě)決GPU在(zài)推薦業務(wù)中(zhōng)的(de)通(tòng)用(yòng)性(xìng)問(wèn)题;同(tóng)时(shí),GPU可(kě)以更(gèng)有(yǒu)效地(dì)使用(yòng)。目前(qián),它(tā)已經(jīng)在(zài)一(yī)些(xiē)推薦的(de)業務(wù)中(zhōng)實(shí)施。經(jīng)过(guò)壓力測試,VIVO自(zì)主(zhǔ)研發(fà)的(de)通(tòng)用(yòng)GPU方(fāng)案(àn)在(zài)Tensort方(fāng)案(àn)的(de)基礎上(shàng)實(shí)現(xiàn)了(le)更(gèng)高(gāo)的(de)QPS和(hé)更(gèng)低(dī)的(de)延遲,可(kě)以节(jié)省(shěng)约75%的(de)成(chéng)本(běn)!