メインコンテンツまでスキップ

概要

Runtime Local LLM Documentation

Runtime Local LLM は、llama.cpp を使用して大規模言語モデルを完全にデバイス上で実行するプラグインであり、ランタイム時にインターネット接続を必要としません。GGUFモデルファイルをサポートし、モデルの読み込み、メッセージの送信、トークン単位の応答受信のための完全なブループリントAPIを提供します。これらはすべてバックグラウンドスレッド上で行われ、ゲームスレッドのコールバックが使用されます。

このプラグインは、WindowsMacLinuxAndroidMeta Quest やその他の Android ベースのプラットフォームを含む)、および iOS をサポートしています。

主な機能

  • 完全オフライン推論:実行時にクラウドサービスやAPIキーは不要
  • GGUFモデル対応:任意のGGUF形式モデル(Llama、Mistral、Phi、Gemma、Qwenなど)を読み込み可能
  • 最新のllama.cpp:Fab上で定期的に更新され、llama.cppのリリースに対応。最新のGGUFモデル形式を常にサポート
  • GPUアクセラレーション:WindowsとLinuxではVulkan、MacとiOSではMetal、AndroidとMeta QuestではCPU+イントリンシックを利用
  • 複数のモデル読み込み方法
    • ローカルファイルパスから読み込む
    • モデル名で読み込む(ブループリント内のドロップダウン選択)
    • URLからダウンロードして自動的に読み込む
    • モデルを事前キャッシュするためのダウンロードのみ
  • トークン単位のストリーミング: 生成された各トークンをリアルタイムで受信表示
  • 非同期Blueprintノード: 読み込み、メッセージ送信、ダウンロード用の出力デリゲートを持つノード
  • 設定可能な推論パラメータ: Temperature、Top-P、Top-K、繰り返しペナルティ、GPUレイヤーオフロード、コンテキストサイズ、シード、スレッド数、システムプロンプト
  • 会話管理: コンテキストリセット、セーブ/ロード(ディスク保存)、インメモリスナップショット、長時間チャットの自動要約を備えたマルチターン会話
  • エディタモデルマネージャー: プロジェクト設定内でモデルの参照、ダウンロード、インポート、削除、テストを実行
  • クロスプラットフォームパッケージング: NonUFSステージングによりモデルをプロジェクトに同梱

動作の仕組み

  1. エディタでモデルを管理する: プラグイン設定パネルを使用して、定義済みモデルのカタログを参照し、ダウンロードするか、独自のGGUFファイルをインポートします
  2. ランタイムでモデルを読み込む: 推論パラメータを指定して、読み込み関数(ファイル、名前、URL、またはメタデータによる)のいずれかを呼び出します
  3. メッセージを送信する: ユーザーメッセージをLLMインスタンスに渡します。モデルが応答を生成する際に、トークンがデリゲートを通じてストリーミングで返されます
  4. 応答を使用する: チャットUIにトークンを表示したり、NPCのダイアログを駆動したり、動的コンテンツを生成したり、他のシステムにフィードしたりします

すべての推論は専用のバックグラウンドスレッドで実行されます。コールバック(トークン生成、完了、エラー)はゲームスレッドで発火するため、そこから安全にUIやゲーム状態を更新できます。

一般的なユースケース

  • ゲーム内チャットボットとアシスタント: Q&A、ヘルプシステム、動的チュートリアル
  • NPC対話: 会話スナップショットを使用した、キャラクターごとに永続的なメモリを持つ会話型NPC
  • 長時間のロールプレイとナラティブシステム: 自動要約により、重要な事実を失うことなく、複数時間にわたる会話をコンテキスト制限内に収めます
  • プロシージャルコンテンツ: クエストの説明、アイテムの伝承、対話ツリーをその場で生成
  • オフラインファーストアプリケーション: ネットワーク接続なしでLLM機能を必要とするあらゆるもの

モデルの保存とパッケージング

モデルは、プロジェクトの Content/RuntimeLocalLLM/Models ディレクトリに .gguf ファイルとして保存されます。プラグインは自動的に 追加の非アセットディレクトリをコピーDirectoriesToAlwaysStageAsNonUFS)を設定し、モデルファイルがパッケージ化されたプロジェクトに同梱され、実行時に標準のファイルI/Oを介してアクセス可能な状態を維持します。

各モデルには、メタデータ(表示名、ファミリー、バリアント、説明、パラメータ数)を保存する .json サイドカーファイルも付属しています。

対応モデル

このプラグインは、GGUF形式の任意のモデルで動作します。エディターには、人気の事前定義モデルのカタログが用意されており、ワンクリックでダウンロードできます。また、カスタムのGGUFファイルをインポートすることも可能です。一般的なモデルファミリーは以下の通りです。

  • Llama(Meta)— 1B、3B、8B 以上
  • Mistral / Mixtral — 7B 以上
  • Phi(Microsoft)— 2B、3B、4B
  • Gemma(Google)— 2B、7B
  • Qwen(Alibaba)— 1.5B、7B 以上
  • TinyLlama — 1.1B
  • その他多数のコミュニティモデル

量子化

モデルには、品質とサイズ・速度をトレードオフする様々な量子化レベルがあります。

量子化品質Size速度
Q2_K低い最小最速
Q4_K_MGoodFast
Q5_K_Mより良いより大きい中程度
Q8_0High大きいより遅い
F16 / F32最高最大最も遅い

モバイルおよびVRデバイスでは、コンパクトなモデル(1B~3Bパラメータ)と共に、より小さい量子化(Q2_K~Q4_K_M)を推奨します。デスクトップでは、利用可能なRAMやCPU/GPUリソースに応じて、より大きなモデルや高い量子化レベルを使用できます。

追加リソース

Join our Discord
online · support