Downloads · 30 days
488
42% of all-time downloads
ChisatoY/dolas-zh-finetuned
dolas-zh-finetuned is a text generation model from ChisatoY. Use it when you need the model to write or continue text. The card lists the license as cc-by-nc-sa-4.0.
dolas-zh-finetuned 是一个面向中文文本自然化改写的 Qwen3 4B 微调模型。模型接收带有明显生成式 AI 风格的中文文本,在尽量完整保留事实、语气、名称、数字、日期、单位和引文的前提下,将其改写成更自然的人类中文。
Downloads · 30 days
488
42% of all-time downloads
All-time downloads
1.2K
Public
Parameters
4B
14.8 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors8 GB · 54%
From the Hugging Face model README
dolas-zh-finetuned 是一个面向中文文本自然化改写的 Qwen3 4B 微调模型。模型接收带有明显生成式 AI 风格的中文文本,在尽量完整保留事实、语气、名称、数字、日期、单位和引文的前提下,将其改写成更自然的人类中文。
本项目参考 bingbangboom/dolus-v3-ep1-instruct-GGUF 的反向蒸馏思路,以 unsloth/Qwen3-4B-Instruct-2507 为基础模型进行中文 QLoRA SFT。模型不会自动翻译文本;建议仅用于中文改写任务。
训练数据的目标文本来自以下公开中文数据集中的人类原文或人类回答:
| 数据源 | 原始候选数 | 清洗后候选数 | 采用领域 |
|---|---|---|---|
CASIA-LM/ChineseWebText2.0 | 300,000 | 123,385 | general、encyclopedia、technology、education、book |
Hello-SimpleAI/HC3-Chinese | 12,853 | 5,893 | open_qa、baike、psychology |
| 合计 | 312,853 | 129,278 | 8 个领域 |
清洗后人类原文池共 129,278 条,文本长度为 120–1,500 个字符,平均约 484.7 个字符,中位数为 424 个字符。
人类原文首先经过不调用语言模型的规则清洗:
script、style、HTML 标签、URL、邮箱、零宽字符和控制字符。ChineseWebText2.0 要求质量分不低于 0.92,并过滤有毒内容。0.55、包含替换字符或连续重复字符的文本。从清洗后的人类原文池中抽取 20,100 条唯一文本,通过 API 将人类原文合成为含有常见生成式 AI 文风的中文文本。训练方向与合成方向相反:
输入:合成的 AI 风格中文
目标:对应的人类原文
合成结果经过两级质量控制:
最终接受 11,921 条样本,拒绝 8,179 条,接受率为 59.31%。主要拒绝原因包括数字未完整保留、事实或语义变化、AI 文风不明显,以及长度不符合要求。
训练样本固定为三轮消息格式:
system: 将给定的 AI 生成中文改写成自然、熟练的人类中文。完整保留原意、语气和全部关键信息;不得遗漏、添加、虚构或推断原文没有的内容。姓名、标题、组织、数字、统计、日期、单位和引文必须保持不变。只输出改写后的正文。
user: [AI 生成文本]:{待改写文本}
assistant: {自然的人类中文}
模型使用 Unsloth 在单张 32 GB GPU 上进行 4-bit QLoRA SFT,仅对 assistant 回复计算损失。
| 参数 | 值 |
|---|---|
| 基础模型 | unsloth/Qwen3-4B-Instruct-2507 |
| 对话模板 | Qwen3 Instruct / ChatML |
| 最大序列长度 | 4,096 |
| 训练样本数 | 11,921 |
| Epoch | 1 |
| Optimizer steps | 373 |
| 单卡 batch size | 32 |
| 梯度累积 | 1 |
| 有效 batch size | 32 |
| 学习率 | 2e-4 |
| 学习率调度 | cosine |
| Warmup steps | 39 |
| 优化器 | AdamW 8-bit |
| Weight decay | 0.01 |
| LoRA rank | 32 |
| LoRA alpha | 64 |
| LoRA dropout | 0.05 |
| LoRA bias | none |
| LoRA 目标层 | q_proj、k_proj、v_proj、o_proj、gate_proj、up_proj、down_proj |
| Gradient checkpointing | Unsloth |
| Packing | false |
| Loss | assistant only |
| Seed | 3407 |
训练完成后先合并 LoRA 与基础模型,再转换为 F16 GGUF,并导出以下量化版本:
| 文件 | 量化 | 约占空间 | SHA-256 |
|---|---|---|---|
dolas-zh-f16.gguf | F16 | 7.5 GB | 7838aaade9141a8d54d1b57610b2f67bfd2e5d98c580ff675498d6781fb19dcc |
dolas-zh-q4_k_m.gguf | Q4_K_M | 2.4 GB | a60901aa0b7ebbe5baca672ce6712fade67862136c39cacabb623f167c9d7769 |
dolas-zh-q8_0.gguf | Q8_0 | 4.0 GB | ebb0b77dd2e9f87f800cb1f932d00817777ee8bd4f5b9b41a82ce199a061d04f |
以下方式适用于包含 config.json、tokenizer 文件及合并后 Safetensors 权重的 Hugging Face 格式目录。请将 YOUR_USERNAME 替换为实际的 Hugging Face 用户名或组织名。
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "YOUR_USERNAME/dolas-zh-finetuned"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
dtype=torch.bfloat16,
device_map="auto",
)
messages = [
{
"role": "system",
"content": (
"将给定的 AI 生成中文改写成自然、熟练的人类中文。"
"完整保留原意、语气和全部关键信息;不得遗漏、添加、虚构或推断原文没有的内容。"
"姓名、标题、组织、数字、统计、日期、单位和引文必须保持不变。只输出改写后的正文。"
),
},
{
"role": "user",
"content": "[AI 生成文本]:在此填写需要自然化改写的中文文本。",
},
]
prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.inference_mode():
output = model.generate(
**inputs,
max_new_tokens=512,
do_sample=True,
temperature=0.45,
top_p=0.90,
top_k=40,
repetition_penalty=1.15,
pad_token_id=tokenizer.eos_token_id,
)
generated = output[0, inputs["input_ids"].shape[1] :]
print(tokenizer.decode(generated, skip_special_tokens=True).strip())
推荐日常使用 Q4_K_M,需要更高保真度时可使用 Q8_0。
./llama-cli \
-m ./dolas-zh-q4_k_m.gguf \
-sys '将给定的 AI 生成中文改写成自然、熟练的人类中文。完整保留原意、语气和全部关键信息;不得遗漏、添加、虚构或推断原文没有的内容。姓名、标题、组织、数字、统计、日期、单位和引文必须保持不变。只输出改写后的正文。' \
-p '[AI 生成文本]:在此填写需要自然化改写的中文文本。' \
--single-turn \
--predict 512 \
--temp 0.45 \
--top-p 0.90 \
--top-k 40 \
--repeat-penalty 1.15
若使用支持 GGUF 的图形界面(例如 LM Studio),应保留同一 system prompt 和 [AI 生成文本]: 输入前缀。当前模型在较高温度下偶尔会增加套话或产生半角中文标点,建议从 temperature=0.35–0.55 开始测试,并在事实敏感场景中人工核对改写结果。