本文根據美團配送資深技術專家鄭豔偉在2019 SACC(中國系統架構師大會)上的演講內容整理而成,主要介紹了美團配送技術團隊在建設一站式機器學習平臺過程當中的經驗總結和探索,但願對從事此領域的同窗有所幫助。
AI是目前互聯網行業煊赫一時的「明星」,不管是老牌巨頭,仍是流量新貴,都在大力研發AI技術,爲自家的業務賦能。配送做爲外賣平臺閉環鏈條上重要的一環,配送效率和用戶體驗是配送業務的核心競爭力。隨着單量上漲、騎手增多、配送場景複雜化,配送場景的各類算法在更快(算法須要快速迭代、快速上線)、更好(業務愈來愈依賴機器學習算法產生正向的效果)、更準(算法的各類預測如預計送達時間等,須要準確逼近真實值)的目標下也面臨日益增大的挑戰。算法從調研到最終上線發揮做用,須要有一系列的工程開發和對接,由此引起了新的問題:如何界定算法和工程的邊界,各司其職,各善其長?如何提高算法迭代上線的速度和效率?如何快速準確評估算法的效果?本文將爲你們分享美團配送技術團隊在建設一站式機器學習平臺過程當中的一些經驗和探索,但願對你們能有所幫助或者啓發。算法
2019年7月份,美團外賣的日訂單量已經突破3000萬單,佔有了相對領先的市場份額。圍繞着用戶、商戶、騎手,美團配送構建了全球領先的即時配送網絡,建設了行業領先的美團智能配送系統,造成了全球規模最大的外賣配送平臺。數據庫
如何讓配送網絡運行效率更高,用戶體驗更好,是一項很是有難度的挑戰。咱們須要解決大量複雜的機器學習和運籌優化等問題,包括ETA預測、智能調度、地圖優化、動態訂價、情景感知、智能運營等多個領域。同時,咱們還須要在體驗、效率和成本之間達到平衡。緩存
若是要解決上述的機器學習問題,就須要有一個功能強大且易用的機器學習平臺來輔助算法研發人員,幫助你們脫離繁瑣的工程化開發,把有限的精力聚焦於算法策略的迭代上面。網絡
目前業界比較優秀的機器學習平臺有不少,既有大公司研發的商用產品,如微軟的Azure、亞馬遜的SageMaker、阿里的PAI平臺、百度的PaddlePaddle以及騰訊的TI平臺,也有不少開源的產品,如加州大學伯克利分校的Caffe、Google的TensorFlow、Facebook的PyTorch以及Apache的Spark MLlib等。而開源平臺大都是機器學習或者深度學習基礎計算框架,聚焦於訓練機器學習或深度學習模型;公司的商用產品則是基於基礎的機器學習和深度學習計算框架進行二次開發,提供一站式的生態化的服務,爲用戶提供從數據預處理、模型訓練、模型評估、模型在線預測的全流程開發和部署支持,以期下降算法同窗的使用門檻。架構
公司級的一站式機器學習平臺的目標和定位,與咱們對機器學習平臺的需求不謀而合:爲用戶提供端到端的一站式的服務,幫助他們脫離繁瑣的工程化開發,把有限的精力聚焦於算法策略的迭代上面。鑑於此,美團配送的一站式機器學習平臺應運而生。併發
美團配送機器學習平臺的演進過程能夠分爲兩個階段:框架
初始階段,你們對機器學習平臺要發展成什麼樣子並不明確,不少事情也想不清楚。可是爲了支撐業務的發展,必須快速上線、快速試錯。所以,在此階段,各個業務線獨自建設本身的機器學習工具集,按照各自業務的特殊需求進行各自迭代,快速支持機器學習算法上線落地應用到具體的業務場景,也就是咱們所熟知的「煙囪模式」。此種模式各自爲戰,很是靈活,可以快速支持業務的個性化需求,爲業務搶佔市場贏得了先機。但隨着業務規模的逐漸擴大,這種「煙囪模式」的缺點就凸顯了出來,主要表如今如下兩個方面:機器學習
爲了不各部門重複造輪子,提高研發的效率,同時統一業務指標和特徵的計算口徑,標準化配送側的數據體系,美團配送的研發團隊組建了一個算法工程小組,專門規整各業務線的機器學習工具集,但願建設一個統一的機器學習平臺,其需求主要包括如下幾個方面:函數
平臺化階段,咱們對美團配送機器學習平臺的目標定位是:一站式機器學習平臺,給算法同窗提供一站式服務,覆蓋算法同窗調研、開發、上線、評估算法效果的全流程,包括:數據處理、特徵生產、樣本生成、模型訓練、模型評估、模型發佈、在線預測和效果評估。爲了響應這個目標,你們還給平臺取了個大膽的名字——Turing,中文名稱爲圖靈平臺,雖然有點「膽大包天」,可是也算是對咱們團隊的一種鞭策。高併發
1)首先在獲取數據階段,支持在線和離線兩個層面的處理,分別經過採樣、過濾、歸一化、標準化等手段生產實時和離線特徵,並推送到在線的特徵庫,供線上服務使用。
2)模型訓練階段,支持分類、迴歸、聚類、深度學習等多種模型,並支持自定義Loss損失函數。
3)模型評估階段,支持多種評估指標,如AUC、MSE、MAE、F1等。
4)模型發佈階段,提供一鍵部署功能,支持本地和遠程兩種模式,分別對應將模型部署在業務服務本地和部署在專用的在線預測集羣。
5)在線預測階段,支持AB實驗,靈活的灰度發佈放量,並經過統一埋點日誌實現AB實驗效果評估。
離線訓練平臺的目標是:搭建可視化訓練平臺,屏蔽多個訓練框架的差別,下降算法RD的接入門檻。
爲了下降算法RD進入機器學習領域的門檻,咱們開發了帶有可視化界面的離線訓練平臺,經過各類組件的拖拉拽組合成DAG圖,從而生成一個完整的機器學習訓練任務。
目前支持的組件大體分爲:輸入、輸出、特徵預處理、數據集加工、機器學習模型、深度學習模型等幾大類,每種類別都開發了多個不一樣的組件,分別支持不一樣的應用場景。同時爲了避免失去靈活性,咱們也花費了一番心思,提供了多種諸如自定義參數、自動調參、自定義Loss函數等功能,儘可能知足各個不一樣業務方向算法同窗各類靈活性的需求。
咱們的離線訓練平臺在產出模型時,除了產出模型文件以外,還產出了一個MLDL(Machine Learning Definition Language)文件,將各模型的全部預處理模塊信息寫入MLDL文件中,與模型保存在同一目錄中。當模型發佈時,模型文件連帶MLDL文件做爲一個總體共同發佈到線上。在線計算時,先自動執行MLDL中的預處理邏輯,而後再執行模型計算邏輯。經過MLDL打通了離線訓練和在線預測,貫穿整個機器學習平臺,使得線下和線上使用同一套特徵預處理框架代碼,保證了線下和線上處理的一致性。
在發佈模型時,咱們還提供了模型綁定特徵功能,支持用戶把特徵和模型的入參關聯起來,方便在線預測時模型自動獲取特徵,極大地簡化了算法RD構造模型輸入時獲取特徵的工做量。
前面介紹了,咱們的圖靈平臺集成了Spark ML、XGBoost、TensorFlow三種底層訓練框架,基於此,咱們的訓練平臺產出的機器學習模型種類也很是多,簡單的有LR、SVM,樹模型有GBDT、RF、XGB等,深度學習模型有RNN、DNN、LSTM、DeepFM等等。而咱們的模型管理平臺的目標就是提供統一的模型註冊、發現、部署、切換、降級等解決方案,併爲機器學習和深度學習模型提供高可用的線上預測服務。
模型管理平臺支持本地和遠程兩種部署模式:
對於超大規模模型,單機沒法裝載,須要對模型進行Sharding。鑑於美團配送的業務特性,能夠按照配送城市/區域進行分區訓練,每一個城市或區域產出一個小模型,多個分區模型分散部署到多個節點上,解決單節點沒法裝載大模型的問題。分區模型要求咱們必須提供模型的路由功能,以便業務方精準地找到部署相應分區模型的節點。
同時,模型管理平臺還收集各個服務節點的心跳上報信息,維護模型的狀態和版本切換,確保全部節點上模型版本一致。
配送線上業務天天會記錄許多騎手、商家、用戶等維度的數據,這些數據通過ETL處理獲得所謂的離線特徵,算法同窗利用這些離線特徵訓練模型,並在線上利用這些特徵進行模型在線預測。離線特徵平臺就是將存放在Hive表中的離線特徵數據生產到線上,對外提供在線獲取離線特徵的服務能力,支撐配送各個業務高併發及算法快速迭代。
最簡單的方案,直接把離線特徵存儲到DB中,線上服務直接讀取DB獲取特徵Value。讀取DB是個很重的操做,這種方案明顯不能知足互聯網大併發的場景,直接被Pass掉。
第二種方案,把各個離線特徵做爲K-V結構存儲到Redis中,線上服務直接根據特徵Key讀取Redis獲取特徵Value。此方案利用了Redis內存K-V數據庫的高性能,乍一看去,好像能夠知足業務的需求,但實際使用時,也存在着嚴重的性能問題。
典型的業務場景:好比咱們要預測20個商家的配送時長,假設每一個商家須要100個特徵,則咱們就須要20*100=2000個特徵進行模型計算,2000個KV。若是直接單個獲取,知足不了業務方的性能需求;若是使用Redis提供的批量接口Mget,若是每次獲取100個KV,則須要20次Mget。緩存mget的耗時TP99約5ms,20次Mget,TP99接近100ms,也沒法知足業務方的性能需求(上游服務超時時間約50ms)。
所以,咱們須要對離線特徵從存儲和獲取進行優化。咱們提出了特徵組的概念,同一維度的特徵,按照特徵組的結構進行聚合成一個KV,大大減小了Key的數目;而且提供了相對完善的管理功能,支持對特徵組的動態調整(組裝、拆分等)。
相比於傳統配送,即時配送不管是在位置信息、騎手負載,仍是在當前路網狀況,以及商家出餐狀況等方面都是瞬息變化的,實時性要求很是高。爲了讓機器學習算法可以即時的在線上生效,咱們須要實時地收集線上各類業務數據,進行計算,提煉成算法所須要的特徵,並實時更新。
AB實驗並非個新興的概念,自2000年穀歌工程師將這一方法應用在互聯網產品以來,AB實驗在國內外愈來愈普及,已成爲互聯網產品運營精細度的重要體現。簡單來講,AB實驗在產品優化中的應用方法是:在產品正式迭代發版以前,爲同一個目標制定兩個(或以上)方案,將用戶流量對應分紅幾組,在保證每組用戶特徵相同的前提下,讓用戶分別看到不一樣的方案設計,根據幾組用戶的真實數據反饋,科學的幫助產品進行決策。
互聯網領域常見的AB實驗,大可能是面向C端用戶進行流量選擇,好比基於註冊用戶的UID或者用戶的設備標識(移動用戶IMEI號/PC用戶Cookie)進行隨機或者哈希計算後分流。此類方案普遍應用於搜索、推薦、廣告等領域,體現出千人千面個性化的特色。此類方案的特色是實現簡單,假設請求獨立同分布,流量之間獨立決策,互不干擾。此類AB實驗之因此可以這樣作是由於:C端流量比較大,樣本足夠多,並且不一樣用戶之間沒有相互干擾,只要分流時足夠隨機,即基本能夠保證請求獨立同分布。
即時配送領域的AB實驗是圍繞用戶、商戶、騎手三者進行,用戶/商戶/騎手之間再也不是相互獨立的,而是相互影響相互制約的。針對此類場景,現有的分流方案會形成不一樣策略的互相干擾,沒法有效地評估各個流量各個策略的優劣。
鑑於上述的問題,咱們將配送側的AB實驗分爲三個階段:事前的AA分組,事中的AB分流,過後的效果評估。
因爲即時配送的場景較爲特殊,好比按照配送區域或城市進行AB實驗時,因爲樣本空間有限,很難找到沒有差別的對照組和實驗組,所以咱們設計了一種分時間片AB對照的分流方法:支持按天、小時、分鐘進行分片,多個時間片進行輪轉切換,在不一樣區域、不一樣時間片之間,對不一樣的策略進行交替切換進行AB分流,最大限度減小線下因素的影響,確保實驗科學公正。
目前圖靈平臺支撐了美團配送、小象、LBS平臺等BU的算法離線訓練、在線預測、AB實驗等,使算法RD更加關注算法策略自己的迭代優化,顯著提升了算法RD的效率。將來咱們會在如下方面繼續深刻探索:
1)增強深度學習的建設。
2)在線預測平臺化,進一步解耦算法和工程。
豔偉,美團配送技術團隊資深技術專家。
若是你想近距離感覺一下圖靈平臺的魅力,歡迎加入咱們。美團配送技術團隊誠招調度履約方向、LBS方向、機器學習平臺、算法工程方向的技術專家和架構師,共建全行業最大的單一即時配送網絡和平臺,共同面對複雜業務和高併發流量的挑戰,迎接配送業務全面智能化的時代。感興趣同窗可投遞簡歷至:tech@meituan.com(郵件標題註明:美團配送技術團隊)。