概要

Runtime Local LLM は、llama.cpp を使用して大規模言語モデルを完全にデバイス上で実行するプラグインであり、実行時にインターネット接続は不要です。GGUF モデルファイルに対応し、モデルの読み込み、メッセージの送信、トークン単位の応答受信のための完全な Blueprint API を提供します。これらはすべてバックグラウンドスレッドで実行され、ゲームスレッド上のコールバックによって通知されます。
このプラグインは、Windows、Mac、Linux、Android(Meta Quest およびその他の Android ベースのプラットフォームを含む)、そして iOS をサポートしています。
主な特徴
- 完全オフライン推論: 実行時にクラウドサービスやAPIキーを必要としません
- GGUFモデル対応: Llama、Mistral、Phi、Gemma、Qwenなど、あらゆるGGUF形式のモデルを読み込めます
- 最新のllama.cpp: llama.cppのリリースに合わせてFab上で定期的に更新され、最新のGGUFモデル形式が常にサポートされます
- GPUアクセラレーション: WindowsとLinuxではVulkan、MacとiOSではMetal、AndroidとMeta QuestではCPU+intrinsicsを使用します
- 複数のモデル読み込み方法:
- ローカルファイルパスから読み込む
- モデル名で読み込む(Blueprints内のドロップダウン選択)
- URLからダウンロードして自動的に読み込む
- モデルを事前キャッシュするためのダウンロードのみ
- トークン単位のストリーミング: 生成される各トークンをリアルタイム表示用に受信します。
- 非同期 Blueprint ノード: 読み込み、メッセージ送信、ダウンロード用の出力デリゲートを持つノード
- 設定可能な推論パラメータ: 温度、Top-P、Top-K、繰り返しペナルティ、GPUレイヤーのオフロード、コンテキストサイズ、シード、スレッド数、およびシステムプロンプト
- 会話管理: コンテキストのリセット、ディスクへの保存/読み込み、インメモリスナップショット、長時間のチャットの自動要約を備えたマルチターン会話。
- エディタのモデルマネージャー: プロジェクト設定でモデルを直接参照、ダウンロード、インポート、削除、テストできます。
- クロスプラットフォームのパッケージング: モデルは、NonUFSステージングを介してプロジェクトに同梱されます。
動作の仕組み
- エディターでモデルを管理:プラグイン設定パネルを使用して、定義済みモデルのカタログを閲覧したり、ダウンロードしたり、独自のGGUFファイルをインポートしたりできます。
- ランタイムでモデルを読み込む: 推論パラメータを指定して、読み込み関数のいずれかを呼び出します(ファイル、名前、URL、またはメタデータで指定)。
- メッセージを送信: ユーザーメッセージをLLMインスタンスに渡します。モデルが応答を生成する際、トークンがデリゲートを通じてストリーミングで返されます。
- 応答の使用: チャット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_M | Good | 中 | Fast |
| Q5_K_M | より良い | より大きい | 中程度 |
| Q8_0 | High | 大きい | より遅い |
| F16 / F32 | 最高 | 最大 | 最も遅い |
モバイルおよびVRデバイスでは、コンパクトなモデル(1B~3Bパラメータ)でのより小さな量子化(Q2_KからQ4_K_M)が推奨されます。デスクトップでは、利用可能なRAMとCPU/GPUリソースに応じて、より大きなモデルやより高い量子化レベルを使用できます。
追加リソース
- Fab で入手
- 製品ウェブサイト
- デモをダウンロード (Windows)
- ビデオチュートリアル
- プラグインのサポート&カスタム開発:[email protected](チームや組織向けのカスタマイズされたソリューション)