samuelcardillo's picture
Update README with FP8 variant and formats table
d86a0ce verified
|
Raw
History Blame Contribute Delete
5.32 kB
---
language:
- en
license: apache-2.0
tags:
- qwen3.6
- moe
- hermes
- agentic
- tool-calling
- qlora
- unsloth
- carnice
base_model: Qwen/Qwen3.6-35B-A3B
datasets:
- bespokelabs/Bespoke-Stratos-17k
- AI-MO/NuminaMath-CoT
- kai-os/carnice-glm5-hermes-traces
- open-thoughts/OpenThoughts-Agent-v1-SFT
---
# Carnice Qwen3.6 MoE 35B-A3B — Hermes-Focused Agentic Model
QLoRA fine-tune of **Qwen3.6-35B-A3B** (MoE, 3B active parameters) optimized for **agentic workflows** and **Hermes Agent** runtime. Two-stage training adapted from [kai-os/Carnice-9b](https://huggingface.co/kai-os/Carnice-9b).
This is the successor to [Carnice-MoE-35B-A3B](https://huggingface.co/samuelcardillo/Carnice-MoE-35B-A3B) (based on Qwen3.5), retrained on the newer Qwen3.6 base which brings improved agentic coding, extended context (262K native, up to 1M with RoPE scaling), and native multimodal support.
## Credits
Training methodology adapted from **[kai-os/Carnice-9b](https://huggingface.co/kai-os/Carnice-9b)** — same two-stage approach and datasets, applied to the larger MoE architecture. Key inspiration: training on actual Hermes Agent execution traces for native agentic behavior.
## Available Formats
| Format | Size | Location | Use Case |
|---|---|---|---|
| **BF16 SafeTensors** | 67 GB | Root | Full precision, Transformers / vLLM |
| **FP8 Dynamic** | 34 GB | `fp8/` | vLLM optimized, ~2x faster inference |
| **GGUF** | 19-65 GB | [GGUF repo](https://huggingface.co/samuelcardillo/Carnice-Qwen3.6-MoE-35B-A3B-GGUF) | llama.cpp, Ollama, LM Studio |
### FP8 Usage (vLLM)
```bash
# Clone the repo and point vLLM to the fp8/ subfolder
vllm serve samuelcardillo/Carnice-Qwen3.6-MoE-35B-A3B --quantization fp8 --dtype auto
```
## Model Details
| Property | Value |
|---|---|
| Base Model | [Qwen/Qwen3.6-35B-A3B](https://huggingface.co/Qwen/Qwen3.6-35B-A3B) |
| Architecture | Mixture of Experts (MoE) |
| Total Parameters | ~35B |
| Active Parameters | ~3B per token |
| Native Context Length | 262,144 tokens |
| Thinking Modes | Thinking / Non-thinking (native Qwen3.6) |
## What Makes This Different
Unlike generic reasoning distillation, this model was trained on **actual Hermes Agent execution traces** — real conversations where an AI agent:
- Executes terminal commands and processes output
- Performs file editing operations
- Chains multi-step tool calls with results feeding back
- Uses browser-assisted workflows
- Makes decisions based on environmental feedback
This teaches the model the exact conversation patterns Hermes expects, rather than just generic reasoning.
## Training Details
### Two-Stage Approach
**Stage A — Reasoning Repair** (1 epoch)
- Strengthens base model reasoning before agent-specific training
- Loss: 0.4281
| Dataset | Examples |
|---|---|
| [bespokelabs/Bespoke-Stratos-17k](https://huggingface.co/datasets/bespokelabs/Bespoke-Stratos-17k) | 16,710 |
| [AI-MO/NuminaMath-CoT](https://huggingface.co/datasets/AI-MO/NuminaMath-CoT) | 17,000 (capped) |
**Stage B — Hermes Traces** (2 epochs)
- Agent-specific behavioral training on real execution traces
- Loss: 0.3045
| Dataset | Examples |
|---|---|
| [kai-os/carnice-glm5-hermes-traces](https://huggingface.co/datasets/kai-os/carnice-glm5-hermes-traces) | 1,627 (high quality) |
| [open-thoughts/OpenThoughts-Agent-v1-SFT](https://huggingface.co/datasets/open-thoughts/OpenThoughts-Agent-v1-SFT) | 15,209 |
### Training Configuration
| Parameter | Stage A | Stage B |
|---|---|---|
| LoRA Rank | 64 | 64 |
| LoRA Alpha | 64 | 64 |
| LoRA Targets | q, k, v, o projections | q, k, v, o projections |
| Learning Rate | 2e-5 (linear) | 1e-5 (cosine) |
| Epochs | 1 | 2 |
| Effective Batch | 12 | 12 |
| Context Length | 4096 | 4096 |
| Precision | 4-bit QLoRA + BF16 adapters | Same |
| GPU | RTX PRO 6000 Blackwell (98GB) | Same |
| Total Training Time | ~55 hours (both stages) |
### Trainable Parameters
13,762,560 (0.04% of 35.1B total)
## Usage
### Transformers
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained(
"samuelcardillo/Carnice-Qwen3.6-MoE-35B-A3B",
torch_dtype="auto",
device_map="auto",
)
tokenizer = AutoTokenizer.from_pretrained("samuelcardillo/Carnice-Qwen3.6-MoE-35B-A3B")
messages = [{"role": "user", "content": "Explain the Riemann hypothesis in simple terms."}]
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=2048)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
```
### vLLM
```bash
vllm serve samuelcardillo/Carnice-Qwen3.6-MoE-35B-A3B --dtype auto --max-model-len 262144
```
### llama.cpp
For llama.cpp usage, see the [GGUF repo](https://huggingface.co/samuelcardillo/Carnice-Qwen3.6-MoE-35B-A3B-GGUF).
## Acknowledgements
- **[kai-os](https://huggingface.co/kai-os)** — Carnice training methodology and Hermes traces dataset
- **[open-thoughts](https://huggingface.co/open-thoughts)** — Agent SFT dataset
- **[bespokelabs](https://huggingface.co/bespokelabs)** — Bespoke-Stratos reasoning dataset
- **[Unsloth](https://unsloth.ai)** — QLoRA training framework
- **[Qwen](https://huggingface.co/Qwen)** — Base model