Anemll/Anemll
Artificial Neural Engine Machine Learning Library
ANEMLL – Apple Neural Engineで大規模言語モデルを実行する
概要 – ANEMLL(「アニマル」と発音)は、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ベータ版のハイライト
- フルスタックiOS/macOS/visionOSチャットアプリ:音声入力、AirDrop共有、Markdownレンダリング、「思考モード」を備えています。
- モノリシックモデルのサポート:モデルごとに1つのCore MLファイル。
ANEMLL-Dedupによりストレージオーバーヘッドを約50%削減。 - モデル内argmax (
--argmax):argmax操作をCore MLのLMヘッド内に移動し、勝者のトークンインデックス/値のみをホストに送信することで帯域幅を劇的に削減。 - 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コンパイラ用)。
coremltools9.0以上、transformers4.36.0以上、NumPy、scikit-learnなど。- オプション:高速な環境作成のための
uv。
詳細情報
- ドキュメント –
docs/フォルダ(変換ガイド、プロファイラーのドキュメント、Swift CLIガイド、サンプルアプリの説明)。 - 事前変換済みモデル – Hugging Face組織
anemll(すぐに使える.mlmodelcバンドル)。 - ベンチマーク –
ANEMLL-BENCHリポジトリとREADME内のタスクレベルの結果表。 - コミュニティ – X/Twitterで
@anemllをフォローして最新情報を入手。リポジトリにスターを付けてサポートを示してください。
TL;DR
ANEMLLは、大規模言語モデルとAppleのデバイス上ニューラルハードウェアのギャップを埋める、真にアクティブにメンテナンスされているオープンソースプロジェクトです。変換スクリプト、プロファイリングツール、SwiftおよびPythonの参照実装、すぐに使えるiOS/macOSチャットアプリを提供し、開発者がiPhone、iPad、Mac、visionOSデバイス上でプライバシーを保護したLLMを実行できるようにします。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト