How to use from the
Use from the
Transformers library
# Use a pipeline as a high-level helper
from transformers import pipeline

pipe = pipeline("text-generation", model="VoiceScribe/qwen3-5-0.8b-dictation-corrector-cuda-int4-nf4")
messages = [
    {"role": "user", "content": "Who are you?"},
]
pipe(messages)
# Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("VoiceScribe/qwen3-5-0.8b-dictation-corrector-cuda-int4-nf4")
model = AutoModelForCausalLM.from_pretrained("VoiceScribe/qwen3-5-0.8b-dictation-corrector-cuda-int4-nf4", device_map="auto")
messages = [
    {"role": "user", "content": "Who are you?"},
]
inputs = tokenizer.apply_chat_template(
	messages,
	add_generation_prompt=True,
	tokenize=True,
	return_dict=True,
	return_tensors="pt",
).to(model.device)

outputs = model.generate(**inputs, max_new_tokens=40)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:]))
Quick Links

Voice Scribe Russian Dictation Corrector (Qwen3.5-0.8B, V15 R-3, cuda-int4-nf4)

Consumer ship-form: bitsandbytes 4-bit NF4 (double-quant). ~750 MB. -12pp wild vs bf16 (still passes consumer gate >=78%); preserves hard-neg 5/5 absolute. Target: RTX 2060+/6GB.

Eval results (held-out wild_eval, 58 prompts 脳 9 sectors)

Metric Score
Wild pass 84.48%
Hard-negative 5/5
Smoke 8/8
p50 latency 676 ms
Ship-form size 750 MB

Comparison:

  • macOS V15 R-3 reference: 93.1% wild
  • V14 baseline: 86.2%
  • Qwen3-4B Q5 production (pre-LoRA): 48%
  • This model: 84.48% (-1.7pp vs V14 baseline)

Training recipe (V15 R-3)

Mirrors macOS configs/r4_v15_extended.yaml byte-for-byte logical-recipe.

base               = Qwen/Qwen3.5-0.8B (vanilla, NOT Instruct)
LoRA rank          = 16
LoRA alpha         = 80 (rsLoRA mode -> effective scale 20.0)
target_modules     = q_proj, k_proj, v_proj, o_proj
layers_to_transform = last 16 of 24 (range(8, 24))
mask_prompt        = ON (assistant_masks via patched chat_template {% generation %})
max_steps          = 1100
batch_size         = 2
max_seq_length     = 384
lr_schedule        = cosine, peak 3e-5, warmup 100
weight_decay       = 0.01
optim              = adamw_torch_fused
precision          = bf16
seed               = 20260515
trainable params   = 720,896 (0.0957% of 753M)
data               = 1104 rows = V14 seeds (691) + V15 brand expansion (271) + V15 R-3 patches (142)

Intended use

  • Russian dictation cleanup after ASR (GigaAM, Whisper, Parakeet)
  • Conservative editing policy: remove filler (褝屑/薪褍/褌懈锌邪/泻芯褉芯褔械), normalize Cyrillic IT terms (谐懈褌褏邪斜 -> GitHub), preserve all meaning
  • NOT for general text editing, English text, creative writing, summarization, translation

Limitations

  • 58-row eval set has 卤1.72pp single-row noise
  • Cyrillic <-> Latin choice on ambiguous brand spellings is judgment call (model may differ from expected byte-match)
  • Trained on synthetic data only; real production telemetry collection planned for V16
  • INT4 NF4 has higher quality loss (-12pp) than AWQ would; AWQ blocked on Win-Py3.13-cu128 (no source build without nvcc)

Hardware ship matrix

Hardware Recommended ship-form This model?
RTX 5090 / 4090 24GB+ bf16
RTX 4070 / 4060 / 3060 8-16GB INT8
RTX 2060 / 3050 / 4060 6-8GB INT4 NF4 PRIMARY
Re-training / stacking adapter

Inference

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

model = AutoModelForCausalLM.from_pretrained(
    "VoiceScribe/qwen3-5-0.8b-dictation-corrector-cuda-int4-nf4",
    load_in_4bit=True,
    device_map="cuda",
    trust_remote_code=True,
)
tokenizer = AutoTokenizer.from_pretrained("VoiceScribe/qwen3-5-0.8b-dictation-corrector-cuda-int4-nf4", trust_remote_code=True)

messages = [
    {"role": "system", "content": "袣芯褉褉械泻褌芯褉 褉褍褋褋泻芯泄 写懈泻褌芯胁泻懈. 校斜械褉懈 褋谢芯胁邪-锌邪褉邪蟹懈褌褘 ..."},
    {"role": "user", "content": "袟邪锌褍褕懈谢 泻芯屑屑懈褌 胁 谐懈褌褏邪斜 褉械锌芯蟹懈褌芯褉懈泄"},
]
prompt = tokenizer.apply_chat_template(
    messages,
    add_generation_prompt=True,
    tokenize=False,
    enable_thinking=False,  # CRITICAL for Qwen3.5
)
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
out = model.generate(**inputs, max_new_tokens=200, do_sample=False)
print(tokenizer.decode(out[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True))
# Expected: "袟邪锌褍褕懈谢 泻芯屑屑懈褌 胁 GitHub 褉械锌芯蟹懈褌芯褉懈泄"

Cross-platform variants

  • macOS MLX: VoiceScribe/qwen3-5-0.8b-dictation-corrector-mlx-{bf16,8bit,4bit} (V15 R-3, 93.1% wild)
  • CUDA bf16/INT8/INT4-NF4: this family (V15 R-3 Win port, 84.48-96.55% wild)
  • OpenVINO: planned (separate venv for export; tracker WP#920)
  • TensorRT-RTX W4A16: deferred (DeltaNet ONNX export blocked on Win-Py3.13-cu128 in 2026-05)

Citation

@software{voicescribe-corrector-v15r3-2026,
  title = {Voice Scribe Russian Dictation Corrector (Qwen3.5-0.8B V15 R-3, CUDA Win port)},
  author = {Sabynin, Andrey},
  year = {2026},
  url = {https://huggingface.co/VoiceScribe/qwen3-5-0.8b-dictation-corrector-cuda-int4-nf4}
}

Trackers

  • macOS R&D: OpenProject WP#917 (V14), WP#919 (V15 R-3 macOS)
  • Windows port: OpenProject WP#920 (this effort, achieved 96.55% vs macOS 93.1%)
Downloads last month
14
Safetensors
Model size
0.8B params
Tensor type
F32
BF16
U8
Inference Providers NEW
This model isn't deployed by any Inference Provider. 馃檵 Ask for provider support

Model tree for VoiceScribe/qwen3-5-0.8b-dictation-corrector-cuda-int4-nf4

Adapter
(198)
this model