微軟開(kāi)源深度學(xué)習(xí)庫(kù),太強(qiáng)了
↓↓↓點(diǎn)擊關(guān)注,回復(fù)資料,10個(gè)G的驚喜
目前,數(shù)據(jù)科學(xué)團(tuán)隊(duì)在使用機(jī)器學(xué)習(xí)模型時(shí)正面臨著越來(lái)越大的壓力。雖然 AI 的采用和分析持續(xù)上升,但大約有 87% 的數(shù)據(jù)科學(xué)項(xiàng)目從未投入生產(chǎn)。根據(jù) Algorithmia 最近的調(diào)查顯示,22% 的公司需要一到三個(gè)月的時(shí)間來(lái)部署模型以實(shí)現(xiàn)業(yè)務(wù)價(jià)值,而 18% 的公司需要三個(gè)月以上的時(shí)間。
為了緩解這一現(xiàn)狀,近日,微軟宣布了開(kāi)源一款簡(jiǎn)單的、多語(yǔ)言的、大規(guī)模并行的機(jī)器學(xué)習(xí)庫(kù) Synap,seML(以前稱為 MMLSpark),以幫助開(kāi)發(fā)人員簡(jiǎn)化機(jī)器學(xué)習(xí)管道的創(chuàng)建。微軟表示,借助 SynapseML,開(kāi)發(fā)人員可以構(gòu)建“可擴(kuò)展的智能”系統(tǒng)來(lái)解決跨領(lǐng)域的挑戰(zhàn),包括文本分析、翻譯和語(yǔ)音處理。
構(gòu)建可用于生產(chǎn)的分布式 ML 管道通常困難,即使對(duì)于最有經(jīng)驗(yàn)的開(kāi)發(fā)人員也是如此。而對(duì)于初學(xué)者來(lái)說(shuō),組合來(lái)自不同生態(tài)系統(tǒng)的工具需要大量代碼,而且許多框架在設(shè)計(jì)時(shí)并沒(méi)有考慮到服務(wù)器集群。SynapseML 通過(guò)將多個(gè)現(xiàn)有的 ML 框架和新的 Microsoft 算法統(tǒng)一到一個(gè)可跨 Python、R、Scala 和 Java 使用的可擴(kuò)展 API 中來(lái)解決這一挑戰(zhàn)。
借助 SynapseML,開(kāi)發(fā)人員可以構(gòu)建可擴(kuò)展的智能系統(tǒng)來(lái)解決以下領(lǐng)域的挑戰(zhàn):
? 異常檢測(cè)
? 計(jì)算機(jī)視覺(jué)
? 深度學(xué)習(xí)
? 表格識(shí)別和人臉識(shí)別
? 梯度提升
? 微服務(wù)編排
? 模型可解釋性
? 強(qiáng)化學(xué)習(xí)和個(gè)性化
? 搜索和檢索
? 語(yǔ)音處理
? 文本分析
? 翻譯
項(xiàng)目地址:https://github.com/microsoft/SynapseML
編寫容錯(cuò)分布式程序很復(fù)雜,而且是一個(gè)容易出錯(cuò)的過(guò)程。我們來(lái)舉個(gè)深度網(wǎng)絡(luò)的分布式評(píng)估的例子。第一步是將一個(gè) GB 量級(jí)的模型發(fā)送到數(shù)百臺(tái)工作機(jī)器上,而不會(huì)使網(wǎng)絡(luò)不堪重負(fù)。第二步,必須協(xié)調(diào)數(shù)據(jù)讀取器以確保所有數(shù)據(jù)都排隊(duì)等待處理并且 GPU 處于滿負(fù)荷狀態(tài)。如果新計(jì)算機(jī)加入或離開(kāi)集群,新的工作機(jī)器必須接收模型的副本,數(shù)據(jù)讀取器需要適應(yīng)與新機(jī)器共享工作并重新計(jì)算丟失的工作。最后,必須跟蹤進(jìn)度以確保正確釋放資源。
當(dāng)然,像 Horovod 這樣的框架可以管理這一點(diǎn),但是如果想要與不同的 ML 框架(例如 LightGBM、XGBoost 或 SparkML)進(jìn)行比較,則需要新的環(huán)境和集群。此外,這些訓(xùn)練系統(tǒng)并非旨在服務(wù)或部署模型,因此需要單獨(dú)的推理和流媒體架構(gòu)。
SynapseML 通過(guò)將許多不同的 ML 學(xué)習(xí)框架與一個(gè)可擴(kuò)展、與數(shù)據(jù)和語(yǔ)言無(wú)關(guān)且適用于批量處理、流媒體和服務(wù)應(yīng)用程序的 API 統(tǒng)一起來(lái),簡(jiǎn)化了這種體驗(yàn)。它旨在幫助開(kāi)發(fā)人員專注于其數(shù)據(jù)和任務(wù)的高級(jí)結(jié)構(gòu)上,而無(wú)需過(guò)多考慮不同 ML 生態(tài)系統(tǒng)和數(shù)據(jù)庫(kù)的實(shí)現(xiàn)細(xì)節(jié)和特性。
統(tǒng)一的 API 標(biāo)準(zhǔn)化了當(dāng)下許多的工具、框架和算法,從而簡(jiǎn)化了分布式 ML 體驗(yàn)。這使開(kāi)發(fā)人員能夠?yàn)樾枰鄠€(gè)框架的用例快速組合不同的 ML 框架,例如網(wǎng)絡(luò)監(jiān)督學(xué)習(xí)、搜索引擎創(chuàng)建等。它還可以在單節(jié)點(diǎn)、多節(jié)點(diǎn)和可彈性調(diào)整大小的計(jì)算機(jī)集群上訓(xùn)練和評(píng)估模型,因此開(kāi)發(fā)人員可以在不浪費(fèi)資源的情況下擴(kuò)展他們的工作。
除了在幾種不同的編程語(yǔ)言中的可用性之外,該 API 還對(duì)各種數(shù)據(jù)庫(kù)、文件系統(tǒng)和云數(shù)據(jù)存儲(chǔ)進(jìn)行了抽象,以簡(jiǎn)化實(shí)驗(yàn)。
正如微軟在項(xiàng)目網(wǎng)站上所解釋的那樣,SynapseML 在幾個(gè)新方向上擴(kuò)展了用于大規(guī)模數(shù)據(jù)處理的開(kāi)源引擎 Apache Spark:“SynapseML 中的工具允許用戶制作功能強(qiáng)大且高度可擴(kuò)展的模型,這些模型可以跨多個(gè)機(jī)器學(xué)習(xí)生態(tài)系統(tǒng)完成工作。SynapseML 還為 Spark 生態(tài)系統(tǒng)帶來(lái)了新的網(wǎng)絡(luò)功能。通過(guò) HTTP on Spark 項(xiàng)目,用戶可以將任何 Web 服務(wù)嵌入到他們的 SparkML 模型中,并使用他們的 Spark 集群進(jìn)行大規(guī)模的網(wǎng)絡(luò)工作流。”
SynapseML 中的許多工具不需要大型標(biāo)記好的訓(xùn)練數(shù)據(jù)集。相反,SynapseML 為預(yù)構(gòu)建的智能服務(wù)(例如 Azure 認(rèn)知服務(wù))提供簡(jiǎn)單的 API,以快速解決與業(yè)務(wù)和研究相關(guān)的大規(guī)模 AI 挑戰(zhàn)。
SynapseML 能夠讓開(kāi)發(fā)者將超過(guò) 45 種不同的先進(jìn)的機(jī)器學(xué)習(xí)服務(wù)直接嵌入到他們的系統(tǒng)和數(shù)據(jù)庫(kù)中。最新版本增加了對(duì)分布式表單識(shí)別、對(duì)話轉(zhuǎn)錄和翻譯的支持。
這些即用型算法可以解析各種文檔、實(shí)時(shí)轉(zhuǎn)錄多說(shuō)話者對(duì)話,此外還能翻譯 100 多種不同語(yǔ)言的文本。
“在過(guò)去的五年中,我們一直致力于改進(jìn)和穩(wěn)定用于生產(chǎn)工作負(fù)載的 SynapseML 庫(kù)。使用 Azure Synapse Analytics 的開(kāi)發(fā)人員將很高興地知曉了 SynapseML 現(xiàn)在在這項(xiàng)服務(wù)上普遍可用,并提供企業(yè)服務(wù)。”微軟軟件工程師 Mark Hamilton 在一篇博客文章中寫道。
SynapseML 使開(kāi)發(fā)人員不僅可以使用現(xiàn)有的模型和服務(wù),還可以構(gòu)建和訓(xùn)練自己的模型和服務(wù)。此版本的 SynapseML 引入了使用 Vowpal Wabbit 框架 進(jìn)行個(gè)性化推薦和上下文老虎機(jī)強(qiáng)化學(xué)習(xí)的新算法。這種 Vowpal Wabbit 集成可以為單個(gè)模型分配模型訓(xùn)練和預(yù)測(cè),或者跨多個(gè)模型并行訓(xùn)練。這對(duì)于快速調(diào)整策略優(yōu)化和個(gè)性化系統(tǒng)的超參數(shù)非常有效。
Vowpal Wabbit 項(xiàng)目地址:
https://microsoft.github.io/SynapseML/docs/features/vw/Vowpal%20Wabbit%20-%20Overview/
構(gòu)建模型后,研究人員和工程師需要在部署前了解其局限性和行為。SynapseML 通過(guò)引入新工具來(lái)幫助開(kāi)發(fā)人員和研究人員構(gòu)建負(fù)責(zé)任的 AI 系統(tǒng),這些工具揭示了模型為什么會(huì)做出這樣的預(yù)測(cè)以及如何改進(jìn)訓(xùn)練數(shù)據(jù)集以消除偏見(jiàn)。
更具體地說(shuō),SynapseML 包括 Shapley Additive Explanations (SHAP) 和 Locally Interpretable Model-Agnostic Explanations (LIME) 的分布式實(shí)現(xiàn),以解釋視覺(jué)、文本和表格模型的預(yù)測(cè)。通常,這些“黑盒”方法通常需要對(duì)每個(gè)解釋進(jìn)行數(shù)千次模型評(píng)估,并且解釋大型數(shù)據(jù)集的每個(gè)預(yù)測(cè)可能需要數(shù)天時(shí)間。SynapseML 使開(kāi)發(fā)人員能夠在數(shù)百臺(tái)機(jī)器上分配計(jì)算,從而顯著加快理解用戶訓(xùn)練模型的過(guò)程。
除了有監(jiān)督的模型可解釋性之外,SynapseML 還為無(wú)監(jiān)督的負(fù)責(zé)任 AI 引入了幾項(xiàng)新功能。借助微軟的用于理解數(shù)據(jù)集不平衡的新工具,研究人員可以檢測(cè)敏感數(shù)據(jù)集特征(例如種族或性別)是否被過(guò)度或不足表達(dá),并采取措施提高模型公平性。此外,SynapseML 的分布式孤立森林使研究人員能夠在不需要標(biāo)記訓(xùn)練數(shù)據(jù)的情況下檢測(cè)其數(shù)據(jù)集中的異常值和異常情況。
“我們的目標(biāo)是幫助開(kāi)發(fā)人員簡(jiǎn)化分布式實(shí)現(xiàn)細(xì)節(jié),并使他們能夠?qū)⒎植际讲渴鸬礁鞣N數(shù)據(jù)庫(kù)、集群和語(yǔ)言中,而無(wú)需更改原來(lái)的代碼,”Hamilton 說(shuō)道。
參考鏈接:
https://www.microsoft.com/en-us/research/blog/synapseml-a-simple-multilingual-and-massively-parallel-machine-learning-library/
https://venturebeat.com/2021/11/17/microsoft-open-sources-synapseml-for-developing-ai-pipelines/
推薦閱讀
用Python學(xué)線性代數(shù):自動(dòng)擬合數(shù)據(jù)分布 Python 用一行代碼搞事情,機(jī)器學(xué)習(xí)通吃 Github 上最大的開(kāi)源算法庫(kù),還能學(xué)機(jī)器學(xué)習(xí)! JupyterLab 這插件太強(qiáng)了,Excel靈魂附體 終于把 jupyter notebook 玩明白了 一個(gè)超好用的 Python 標(biāo)準(zhǔn)庫(kù),666? 幾百本編程中文書(shū)籍(含Python)持續(xù)更新 100天搞定機(jī)器學(xué)習(xí)|Day63 徹底掌握 LightGBM 100天搞定機(jī)器學(xué)習(xí) 番外:使用FastAPI構(gòu)建機(jī)器學(xué)習(xí)API
你也「在看」嗎???
