為何 Apple 的 AI 技術領先群倫(上)
機器學習(Machine learning, 簡稱 ML)和人工智慧(artificial intelligence,簡稱 AI)皆已滲透到 iPhone 所有功能中。不過,Apple 並未像其他競爭對手一樣吹捧這些技術。或許許多技術狂熱者會說,有了機器學習,數據資料越多,就能建構出更好的模型 – 但是,Apple 並不熱衷於搜集使用者的數據資料。
儘管如此,Apple 仍在其出品的大多數裝置中置入專用硬體供機器學習之用。在 Apple 主管登台介紹 iPhone、iPad 或 Apple Watch 的新功能時,越來越常把焦點放在機器智慧驅動功能上。當搭載 Apple 矽晶片的 Mac 問世後,這些機器學習功能也一併引入 Apple 的筆記型電腦及桌上型電腦中。
Apple 的 AI 策略
相較於 Google 積極活躍於 AI 研究社群,過去 Apple 通常習慣隱身幕後做好工作。不過最近幾年這種情況有所改變,因為機器學習在 Apple 裝置上扮演越來越重要的角色,許多功能都需要靠機器學習的推動,故 Apple 越來越積極與 AI 社群互動。
Apple 機器學習與 AI 策略副總裁 John Giannandrea 表示,Apple 一直代表創意和科技的交融。在建構智慧型體驗時,由應用程式、架構一直到矽晶片等進行垂直整合是很重要的,這是電腦運算裝置的未來。產品行銷副總裁 Bob Borchers 亦表示,這顯然是 Apple 的策略,也是 Apple 正在做的事。
說到手寫體驗,Giannandrea 提供有力論調,證明 Apple 建構的機器智慧型功能和產品是領先群倫的:「我們製造出 Pencil 及 iPad,且我們製造出這兩者的軟體。這個獨特的機會造就了一項真正非常出色的工作。這項出色的工作是什麼?就是讓人們能在數位紙張上寫筆記並發揮創造力。看到這類經驗在世界上廣泛應用是件有趣的事。」他拿 Google 作為對比:「Google 是間了不起的公司,具有很多很棒的科技工作成果,但他們的基本商業模式不同,他們不是以提供消費者經驗而聞名。」
Apple 如何運用機器學習
在最近的 iPhone、Apple Watch 或 iPad 的產品發表會上,Apple 不時提到許多功能的改進皆歸功於機器學習。機器學習可用來幫助 iPad 軟體區分使用者以 Apple Pencil 繪圖時是不小心手按到螢幕,還是故意按下特定按鍵。它會觀察使用者習慣,以最佳化電池電力及充電方式,好改進充電次數並保護電池使用壽命。它也用來提供 app 建議。
還有 Siri,它讓所有 iPhone 使用者立即感受到何謂人工智慧。機器學習對 Siri 有多方助益,比如說語音辨識,或是藉由 Siri 提供問答。精明的 iPhone 使用者也許還會注意到機器學習也在「照片」app 功能推上了一把,它不但能將照片分類至事先建立好的圖片庫,還可以搜尋朋友名字時準確地找出朋友的照片。
在其它情況下,使用者幾乎不會感受到機器學習正在運作。舉例而言,當使用者按下快門按鈕,iPhone 會快速地連續拍下許多照片。但受過機器學習訓練的演算法會分析每張圖片,擷取每個圖片的最佳部分合成為一張照片。
手機中有圖像信號處理器(ISP),能即時數位化增強照片畫質。Apple 於 2018 年讓 iPhone 中的 ISP 與神經網路引擎緊密合作加速了圖片處理速度,也就是加入機器學習的處理器。
還有許多案例可以說明機器學習所提供的新體驗,比如說語言翻譯、聽寫指令,或者是健康方面新功能,如睡眠偵測及洗手提醒等等。未來 iOS 中可能很難找到沒有用到機器學習的功能。
機器學習在預測性的工作上更是不可或缺,比如說鍵盤輸入字元預測。智慧型手機的攝影鏡頭也在背景中進行大量機器學習運算,找出照片中的主角,或是在進行人像攝影時模糊背景。這些都受益自核心 Apple 平台所內建的機器學習功能,可以說機器學習已無所不在。
此外,Apple 在過去幾年的軟硬體更新都強化了擴增實境(AR)功能,這些功能之所以能夠實現,也要感謝機器學習。擴增實境最大的挑戰在於「同時定位」與「地圖構建」。帶著一台具備光學雷達掃描儀的 iPad 四處移動,它會將真實世界中所見一切建構成 3D 模型。
為何用在裝置上
剛剛這些精采的功能,都是在 Apple 裝置上直接執行的。一般認為,機器學習就是要蒐集大量數據才能建置更好的模型,因而產出更好的使用者體驗及產品。因此 Google、Amazon 或 Facebook 這些操作龐大資料搜集引擎的公司,常被認為是 AI 人工智慧中的佼佼者。對此,Giannandrea 表示,以資料中心建立龐大模型,在某方面來說是很準確,事實上並不盡然。在更接近資料產出之處來執行模型,會比四散於各處的資料更好。無論是位置資料(比如說使用者正在做的事)或是運動資料(手機中加速度計的資料),離資料來源越近越好,這樣也能保護隱私。
Borchers 與 Giannandrea 不斷指出搜集大量數據的資料中心對隱私有所影響,而 Giannandrea 更進一步表示,在裝置上進行本機處理也是考慮到效能問題。
「延遲也是重要的考量,」Giannandrea 說,「若將資料輸送至資料中心,很難以影格速率來完成工作。我們在 app 商店中有很多 app 用到這些功能,比如說姿勢預測、察覺人體動作、或是確定人體胳膊大腿的位置。這些都是透過 Apple 提供的高階 API。基本上,必須要能夠以影格速度完成這些工作才有用。」
Giannandrea 還提出另外一個案例:使用者以 iPhone 鏡頭拍照的前一秒,鏡頭已經即時捕捉一切。它可以幫助使用者決定何時按下快門拍下照片。如果要由伺服器來幫忙做決定,就得把每一格畫面都傳給伺服器,但這樣做沒有任何意義。所以說,有很多使用體驗最好還是在裝置本機上完成。
當被問及 Apple 如何抉擇何時在裝置上執行功能,Giannandrea 的回答很簡單:「只要在裝置上完成的工作品質可以達到或超過伺服器的工作品質,就會在裝置上完成。」
此外,Apple 的客製化晶片(尤其指自 iPhone 8 和 iPhone X 以來就內建於 iPhone 中的 Apple Neural Engine 晶片)是裝置直接運算處理的先決條件。Neural Engine 是由 Apple 設計的八核神經網路處理單元(NPU),用於處理特定類型的機器學習工作。
Giannandrea 表示:「整個過程歷經數年時間。五年前還沒有硬體可以做到這一點。ANE 設計為可完全擴展。iPad 內的 ANE 晶片比手機中的大,手機中的 ANE 晶片又比 Apple Watch 中的大。但我們所有產品線的 app 及開發人員使用的 app 基本上都是採用同樣的 CoreML API 層。」
CoreML 開發 API 非常清楚地囊括了各種機器學習模型以及受支援的運行時期模型。其支援的核心類型也越來越多。而且開發人員可以利用任一種普遍使用的機器學習框架(比方說 PyTorch 或 TensorFlow 編譯出模型,再交給 CoreML 處理。)
Giannandrea 提到,「CoreML 的工作是知道在哪裡執行模型。有時在 ANE 上執行模型較好,但有時得在 GPU 跑模型,或是在 CPU 上執行模型。我們的 CPU 也會針對機器學習進行最佳化。」Apple 的策略不僅是針對 Apple 自家服務及功能,它也開放了部分功能給開發者社群。自 2008 年 app Store 推出以來,開發人員亦為 Apple 貢獻不少創新。
不是只有 Apple 的裝置內建機器學習晶片。三星、華為和高通都在他們的單晶片系統上內建 NPU。Google 也為開發人員提供了機器學習 API。儘管如此,Google 的策略與商業模式仍與蘋果截然不同。Android 手機無法在本機上完成各式機器學習運算。
配備 Apple 矽晶片的 Mac
談到 Apple 自行為 Mac 打造的矽晶片,Borchers 表示:「這是我們第一次擁有一個共通平台,一個矽晶片平台可以完全支援我們想要做的事以及開發人員想要做的事…. 它的功能將解鎖一些我們能夠想到的有趣功能,更重要的是,它可以帶給其他開發人員更多樂趣。」
Giannandrea 對於 Apple 機器學習工具及硬體如何應用在 Mac,提出具體說明:「基本上這個概念就是針對特定影片進行逐格瀏覽及物件檢測。在我們設計的晶片上進行這項工作要比傳統平台快上許多。接著你或許會問,這有什麼用途呢?想像你有個影片剪輯器內有搜尋框,只要說出『找出桌上的比薩』,然後它就會掃至相關表格…這是大家會想要的體驗。我們十分期待看到開發人員利用這些框架發展出令人驚喜的用途。」