產經情報

微軟開源多語言分散式機器學習函式庫SynapseML

日期:2021-11-19

SynapseML整合不同機器學習框架,提供單一可擴展且多語言適用的API,進而簡化分散式機器學習開發工作

微軟發布分散式機器學習開源函式庫SynapseML,該函式庫的特色在於能夠大規模創建機器學習工作管線,SynapseML標準化各種機器學習框架,支援以不同的機器學習生態系元件,組成全新類別的機器學習系統。SynapseML讓開發人員,不需要擔心分散式機器學習工作管線的實作細節,在不需要更改程式碼的情況,就能簡單地部署至各種資料庫、叢集和程式語言中。

微軟提到,要建構用於生產的分散式機器學習工作管線通常很困難,即便對有經驗的開發人員也不例外。組合不同生態系統的工具,通常需要大量的膠水程式碼,來黏著不同的元件,更麻煩的是,許多框架在設計的時候,並沒有考量千臺機器的彈性叢集使用案例。

SynapseML的功能,便是能夠將現有的機器學習框架,和新的演算法統一到一個可以跨Python、R、Scala和Java的可擴展API,SynapseML可以用來建構各種可擴展的智慧系統中,包括異常檢測、微服務調度或是模型可解釋性等。

透過統一的API,能夠大幅簡化分散式機器學習的開發,微軟表示,要開發可容錯的分散式程序很複雜,而且是一個容易出錯的過程,像是要進行深度網路的分散式評估,除了需要考量部署多GB級模型到數百臺機器,而不癱瘓網路之外,資料讀取器還必須確保所有資料都在處理佇列中,並且保持GPU滿載,另外,還必須要處理當電腦加入或是離開叢集時,工作負載的重新平衡。

目前有部分框架,像是Horovod能夠提供類似的管理功能,但是當開發團隊想要使用不同的機器學習框架,諸如LightGBM、XGBoost或SparkML進行比較,就需要建構新的環境和叢集,而且因為這些訓練系統的目的,都不是在提供服務或是部署模型,因此還需要獨立的推理和串流架構。

SynapseML則能夠以單一API來一統不同的機器學習框架,該API具有可擴展性,且獨立於資料和各種語言,也能以不同的範式,包括批次、串流和提供應用程式的方式來運作,開發人員可以專注在資料和任務上,而不需要耗費心力在不同機器學習生態系統與資料庫的實作細節中。

當開發人員需要建立多框架的使用案例時,SynapseML便能用來組合不同機器學習框架,並且在單節點、多節點和可彈性調整大小的電腦叢集上訓練和評估模型。SynapseML的API除了可用於不同的程式語言之外,該API還對各種資料庫、檔案系統和雲端資料儲存進行抽象,無論資料儲存於何處,開發者都能簡單地進行實驗。