跳到主要内容

概述

Runtime Local LLM Documentation

Runtime Local LLM 是一个插件,它使用 llama.cpp 在设备上完全运行大型语言模型,运行时无需互联网连接。它支持 GGUF 模型文件,并提供完整的 Blueprint API,用于加载模型、发送消息以及接收逐 token 的响应,所有操作均在后台线程上执行,并带有游戏线程回调。

该插件支持WindowsMacLinuxAndroid(包括Meta Quest和其他基于 Android 的平台)以及iOS

主要功能

  • 完全离线推理:运行时无需云服务或 API 密钥
  • GGUF 模型支持:加载任何 GGUF 格式的模型(Llama、Mistral、Phi、Gemma、Qwen 等)
  • 最新 llama.cpp:在 Fab 上定期更新,以跟上 llama.cpp 的发布节奏,确保始终支持最新的 GGUF 模型格式
  • GPU 加速:在 Windows 和 Linux 上使用 Vulkan,在 Mac 和 iOS 上使用 Metal,在 Android 和 Meta Quest 上使用 CPU + 内建指令集
  • 多种模型加载方式
    • 从本地文件路径加载
    • 通过模型名称加载(在 Blueprints 中以下拉选择方式)
    • 从 URL 下载并自动加载
    • 仅下载用于预缓存模型
  • 逐 token 流式传输:实时接收每个生成的 token 用于即时显示
  • 异步蓝图节点:带有输出委托的节点,用于加载、发送消息和下载
  • 可配置的推理参数:温度、Top-P、Top-K、重复惩罚、GPU 层卸载、上下文大小、种子、线程数以及系统提示
  • 对话管理:支持多轮对话、上下文重置、保存到磁盘/从磁盘加载、内存快照以及长对话自动摘要
  • 编辑器模型管理器:直接在项目设置中浏览、下载、导入、删除和测试模型
  • 跨平台打包:模型通过 NonUFS 暂存随项目一起发布

工作原理

  1. 在编辑器中管理模型:使用插件设置面板浏览预定义模型目录、下载模型或导入您自己的 GGUF 文件
  2. 在运行时加载模型:调用加载函数(按文件、按名称、按 URL 或按元数据)并传入您的推理参数
  3. 发送消息:将用户消息传递给 LLM 实例;当模型生成响应时,令牌会通过委托流式返回
  4. 使用响应:在聊天 UI 中显示令牌、驱动 NPC 对话、生成动态内容或将结果输入到其他系统

所有推理运行在专用的后台线程上。回调(令牌生成、完成、错误)在游戏线程上触发,因此您可以安全地从中更新 UI 和游戏状态。

常见用例

  • 游戏内聊天机器人和助手:问答、帮助系统、动态教程
  • NPC 对话:具有持久化角色记忆的对话型 NPC,使用对话快照实现
  • 长时角色扮演与叙事系统:自动摘要功能可将多小时的对话保持在上下文限制内,同时不丢失关键事实
  • 程序化内容:即时生成任务描述、物品背景故事、对话树
  • 离线优先应用:任何需要大语言模型能力但无需网络连接的场景

模型存储与打包

模型以 .gguf 文件格式存储在项目 Content/RuntimeLocalLLM/Models 目录中。插件会自动配置要复制的附加非资产目录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 设备,建议使用较小的量化(Q2_K 至 Q4_K_M)和紧凑模型(1B–3B 参数)。对于桌面端,您可以根据可用的 RAM 和 CPU/GPU 资源使用更大的模型和更高的量化级别。

附加资源

Join our Discord
online · support