95 lines
3.4 KiB
Markdown
95 lines
3.4 KiB
Markdown
---
|
||
language:
|
||
- en
|
||
license: apache-2.0
|
||
library_name: transformers
|
||
base_model:
|
||
- mistralai/Mistral-Nemo-Base-2407 # lightweight student
|
||
- Qwen/Qwen3-235B-A22B # thinking + non-thinking teacher
|
||
tags:
|
||
- distillation
|
||
- /think
|
||
- /nothink
|
||
- reasoning-transfer
|
||
- arcee-ai
|
||
---
|
||
|
||

|
||
|
||
# Arcee **Homunculus-12B**
|
||
|
||
**Homunculus** is a 12 billion-parameter instruction model distilled from **Qwen3-235B** onto the **Mistral-Nemo** backbone.
|
||
It was purpose-built to preserve Qwen’s two-mode interaction style—`/think` (deliberate chain-of-thought) and `/nothink` (concise answers)—while running on a single consumer GPU.
|
||
|
||
---
|
||
|
||
## ✨ What’s special?
|
||
|
||
| Feature | Detail |
|
||
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||
| **Reasoning-trace transfer** | Instead of copying just final probabilities, we align *full* logit trajectories, yielding more faithful reasoning. |
|
||
| **Total-Variation-Distance loss** | To better match the teacher’s confidence distribution and smooth the loss landscape. |
|
||
| **Tokenizer replacement** | The original Mistral tokenizer was swapped for Qwen3's tokenizer. |
|
||
| **Dual interaction modes** | Use `/think` when you want transparent step-by-step reasoning (good for analysis & debugging). Use `/nothink` for terse, production-ready answers. Most reliable in the system role field. | |
|
||
|
||
---
|
||
|
||
## Benchmark results
|
||
|
||
| Benchmark | Score |
|
||
| --------- | ----- |
|
||
| GPQADiamond (average of 3) | 57.1% |
|
||
| mmlu | 67.5% |
|
||
|
||
## 🔧 Quick Start
|
||
|
||
```python
|
||
from transformers import AutoTokenizer, AutoModelForCausalLM
|
||
|
||
model_id = "arcee-ai/Homunculus"
|
||
tokenizer = AutoTokenizer.from_pretrained(model_id)
|
||
model = AutoModelForCausalLM.from_pretrained(
|
||
model_id,
|
||
torch_dtype="auto",
|
||
device_map="auto"
|
||
)
|
||
|
||
# /think mode - Chain-of-thought reasoning
|
||
messages = [
|
||
{"role": "system", "content": "You are a helpful assistant. /think"},
|
||
{"role": "user", "content": "Why is the sky blue?"},
|
||
]
|
||
output = model.generate(
|
||
tokenizer.apply_chat_template(messages, tokenize=True, return_tensors="pt"),
|
||
max_new_tokens=512,
|
||
temperature=0.7
|
||
)
|
||
print(tokenizer.decode(output[0], skip_special_tokens=True))
|
||
|
||
# /nothink mode - Direct answers
|
||
messages = [
|
||
{"role": "system", "content": "You are a helpful assistant. /nothink"},
|
||
{"role": "user", "content": "Summarize the plot of Hamlet in two sentences."},
|
||
]
|
||
output = model.generate(
|
||
tokenizer.apply_chat_template(messages, tokenize=True, return_tensors="pt"),
|
||
max_new_tokens=128,
|
||
temperature=0.7
|
||
)
|
||
print(tokenizer.decode(output[0], skip_special_tokens=True))
|
||
```
|
||
|
||
## 💡 Intended Use & Limitations
|
||
|
||
Homunculus is designed for:
|
||
|
||
* **Research** on reasoning-trace distillation, Logit Imitation, and mode-switchable assistants.
|
||
* **Lightweight production** deployments that need strong reasoning at <12 GB VRAM.
|
||
|
||
### Known limitations
|
||
|
||
* May inherit biases from the Qwen3 teacher and internet-scale pretraining data.
|
||
* Long-context (>32 k tokens) use is experimental—expect latency & memory overhead.
|
||
|
||
---
|