File size: 10,095 Bytes
0a615d3 9c26933 0a615d3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 |
---
base_model: unsloth/qwen3-4b-unsloth-bnb-4bit
library_name: peft
pipeline_tag: text-generation
tags:
- base_model:adapter:unsloth/qwen3-4b-unsloth-bnb-4bit
- lora
- sft
- transformers
- trl
- unsloth
- game
- npc
- gamesoul
- ai
- RAG
- MCP
- 游戏
- Unreal
- Unity
- Cocos
---
# Model Card for GameSoul-AI-NPC

[English](README.md) | [中文]
🤖 GameSoul-AI-NPC 遊戲 NPC 行為決策模型,透過多來源資訊融合,生成符合角色設定的動態行為。支援即時環境回應、事件回應、記憶回溯與角色一致性維持。可呼叫推理 (Reasoning)、RAG (檢索增強生成) 及 MCP (多角色協同規劃)。
## 模型細節 🔍
### 核心能力
| 模組 | 功能描述 |
| --------- | ---------------------------------- |
| **環境感知** | 解析場景狀態、玩家互動、時間/天氣等即時訊號 |
| **記憶系統** | 支援長期行為記憶(使用資料庫儲存) |
| **角色一致性** | 根據預設背景(性格/目標/身分/能力/記憶等)生成符合角色設定的行為 |
| **動態決策** | 基於綜合狀態生成動作序列(移動/對話/互動) |
### 技術架構 🏗️
```mermaid
graph TD
A[🌏環境狀態] --> C(🧠LLM決策引擎)
B[🧙♂️角色記憶] --> C
D[💭當前事件] --> C
C --> E{行為裁決}
E --> F[👊動作指令]
E --> G[💬自然語言回饋]
E --> H[📌儲存記憶]
```
### 擴展介面
🔌MCP 協議 (reference only):透過 npc\_memory\_api (example) 呼叫 MCP 取得資料庫資訊
```json
// example
{
"jsonrpc": "2.0",
"id": 123456789,
"method": "get_npc_memory",
"params": {
"player_action": "steal_item",
"npc_id": "npc_123456"
}
}
```
### 模型描述 📝
- **Developed by : NewOrigin**
- **Funded by : NewOrigin**
- **Shared by : NewOrigin**
- **Model type : Decoder&MoE Transformer**
- **Language(s) (NLP) : English & Chinese & 110+ languages**
- **License : apache-2.0**
- **Finetuned from model : unsloth/qwen3-4b**
### 模型來源 🌐
- **Repository :** [https://huggingface.co/unsloth/Qwen3-4B](https://huggingface.co/unsloth/Qwen3-4B)
## 使用場景 🚀
本模型為 unsloth/qwen3-4b 的微調版本,專為遊戲中非玩家角色 (NPC) 賦能智能行為。模型可根據角色背景、記憶上下文與環境狀態生成動態回應,支援推理 (Reasoning)、RAG (檢索增強生成) 及 MCP (多角色協同規劃) 呼叫。
預期使用者:
- 遊戲開發者、遊戲設計師
- 研究遊戲 NPC 行為 AI 的專業人員
- 遊戲工作室、獨立遊戲開發者
- 其他有興趣的使用者
潛在影響對象:
- 與 NPC 互動的最終玩家
### 直接使用 🖥️
本模型可直接用於遊戲環境中生成 AI 行為,無需額外微調。它能根據上下文、記憶資訊、玩家行為及環境狀態生成符合預期的 NPC 回應。開發者可透過推理介面直接呼叫,或整合至遊戲系統、決策邏輯或 RAG 流程中使用。
典型應用場景包括:
- 自動化 NPC 生態,形成遊戲世界即時推演
- 基於劇情與記憶的 NPC 互動
- 根據環境狀態的行為規劃
- 多智能體協作推理與回應
### 下游整合 📦
該模型適合嵌入遊戲系統等下游場景,可作為 AI 驅動 NPC 的核心推理與對話引擎,融入:
- 遊戲引擎中,實現即時對話生成與行為邏輯控制
- 多智能體模擬平台,提供長期記憶及上下文推理能力的互動行為
- 基於 RAG 的推理系統,透過知識檢索增強 NPC 的決策過程
- 支援 MCP 協議的資料庫,用於儲存 NPC 資訊,並於需要時呼叫
依據遊戲調性、設定或任務需求,亦可進行進一步微調以符合風格。
### 不建議使用範圍 ⚠️
本模型不適用於涉及高風險或安全敏感的應用情境,以下為不建議使用方式:
- 涉及法律、醫療、金融或安全等決策類任務
- 需要高度事實準確度或倫理推理的應用場景
## 偏見、風險與限制 🚧
本模型可能繼承基礎預訓練資料或微調語料中的偏見,例如文化刻板印象、色情內容、性別偏見、角色行為模式等。
技術限制包括:
- 無法驗證生成內容的真實性或邏輯正確性
在任何包含生成內容的系統中,尤其面向未成年玩家時,建議對輸出結果進行必要過濾。
### 建議事項 💡
- 部署前請充分測試模型於多種遊戲情境下的表現,釐清其邊界與潛在失效風險。
- 在遊戲引擎中,先建立能執行動作的框架,再整合該模型。
## 快速上手 🚩
以下範例示範如何快速載入並呼叫微調後模型:
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_name = "NewOrigin/GameSoul-AI-NPC-4B-v0.1"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.auto,
device_map="auto"
)
prompt = "input your content"
messages = [
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=False,
enable_thinking=False
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
**model_inputs,
max_new_tokens=1024,
do_sample=True,
top_p=0.9,
)
output_ids = generated_ids[0].tolist()
think_token_id = tokenizer.convert_tokens_to_ids("</think>")
if think_token_id in output_ids:
idx = output_ids.index(think_token_id)
thinking = tokenizer.decode(output_ids[:idx], skip_special_tokens=True).strip()
response = tokenizer.decode(output_ids[idx+1:], skip_special_tokens=True).strip()
else:
thinking, response = "", tokenizer.decode(output_ids, skip_special_tokens=True).strip()
print("🧠 think", thinking)
print("💬 answer", response)
```
### 範例輸入與輸出 📥📤
- 輸入📥
```json
{
"NPCID": "npc_585919",
"角色背景": "一位來自神秘森林的魅魔藥劑師,二十歲,從小在森林中學習草藥和魔法知識。因森林遭遇邪惡魔法侵襲,親人離世,她決心尋找破解魔法的方法。擅長調配藥劑、魅惑與魔法感知。",
"特徵": {
"核心性格": [
"誘惑",
"狡猾",
"好奇"
],
"特長": [
"藥劑調配",
"魅惑術",
"魔法感知"
]
},
"動態狀態": {
"當前情緒": "憤怒(因最近魔法污染在森林中加劇,影響了她的力量)"
},
"記憶事件": [
{
"eventid": "evt_20240805_001",
"timestamp": "2024-08-05",
"事件類型": "幫助",
"發起者": "player_004",
"接受者": "npc_585919",
"動作": "提供魔法書籍",
"影響": "對player_004產生好感,獲得更多魔法能量"
},
{
"eventid": "evt_20240720_002",
"timestamp": "2024-07-20",
"事件類型": "衝突",
"發起者": "npc_006",
"接受者": "npc_585919",
"動作": "搶奪草藥",
"影響": "npc_585919對npc_006產生敵意,警惕性上升"
},
{
"eventid": "evt_20240712_003",
"timestamp": "2024-07-12",
"事件類型": "交易",
"發起者": "player_005",
"接受者": "npc_585919",
"動作": "購買藥劑",
"影響": "獲得金幣,心情愉悅,利用魅力加強交易"
},
{
"eventid": "evt_20240630_004",
"timestamp": "2024-06-30",
"事件類型": "幫助",
"發起者": "npc_585919",
"接受者": "player_006",
"動作": "治療傷口",
"影響": "透過魔法治療,產生好感與依賴"
},
{
"eventid": "evt_20240615_005",
"timestamp": "2024-06-15",
"事件類型": "探索",
"發起者": "npc_585919",
"接受者": "npc_585919",
"動作": "發現新草藥",
"影響": "增加魔法知識,提升魅力"
}
]
},
{
"當前事件": "遇到了好色的勇者"
}
```
- 輸出📤
```json
{"事件反應": "npc_585919察覺到勇者對她的騷擾後,釋放魅惑術使其陷入幻覺,同時用魔法感知追蹤其行動軌跡,並在森林深處設下陷阱"}
```
## 訓練細節 🏋️♀️
### 訓練流程
本模型基於 unsloth/qwen3-4b-unsloth-bnb-4bit 進行微調,採用 Unsloth 工具庫中的 LoRA (Low-Rank Adaptation) 方法,實現高效低資源微調。
- 微調方式: LoRA
- 訓練器: 使用 Unsloth 的 SFTTrainer
- 模型格式: 僅保存 adapter 權重,格式為 safetensors
- 訓練設備: Nvidia A10 GPU
## 環境影響 🌱
- **Hardware Type : cloud server**
- **Cloud Provider : Google Cloud Platform & Alibaba Cloud**
- **Compute Region : NorthAmerica & Asia**
- **Carbon Emitted : <1Kg**
**BibTeX:**
```bibtex
@misc{NewOrigin2025GameSoul-AI-NPC,
title = {GameSoul-AI-NPC: A LoRA fine-tuned Qwen3-4B model for game NPC reasoning and interaction},
author = {NewOrigin},
year = {2025},
publisher = {Hugging Face},
howpublished = {https://huggingface.co/NewOrigin/GameSoul-AI-NPC-4B-v0.1}
}
```
**APA:**
NewOrigin. (2025). *GameSoul-AI-NPC: A LoRA fine-tuned Qwen3-4B model for game NPC reasoning and interaction*. Hugging Face. [https://huggingface.co/NewOrigin/GameSoul-AI-NPC-4B-v0.1](https://huggingface.co/NewOrigin/GameSoul-AI-NPC-4B-v0.1)
## Model Card Authors ✍️
- **Author by : NewOrigin**
## 聯絡方式 📧
如有任何問題、建議或合作意向,歡迎聯繫:
**電子郵件:**[**[email protected]**](mailto\:[email protected])
### Framework versions
- PEFT 0.16.0
|