Andrewsab's picture
V15 R-3 Win-CUDA cuda-int4-nf4 ship-form (Win port of macOS WP#919)
fca80e1 verified
|
Raw
History Blame Contribute Delete
4.84 kB
---
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%)