Downloads · 30 days
18
11% of all-time downloads
leeoxiang/qwen3-0.6b-zh-tn
qwen3-0.6b-zh-tn is a text generation model from leeoxiang. Use it when you need the model to write or continue text. The card lists the license as cc-by-nc-4.0.
把中文文本中的非标准词(NSW:数字/日期/时间/金额/电话/百分比/分数/比分/版本号/区间/编号/罗马数字/数学算式等 14 类)转换为朗读形式,供 TTS 前端使用。
Downloads · 30 days
18
11% of all-time downloads
All-time downloads
168
Public
Parameters
596M
1.2 GB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors1.2 GB · 99%
From the Hugging Face model README
把中文文本中的非标准词(NSW:数字/日期/时间/金额/电话/百分比/分数/比分/版本号/区间/编号/罗马数字/数学算式等 14 类)转换为朗读形式,供 TTS 前端使用。
基于 Qwen3-0.6B-Base 全参 SFT。模型不重写整句,只输出编辑脚本(哪些片段改、改成什么),由解析器拼接还原——无编辑句子只需 1 个 decode step,天然低延迟、零幻觉面小。
| 评测集 | 句准率 | acceptable 口径* |
|---|---|---|
| 合成盲测(2,386 句) | 99.79% | 99.83% |
| 标贝真实语料(5,023 句,百科域) | 96.5% | 97.3% |
| Apple PolyNorm-Bench zh(278 句,27 类,政策对齐) | 93.2% | 96.0% |
* acceptable:模型读法落在合法读法集合内(如 幺/一、两/二、平方/二次方 风格变体)即算对。
H200 实测(vLLM,FP8,bs=1 全链路):P50 20.6ms / P99 63ms;输出均值 ~13 token。
输入 prompt:<|fim_prefix|>{原文}<|fim_suffix|>
输出:每行一条编辑 `锚点->读法`(按原文出现顺序);无需改写时输出为空,直接 <|endoftext|>
示例:
输入: 会议定在18号下午3:30,预算¥1200万。
输出: 18号->十八号
3:30->三点三十分
¥1200万->一千二百万元
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
MODEL = "leeoxiang/qwen3-0.6b-zh-tn"
tok = AutoTokenizer.from_pretrained(MODEL)
model = AutoModelForCausalLM.from_pretrained(MODEL, dtype=torch.bfloat16).cuda().eval()
EOS_ID = 151643 # <|endoftext|>
def parse_and_apply(src: str, output: str) -> str:
"""编辑脚本 → 归一化文本。行内以最后一个 -> 分隔;锚点从游标起宽松第一匹配。
任何异常应走 fallback(返回原文或转规则链路)。"""
parts, cursor = [], 0
for line in output.split("\n"):
if not line.strip():
continue
idx = line.rfind("->")
assert idx > 0, f"bad line: {line!r}"
anchor, reading = line[:idx], line[idx + 2:]
pos = src.find(anchor, cursor)
assert pos != -1, f"anchor not found: {anchor!r}"
parts += [src[cursor:pos], reading]
cursor = pos + len(anchor)
return "".join(parts) + src[cursor:]
def normalize(src: str) -> str:
prompt = f"<|fim_prefix|>{src}<|fim_suffix|>"
enc = tok(prompt, return_tensors="pt", add_special_tokens=False).to(model.device)
with torch.inference_mode():
out = model.generate(**enc, max_new_tokens=128, do_sample=False,
eos_token_id=EOS_ID, pad_token_id=EOS_ID)
raw = tok.decode(out[0, enc["input_ids"].shape[1]:], skip_special_tokens=True)
try:
return parse_and_apply(src, raw)
except AssertionError:
return src # fallback:解析失败回退原文(生产建议转规则链路)
print(normalize("会议定在18号下午3:30,预算¥1200万。"))
# → 会议定在十八号下午三点三十分,预算一千二百万元。
vllm serve leeoxiang/qwen3-0.6b-zh-tn \
--port 8103 --quantization fp8 \
--gpu-memory-utilization 0.3 --max-model-len 1024 \
--max-num-seqs 8 --enable-prefix-caching
调用要点:greedy(temperature=0)、stop_token_ids=[151643]、max_tokens=128。
生产建议再加两道防线:
Qwen3-0.6B-Base 全参 SFT(loss 仅 completion),~10.4 万条:程序化 gold 合成(verbalizer 14 类,LLM 只造语境)+ 标贝真实语料转换 + 负槽位/最小对定向增强,3 epoch,bf16。