Apple Silicon M4 上の Laya CoreML デモ – CoreML 経由で動作するオフラインの Snake ゲーム

Laya CoreML は Apple Silicon M4 上でオフライン動作し、CPU 負荷も最小限

要点: laya-coreml パッケージは、M4 チップを搭載した Mac 上で多言語 LLM をローカル実行でき、CoreML を使用して推論を Neural Engine にオフロードし、Snake ゲームのデモ実行中もメモリ使用量を 800 MiB 未満に抑えます。


クイックスタートスクリプト

Gist の作者は、新しい Python 環境をセットアップし、デモをインストールし、事前変換済みの CoreML モデルをダウンロードして Snake デモを起動する再現可能なシェルスクリプト (laya.sh) を公開しています:

mkdir test-laya
cd test-laya
uv init                     # 分離された Python 環境を作成
uv add 'laya-coreml[demo]'   # ライブラリとデモ用の追加機能をインストール
hf download aac6fef/laya-multilingual-coreml-ane --local-dir models/snake
uv run laya-coreml-snake --model models/snake

macOS 27.0 (Apple Silicon M4) でスクリプトを実行すると、LLM が Snake エージェントをリアルタイムに制御するウィンドウが起動します。


作者によるパフォーマンス指標

作者はデモ実行中に Python プロセスの sample スナップショットを取得しました:

Physical footprint:         560.4 MiB
Physical footprint (peak):  778.0 MiB

このレポートは、プロセスが 800 MiB の RAM を超えないことを示しており、モデルが一般的な M シリーズ Mac のユニファイドメモリプールに余裕を持って収まることを確認しています。


CoreML による Neural Engine へのオフロード

コメント投稿者 (speedping) は、推論が GPU ではなくほぼ完全に Neural Engine で実行されることを観察しました:

「とてもクールです。pumas (エネルギー監視ツール) を起動してみましたが、GPU ではなくほぼ完全にニューラルエンジンで動作しているようです。CoreML との相性がとても良いです。」

これは、laya-coreml が Apple のハードウェアアクセラレーションスタックを活用し、CPU 負荷と消費電力を削減することを確認しています。


Cloudflare を介した API 使用例

別のコミュニティメンバー (coezbek) は、ローカルの Laya モデルを Cloudflare Workers エンドポイント (typesafe/jev API) の背後にラップし、シンプルな JSON リクエストを実演しました:

curl https://laya.inference.zaitlabs.com/ai/run \
  -H "Content-Type: application/json" \
  -d '{
    "state": "Help! My payouts have been failing for 3 days.",
    "questions": {
      "is_urgent": {"type": "noul", "instructions": "Does this convey urgency?"}
    }
  }'

応答は緊急度の確率スコア (0.7894) を返し、モデルを低遅延の推論サービスとして公開できることを示しています。


コミュニティの視点

  • 決定論的なタスク: imranq によるコメントは、Laya がトレーニングデータが存在するタスクで優れており、決定論的な動作が価値を持つ一方、純粋に新しいクエリに対しては Jev のようなゼロショットモデルに遅れを取る可能性があると指摘しています。
  • ローカル LLM の未来: PaulRobinson は、制御問題ドメインにおけるローカル LLM に熱意を示し、実証されたようなハードウェアアクセラレーション推論がより広い採用を促進する可能性があると示唆しました。
  • メモリへの好奇心: altano は、128 GB ユニファイドメモリを搭載した M3 Max でのメモリ消費について質問しました。作者のサンプルデータ (ピーク約 778 MiB) は、エントリーレベルの M シリーズチップでもフットプリントが控えめであることを示しています。
  • モデルの範囲: 複数のコメント投稿者 (tentacleuno、frag) が、Snake デモがファインチューニングされた Laya モデルを使用しているかどうかを尋ねました。Gist はファインチューニングを指定しておらず、Hugging Face の事前公開モデル laya-multilingual-coreml-ane を使用しています。

Laya-CoreML とは

laya-coreml は、多言語 LLM (約 3 億パラメータ) をラップし、CoreML 変換パイプラインを提供する Python パッケージです。リポジトリ (https://github.com/mizorewww/laya-coreml) には以下が含まれます:

  • Apple の CoreML 形式へのモデル変換スクリプト。
  • 強化学習スタイルの Snake ゲームでモデルを実行するデモ CLI (laya-coreml-snake)。
  • デモに必要な依存関係をインストールするオプションの追加機能 ([demo])。

これが重要な理由

コンシューマーグレードの Apple Silicon 上で言語モデルを完全にオフラインで実行することは、高度な AI ワークロードがもはやクラウド GPU を必要としないことを実証しています。低メモリフットプリントと Neural Engine アクセラレーションにより、インテント分類、緊急度検出、ゲームエージェントなどの LLM 駆動機能を、ネットワーク遅延やデータプライバシーの懸念なしに macOS アプリケーションに直接組み込むことが可能になります。


自分で試す方法

  1. 前提条件: Apple Silicon (M1/M2/M3/M4) 上の macOS 27.0 (以降)。uv パッケージマネージャーをインストールします (pip install uv)。
  2. リポジトリをクローン: git clone https://github.com/mizorewww/laya-coreml.git。
  3. スクリプトに従う: 上記の「クイックスタートスクリプト」セクションのコマンドを実行します。
  4. 実験: Snake デモを独自の CoreML 互換推論ループに置き換えるか、Cloudflare の例のようにローカル HTTP サーバーを介してモデルを公開します。

制限と未解決の質問

  • モデルサイズ: 約 3 億パラメータの Laya は、最先端モデル (例: 70 億以上) よりもはるかに小さいです。言語理解の幅が減少することが予想されます。
  • ファインチューニング: 公開デモには Snake 環境用のファインチューニングバージョンは含まれていません。タスク固有のパフォーマンスに関心のあるユーザーは、ベースモデルをファインチューニングして CoreML に再エクスポートする必要があります。
  • ハードウェア依存: パフォーマンスの向上は Apple の Neural Engine に依存しています。非 Apple ハードウェアや最新の Neural Engine を搭載していない古い Mac モデルでは結果が異なる場合があります。

結論

laya-coreml デモは、3 億パラメータの多言語 LLM が Apple Silicon M4 上でオフライン実行でき、CoreML を使用して RAM を 800 MiB 未満に抑え、計算を Neural Engine にオフロードすることで、デスクトップ上で低遅延かつプライバシーを保護する AI アプリケーションを可能にすることを証明しています。

Sources

関連

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