LinkedIn開源Dagli,發布Java機器學習函數庫
近年來,越來越多的優秀的機器學習工具不斷涌現,如 TensorFlow、 PyTorch、 Caffee 和 CNTK、用于大規模數據的 Spark 和 Kubeflow,以及用于各種通用模型的 scikit-learn、 ML.NET 和最近的 Tripo 等。
根據Algorithmia 2019年的一項調查,雖然企業使用機器學習算法的成熟度普遍在提高,但大多數公司(超過50%) 仍需要花費8至90天時間部署單一機器學習模型(18% 的公司花費的時間超過90天)。
大多數人將責任歸咎于模型規模和復現模型面臨的挑戰、缺乏管理人員的支持,以及可用的工具缺失等原因。
對于 Dagli 來說,模型的 pipeline 被定義為一個有向無環圖,一個由頂點和邊組成的圖,每條邊從一個頂點定向到另一個頂點,用于訓練和推理。
Dagli 的環境提供了流水線定義、靜態類型、近乎無處不在的不變性以及其他特性,以防止大多數潛在的邏輯錯誤。
LinkedIn 自然語言處理研究科學家杰夫 · 帕斯特納克在一篇博客中寫道: 「模型通常是集成的管道的一部分, 建造、訓練和將這些管道部署到生產環節仍然非常繁瑣」, 通常需要進行重復的或無關的工作,以適應訓練和推理,從而產生脆弱的「粘合」代碼,使模型未來的演化和維護變得復雜。
Dagli 可以在服務器、 Hadoop、命令行接口、 IDE 和其他典型的 JVM 中工作。許多pipeline組件也已經可以使用,包括神經網絡、 邏輯回歸、GBDT、 FastText、交叉驗證、交叉訓練、特征選擇、數據讀取器、評估和特征轉換等。
通過發布 Dagli,領英希望為機器學習社區做出三個主要貢獻:
1. 一個易于使用、抗bug、基于 JVM 的機器學習框架
2. 一個綜合了各種統計模型和 transformer 的 可以 “開箱即用” 的庫
3. 一個簡單但功能強大的機器學習 pipeline 作為有向無環圖的新抽象,它支持優化的同時仍然保持每個組件易于實現,可與傳統的“黑盒”相媲美。
對于有經驗的數據科學家來說,Dagli 提供了一條通往可維護和可擴展的高性能、可生產的人工智能模型的道路,這些模型可以利用現有的 JVM 技術堆棧。
對于經驗較少的軟件工程師來說,Dagli 提供了一個 API,可以與 JVM 語言和工具一起使用,這些語言和工具被設計用來避免典型的邏輯錯誤。
帕斯特納克還指出: 「我們希望 Dagli 能夠使高效、可投入生產的模型更容易編寫、修改和部署,避免經常伴隨而來的技術問題和長期維護的挑戰」。
Dagli 充分利用了先進的多核理器和強大的圖形卡,對模型進行有效的單機訓練。
為了具體了解 Dagli 是如何工作的,讓我們從一個文本分類器開始,這個文本分類器使用梯度增強決策樹模型(XGBoost)的活動葉片,以及一組高維的 N-gram 作為 LR 模型分類器的特征:
通過使用 Dagli,領英希望使高效的、可投入生產的模型更容易編寫、修改和部署,避免經常伴隨它們的技術挑戰和長期維護。
最后,附上Dagli的GitHub地址鏈接:
https://github.com/linkedin/dagli