wime-syllable-40m

The syllable model of wime, an Emacs Chinese double-pinyin input method. Given the text before the cursor and the typed syllables, it scores one Chinese character per syllable. wime fuses it with Qwen3.5-2B-Base to decode whole sentences on a local GPU.

Use

Follow the neural decoding setup (็ฅž็ป่งฃ็ ) in wime's README: it downloads this model into ~/.local/share/wime/wime-syllable-40m/, where wime looks for it. Loading the file needs wime's neural/transducer.py and neural/charlm.py.

Model

  • Input: up to 64 characters of left context, then each syllable as a pinyin initial, final and optional tone; any part may be unknown, so toneless, toned and half-typed input share one model. Auxiliary (shape) codes are not input; wime applies them, and typed tones, as constraints in its search.
  • Layout-independent: wime's word database for each double-pinyin layout records which initial and final every pair of keys stands for, so the same model serves Microsoft, Xiaohe, Sogou and Ziranma layouts (only Microsoft was evaluated).
  • Architecture (40.0M parameters): an 8-layer causal character network (448 wide) reads the context and the characters so far; a 6-layer bidirectional encoder (384 wide) reads the syllables; the top 4 character layers attend to the encoder, and a joint head scores each syllable's character through the tied character embedding.
  • Vocabulary: 13,254 tokens, of which 12,408 are Chinese characters.
  • File: model.safetensors, FP16, format wime-syllable-transducer-v1, sha256 f9b0d8aa2e7ed9d6d6406b5c78309c619240309c1a9b998f0787d63f0388f75a.

Evaluation

Sentence accuracy of wime's full decoder (this model plus Qwen3.5-2B-Base at weight 1.5, beam 32), Microsoft double pinyin without tones, each sentence typed after its real left context. A case counts when the first candidate equals the reference or an accepted variant; cases that need knowledge the context does not give (rare names, local jargon) are left out.

Set Sentences This model wime's earlier 25M model
Development (used to choose the model) 759 703 693
Held-out, evaluated once after the choice 208 184 179
Held-out, every tone typed 208 196 โ€”

On the held-out set the paired 95% interval of the difference is โˆ’2 to +13 sentences. References and their boundaries were reviewed by an AI agent, not by people.

Limitations

  • Characters outside the 12,408 it knows get almost no probability, so the decoder cannot produce them; wime still offers them from its dictionary lattice.
  • It was trained and evaluated on simplified Chinese only.
  • Readings in the training data are automatic (G2PW-based), not checked by hand.

Training

The character network starts from a character language model pretrained on the Chinese part of C4 and on LCCC, which wime fine-tuned on pinyin-conditioned input; encoder, cross-attention and joint head are new. Training ran 16,000 steps of 256 states (whole sentences, prefixes, continuations after a commit) over 1.32M sentences; tones are dropped at random, so typing them is optional.

Sources of the training data across all stages:

  • C4, Chinese part (ODC-BY); LCCC dialogues (MIT); CHID (thu-coai)
  • WildChat-1M (ODC-BY), Chinese Wikipedia 2026-10-01 (CC-BY-SA-4.0), Fineweb-Edu-Chinese-V2.1 (Apache-2.0 metadata; its card also requires the OpenCSG Community License), MNBVC Zhihu, forum, wiki and news parts (MIT card; upstream terms apply)
  • Documentation: Python (PSF documentation license), Kubernetes, OpenHarmony, React and Vue (CC-BY-4.0), MDN (CC-BY-SA-2.5 prose), Apache Doris and PaddlePaddle (Apache-2.0), TRPL, Rust by Example and RIME (MIT)

The weights are released under CC-BY-SA-4.0, the most restrictive share-alike license among these sources; check the upstream terms for your use.

Downloads last month

-

Downloads are not tracked for this model. How to track
Safetensors
Model size
40M params
Tensor type
F16
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support