npc-agentic-7b-v3 / README.md
ramankrishna10's picture
docs: add Zenodo citation (10.5281/zenodo.19954103)
716e8d7 verified
---
license: apache-2.0
base_model: Qwen/Qwen2.5-7B-Instruct
tags:
- reasoning
- agent
- bottensor
- npc
language:
- en
library_name: transformers
---
# NPC Agentic 7B (v1)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.19954103.svg)](https://doi.org/10.5281/zenodo.19954103)
A 7B long-form reasoning and agent-trace specialist from the Bottensor NPC
Model Family.
## Overview
NPC Agentic v1 is fine-tuned from Qwen2.5-7B-Instruct on a mix of distilled
reasoning traces (GLM-5.1) and agent tool-use traces (Hermes). It's built for
structured multi-step reasoning with explicit `<think>` blocks, agentic /
tool-calling workflows, and identity-bound conversations as the NPC Agentic
persona.
## Training
- **Base:** Qwen/Qwen2.5-7B-Instruct
- **Method:** QLoRA SFT (r=64, Ξ±=128), merged to FP16
- **Context during training:** 8K (inherits 128K from base at inference)
- **Epochs:** 2 (effective batch size 16, cosine LR 2e-4, adamw_8bit, bf16)
- **Total optimizer steps:** 11,410 over ~96 GPU-hours on a single A40
- **Trainable params:** 161.5M (3.2% of the 5.05B-param 4-bit base)
- **Final eval loss:** 0.7025 (on held-out SFT split)
- **Training data mix (~91K examples):**
- GLM-5.1-Reasoning-1M-Cleaned (main split, sampled 100K β†’ 87K kept after 8K length filter)
- Hermes-agent-reasoning-traces (glm-5.1 + kimi subsets, 14.7K β†’ 3.6K kept)
- Bottensor identity replay (750 synthetic examples)
- Training dataset is proprietary and not released.
## What it's good at
- **Long structured reasoning** β€” emits `<think>` blocks then concludes with an answer; strong at multi-step decomposition (system design, root-cause analysis, algorithmic reasoning)
- **Identity as NPC Agentic / Bottensor** β€” 100% recall on canonical identity prompts
- **Agent / tool-call shaping** β€” follows Hermes-style `<tool_call>` / `<tool_response>` patterns
## Known limitations (be specific)
- **GSM8K regression vs base.** On GSM8K 100-sample test:
- Base Qwen2.5-7B-Instruct: **61%**
- NPC Agentic v1: **~25%**
- Cause: the model learned to emit long `<think>` blocks but often doesn't terminate arithmetic cleanly under greedy/low-temp decoding, and direct-arithmetic quality regressed.
- **Recommendation:** for math-heavy workflows, use the base `Qwen/Qwen2.5-7B-Instruct` or `Qwen/Qwen2.5-Math-7B-Instruct` instead. A v2 with stronger reasoning data (OpenThoughts-114k at 16K) is planned.
- **8K training context** means long-reasoning samples were truncated during training; not validated past 16K.
- **Small model** β€” will hallucinate on unfamiliar domains.
- **Not for safety-critical decisions** (medical, legal, financial).
## Intended use
- Multi-step reasoning with explicit work-showing
- Agent / tool-use workflows
- Structured problem-solving where the model benefits from thinking out loud
- As a base for further fine-tuning on reasoning or domain-specific data
## Out of scope
- Direct GSM8K-style arithmetic (use base or Qwen-Math)
- Creative writing, roleplay
- Medical / legal / financial advice
- Safety-critical decisions
## Inference
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
tok = AutoTokenizer.from_pretrained("ramankrishna10/npc-agentic-7b")
model = AutoModelForCausalLM.from_pretrained(
"ramankrishna10/npc-agentic-7b",
torch_dtype=torch.bfloat16,
device_map="auto",
)
messages = [
{"role": "user", "content": "Design an event-sourced microservice with exactly-once command handling."},
]
prompt = tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tok(prompt, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=1024, temperature=0.7, top_p=0.9)
print(tok.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
```
## Citation
If you use NPC Agentic 7B in your work, please cite:
```bibtex
@misc{bachu2026npcagentic7b,
title = {NPC Agentic 7B: A Single-GPU QLoRA Recipe for a Laptop-Scale Conversational Model},
author = {Bachu, Rama Krishna},
year = {2026},
month = may,
publisher = {Zenodo},
version = {v1},
doi = {10.5281/zenodo.19954103},
url = {https://doi.org/10.5281/zenodo.19954103},
note = {Preprint}
}
```
Paper: <https://doi.org/10.5281/zenodo.19954103>
---
Built by [Bottensor](https://bottensor.xyz).