Apple Silicon向けOllama MLXエンジン・アップデート

Ollamaは、AppleのユニファイドメモリとMetalベースのMLXフレームワークを活用することで、Apple Silicon上でより高いパフォーマンスを実現するためにMLXエンジンをアップデートしました。これらのアップデートにより、回答の品質向上、出力速度の向上、およびメモリ使用量の削減が実現します。

NVFP4サポートによる推論品質の向上

OllamaのMLXエンジンは、現在NVIDIAのモデル最適化フォーマットであるNVFP4をサポートしています。この4ビット量子化フォーマットは、モデルの重みのローカルな動的範囲をより密接に追跡することで、他の4ビットフォーマットと比較して品質の低下を抑えます。

Gemma 4 12Bモデルの場合、NVFP4はq4_K_M量子化フォーマットと比較して、量子化されていないBF16の重みに対する品質の低下(パープレキシティで測定)をほぼ半分に抑えています。さらに、このサポートにより、データセンターでのデプロイ用に最適化されたモデルを、MLXエンジン経由でインポートして実行できるようになり、データセンターとデスクトップ間のポータビリティが向上します。

出力パフォーマンスの向上

アップデートされたMLXエンジンは、出力速度を最大20%向上させます。このパフォーマンスの向上は、主に2つの技術的な最適化によって達成されます。

  1. Kernel Fusion: MLXのジャストインタイム(JIT)コンパイラ機能を使用して、複数の操作を単一のMetalカーネルに融合(フュージョン)させています。
  2. Sampling Efficiency: Ollamaは、GPUベースのサンプリングをより効率的に動作させるために再設計しました。

ベンチマークによると、8,300トークンの入力プロンプトを用いた10回の実行における平均出力速度に基づくと、NVFP4はアップデートされたエンジン上でq4_K_Mよりも約20%速くトークンを生成します。

ステート・スナップショットによるエージェント・ワークフローの最適化

ツール呼び出しや繰り返しのトランスクリプトによって、モデルが同じコンテキストを数十回も再処理することを余儀なくされるエージェント・ワークロードにおけるプロンプト処理のオーバーヘッドに対処するため、Ollamaはスナップショット・システムを導入しました。このシステムは、冗長な処理を避けるために、重要なポイントでモデルの状態(ステート)を保存します。

スナップショット・システムの活用例

  • 複数のエージェント: エージェントがサブエージェントに処理を引き継いだり、複数のセッションを並行して実行したりする場合、各エージェントは自身の保存された状態から再開できます。システムプロンプトやツールの定義といった共通のコンテキストは、一度だけ処理されます。
  • 思考型モデル (Thinking Models): 生成されたトークンが後に履歴から削除される推論モデルの場合、回答の開始直前にスナップショットを撮ることで、次のターンで会話全体を再処理することなく再開できます。
  • 分岐とリトライ: ユーザーが回答を再生成したり、別のフォローアップ・パスを選択したりする場合、エンジンは会話が分岐した時点のスナップショットから再開し、履歴全体を再処理することはありません。

技術的な実装

スライディング・ウィンドウ・アテンションやリカレント層は、巻き戻し不可能な状態を保持しているため、Ollamaは会話が分岐する場所、長いプロンプトの途中の間隔、および各回答の開始直前に、重要なポイントで選択的かつ増分的に状態を保存します。この選択的なアプローチにより、モデルのメモリを節約しつつ、応答性を確保します。

実装と使用方法

ユーザーは、最新バージョンのOllamaをダウンロードして、MLX最適化モデルを実行することで、これらの改善点を利用できます。例えば、Gemma 4 12BをMLXエンジンで実行する場合:

ollama run gemma4:12b-mlx

コーディング・エージェントへの統合には、ollama launchコマンドを使用します:

ollama launch pi --model gemma4:12b-mlx

Sources

関連