|
|
--- |
|
|
license: mit |
|
|
license_link: https://github.com/SentiVerse-AI/SoulX/blob/main/LICENSE |
|
|
language: |
|
|
- en |
|
|
pipeline_tag: text-generation |
|
|
tags: |
|
|
- gaming |
|
|
- npc-dialogue |
|
|
- character-generation |
|
|
- interactive-storytelling |
|
|
- bittensor |
|
|
library_name: transformers |
|
|
--- |
|
|
|
|
|
# SoulX: Instruction-Tuned LLM for Interactive Game Characters |
|
|
|
|
|
`SoulX` is a **role-conditioned, memory-aware language model** built to generate vivid, in-character NPC dialogues. It is the flagship model of **SoulX (Subnet 115)**, the premier protocol for forging sentient **Digital Souls**, built upon our foundational **AIX (Artificial Intelligence Exchange) platform**. |
|
|
|
|
|
--- |
|
|
|
|
|
## π Core Capabilities |
|
|
|
|
|
* **Contextual NPC Dialogue Generation** |
|
|
Given a scene setup, player intent, and character profile, the model generates emotionally consistent, personality-driven interactions. |
|
|
* **Memory & Role Conditioning** |
|
|
Remembers previous dialogue turns and maintains narrative context across multiple exchanges. |
|
|
* **Style-Flexible Outputs** |
|
|
Mimics genre-specific tone β fantasy, cyberpunk, JRPG, post-apocalyptic, and more. |
|
|
* **Cooperative Narrative Progression** |
|
|
NPCs not only respond β they guide the player naturally toward objectives or story arcs. |
|
|
* **Validator-Driven Fine-Tuning Loop** |
|
|
Designed to integrate into the Bittensor Soul X subnet validation loop via micro-quests. |
|
|
|
|
|
--- |
|
|
|
|
|
## Usage Example |
|
|
|
|
|
```python |
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer |
|
|
|
|
|
model_name = "SentiVerse-AI/SoulX" |
|
|
|
|
|
model = AutoModelForCausalLM.from_pretrained( |
|
|
model_name, |
|
|
torch_dtype="auto", |
|
|
device_map="auto" |
|
|
) |
|
|
tokenizer = AutoTokenizer.from_pretrained(model_name) |
|
|
|
|
|
character_card = "Grumpy Orc blacksmith named Krog, proud of his craftsmanship, hates Elven designs" |
|
|
scene_description = "A medieval forge filled with smoke and steel. The player asks for an Elven bow." |
|
|
player_input = "Can you forge me an Elven-style longbow?" |
|
|
|
|
|
messages = [ |
|
|
{"role": "system", "content": "You are a proud, sarcastic Orc blacksmith speaking in gruff tone."}, |
|
|
{"role": "user", "content": f"[Scene]: {scene_description}\n[Character]: {character_card}\n[Player]: {player_input}"} |
|
|
] |
|
|
|
|
|
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) |
|
|
inputs = tokenizer([text], return_tensors="pt").to(model.device) |
|
|
outputs = model.generate(**inputs, max_new_tokens=256) |
|
|
print(tokenizer.decode(outputs[0], skip_special_tokens=True)) |
|
|
``` |
|
|
|
|
|
--- |
|
|
|
|
|
## Use Case Scenarios |
|
|
|
|
|
* NPC dialogue engines for open-world RPGs |
|
|
* Quest-giving characters with persistent memory |
|
|
* Immersive simulation in roleplay environments |
|
|
* Generative AI modules in moddable games |
|
|
* Dialogue validation competitions in Bittensor Subnet 115 |
|
|
|
|
|
--- |
|
|
|
|
|
## π Training Inspiration |
|
|
|
|
|
SoulX is trained using **synthetic prompt-response pairs** inspired by genre-defining titles: |
|
|
|
|
|
| Genre | Influences | Example Prompt | |
|
|
| ---------------- | ------------------------ | ------------------------------------------------------ | |
|
|
| High Fantasy | _Skyrim, WoW_ | "Orc refuses to forge Elven bow, mocks its fragility." | |
|
|
| Cyberpunk | _Mass Effect, CP2077_ | "Netrunner sells shady cyberware in neon bar." | |
|
|
| JRPG | _Persona, Final Fantasy_ | "Moogle-like guide offers poetic forest riddle." | |
|
|
| Post-Apocalyptic | _Fallout: New Vegas_ | "Trader hints water chip might be stolen." | |
|
|
|
|
|
> Disclaimer: All prompts and datasets are synthetic and **original**. No copyrighted material used. |
|
|
|
|
|
--- |
|
|
|
|
|
## Model Architecture |
|
|
|
|
|
* **Backbone**: Qwen2.5-7B |
|
|
* **Tuning**: Role-conditioning + dialogue-style fine-tuning + long-form memory emulation |
|
|
* **Context Length**: Up to 32K tokens; can be extended with YaRN |
|
|
|
|
|
### Long Context Example |
|
|
|
|
|
```json |
|
|
"rope_scaling": { |
|
|
"factor": 4.0, |
|
|
"original_max_position_embeddings": 32768, |
|
|
"type": "yarn" |
|
|
} |
|
|
``` |
|
|
|
|
|
--- |
|
|
|
|
|
## π§ͺ Benchmarks (Subjective) |
|
|
|
|
|
| Metric | Description | Performance | |
|
|
| --------------------- | --------------------------------------- | ----------- | |
|
|
| Character Consistency | Maintains tone, vocabulary, and goals | High | |
|
|
| World Fit | Dialogue fits scene and genre | High | |
|
|
| Creativity | Vivid, unexpected, non-generic replies | High | |
|
|
| Player Guidance | Subtle quest hints, avoids hand-holding | Medium | |
|
|
|
|
|
--- |
|
|
|
|
|
## π’ Citation |
|
|
|
|
|
```bibtex |
|
|
@misc{soulx-npc, |
|
|
title = {SoulX-NPC: Dialogue Generation for Intelligent Game Characters}, |
|
|
author = {SentiVerse-AI Team}, |
|
|
year = {2025}, |
|
|
url = {https://huggingface.co/SentiVerse-AI/SoulX} |
|
|
} |
|
|
``` |
|
|
|
|
|
--- |
|
|
|
|
|
## βοΈ License |
|
|
|
|
|
MIT License. See LICENSE for full terms. |
|
|
|
|
|
--- |
|
|
|
|
|
## π¬ Join the Network |
|
|
|
|
|
* Connect on Bittensor Discord, Subnet 115 channel |
|
|
* Discuss on DeepWiki |
|
|
* Contribute via GitHub |
|
|
|
|
|
> βWe are not just generating text β we are crafting souls.β |