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

概要

Runtime Local LLM Documentation

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

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

主な機能

  • 完全オフライン推論: ランタイム時にクラウドサービスや API キーは不要
  • GGUF モデル対応: Llama、Mistral、Phi、Gemma、Qwen などの GGUF 形式モデルをロード可能
  • 最新 llama.cpp: Fab で定期的に更新され、llama.cpp のリリースに追従し、最新の GGUF モデル形式が常にサポートされます
  • GPU アクセラレーション: Windows と Linux では Vulkan、Mac と iOS では Metal、Android と Meta Quest では CPU + intrinsics を使用
  • 複数のモデル読み込み方法:
    • ローカルファイルパスから読み込む
    • モデル名で読み込む(Blueprints のドロップダウン選択)
    • URL からダウンロードして自動的に読み込む
    • 事前キャッシュ用のダウンロードのみ
  • トークンごとのストリーミング: リアルタイム表示のために、生成される各トークンを即座に受信
  • 非同期ブループリントノード: 読み込み、メッセージ送信、ダウンロードのための出力デリゲートを備えたノード
  • 設定可能な推論パラメータ: 温度、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 ファイルとして保存されます。プラグインは自動的に Additional Non-Asset Directories To Copy (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_MGood中程度Fast
Q5_K_Mより良い大きい中程度
Q8_0High遅い
F16 / F32最高最大最遅

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

追加リソース

Join our Discord
online · support