Downloads · 30 days
0
Ebumping/Qwen3-32B-Qwople
Qwen3-32B-Qwople is a text generation model from Ebumping. Use it when you need the model to write or continue text. It is set up for peft. The card lists the license as apache-2.0.
Qwen3-32B fine-tuned for autonomous agentic tool use with inline reasoning. Trained via two-stage QLoRA on 44,672 multi-turn tool-call conversations with <think reasoning traces.
Downloads · 30 days
0
Access
Public
Updated Jun 22, 2026
Parameters
32.8B
65.5 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors65.5 GB · 100%
From the Hugging Face model README
Qwen3-32B fine-tuned for autonomous agentic tool use with inline reasoning. Trained via two-stage QLoRA on 44,672 multi-turn tool-call conversations with <think> reasoning traces.
Qwen3-32B (base) → [+Fable distill LoRA, merged] → [+Action chain SFT LoRA] = Qwople
Stage 1 — Qwable (Fable Distill): Qwen3-32B base + LoRA trained on 1,502 high-quality reasoning examples (Fable-style inline reasoning before every action). Adapter merged into base.
Stage 2 — Qwople (Action Chain SFT): Merged Qwable + new LoRA trained on 44,672 real agentic trajectories with tool calls, error recovery, and <think> reasoning.
| Parameter | Value |
|---|---|
| Base model | Qwen/Qwen3-32B (4-bit QLoRA via Unsloth) |
| Fable adapter | Ebumping/Qwen3-32B-Fable-Distill (merged before Stage 2) |
| LoRA rank (r) | 64 |
| LoRA alpha (α) | 128 |
| LoRA dropout | 0.05 |
| Target modules | q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj |
| Optimizer | adamw_8bit |
| Learning rate | 2e-5 (cosine schedule, 50 warmup steps) |
| Batch size | 1 × 16 grad accum (effective 16) |
| Precision | bf16 |
| Max seq length | 4096 |
| Epochs planned | 3 |
| Checkpoint | Step 3400 / Epoch 1.22 (early stop) |
| Hardware | NVIDIA A100 80GB (Vast.ai) |
| Step | Epoch | Loss |
|---|---|---|
| 10 | 0.004 | 1.314 |
| 100 | 0.036 | 0.892 |
| 500 | 0.179 | 0.521 |
| 1000 | 0.358 | 0.412 |
| 2000 | 0.717 | 0.338 |
| 3000 | 1.075 | 0.298 |
| 3400 | 1.218 | 0.290 |
Training was stopped at step 3400 (epoch 1.22 of 3 planned). Loss had plateaued around 0.29.
qwople_v3_sft.jsonl — 44,672 examples| Source | Count | % | Description |
|---|---|---|---|
interstellarninja/hermes_reasoning_tool_use | 35,524 | 79.5% | Hermes-format multi-turn with mandatory <think> + <tool_call> |
lambda/hermes-agent-reasoning-traces | 7,646 | 17.1% | Kimi-config deep Hermes Agent traces |
| Fable reasoning (preserved) | 1,502 | 3.4% | Original Qwable reasoning examples (anti-forgetting) |
96.6% of examples contain <think> reasoning traces before tool calls.
qwople_download.py): 5 source datasets pulled — terminalbench-trajectories, APIGen-MT-5k, code-act, smolagents traces, hermes-function-calling-v1qwople_convert.py): Unified to Hermes/OpenAI multi-turn format with <tool_call> XML + <tool_response> tagsqwople_v3_data.py): Replaced synthetic reasoning injection with REAL <think> traces from dedicated reasoning datasets. Conversations >50 messages truncated to first 5 + last 20 turns.24,063 examples from terminalbench (8K), APIGen (5K), code-act (5K), smolagents (1.7K), hermes-fc (1.9K). Used template-based reasoning injection (qwople_inject_reasoning.py) — replaced by v3's real traces.
⚠️ Read these before deploying. Qwople has several format inconsistencies that affect inference.
The model sometimes emits <tool_call> as a special token (correctly parsed by vLLM's --tool-call-parser hermes) and sometimes as raw text tokens in the content field. This means:
--tool-call-parser hermes: Works for ~60% of tool calls. The rest appear as raw <tool_call>...</tool_call> text in content.content to catch the raw-token emissions. The enhanced chat UI (qwople_backup.tar.gz) includes this fallback.--reasoning-parser breaks --tool-call-parserDo NOT use --reasoning-parser deepseek_r1 together with --tool-call-parser hermes in vLLM. The reasoning parser consumes <think> tokens and adjacent tokens, which prevents the hermes tool parser from seeing the <tool_call> block. Tool calling silently fails (returns empty tool_calls: []).
Fix: Use --tool-call-parser hermes alone (no reasoning parser). The <think> blocks appear inline in content and can be parsed client-side.
~5% of tool call emissions have malformed JSON — typically extra trailing } characters or unbalanced braces. The fallback parser needs progressive brace-trimming to handle this.
Without a system prompt that explicitly describes available tools, the model often answers directly without calling tools. A system prompt like "You have access to tools. Use them when appropriate." is required for reliable tool use.
The model produces verbose <think> blocks (often 200-500 tokens) before even simple actions. This is a feature of the Fable reasoning style, not a bug — but it adds latency.
Training conversations were truncated to first 5 + last 20 messages for long trajectories. The model may lose context in the middle of very long multi-turn conversations.
/root/vllm-env/bin/python -m vllm.entrypoints.openai.api_server \
--model /path/to/qwople_merged \
--served-model-name qwople-v2 \
--port 10100 \
--host 0.0.0.0 \
--trust-remote-code \
--enable-auto-tool-choice \
--tool-call-parser hermes \
--max-model-len 32768 \
--gpu-memory-utilization 0.90
vllm==0.10.2
prometheus-fastapi-instrumentator<8.0.0
fastapi<0.137
starlette<1.0
transformers>=4.56,<5.0
huggingface-hub>=0.34,<1.0
torch==2.8.0+cu128
| File | Size | BPW |
|---|---|---|
Qwen3-32B-Qwople-Q4_K_M | 19 GB | 4.82 |
Qwen3-32B-Qwople-Q8_0 | 33 GB | 8.50 |
Available at Ebumping/Qwen3-32B-Qwople-GGUF.
Uses the standard Qwen3 chat template with Hermes tool-call format:
<tool_call>
{"name": "<function-name>", "arguments": <args-json-object>}
</tool_call>
Tool responses use <tool_response> tags wrapped in user role turns.
Full chat_template.jinja is included in the repo.
| Repo | Description |
|---|---|
| Ebumping/Qwen3-32B-Qwople | Full merged model (FP16, ~66GB) |
| Ebumping/Qwen3-32B-Qwople-LoRA | This repo — LoRA adapter + checkpoint-3400 |
| Ebumping/Qwen3-32B-Qwople-GGUF | GGUF quants (Q4_K_M + Q8_0) + backup scripts |
All training/data scripts are preserved in qwople_backup.tar.gz on the GGUF repo:
qwople_download.py — Downloads 5 source datasetsqwople_convert.py — Converts to unified Hermes formatqwople_v3_data.py — Builds final v3 dataset with real reasoning tracesqwople_inject_reasoning.py — v1 reasoning injection (deprecated, kept for reference)qwople_train.py / qwople_train_v2.py — Unsloth QLoRA training scriptsqwople_generate_opus.py — Claude Opus trajectory generator (for future data)qwople_chat_enhanced.py — Enhanced chat UI with tool-call fallback parserstart_vllm.sh — vLLM startup scriptThese datasets were directly used in the final fine-tuning:
interstellarninja/hermes_reasoning_tool_use — 35,524 examples (79.5%)
Multi-turn conversations with mandatory <think> reasoning traces before every <tool_call>. Hermes format.
https://huggingface.co/datasets/interstellarninja/hermes_reasoning_tool_use
lambda/hermes-agent-reasoning-traces — 7,646 examples (17.1%) Deep Hermes Agent traces generated with Kimi config. Multi-step tool use with real reasoning. https://huggingface.co/datasets/lambda/hermes-agent-reasoning-traces
Fable reasoning examples — 1,502 examples (3.4%) Original Qwable/Fable distillation data, preserved in the mix to prevent catastrophic forgetting of reasoning style. Derived from Ebumping/Qwen3-32B-Fable-Distill
These datasets were part of the data pipeline exploration. They informed the final dataset design but were not in the final v3 training set:
yoonholee/terminalbench-trajectories — 8,000 trajectories extracted Real Claude Opus / GPT agent traces with tool calls, errors, and recovery on terminal tasks. https://huggingface.co/datasets/yoonholee/terminalbench-trajectories
Salesforce/APIGen-MT-5k — 5,000 examples Verified multi-turn tool dialogues. https://huggingface.co/datasets/Salesforce/APIGen-MT-5k
xingyaoww/code-act-78k — 5,000 examples extracted Code-action agent traces (78K total dataset, filtered subset used). https://huggingface.co/datasets/xingyaoww/code-act-78k
smolagents/training-traces — 1,657 examples HF code-agent traces with tool execution. https://huggingface.co/datasets/smolagents/training-traces
NousResearch/hermes-function-calling-v1 — 1,893 examples Hermes function-calling format reference data. https://huggingface.co/datasets/NousResearch/hermes-function-calling-v1
r0b0tlab/deepseek-hermes-reasoning-traces — evaluated, not in final mix DeepSeek V4 Pro reasoning traces (considered but v3 used interstellarninja instead for format consistency). https://huggingface.co/datasets/r0b0tlab/deepseek-hermes-reasoning-traces
@dataset{interstellarninja_hermes_reasoning,
title = {Hermes Reasoning Tool Use},
author = {interstellarninja},
url = {https://huggingface.co/datasets/interstellarninja/hermes_reasoning_tool_use}
}
@dataset{lambda_hermes_agent_traces,
title = {Hermes Agent Reasoning Traces},
author = {lambda},
url = {https://huggingface.co/datasets/lambda/hermes-agent-reasoning-traces}
}
@dataset{yoonholee_terminalbench,
title = {TerminalBench Trajectories},
author = {Yoonho Lee},
url = {https://huggingface.co/datasets/yoonholee/terminalbench-trajectories}
}
@dataset{salesforce_apigen,
title = {APIGen-MT-5k: Verified Multi-Turn Tool Dialogues},
author = {Salesforce},
url = {https://huggingface.co/datasets/Salesforce/APIGen-MT-5k}
}
@dataset{xingyaoww_codeact,
title = {CodeAct: Code Action Agent Traces},
author = {Xingyao Wang},
url = {https://huggingface.co/datasets/xingyaoww/code-act-78k}
}
@dataset{nousresearch_hermes_fc,
title = {Hermes Function Calling v1},
author = {Nous Research},
url = {https://huggingface.co/datasets/NousResearch/hermes-function-calling-v1}
}
Ebumping (Dylan Jeffery)