Anemll/Anemll
Artificial Neural Engine Machine Learning Library
ANEMLL – 在 Apple Neural Engine 上運行大型語言模型
簡介 – ANEMLL(發音為“animal”)是一個開源工具包,讓您可以獲取 Hugging Face 上的 LLM,並使用 Apple Neural Engine (ANE) 在 Apple Silicon 設備(iPhone、iPad、Mac、visionOS)上本地運行它們。它涵蓋了整個流程:模型轉換為 Core ML、分析工具、基於 Swift 的參考應用程式以及 Python 層級的聊天演示。
核心組件(如 README 中所述)
| 組件 | 功能 |
|---|---|
| LLM 轉換工具 | 讀取 Hugging Face 權重並輸出 Core ML 模型(單個單體文件或分塊)的腳本(convert_model.sh、convert_monolith.sh)。支援 LLaMA、Qwen、Gemma 3、DeepSeek 等,並可選模型內 argmax 和權重去重(ANEMLL-Dedup)。 |
| ANE 分析器 | 一個無需 Xcode 即可運作的 Core ML/ANE 分析器,提供計算計劃分解、兼容性報告和基準測試數據。 |
| Swift 參考實現 | 一個 Swift 庫和 CLI(anemll-swift-cli),展示了快速的設備端推理,以及用於 iOS/macOS/visionOS 的全螢幕聊天 UI(語音輸入、AirDrop 模型共享、Markdown 渲染)。 |
| Python 範例代碼 | chat.py(快速測試)和 chat_full.py(對話歷史處理)以及一套轉換驗證測試。 |
| iOS/macOS 範例應用 | 一個重新設計的“ANEMLL Chat”應用(可通過 TestFlight 獲取),展示了端到端的模型下載、本地導入和設備端流式聊天。 |
| ANEMLL-BENCH | 用於跨模型和量化級別進行系統性 ANE 性能基準測試的獨立存儲庫。 |
支援的模型(截至 v0.3.5 穩定版)
- Gemma 3 – 270 M、1 B、4 B(量化感知訓練),具有滑動窗口 + 全局注意力,最高 4 K 上下文。
- LLaMA 3.1/3.2 – 1 B、8 B。
- Qwen 3 – 0.6 B、1.7 B、8 B。
- Qwen 2.5 – 0.5 B、1.5 B、3 B、7 B。
- DeepSeek R1 – 8 B 蒸餾版(基於 LLaMA)。
- DeepHermes – 3 B、8 B(微調後的 LLaMA)。
所有這些都可以轉換為完全在 ANE 上運行的 Core ML 模型,並可選量化(LUT4/LUT6)和特殊的 模型內 argmax 模式,以減少主機與設備之間的數據傳輸。
0.3.5 Beta 版本亮點
- 全棧 iOS/macOS/visionOS 聊天應用,具備語音輸入、AirDrop 共享、Markdown 渲染和“思考模式”。
- 單體模型支援 – 每個模型一個 Core ML 文件,借助
ANEMLL-Dedup將存儲開銷降低約 50%。 - 模型內 argmax (
--argmax) – 將 argmax 操作移至 Core ML LM 頭部,僅將獲勝的 token 索引/值發送回主機,顯著降低帶寬。 - Swift 推理穩定性 – 基於 IOSurface 的緩衝區和串行預測隊列消除了 iOS 上的競爭條件。
- ANE 分析器 – 無需 Xcode 的命令行分析,有助於發現兼容性問題。
- 基準測試結果 – 在多項標準 NLP 任務中,ANEMLL-FP16 在相同硬件上略優於 Hugging Face FP16(在 ARC、BoolQ 等任務中平均準確率提高 +0.71%)。
- 自動虛擬環境激活 – 除非禁用,否則轉換腳本將啟動
env-anemllvenv。
典型工作流程(快速入門)
# 1. 創建可重現的 Python 環境(推薦使用 uv)
brew install uv
./create_uv_env.sh # 製作帶有 Python 3.9 的 env-anemll
source env-anemll/bin/activate
./install_dependencies.sh # coremltools, transformers 等
# 2. 轉換模型(範例:Gemma-3-270M)
./anemll/utils/convert_model.sh \
--model google/gemma-3-270m-it \
--output ./models/gemma3_270m \
--context 512 \
--chunk 1 \
--argmax
# 3. 在 Python 中測試推理
python ./tests/chat.py \
--meta ./models/gemma3_270m/meta.yaml \
--prompt "Hello, ANEMLL!"
# 4. (可選) 運行 Swift CLI 或 iOS 聊天應用
./anemll-swift-cli/run.sh ./models/gemma3_270m/meta.yaml
# 或啟動 TestFlight 應用以獲得完整的 UI 體驗
README 還提供了測試腳本(tests/conv/*.sh),可自動下載微型參考模型、進行轉換並運行端到端驗證。
為什麼要使用 ANEMLL
- 設備端隱私 – 無網絡調用;整個 LLM 在設備的 ANE 上本地運行。
- 低功耗邊緣 AI – 適用於電池壽命至關重要的移動或嵌入式 Apple Silicon 產品。
- 快速推理 – ANE 可以並行執行 FP16 矩陣運算;模型內 argmax 進一步降低了延遲。
- 開發者友好 – 附帶用於快速原型的 Python 工具和用於生產級 iOS/macOS 應用的 Swift 庫。
安裝與系統要求(摘要)
- Apple Silicon 上的 macOS Sequoia(或更高版本)(推薦 M1/M2/…)。
- ≥ 16 GB RAM(8 B 模型需 32 GB)。
- Python 3.9-3.11(3.9 是測試最充分的版本)。
- Xcode 命令行工具(用於 Core ML 編譯器)。
coremltools≥ 9.0,transformers≥ 4.36.0,以及 NumPy、scikit-learn 等。- 可選:
uv用於快速環境創建。
更多資訊
- 文檔 –
docs/文件夾(轉換指南、分析器文檔、Swift CLI 指南、範例應用說明)。 - 預轉換模型 – Hugging Face 組織
anemll(即用型.mlmodelc包)。 - 基準測試 –
ANEMLL-BENCH存儲庫以及 README 中的任務級結果表。 - 社區 – 在 X/Twitter 上關注
@anemll以獲取更新;為存儲庫加星以示支持。
總結
ANEMLL 是一個真正且積極維護的開源項目,彌合了大型語言模型與 Apple 設備端神經硬件之間的差距。它提供了轉換腳本、分析工具、Swift 和 Python 參考實現以及現成的 iOS/macOS 聊天應用,使開發者能夠在 iPhone、iPad、Mac 和 visionOS 設備上運行保護隱私的 LLM。
相關
- 專案
- 專案
- 專案
- 專案