その他の制限と機能
これはローカルLLM特有の考え方ではありませんが、自分で設定できるため、仕組みをイメージしやすい項目もあります。
コンテキスト長
モデルをロードする際に、「コンテキスト長」を図10のように指定できます。
コンテキスト長は、ユーザーの入力、過去の会話、モデルの出力など、1回の推論で扱えるトークン数の上限と考えると分かりやすいでしょう。
実際のチャットでは、図11のように現状を確認できます。
コンテキスト長が大きいほど、1つのチャットでより長くやり取りを続けられます。
ただし、やりとりが続けば続くほど、このコンテキストは大きくなり、利用するメモリも増えていきます。
また、このコンテキスト量を超えると、エラーになって会話を続けられないか、以前の内容が忘れられていくことになります。
コンテキスト長を超えたときの挙動は、エラーになる場合と、古い会話を削って処理を続ける場合があります。そのため、以前伝えた内容が考慮されていないときは、プロンプトやハルシネーションだけでなく、コンテキスト長を超えていないかも確認する必要があります。
キャッシュ機能
AIでは、過去のプロンプトや出力結果も、次の推論に必要な入力として扱われます。つまり、会話が続けば、過去のやり取りを含んだ長い入力が次の推論でもモデルに渡されることになります。
先ほど、TTFTが長くなることについて説明しました。もしこの長い入力を毎回すべて処理し直すのであれば、会話が長くなるほどTTFTも増えてしまいます。これでは、AIを実用的に利用するうえで大きな問題になります。
しかし、実際には、新たに入力した内容だけの時間に見えます。実は、これは内部でキャッシュ機能が効いているためです。
そのため、別のチャットであっても、LM Studioであまり間隔を置かず、まったく同じプロンプトを投げるとすぐに出力が始まります。
実はLM Studioでは細かく制御できないので、本稿では説明しませんが、プロンプトキャッシュという機能をより高度に使えば、最初に時間がかかっても次回以降はその処理をスキップできるようになるのです。
プロンプトキャッシュを有効活用するには、指示文や固定テキストなどの「共通する情報」を前段に置き、日時やユーザーの入力内容などの「可変の情報」を後段に配置するのがコツです。
GGUFモデルでは、「Unified KV Cache」を利用できる場合があります。これは、複数のリクエストが持つKVキャッシュを共有し、共通部分のメモリ使用量を抑えるための機能です。ただし、すべての処理で効果が出るわけではありません。
イメージとしては、複数人がそれぞれ独立したメモリキャッシュを持つのではなく、共通して利用できるキャッシュを共有する機能と考えるとよいでしょう。
例えば、共通したプロンプトで並列処理を動かしている場合などキャッシュが使える場合、全体のメモリの節約が可能です。
MLXの場合にはこの指定がないのは、そのような判断も含めてMac側の最適化メモリ機能を使えるため、この指定がありません。
これ以外にもキャッシュ量子化というものもあり、これは、前回のモデルの量子化でも簡単に説明しましたが、キャッシュサイズを小さくするためのものというイメージも持てば問題ありません。
なぜ「MLX」が有利なのか
モデルの選択の際にも触れましたが、Apple Silicon環境(Mac Studioなど)でLM Studioを使用する場合、選択肢があればGGUF形式よりも「MLX」形式のモデルを選択するのがおすすめです。
実際に利用してみると、単に「Apple公式だから」だけではない、明らかなメリットを実感できます。
Metal APIの使用が前提となっている
MLXはAppleが開発したApple Silicon専用のフレームワークであり、グラフィック/計算処理用APIである「Metal API」を直接活かす構造になっています。汎用的なグラフィック処理の変換層を挟まないため、ハードウェアの描画・計算性能を無駄なく引き出すことができます。
Apple Siliconのユニファイドメモリ管理による「速度と設定の楽さ」
GGUFモデルの場合、モデルをロードする際に「GPUにどれだけ処理をオフロード(移送)するか」といったパラメータ調整が必要になるケースがあります。しかしMLXでは、CPUとGPUが同じメモリ空間を共有する「ユニファイドメモリ」構造に最適化されています。そのため、複雑なメモリ割り当ての設定に悩むことなく、快適な応答速度(TTFTの短縮や生成トークン数の向上)が得られます。
GPUやNPUの潜在性能を限界まで引き出せる
Windows環境(Snapdragonなど)では「チップにGPUやNPUが搭載されていても、LLMエンジン側が対応しておらずCPU処理に落ちてしまう」という問題が発生していました。一方、Mac上のMLX環境であれば、OSとアーキテクチャに深く統合されているため、搭載されているGPUやNeural Engine(NPU)の性能を最初からフル活用した推論が行われます。
このように、ハードウェアが持つポテンシャルを「複雑な設定を行わずに引き出せること」が、Apple Silicon上でMLXを利用する大きなメリットと言えるでしょう。
