案例簡介及其應用背景
VIVO AI中臺的最終目的是為2.6億+ VIVO用戶提供極致的智能服務,而NVIDIA則為VIVO推薦系統提供強大的算力支持以實踐優化。
推薦系統的大規模部署帶來了諸多工程化挑戰,借助NVIDIA TensorRT, Triton and MPS (Multi-Process Service) 及單張T4 GPU推理卡,其性能優于約6臺以上的78核CPU服務器,成本方面也降低75%。
團隊共實踐和比較了三種不同的工程方案,其中,性價比最高的“通用GPU方案”充分發揮了MPS和TensorFlow的性能,開創性地解決了推薦場景的難題,包含:如何滿足頻繁的算法迭代需求,如何開發不支持的運算操作插件,以及如何改善低效的推理服務性能等。
VIVO AI平臺致力于建設完整的人工智能中臺,搭建全面的、行業領先的大規模分布式機器學習平臺,應用于內容推薦、商業變現、搜索等多種業務場景,為2.6億+ VIVO用戶提供極致的智能服務。
VIVO AI中臺始終服務于企業往智能化深度發展的需求,在數據中臺基礎上增加了一體化智能服務的概念。并且立足于數據的獲取、存儲、特征處理、分析、模型構建、訓練、評估等智能服務相關的任務環節,使其高度組件化、配置化、自動化。
Figure 1. AI中臺系統架構圖 (圖片來源于VIVO研究院授權)
在整個AI中臺架構中,推薦中臺則作為最重要的核心,也是最具商業價值的部分,不僅需承載VIVO億級用戶,日活千萬的數據量也包含在內。本文從推薦系統工程化的角度,解讀了以下三方面內容:VIVO 的智能推薦系統是如何運行的?在實際應用場景中遇到過什么挑戰?NVIDIA GPU如何加速推薦系統的部署?
Figure 2. 推薦中臺系統架構圖 (圖片來源于VIVO研究院授權)
經過驗證,本方案可以有效解決推薦業務中GPU通用性問題;同時能更高效的利用GPU。目前已經在部分推薦業務中落地。經過壓測,性能方面,單張T4 GPU推理卡,性能優于約6臺以上的78核CPU服務器。成本方面,VIVO自研通用GPU方案,在TensorRT方案基礎上,取得了更高的QPS和更低的延遲,可節省成本約75%!
本案例主要應用到 NVIDIA T4 GPU 和相關工具包括NVIDA TensorRT, Triton, MPS等。
客戶簡介
VIVO是一家以設計驅動創造偉大產品,打造以智能終端和智慧服務為核心的科技公司,也是一家全球性的移動互聯網智能終端公司。致力于為消費者打造擁有極致拍照、暢快游戲、Hi-Fi音樂的智能手機產品。根據《2020胡潤中國10強消費電子企業》報告顯示,VIVO以1750億人民幣排名第3位。
客戶挑戰
在工程實踐中,VIVO推薦系統面臨的第一個問題是如何平滑的把多種推薦業務邏輯從CPU平臺向GPU平臺遷移。鑒于當前已經存在多個推薦業務場景,包括應用商店,手機瀏覽器,負一屏信息流等。每個場景都有自己的算法模型和業務流程,如何把多種分散的智能服務整合到一個統一的推薦中臺,同時要兼顧當前的業務的無損遷移是一個巨大的挑戰。
一直以來,CPU是客戶主要的支撐推薦業務場景的主流硬件平臺。但VIVO工程團隊卻發現在推理服務中,CPU的表現始終無法達到要求標準,不僅算力較弱,應對復雜模型時,響應延遲和QPS也無法滿足實時性和高并發的需求。
此時,客戶嘗試改用NVIDIA GPU來實現推薦業務的推理服務,有效解決CPU算力和性能的瓶頸的同時,也期待更大的成本優勢。經過大量的工程實踐,結果表明,單臺基于NVIDIA T4 GPU的推理服務器,性能可以等同于24臺CPU機器。毋庸置疑, GPU的整體表現皆具有性能和成本的優勢。據此,客戶也認為使用GPU作為推薦業務場景的推理平臺,已成為了公司乃至行業的共識。
應用方案
由于GPU芯片架構的獨特性,不經優化的原始TensorFlow模型,很難高效利用GPU的算力。為了解決這個問題,VIVO工程團隊投入了大量的人力和時間進行推薦模型優化及轉換。而首先著手設計的是TensorRT方案,即是使用NVIDIA推理加速工具TensorRT,結合 Triton的serving方式,以最大化GPU整體收益。
具體來說,把訓練導出的TensorFlow模型經過Onnx轉換成TensorRT模型,進而使用NVIDIA提供的推理服務框架Triton加載TensorRT模型。業務代碼使用VIVO封裝Triton的JNI接口,將業務請求輸入TensorRT模型去做推理計算。
Figure 3. 推薦業務流程圖 (圖片來源于VIVO研究院授權)
實測結果表明,該方案取得了預期的線上收益。性能方面,單張T4 GPU推理卡,性能優于約6臺以上的78核CPU服務器。以如下場景為例,在相同的精排服務請求:QPS為600,BatchSize為3000時,不同方案的成本,TensorRT方案可節省成本約14%:
為了進一步提升線上收益,最大化GPU利用率,NVIDIA機器學習團隊配合 VIVO繼續優化現有效果,探索更多的技術方案可行性。
經過深入探討,我們發現目前的方案(Triton+TensorRT)確實可以有效利用GPU,但是也存在一些問題。比如很多推薦業務場景,算法模型迭代更新頻率高,工程化開發周期無法滿足頻繁更新的需求。此外,部分推薦模型存在算子不支持的情況,需要手動開發TensorRT plugin,短時間內也無法上線。總體來說,這樣的開發流程通用性不夠好,也較難有效的支持算法持續迭代。
因此,我們迫切需要實現一套機制,既要保證GPU的推理性能,更要具備良好的通用性。經過多次工程化嘗試,我們針對性提出適合自身的推薦系統推理加速方案,即VIVO自研通用GPU方案。
本方案通過多進程 + MPS + TensorFlow runtime的方式,有效的提高了GPU的使用率,且部分場景無需轉換TensorRT模型。該方案的主要設計目標是:
多進程模型,管理和守護模型服務進程,有序的更新模型
添加原生TensorFlow中不支持GPU的算子
加載模型時,動態替換原來的不支持GPU的算子
Figure 4. 自研通用GPU方案示意圖 (圖片來源于VIVO研究院授權)
此外,考慮到具體工程實踐中,VIVO算法部門和工程部門需要同步開發,如何解耦算法工程團隊和推理加速團隊的開發任務,因此推出了可配置的推理引擎服務,加速迭代開發效率。
Figure 5. 自研可配置推理引擎示意圖 (圖片來源于VIVO研究院授權)
方案效果及影響
經過驗證,本方案可以有效解決推薦業務中GPU通用性問題;同時能更高效的利用GPU。目前已經在部分推薦業務中落地。經過壓測,VIVO自研通用GPU方案,在TensorRT方案基礎上,取得了更高的QPS和更低的延遲,可節省成本約75%!
下表詳細對比了在相同精排請求:QPS為600,BatchSize為3000時,不同方案的成本。
同時,我們測試了負一屏信息流推薦場景,結果同樣表明,無論是QPS或是推理延遲(測試選用業界標準P99/P95指標),自研通用GPU方案都優于TensorRT方案和CPU方案。
展望未來,VIVO推薦系統工程團隊會繼續探索新技術,持續積累 GPU工程經驗,并且沉淀到平臺中,最終賦能到各個業務線。
審核編輯:郭婷
-
cpu
+關注
關注
68文章
10854瀏覽量
211587 -
NVIDIA
+關注
關注
14文章
4978瀏覽量
102990 -
gpu
+關注
關注
28文章
4729瀏覽量
128890
發布評論請先 登錄
相關推薦
評論