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