LinkedIn開源Dagli,發(fā)布Java機(jī)器學(xué)習(xí)函數(shù)庫(kù)

??新智元報(bào)道??
??新智元報(bào)道??
編輯:QJP
【新智元導(dǎo)讀】LinkedIn 最近開源了 Dagli,一個(gè)面向 Java (和其他 JVM 語(yǔ)言)的機(jī)器學(xué)習(xí)庫(kù),讓編寫代碼減少bug、可讀、可修改、可維護(hù)和可部署的模型管道變得更加容易,而不會(huì)導(dǎo)致技術(shù)難題。
近年來,越來越多的優(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ù)公司(超過50%) 仍需要花費(fèi)8至90天時(shí)間部署單一機(jī)器學(xué)習(xí)模型(18% 的公司花費(fèi)的時(shí)間超過90天)。
?
大多數(shù)人將責(zé)任歸咎于模型規(guī)模和復(fù)現(xiàn)模型面臨的挑戰(zhàn)、缺乏管理人員的支持,以及可用的工具缺失等原因。
?
對(duì)于 Dagli 來說,模型的 pipeline 被定義為一個(gè)有向無環(huán)圖,一個(gè)由頂點(diǎn)和邊組成的圖,每條邊從一個(gè)頂點(diǎn)定向到另一個(gè)頂點(diǎn),用于訓(xùn)練和推理。
?
Dagli 的環(huán)境提供了流水線定義、靜態(tài)類型、近乎無處不在的不變性以及其他特性,以防止大多數(shù)潛在的邏輯錯(cuò)誤。
?? ?
? ? ? ?
LinkedIn 自然語(yǔ)言處理研究科學(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、交叉驗(yàn)證、交叉訓(xùn)練、特征選擇、數(shù)據(jù)讀取器、評(píng)估和特征轉(zhuǎn)換等。
???
? ? ? ?
通過發(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 作為有向無環(huán)圖的新抽象,它支持優(yōu)化的同時(shí)仍然保持每個(gè)組件易于實(shí)現(xiàn),可與傳統(tǒng)的“黑盒”相媲美。
?
對(duì)于有經(jīng)驗(yàn)的數(shù)據(jù)科學(xué)家來說,Dagli 提供了一條通往可維護(hù)和可擴(kuò)展的高性能、可生產(chǎn)的人工智能模型的道路,這些模型可以利用現(xiàn)有的 JVM 技術(shù)堆棧。
?
對(duì)于經(jīng)驗(yàn)較少的軟件工程師來說,Dagli 提供了一個(gè) API,可以與 JVM 語(yǔ)言和工具一起使用,這些語(yǔ)言和工具被設(shè)計(jì)用來避免典型的邏輯錯(cuò)誤。
?
帕斯特納克還指出: 「我們希望 Dagli 能夠使高效、可投入生產(chǎn)的模型更容易編寫、修改和部署,避免經(jīng)常伴隨而來的技術(shù)問題和長(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 模型分類器的特征:
?? ?
? ? ? ?
通過使用 Dagli,領(lǐng)英希望使高效的、可投入生產(chǎn)的模型更容易編寫、修改和部署,避免經(jīng)常伴隨它們的技術(shù)挑戰(zhàn)和長(zhǎng)期維護(hù)。
最后,附上Dagli的GitHub地址鏈接:
?
https://github.com/linkedin/dagli


