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.shconvert_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-anemll venvを起動します。

一般的なワークフロー(クイックスタート)

# 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 をフォローして最新情報を入手。リポジトリにスターを付けてサポートを示してください。

TL;DR

ANEMLLは、大規模言語モデルとAppleのデバイス上ニューラルハードウェアのギャップを埋める、真にアクティブにメンテナンスされているオープンソースプロジェクトです。変換スクリプト、プロファイリングツール、SwiftおよびPythonの参照実装、すぐに使えるiOS/macOSチャットアプリを提供し、開発者がiPhone、iPad、Mac、visionOSデバイス上でプライバシーを保護したLLMを実行できるようにします。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト