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 行为:
- Input:模型接收 3D 场景的文本描述(prompt)、近期事件的摘要以及可用动作的完整列表(例如
<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 作为演示的底层游戏引擎。它是一个公开的 Alpha 项目,允许用户使用超过 25,000 件社区制作的体素物品库来创建世界物品和角色。开发者可以使用 Lua 脚本 API 编写游戏体验,在 NPC-Playground 演示中,用户通过修改 cubzh.lua 文件即可教会 NPC 新技能。
定制化与开发者资源
用户可以通过 Hugging Face Spaces 与实时演示进行交互。对于希望构建自己的 AI 驱动 NPC 的开发者,Hugging Face 提供了完整的 “ML for Games Course” 教程以及关于微调 NPC 行为和添加新技能的详细文档。