Downloads · 30 days
12
32% of all-time downloads
valendra/sherry-35b-a3b-0.1-sft-preview
sherry-35b-a3b-0.1-sft-preview is a text generation model from valendra. 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.
Sherry is an experimental supervised fine-tuning (SFT) LoRA adapter for Qwen/Qwen3.6-35B-A3B. It teaches the model to condition its reasoning style on one of three trained control tokens: low, medium, or high reasonin…
Downloads · 30 days
12
32% of all-time downloads
All-time downloads
38
Public
Repo size
86.9 MB
Likes
0
Public
Click a slice to open those files.
.safetensors66.9 MB · 77%
From the Hugging Face model README
Sherry is an experimental supervised fine-tuning (SFT) LoRA adapter for Qwen/Qwen3.6-35B-A3B. It teaches the model to condition its reasoning style on one of three trained control tokens: low, medium, or high reasoning effort.
This is a preview adapter, not a standalone set of model weights. Load it on top of the base model with PEFT. The base model remains responsible for the general language, coding, mathematics, and multimodal capabilities.
The adapter was trained on verified text-only mathematics and reasoning traces. Each example contains a thinking span and a final answer, and is labeled with one of these special tokens:
<|reasoning_effort_low|>
<|reasoning_effort_medium|>
<|reasoning_effort_high|>
The selected token is placed immediately before the Qwen3.6 thinking opener:
<|reasoning_effort_medium|><think>
... reasoning ...
</think>
... final answer ...
The tokens bias the amount and depth of reasoning. They are not hard length limits and do not guarantee a particular number of tokens, correctness, or termination behavior.
The base model includes a vision encoder, but this adapter was trained and validated on text-only examples. No separate vision benchmark claim is made for this adapter.
This repository includes the Qwen3.6 chat_template.jinja used by the SFT
run. It renders a user message and an assistant thinking opener. The trained
effort token is inserted by the caller immediately before <think>\n; the
template itself is intentionally kept compatible with the base Qwen3.6 format.
Install current versions of Transformers and PEFT, then load the base model and adapter:
import torch
from peft import PeftModel
from transformers import AutoModelForImageTextToText, AutoProcessor
base_id = "Qwen/Qwen3.6-35B-A3B"
adapter_id = "valendra/sherry-35b-a3b-0.1-sft-preview"
processor = AutoProcessor.from_pretrained(adapter_id)
base = AutoModelForImageTextToText.from_pretrained(
base_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
model = PeftModel.from_pretrained(base, adapter_id)
model.eval()
tokenizer = getattr(processor, "tokenizer", processor)
Render a text prompt with a selected effort level. The explicit insertion is important because the three effort tokens are trained controls, not arguments understood by the generic base chat template:
EFFORT_TOKENS = {
"low": "<|reasoning_effort_low|>",
"medium": "<|reasoning_effort_medium|>",
"high": "<|reasoning_effort_high|>",
}
THINKING_OPEN = "<think>\n"
def format_prompt(question: str, effort: str) -> str:
if effort not in EFFORT_TOKENS:
raise ValueError(f"unknown effort: {effort}")
rendered = tokenizer.apply_chat_template(
[{"role": "user", "content": question}],
tokenize=False,
add_generation_prompt=True,
enable_thinking=True,
)
if not rendered.endswith(THINKING_OPEN):
raise ValueError("the Qwen3.6 chat template did not produce <think>\n")
return rendered[:-len(THINKING_OPEN)] + EFFORT_TOKENS[effort] + THINKING_OPEN
prompt = format_prompt("What is 17 times 23?", "medium")
inputs = processor(text=prompt, return_tensors="pt")
inputs = {key: value.to(model.device) for key, value in inputs.items()}
outputs = model.generate(
**inputs,
max_new_tokens=4096,
do_sample=False,
)
new_tokens = outputs[0, inputs["input_ids"].shape[-1]:]
print(tokenizer.decode(new_tokens, skip_special_tokens=False))
The example uses a 4,096-token caller-side generation budget for a practical demo. Increase or decrease that value for the available hardware and task.
The SFT examples come from the public valendra/sherry-reasoning-effort-0.1-dataset, which contains verified numeric-answer reasoning traces at three observed effort levels. Its problems are sampled from AI-MO/NuminaMath-CoT, with proof-style entries filtered out for this experiment.
The published adapter records the following run configuration:
1e-4 with cosine scheduling and 50 warmup stepsThe private/generated source rows and training logs are not included in this model repository.
This repository does not claim an independent benchmark improvement. The SFT run included an evaluation split for training diagnostics, but the later GRPO experiment was not completed and its artifacts are not part of this release. Users should evaluate the adapter on their own tasks and compare it against the base model using the same prompt, decoding, and token budget.
Do not use this preview as the sole basis for high-impact decisions. Inspect outputs and apply the safety and licensing requirements of the base model in your deployment context.
The base model is released under the Apache 2.0 license. This repository contains a PEFT adapter that depends on the base model; download and use both repositories consistently with the base model's license and terms.
Valendra Labs