淺談Apple Core ML 2和Google ML Kit:開發者該如何選擇?

在2018年舉行的蘋果全球開發者大會(WWDC2018)上,蘋果公司宣佈了Core ML 2,這是一個用於iOS設備的機器學習軟件開發工具包(SDK)新版本。但這並不是蘋果一家的遊戲——就在幾個月前,谷歌曾宣佈了一款面向iOS和安卓設備的跨平臺人工智能SDK。這兩種工具箱都旨在優化大型人工智能模型和數據集開發負擔的開發工具。那麼它們有什麼不同呢?該如何選擇呢?

Core ML

蘋果的Core ML在2017年6月首次亮相,旨在提高開發者將機器學習模型集成到iOS應用的效率。Core ML 2的目的也是一樣的,但是它更有效率:蘋果表示Core ML 2速度快了30%,這要歸功於批量處理預測,而且它可以將模型的大小縮小到75%。

淺談Apple Core ML 2和Google ML Kit:開發者該如何選擇?

Apple Core ML 2

然而,它並不完美。與Google的ML套件不同,它不是跨平臺的(它不支持Android),而且它是一個絕對的離線服務——雲託管的模型和版本控制需要像IBM的Watson Studio這樣的第三方服務。

Core ML 2在其他方面也受到了限制。最新版本支持16位浮點數,這可以大大減少人工智能模型的大小。但是它不能將機器學習模型壓縮到更小的包中,並且它不能在運行時更新模型。經過加工的模型被加載到蘋果的Xcode開發環境中,並打包成應用程序包。

當然,這並不是要減少 Core ML的優勢。它附帶了四個基於現階段流行的開源項目和轉換器的預建機器學習模型,支持Facebook的Caffe和Caffe2、Keras、scikit-learn、XGBoost、LibSVM和Google的TensorFlow Lite。開發人員還可以為不受支持的框架創建自定義轉換器

蘋果也像開發者兜售Core ML的保密隱私優勢,應用程序不需要通過網絡傳遞數據,並且強調, Core ML是為了提高效率而優化的。

ML是一種新的gpu加速工具,在Mac電腦上進行人工智能模型訓練,支持視覺和自然語言。而且因為它是用Swift編寫的,開發者可以使用拖放式編程接口,比如Xcode Playgrounds來訓練模型。

Google ML Kit

在今年5月舉行的谷歌開發者大會上,谷歌推出了針對其Firebase移動開發平臺的跨平臺機器學習工具ML工具包。ML Kit在Android設備上使用了神經網絡API,旨在壓縮和優化移動設備的機器學習模型。

淺談Apple Core ML 2和Google ML Kit:開發者該如何選擇?

Google ML Kit

ML Kit和Core ML之間的主要區別是對設備和雲api的支持。不像Core ML,ML Kit不能本地部署需要互聯網接入的模型,ML Kit利用了Google雲平臺的機器學習技術來提高“增強”的準確性。例如,谷歌的設備圖像標籤服務有大約400個標籤,而基於雲的版本則有超過1萬個。

ML Kit為基礎使用者提供了一些易於使用的api:文本識別、人臉檢測、條形碼掃描、圖像標記和地標識別。谷歌表示,新的API將於2018年晚些時候推出,其中包括一個支持應用內上下文息回覆的智能回覆API,以及一個帶有高密度人臉輪廓的增強人臉檢測API。

ML Kit 沒有限制開發人員預先構建機器學習模型。使用TensorFlow Lite自定義模型,谷歌的輕量級離線機器學習框架,可以通過Firebase控制檯部署ML工具包,(谷歌表示,他們還在開發一種壓縮工具,可將完整的TensorFlow模型轉換為TensorFlow Lite模型)。

開發人員可以選擇將機器學習模型與應用程序分離,並在運行時為它們提供服務,從而減少應用安裝規模的大小,確保模型始終保持最新。

ML Kit與Firebase功能類似,比如a/b測試,它允許用戶動態測試不同的機器學習模型,以及存儲圖像標籤和其他數據的Cloud Firestore。

哪一個更好?

那麼,哪個機器學習框架佔了上風呢?

各有所長吧。

當然,Core ML 2並不支持Android,熟悉谷歌Firebase的開發者可能更喜歡ML Kit。同樣,Xcode用戶可能傾向於使用Core ML 2。

也許兩者之間最大的不同是第一方的即插即用支持:Google提供了大量預先構建的機器學習模型和api可供選擇,包括用於上下文消息回覆和條形碼掃描的api;再看蘋果,則更加開放。

所以,在Core ML 2和ML Kit之間進行選擇主要是個人偏好的問題——以及開發人員是否更喜歡像Firebase這樣從頭到底的全面解決方案,或者像Create ML這樣的零散化逐個開發的解決方案。


分享到:


相關文章: