Hugging Face NPC-Playground: LLM駆動NPCを3D環境に統合する
Hugging FaceはNPC-Playgroundを導入しました。これはユーザーが大規模言語モデル(LLM)で駆動されるノンプレイヤーキャラクター(NPC)と対話できる3Dインタラクティブデモです。このプロジェクトは、LLMが従来のルールベースシステムに取って代わり、リアルな会話、複雑なアクション実行、指示の遵守が可能なキャラクターを作成できることを示しています。
NPC-Playgroundの技術スタック
NPC-Playgroundは、言語モデルと3Dゲーム環境のギャップを埋めるために、主に3つのコンポーネントで構成されています。
- Cubzh: Robloxの代替として設計された、クロスプラットフォームのオープンソースUser Generated Content(UGC)ゲームエンジンです。3D環境、ボクセルアイテム、そしてゲームロジック用のLuaスクリプトAPIを提供します。
- Gigax: LLM駆動NPCを大規模に実行するために特化したエンジンです。キャラクターの知能とアクション選択ロジックを処理します。
- Hugging Face Spaces: ゲームコンセプトをオープンソースでデプロイおよび反復するために使用されるホスティング環境です。
Gigax: 関数呼び出しでNPCインテリジェンスを提供
Gigaxは「関数呼び出し」原理を利用してNPCが環境と相互作用できるようにします。このアプローチにより、LLMは単なるテキスト生成器から、特定のゲーム内アクションを実行できるエージェントへと変換されます。
入力と出力のフロー
システムは構造化されたパイプラインを通じてNPCの行動を処理します。
- Input: モデルは3Dシーンのテキスト記述(プロンプト)、最近の出来事の要約、そして利用可能なアクションの包括的リスト(例:
<say>、<jump>、<attack>)を受け取ります。 - Output: モデルはシーン内の既存3Dエンティティを参照するパラメータを用いて、特定のアクションコマンドを生成します。例として
say NPC1 "Hello, Captain!"のような出力が得られます。
オープンソースモデル
Gigaxは推論スタックをオープンソース化し、開発者向けにHugging Face Hubでファインチューニング済みモデルを提供しています。
- NPC-LLM-3_8B: Phi-3モデルをファインチューニングしたバージョンです。
- NPC-LLM-7B: Mistral-7Bモデルをファインチューニングしたバージョンです。
Cubzh: UGCゲームエンジン
Cubzhはデモの基盤となるゲームエンジンです。これは公開アルファプロジェクトで、ユーザーは25,000以上のコミュニティ製ボクセルアイテムのライブラリを使用してワールドアイテムやアバターを作成できます。開発者はLuaスクリプトAPIを用いてゲーム体験をコーディングでき、NPC-Playgroundデモではcubzh.luaファイルを変更することでNPCに新しいスキルを教えることが可能です。
カスタマイズと開発者向けリソース
ユーザーはHugging Face Spacesを通じてライブデモと対話できます。独自のAI駆動NPCを構築したい方のために、Hugging Faceは包括的な「ML for Games Course」チュートリアルと、NPCの挙動調整や新スキル追加に関する詳細なドキュメントを提供しています。