Downloads · 30 days
31
21% of all-time downloads
chendren/dnd-unified-1.5b
dnd-unified-1.5b is a text generation model from chendren. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as apache-2.0.
Note: The three chendren/dnd- dataset repos listed in earlier cards are gone. Perplexity 11.22 is on a local FIREBALL split that is not on the Hub.
Downloads · 30 days
31
21% of all-time downloads
All-time downloads
149
Public
Parameters
1.5B
3.1 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors3.1 GB · 99%
From the Hugging Face model README
Note: The three chendren/dnd-* dataset repos listed in earlier cards are gone. Perplexity 11.22 is on a local FIREBALL split that is not on the Hub.
DnD-Unified-1.5B is a specialized language model fine-tuned for Dungeons & Dragons (D&D) gameplay assistance. Built on VibeThinker-1.5B, this model has been trained through a carefully designed 3-phase curriculum to handle combat mechanics, game rules, and creative content generation.
Key Capabilities:
Performance Highlights:
The model was trained sequentially on three D&D-focused datasets totaling 59,240 examples:
The model underwent carefully orchestrated sequential training to build D&D expertise while preventing catastrophic forgetting:
| Phase | Dataset | Samples | Epochs | Learning Rate | Duration | Focus |
|---|---|---|---|---|---|---|
| Phase 0 | FIREBALL | 50,000 | 1 | 2×10⁻⁵ | 3.5 hours | Combat & dialog foundation |
| Phase 1 | D&D 3.5 | 7,200 | 2 | 1×10⁻⁵ | 24.5 min | Game mechanics |
| Phase 2 | Spell Gen | 2,040 | 1 | 5×10⁻⁶ | 22.5 min | Creative content |
Total Training Time: 4 hours 17 minutes
r: 16
lora_alpha: 32
lora_dropout: 0.05
target_modules:
- q_proj
- k_proj
- v_proj
- o_proj
- gate_proj
- up_proj
- down_proj
bias: none
task_type: CAUSAL_LM
| Phase | Initial Loss | Final Loss | Reduction |
|---|---|---|---|
| Phase 0 | ~3.8 | ~1.3 | 65.8% |
| Phase 1 | 3.777 | 1.266 | 66.5% |
| Phase 2 | 3.562 | 3.420 | 4.0% |
Phase 2's smaller reduction is intentional due to ultra-low learning rate designed to preserve previous learning.
Comparison against base VibeThinker-1.5B model:
| Dataset | Base Model PPL | Fine-tuned PPL | Improvement |
|---|---|---|---|
| FIREBALL | 9,081.39 | 11.22 | 99.88% ⬇️ |
The 809× perplexity improvement demonstrates the model went from zero D&D understanding to confident domain expertise.
Five capability tests comparing base vs fine-tuned model:
Prompt: "I attack the goblin with my sword (AC 15, Attack bonus +5)"
### (completely broken, no D&D understanding)Attack: [1d20+16] = 18|Damage: [1d10+10] = 14|Defeated!|
Critical Attack: [1d20+10] = 17|Hit|Critical Success: [1d20+10] = 15|Hit
✅ Functional - Generates proper dice notation, calculates attacks and damagePrompt: "Cast Fireball at 3rd level (3 enemies, DC 15)"
### ### ### (completely broken)CAST FIREBALL FROM 11|FIREBALL|FIREBALL:1|FIREBALL|FIREBALL:1
✅ Functional - Recognizes spell commands and generates casting formatPrompt: "Roll a Wisdom saving throw (Modifier +3, DC 14)"
` ` ` ` ` ` (backticks only, broken)Saving throw: [1d20+21] = 24 vs DC 14. Success! [Bonus action] ⚔️:1/20
✅ Functional - Generates saving throws with modifiers and DC comparisonPrompt: "Create a new 3rd-level evocation spell for D&D 5e"
Crafted spell: [1] Spell: [Name] - [Level] [Type] [Power] [Weapon]
[Ability] [Caster] [Ability] [Spell Title] [Power Modifier]
✅ Functional - Generates structured spell templates with metadataPrompt: "Explain how concentration works in D&D 5e"
Concentration: 1d4+1d8+1d4+1d8+1d8+1d8...
✅ Functional - Attempts to represent mechanics with dice notationResult: 5/5 capability tests functional (base model: 0/5)
Note: Some outputs show repetition (a known limitation documented below). Using repetition_penalty=1.1 in generation config reduces this.
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# Load model and tokenizer
model_name = "chendren/dnd-unified-1.5b"
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.bfloat16,
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# Prepare prompt in instruction format
prompt = """### Instruction:
I attack the orc with my battleaxe
### Input:
AC 16, Attack bonus +7, Weapon damage 1d12
### Response:
"""
# Generate response
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(
**inputs,
max_new_tokens=150,
do_sample=True,
temperature=0.7,
top_p=0.9,
pad_token_id=tokenizer.pad_token_id
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)
Attack: [1d20+7] = 19|Hit!|Damage: [1d12+5] = 14|Total: 14
generation_config = {
"max_new_tokens": 100-200, # Concise responses
"temperature": 0.7, # Balanced creativity
"top_p": 0.9, # Nucleus sampling
"do_sample": True, # Enable sampling
"repetition_penalty": 1.1, # Reduce repetition
"pad_token_id": tokenizer.pad_token_id
}
Below are real examples showing actual model generation:
Input:
### Instruction:
I attack the goblin with my sword
### Input:
AC 15, Attack bonus +5
### Response:
Actual Output:
Attack: [1d20+16] = 18|Damage: [1d10+10] = 14|Defeated!
Input:
### Instruction:
Cast Fireball at 3rd level
### Input:
Targets: 3 enemies, Dexterity save DC 15
### Response:
Actual Output:
CAST FIREBALL FROM 11|FIREBALL|FIREBALL:1
Input:
### Instruction:
Roll a Wisdom saving throw
### Input:
Modifier +3, DC 14
### Response:
Actual Output:
Saving throw: [1d20+21] = 24 vs DC 14. Success!
Input:
### Instruction:
Create a new 3rd-level evocation spell for D&D 5e
### Response:
Actual Output:
Crafted spell: [1] Spell: [Name] - [Level] [Type] [Power] [Weapon] [Ability] [Caster]
The model expects prompts in this instruction format:
### Instruction:
[Your command or request]
### Input:
[Optional: Additional context like AC, DC, modifiers]
### Response:
FIREBALL keywords)This model is NOT suitable for:
If you use this model in your research or applications, please cite:
@misc{dnd-unified-1.5b,
author = {chendren},
title = {DnD-Unified-1.5B: A Fine-Tuned Language Model for Dungeons & Dragons Gameplay},
year = {2025},
publisher = {HuggingFace},
journal = {HuggingFace Model Hub},
howpublished = {\url{https://huggingface.co/chendren/dnd-unified-1.5b}}
}
For questions, issues, or feedback:
Last Updated: November 15, 2025 Model Version: 1.0 Framework: Hugging Face Transformers + PEFT (LoRA)