Qwen3-1.7B Web Translator v3a (merged)
A Qwen3-1.7B model fine-tuned (LoRA, merged) for English → Simplified Chinese web page translation. It is the translation engine behind LocaLingo, a private Chrome extension that turns web pages bilingual entirely on-device — no API key, no cloud, the page text never leaves your machine.
Highlights
- 1.7B parameters — small enough to run comfortably on an Apple Silicon MacBook (or any modest GPU) while delivering natural Simplified Chinese.
- Fine-tuned for web text — paragraphs, headings, captions, list items: the kind of text you actually meet on the web.
- Instructions learned — preserves URLs, numbers and prices verbatim, keeps brand names untranslated, transliterates proper nouns sensibly (Sydney → 悉尼).
- Merged weights — LoRA already merged into the base model, so it loads as a standard Qwen3 checkpoint with no adapter plumbing required.
Model details
- Base model: Qwen/Qwen3-1.7B
- Architecture: Qwen3ForCausalLM, 28 layers, 2048 hidden size
- Fine-tuning: LoRA, merged into base weights
- Format: Hugging Face safetensors (bfloat16)
- License: Apache 2.0 (inherited from Qwen3)
Usage
With the LocaLingo project (recommended)
LocaLingo is a Chrome extension
- local FastAPI server that uses this model via MLX. It ships with instructions to download this checkpoint, convert it to MLX format, and serve it locally.
Standalone with transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained(
"ZachacyZ/qwen3-1.7b-web-v3a-merged",
torch_dtype="auto",
)
tokenizer = AutoTokenizer.from_pretrained("ZachacyZ/qwen3-1.7b-web-v3a-merged")
messages = [
{"role": "system", "content": "You are an English-to-Simplified-Chinese webpage translation engine. Output only the translation."},
{"role": "user", "content": "The quick brown fox jumps over the lazy dog."},
]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=256)
print(tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True))
With MLX (Apple Silicon)
Convert once, then use with mlx-lm:
mlx_lm.convert --hf-path ZachacyZ/qwen3-1.7b-web-v3a-merged -q --q-bits 4
Limitations
- Trained for English → Simplified Chinese; other language pairs are untested.
- Web-scale accuracy is bounded by the 1.7B base model — fine for everyday browsing, but a larger base would improve rare-name and idiomatic handling.
- Link/anchor structure is flattened to plain text in the LocaLingo v1 pipeline (planned for a later pass).
Related
- LocaLingo — the browser extension project this model powers.
- ModelScope mirror: ZacharyZhg/qwen3-1.7b-web-v3a-merged