Hugging Face NPC-Playground:在 3D 环境中集成 LLM 驱动的 NPC

Hugging Face 推出了 NPC-Playground,这是一款 3D 交互演示,允许用户与由大型语言模型(LLM)驱动的非玩家角色(NPC)进行互动。该项目展示了 LLM 如何取代传统的基于规则的系统,打造能够进行逼真对话、执行复杂动作以及遵循指令的角色。

NPC-Playground 技术栈

NPC-Playground 采用三大核心组件构建,以弥合语言模型与 3D 游戏环境之间的鸿沟:

  • Cubzh:一个跨平台、开源的用户生成内容(UGC)游戏引擎,旨在作为 Roblox 的替代方案。它提供 3D 环境、体素物品以及用于游戏逻辑的 Lua 脚本 API。
  • Gigax:专为大规模运行 LLM 驱动的 NPC 而设计的引擎。它负责角色的智能和动作选择逻辑。
  • Hugging Face Spaces:用于以开源方式部署和迭代游戏概念的托管环境。

Gigax:通过函数调用为 NPC 智能提供动力

Gigax 通过使用“函数调用”原理,使 NPC 能够与其环境交互。这种方法将 LLM 从单纯的文本生成器转变为能够执行特定游戏内动作的代理。

输入与输出流程

系统通过结构化流水线处理 NPC 行为:

  1. Input:模型接收 3D 场景的文本描述(prompt)、近期事件的摘要以及可用动作的完整列表(例如 <say><jump><attack>)。
  2. Output:模型生成使用指向场景中现有 3D 实体的参数的具体动作指令。示例输出为 say NPC1 "Hello, Captain!"

开源模型

Gigax 已开源其推理栈,并在 Hugging Face Hub 上提供了供开发者使用的微调模型:

  • NPC-LLM-3_8B:Phi-3 模型的微调版本。
  • NPC-LLM-7B:Mistral-7B 模型的微调版本。

Cubzh:UGC 游戏引擎

Cubzh 作为演示的底层游戏引擎。它是一个公开的 Alpha 项目,允许用户使用超过 25,000 件社区制作的体素物品库来创建世界物品和角色。开发者可以使用 Lua 脚本 API 编写游戏体验,在 NPC-Playground 演示中,用户通过修改 cubzh.lua 文件即可教会 NPC 新技能。

定制化与开发者资源

用户可以通过 Hugging Face Spaces 与实时演示进行交互。对于希望构建自己的 AI 驱动 NPC 的开发者,Hugging Face 提供了完整的 “ML for Games Course” 教程以及关于微调 NPC 行为和添加新技能的详细文档。

Sources