↩️iOS 本地 AI:連載一個月的實戰心得回顧

Foundation Models framework 大幅降低了 iOS 開發者使用離線 LLM 的門檻。關鍵還是開發者有沒有找到適合幫 App 加分的用法。

12 月一轉眼就過去了。iOS 本地 AI 專題系列文章來到 20 篇,也是我規劃中的最後一篇。

讓我們來回顧一下:

  • 我寫了什麼?
  • 我們學到了什麼?
  • 在 App 中使用本地 LLM,有什麼實質用處?
  • Apple 平台的本地 AI 優勢與潛力
  • 使用第三方模型的其他考量
  • 往系統整合
  • iOS 開發者的本地 AI 機會

我寫了什麼?

我寫這個系列專題的初衷有三個:

  1. 開篇預告提到發現「iPhone 17 Pro 跑 Foundation Models 居然比 M3 Max MacBook Pro 還快」,新 SoC 的 AI 推論速度大幅提升
  2. 繁體中文 Apple Intelligence 正式開放,能使用 Foundation Models framework 的優秀語法,輕鬆呼叫離線小模型
  3. Foundation Models framework 的語法相容套件 AnyLanguageModel 宣布開發,使用它就能沿用原本語法、替換各種模型來源

綜合這些條件,讓我感到在 iOS 上執行本地 AI 的可行性大增、開發門檻大幅降低,是個入坑的好時機。

首先,我試圖打破「AI 功能 = 連網使用」的印象,並使用第三方 ASR(語音轉文字)與 Apple 自己的 ASR 作為示範。

接下來,我提到離線模型的優點是要依照使用者的特性來談。不同群體最在意的事情並不相同。並且建議先導入離線模型做簡單功能,會比直接用雲端大模型做強大功能更好。因為軟體功能很難越做越簡單。

我還簡介了 Apple Intelligence 的開發者必要知識。前面這幾篇我想綜合表達的重點是,iOS 有許多離線 AI 功能,不知不覺已經相當實用。開發者如果想做類似的事情,都可以參考系統的相關功能。

接著,我們正式開始入坑 Foundation Models framework,從 建立學習策略 開始,介紹 基本語法與可用性檢查Structured OutputPromptBuilderStream ResponseTool Calling錯誤處理與使用者體驗強化衡量效能的工具與策略。最後還附上了補充延伸資料

除了介紹框架的用法以外,我也示範了如何建立自己的研究型專案。這個技能可以沿用到學習各種程式技術上。

系列的最後一部分,我開始試用 AnyLanguageModel 套件,看看能否如同宣稱的一樣直接替換(drop-in replacement)。先做了一些準備工作 並介紹 Package Traits 機制。然後嘗試了接上 LM Studio 提供的 LLM Server,以及在 iOS App 中下載開源模型並用 MLX 執行

對我來說,這系列的寫作過程中,有很多東西是之前聽過、看過,但沒有實際摸過,所以藉著這個機會,一邊研究、一邊把過程與經驗分享出來。

經過 19 篇文章的探索,實際情況如何呢?

我們學到了什麼?