🌲 Sarv-Hybrid-Pro
The flagship hybrid-reasoning model in the Sarv family. Built on Strawberry-1, Sarv-Hybrid-Pro extends the approach behind sarv-hybrid with a two-stage training curriculum, producing more reliable, better-calibrated reasoning-vs-direct decisions and stronger poem quality in both modes.
Model Description
Where sarv-hybrid learns reasoning allocation from a single interleaved training run, Sarv-Hybrid-Pro separates that signal into two dedicated stages, letting each capability reach a higher ceiling before the two are combined:
- Stage 1 — Non-reasoning specialization: SFT on direct question→poem pairs only (no
analysischannel), sharpening raw poem-generation quality independent of any reasoning behavior. - Stage 2 — Reasoning specialization: continued SFT from the Stage 1 checkpoint on reasoning-annotated examples (
analysis+final), teaching the model to reason well about meter, imagery, and structure on top of an already-strong non-reasoning base, and re-exposing a portion of Stage 1's non-reasoning data to prevent the reasoning stage from eroding direct-generation quality.
This staged approach is what makes Sarv-Hybrid-Pro the "more complete" version of the hybrid concept: both the non-reasoning and reasoning code paths are individually trained to a higher standard, rather than jointly learned in a single pass.
- Base model: artindnr/strawberry-1 (
gpt_oss21B, MXFP4) - Fine-tuning method: two-stage LoRA SFT (Stage 1 non-reasoning → Stage 2 reasoning, continued from Stage 1 adapter), merged into base weights for release
- Reasoning behavior: hybrid / model-decided, with stronger calibration than
sarv-hybrid - Specialization: Persian poem generation, both direct and reasoning-assisted
- Language: Persian (fa)
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "artindnr/sarv-hybrid-pro"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")
messages = [
{"role": "user", "content": "غزلی در وزن مثنوی معنوی بنویس، با تصویرسازی از باغ"}
]
inputs = tokenizer.apply_chat_template(
messages, add_generation_prompt=True, return_tensors="pt"
).to(model.device)
outputs = model.generate(inputs, max_new_tokens=1024)
full = tokenizer.decode(outputs[0][inputs.shape[-1]:], skip_special_tokens=False)
As with sarv-hybrid, the analysis channel is populated conditionally — parse Harmony channel markers defensively and surface only final unless reasoning transparency is wanted.
Intended Use
- Production-grade general-purpose Persian poem generation
- Use cases needing the best available balance of direct-generation quality and reasoning-assisted quality in one checkpoint
- Recommended default over
sarv-hybridwhen the extra training cost/checkpoint size is acceptable
Limitations
- Larger training pipeline (two stages) than
sarv-hybrid, with correspondingly more compute/time to reproduce - Reasoning-allocation is still learned rather than user-controlled; for guaranteed always-on reasoning use
sarv-reasoning, for guaranteed off usesarv-non-reasoning - Inherits Strawberry-1/
gpt_ossbase limitations
License
Apache 2.0, consistent with the base gpt_oss license chain.
Citation
If you use this model, please cite the Sarv and Strawberry-1 model cards on Hugging Face (artindnr).
- Downloads last month
- 115
