Categories
程式開發

讓AI工程師的工作效率提升100%:領英的機器學習規模化應用實踐


人工智能和機器學習仍然是全球持續增長的領域之一,近年來湧現出越來越多本科生或者非人工智能專業出身的工程師,他們努力學習和使用技術來改進產品,幾乎每天都有新的機器學習技術和框架發布。這篇文章將討論領英如何規模化利用技術,幫助更多工程師提昇機器學習的效率。近日,領英中國機器學習研發經理李子在IEEE數據挖掘國際會議(ICDM)上分享了領英是如何規模化開展機器學習,介紹領英的核心產品以及如何利用技術幫助更多工程師提昇機器學習的效率。

Pro-ML提昇機器學習效率

img

過去10年,領英把人工智能技術應用於各個方面來提升用戶和客戶體驗,比如你可能認識的人(People You May Know),可以為你推薦能夠給你的職業發展帶來價值的人; Feed可以幫你找到最相關的行業信息,比如最新的文章或聯繫人的最新動態;Recruiter Search可以幫助企業了解趨勢,更好地進行招聘;職位推薦系統(Job Recommendations System)可以幫你找到工作或者跳槽到更好的企業。機器學習推動著領英的核心產品。

但領英發現,過去每個團隊用自己的AI技術堆棧開發各自的產品。這種做法無法有效實現規模化,因為每個團隊使用的技術不同,從邏輯回歸到深度學習,從Pig 、 Hive、Spark到Scalding等等,團隊之間的AI技術堆棧很難共享協作。所以領英希望在招入新的工程師或是開發新功能、使用新技術時,盡可能減少大家的負擔。此外,近年來很多人工智能領域的從業者其實並不是人工智能專業出身,領英的AI基礎架構對他們來說過於復雜,難以用來構建、迭代模型。

為了高效地促進機器學習規模化,領英構建了名為“Productive Machine Learning”(高效機器學習)的項目,簡稱Pro-ML。 Pro-ML的目標是將AI工程師的工作效率翻一番,讓他們能更輕鬆、更高效地構建模型。在過去十年裡領英發現,模型性能與模型更新速度直接相關。因此,如果能讓工程師加快模型迭代速度,那麼模型性能也會提高。

具體來說Pro-ML採用分層解決方案,目標是提高整個模型開發週期的效率,從模型探索和構建(Exploring and Authoring),到模型訓練(Training)、模型部署(Deploying)、模型運行(Running ),再到持續監控模型狀態。領英希望把所有常規工作自動化,這樣算法工程師就能更加聚焦於創新。

讓AI工程師的工作效率提升100%:領英的機器學習規模化應用實踐 1

Pro-ML中有兩個工具貫穿剛剛提到的所有階段:一個是Feature Marketplace,另一個是Health Assurance Layer。在Feature Marketplace,領英使用先進的技術來生成、共享和管理新特徵。 AI建模的核心是特徵工程(Feature Engineering),領英有數百名工程師和數万種正在研究的特徵。提高工程師生成、共享和管理特徵的效率,對於提高他們的工作效率至關重要。

而Health Assurance Layer可以在整個開發週期中持續監控模型狀態。比如,它確保用於模型訓練的離線特徵和用於在線推理的在線特徵在統計意義上一致或近似,同時確保在線模型的良好性能。比如在預測分數的時候,工程師希望在線打的分與離線訓練的分數精度一致。一旦Health Assurance Layer檢測到異常,會自動提醒工程師,然後工程師可以介入,進行調試。 Health Assurance Layer還提供了很多有用的工具,幫助工程師進一步確認問題所在。是代碼出錯?還是數據缺失?還是僅僅因為模型老舊,需要重新訓練?

探索與授權

建模過程實際上始於對問題的探索。目標是什麼?目標函數是什麼?有什麼特徵?數據有哪些?對於這些問題,工程師需要做無數個實驗來探索數據,進行特徵工程,調整模型和超參數。為了提高這一階段的工作效率,領英構建了集成了 Pro-ML內核的Jupyter Notebook。在Jupyter Notebook的幫助下,工程師可以一步一步地進行數據探索、特徵選擇和模型繪製,並以交互的方式做實驗。 Jupyter Notebook由領英的Spark集群提供計算資源,這樣工程師就可以在線完成工作而不需要把數據下載到本地,不僅提高了他們的工作效率,同時也保護了用戶隱私。

讓AI工程師的工作效率提升100%:領英的機器學習規模化應用實踐 2

為了定義模型,除了Jupyter Notebook,領英還構建了一種領域特定語言(Domain-specific Language, DSL)叫做Quasar。本質上來說,機器學習模型就是有向無環圖(DAG),它定義了輸入特徵和在這些特徵上的轉換。 Quasar DSL是領英用來定義模型的語言,它為建模者提供了幾乎所有常見的特徵轉換函數。因此AI工程師們可以專注於新特徵或者特徵組合實驗,而不需要書寫大量重複代碼來做特徵轉換。 Quasar的另一個優勢是離線訓練出來的模型可以直接部署到線上,大大簡化了模型從離線到在線的過渡。

