桔妹導讀:「滴滴技術」將於本月開始,聯合各技術團隊爲你們帶來精彩分享。你想了解的技術乾貨,深度專訪,團隊及招聘將於每週三與你準時見面。本月爲「滴滴雲平臺事業羣分享月」,在今天的內容中,雲平臺事業羣-機器學習平臺團隊與你聊一聊AI技術在滴滴平臺上的實踐思考。IFX 團隊通過 2年多的奮鬥,已將 AI 部署服務於公司安全、地圖、車載、普惠、車服、IT等業務團隊,覆蓋司乘 APP,桔視設備,代駕記錄儀,AIBox(邊緣計算 AI 盒子),國際化司乘 APP 等智能化需求的場景,覆蓋千萬級別設備,千億級別日活調用量。算法
隨着人工智能技術的發展,深度學習技術在工業界獲得了普遍的應用。數據、算法、算力三個維度的協同發展,逐步將 AI 推向成熟期,而且滲透到生活的方方面面。編程
滴滴擁有海量出行大數據,同時擁有大量的司乘端手機用戶、桔視設備(車載攝像頭)、GPU 集羣等算力平臺,對雲、邊、端 AI 能力的發掘將迎來一個黃金時代。滴滴機器學習團隊從 2018 年 9 月開始調研和搭建自研推理引擎平臺 IFX,在 2018 年 12 月開始對內提供服務,並在司機端和乘客端 APP 中落地。經歷了 2 年的發展,IFX 已經在公司的大量業務中獲得應用,服務於訂單和准入的關鍵路徑,司乘支付綁卡、實名認證、金融安全、提現等業務流程,高危場景識別,費用判責,追尾碰撞檢測,定位導航,路網更新等業務場景。涵蓋國內/國際化司乘 APP、桔視(車載攝像頭)、代駕記錄儀、滴滴雲 GPU 等算力平臺。目前滴滴 IFX 平臺服務千萬級別設備,平臺日活調用量超千萬億。api
在服務業務的過程當中,咱們發現純粹的推理引擎已經很難知足業務高效的發展,所以,咱們對平臺進行了逐步的迭代與升級,將其分爲 4 層結構:接入層,軟件層,引擎層,算力層。
安全
經過接入層,主要完成與業務工程的對接工做,同時咱們在該層增長了推理/受權數據埋點,可以及時的展現設備接入量、推理接入量、設備分佈、推理質量等信息。網絡
local inference 需求:提供各種編程語言接口的 SDK架構
remote inference 需求:提供 http/thrift/grpc 等接口的標準服務化 api框架
受權與埋點:提供安全受權接入方案,提供業務模型 inference 相關可視化報表機器學習
在軟件層,主要完成與業務算法的對接工做,主要完成模型解析和模型管理功能。編程語言
模型瘦身:提供更小的模型文件,下降 SDK 大小,同時提高在線升級模型速度函數
模型加密:確保模型結構安全性,不容易被破解
版本管理:解決業務迭代過程當中,多個模型版本管理問題
自動測試:模型解析,帶來精度差別,自動測試保證訓練模型和推理模型表達一致性,同時也會測試模型推理性能以及硬件設備適配工做
全部引擎優化相關工做集中在該層,針對異構設備算子的開發和調優,引擎系統調用的調優,
性能診斷器:爲引擎層提供離線性能診斷工具,剖析模型在不一樣硬件設備上的表現,同時指導 kernel 優化,模型結構優化等工做
引擎瘦身與混淆:提供更小的體積以及安全的內核
算子優化:主要整合低精度、圖優化、異構調度、彙編優化等能力,同時提供 auto tuning kernel 的能力,爲專用硬件提供最佳的彙編實現
系統優化:除了計算自己,提供系統調度、I/O、預/後處理等耗時環節的優化
算法模型實際運行的硬件設備,目前針對雲、邊、端等場景,支持了大部分的處理器。主要包括 NVIDIA GPU,ARM,X86,寒武紀等設備。
基於架構的升級,IFX 團隊進一步打造 AI 部署產品化解決方案,爭取爲業務提供更加系統化的支持。主要圍繞如下 6 個方面進行能力建設。
爲保障業務的核心競爭力,模型執行速度對於成本、安全、業務效果等影響很是大,咱們針對推理引擎內核以及全鏈路進行了一次性能改造,在業務性能上,獲得了不錯的效果。
彙編級優化:核心 op 彙編優化,模型性能提高 40% - 200%
全鏈路優化:預處理、後處理、網絡調用鏈路優化,服務化性能提高 30 - 260%
爲下降 APP 包大小,提高用戶體驗,咱們專門針對引擎以及模型,作了大量的裁剪和壓縮工做。
模型壓縮:多種壓縮策略聯合驅動,壓縮不下降精度,壓縮率 < 25%
引擎壓縮:二進制 elf 壓縮,進一步下降 SDK 大小,一般壓縮率在 50% 左右
爲了提高接入效率,提供更加高效的接入方案,針對雲、端、邊等多種場景,IFX 能夠提供統一的接入方案,同一個算法模型,支持部署到多種不一樣硬件設備。
業務方選用的算法框架相對比較自由,爲讓體驗和接入流程一致,IFX 支持將 TensorFlow,PyTorch,Caffe,Darknet 等不一樣的深度學習訓練獲得的算法模型,轉換成 IFX 支持的模型,並提供兼容性設計,知足業務迭代以及算法升級的需求。
AI 模型落地的過程當中,存在較大的人工操做,爲了下降每個環節人工干預的程度,咱們梳理了一些值得自動化實施的環節,幫助業務更快進行開發。
滴滴有大量的算法部署在端側,目前咱們發現軟件系統會受到一些外部的攻擊,爲了更好的提高 AI 軟件的運行安全性,保障滴滴業務的同時,更好的對外輸出,咱們進行了一次架構安全升級。
接入層:離線、在線受權方案,嚴控接入設備
SDK層:IOS,Android,Linux 代碼混淆,保護業務邏輯
引擎層:函數級別加密和混淆,杜絕反調試,反編譯
模型層:模型文件加密,保護算法結構
當前,IFX 已經服務了內部很多的業務,可是在 AI 部署的過程當中,依然存在不少低效的環節須要迭代和優化。IFX 團隊也將繼續在這個過程當中進行能力建設,後續咱們計劃將整個開發和生產流程線上化,採用統一的開發環境,整合開發、測試、驗證、分析、上線流程,須要作的工做還不少,但將來可期。
滴滴雲平臺事業羣滴滴機器學習平臺團隊是一個由技術和夢想驅動的團隊。在高性能計算,異構計算領域有獨到的技術優點,團隊主要成員曾推出了國內最先的雲上 GPU,HPC 產品。在滴滴,機器學習平臺團隊致力於構建穩定、安全、高效、高性能、易用性強的 AI 一站式開發和部署平臺,包括高效的滴滴機器學習平臺建設、業務價值創造和落地的滴滴雲平臺建設、追求極致高性能的推理引擎建設。
機器學習平臺框架組負責人,現負責異構計算、AI系統 優化等工做,爲公司提供端/雲AI優化和部署方案。曾就任於阿里,參與異構計算集羣、阿里雲 HPC 產品等研發工做。
內容編輯 | Teeo
聯繫咱們 | DiDiTech@didiglobal.com
本文由博客羣發一文多發等運營工具平臺 OpenWrite 發佈