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