--- license: apache-2.0 language: ru library_name: transformers base_model: Qwen/Qwen3.5-0.8B tags: - dictation - russian - lora - VoiceScribe - corrector - qwen3.5 datasets: - VoiceScribe/dictation-corrector-seed metrics: - exact-match --- # 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 ```python 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 ```bibtex @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%)