讓AI工程師的工作效率提升100%:領英的機器學習規模化應用實踐 3

多種工具高效協助模型訓練

眾所周知,一個模型實際上有兩個關鍵組成部分,一個是特徵,另一個是算法。首先來看一下特徵。如前所述,特徵工程是AI建模的核心所在。在領英,為了提高學習效率,領英構建的框架Feature Marketplace可以讓工程師可以有效地生成、發現、共享和管理特徵。工程師可以將特徵共享到Feature Marketplace上以便其他人使用,也可以按名稱搜索特徵,發現該特徵並獲取關於該特徵的所有信息,例如特徵的創建者、特徵是如何生成的、特徵應用在哪些領英的模型中以特徵的統計分佈等等,所有這些問題都可以在Feature Marketplace找到答案。 Feature Marketplace還為工程師提供了諸多切實有用的工具,幫助工程師選擇特徵以及持續監控和驗證特徵。通過Feature Marketplace,工程師可以快速找到建模所需的特徵。

讓AI工程師的工作效率提升100%:領英的機器學習規模化應用實踐 4

不過,Feature Marketplace也面臨著挑戰​​:如何確保工程師能夠得到他們所需要的,比如在線和離線特徵是一致的。如果做了大量離線實驗,收集好的特徵用於建模,那麼這個模型可能會表現得很好,但不能保證在線的時候這個特徵是穩定的,如果不穩定,那模型性能可能會下降。事實上,這種事故在過去幾年屢見不鮮。為了解決這個問題,領英構建了一個工具稱為Frame。 Frame是一個基於相同配置和相同公共庫離線和在線生成特徵的平台,保證了離線和在線的一致性。領英向工程師提供操作細節,工程師只需要在Quasar模型中指定特徵的名稱,就可以保證在線和離線獲取特徵的一致性。

特徵集齊後就需要算法。領英支持深度學習、決策樹算法、Generalized Linear Mixed Model (GLMix)等多種算法。在深度學習的場景中,領英使用Tensorflow;在決策樹算法的場景中使用XGBoost,兩者都是第三方庫。對於GLMix,領英研發並開源了一個機器學習庫叫做Photon。 GLMix模型大大提高了職位推薦系統的性能,成功使職位申請數量增加了20%。

根據特徵和算法,領英構建了Photon Connect訓練引擎,把上述所有組件連接起來。 Photon Connect用Frame來訪問特徵,並將特徵與標籤數據連接起來,然後將數據傳輸至Quasar模型進行特徵轉換。在這個階段,Quasar模型的參數是未知的,領英利用Quasar模型進行特徵轉換,然後使用算法來學習這些參數。學習到的參數會插入到Quasar模型中。這樣,一個Quasar模型建模就完成了。它可以直接部署到線上服務中。

讓AI工程師的工作效率提升100%:領英的機器學習規模化應用實踐 5

Health Assurance Layer保證算法順利運行

模型訓練和部署完成後,最後一個問題是:當模型實際運行的時候,如何保持它能夠正常運行呢?根據過去的經驗教訓,在開發的早期階段越重視這個問題,越容易在實際運行時保證模型正常運行。因此,在模型探索和訓練等早期階段,領英的Health Assurance Layer提供了一系列工具,用於持續監控和驗證。有人可能會問,在實際運行中,所有在線特徵都可用嗎?特徵更新的速度是否足夠快?實際上,如果出現任何異樣, Health Assurance Layer 將通知相應的工程師,他們會介入進行調試。 Health Assurance Layer為工程師提供了一系列工具,幫助他們快速鎖定問題。

讓AI工程師的工作效率提升100%:領英的機器學習規模化應用實踐 6

領英的機器學習與Pro-ML團隊

經過十年的快速發展和實驗後,領英將人工智能團隊與產品團隊緊密地聯繫在一起,使機器學習團隊能夠與致力於解決類似難題的同行專家合作並分享最佳實踐。

類似地,Pro-ML團隊圍繞五個主要支柱構建,每個支柱都支持模型開發生命週期的一個階段。通常,每個支柱都有一個負責人(通常是一名工程師)、一個技術負責人和幾個工程師。這些工程師也來自各個組織,包括產品工程組織、基礎/工具組織和基礎架構團隊。 Pro-ML團隊分佈在世界各地,包括班加羅爾、歐洲和美國多個地方。領英還擁有一個領導團隊,幫助制定項目願景,並且最重要的是致力於消除摩擦,以便每一個支柱能夠獨立存在。

Pro-ML將增加能夠利用人工智能的產品數量,並擴大能夠培訓和部署模型的團隊數量。此外,它將減少模型選擇、部署等所需的時間,並使Health Assurance等關鍵領域自動化。領英現在已經花了一年多的時間來改造人工智能,使其能保持快速、高效和可操作性,擴展到所有工程領域。它讓工程師有更多的時間去做他們最擅長的事情:利用領英獨特的高度結構化的數據集,為棘手的技術問題找到創造性的解決方案。