📌 项目背景与定位
在初级中文(YCT 1-3 级 / HSK 初级)日常口语与交际练习中,通用大语言模型(LLM)往往存在两大痛点:
- 过度宽容或陷入自由闲聊:学生表达虽然不成句或偏离交际目的,大模型依然勉强顺着语义回复,无法指出学习卡点;
- 生硬纠错或直接抛出答案:直接把母语者的标准长句抛给学生,缺少初级教学所需的“阶梯式引导(Scaffolding)”,导致学生丧失表达信心。
“万里知言(WanLi-Zhiyan-4B v0.2)” 是由万里中文(WanLi Chinese)团队专门研发的国际中文教育垂直领域诊断大模型。模型旨在扮演一位富有耐心、懂二语习得规律的专业中文教师,实现从“单次被动打分”向“诊断 ➔ 启发 ➔ 迁移补练”闭环学习支持的跃升。
💡 核心机制:四步进阶诊断框架
万里知言经过严格的教学指令微调(Instruction Alignment),对学生的每一次交际回答均严格输出标准化四段结构:
┌───────────────────────────┐
│ 学习者交际任务与回答输入 │
└─────────────┬─────────────┘
▼
1. 【任务状态】 ─── 判定交际目标达成度(完美达成 / 部分完成 / 未完成)
▼
2. 【卡点分析】 ─── 精准归因(语序倒装、量词缺失、词性混淆、母语负迁移等)
▼
3. 【引导提示】 ─── 温和、启发式的正向脚手架(不直接给答案,点出表达关键)
▼
4. 【迁移补练】 ─── 自适应生成同构场景的新任务(帮助学习者即时验证再次表达)
🎯 v0.2 升级亮点
- 中介语真实偏误对齐:融合国际中文教育语料库(ChinesePlus)真实留学生作文与口语偏误数据,重点强化了以下高频中介语卡点的识别灵敏度:
- 语序倒装:如时间状语后置(“见明天”、“我想见你在下午两点”);
- 数量词偏误:如个体量词缺失或泛用(“我想买两笔”、“我看三个鸭子”);
- 否定副词混淆:混淆主观意愿与客观事实(“我不吃早饭” vs “我没吃早饭”);
- 社交角色倒置:混淆致谢/道歉与应答方(如误用“不客气”代替“谢谢”,误用“没关系”代替“对不起”);
- 低误纠率保障:在数据集中严格保留了符合初级口语交际规范的多样化合理变体,有效抑制模型对正确口语表达的“过度纠错”。
🧪 典型诊断实测案例(现场输出)
案例 1:数量词搭配缺失(量词遗漏)
- 【题目情境】:买文具
- 【任务要求】:向店员说明想买两支笔
- 【学生回答】:我想买两笔。
- 【模型实测诊断】:
【任务状态】:未完成
【卡点分析】:数词“两”直接修饰名词“笔”,缺失了必需的个体量词“支”。现代汉语中数词不能直接修饰可数个体名词。
【引导提示】:说买几件文具时,数词和文具之间要加上量词哦,比如“两支笔”。
【迁移补练】:在书店买三本书,试着用带有量词的标准中文对店员说一说。
案例 2:社交意图偏离(陈述喜好 vs 表达购买需求)
- 【题目情境】:在水果店买水果
- 【任务要求】:向店员说明你想买几个苹果(需包含购买意图和数量)
- 【学生回答】:我喜欢苹果。
- 【模型实测诊断】:
【任务状态】:未完成
【卡点分析】:句子表达了个人喜好,但遗漏了购买意图和具体数量信息,未能达成向店员购买的交际目的。
【引导提示】:表达“喜欢”和表达“想买”是不一样的哦。试着告诉店员:“我想买……个苹果”。
【迁移补练】:在文具店购物,试着向店员说明你想买两支铅笔。
案例 3:母语线性语序负迁移(时间状语后置)
- 【题目情境】:放学离开教室
- 【任务要求】:向同桌说再见,并约定明天见
- 【学生回答】:再见明天。
- 【模型实测诊断】:
【任务状态】:部分完成
【卡点分析】:达成了“再见”的意图,但时间状语“明天”与动词“见”的语序出现卡点(受母语线性语序影响将时间置后)。中文习惯将时间词置于“见”的前面。
【引导提示】:中文里说什么时候再见面,要把时间放在前面哦,比如“明天见”。
【迁移补练】:如果是周五放学,想跟同学约定“星期一见”,试着用中文说一说。
💻 快速上手与调用指南
1. 使用 Transformers 原生 Python 调用
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
MODEL_ID = "Lukekn0w/WanLi-Zhiyan-4B-v0.2"
# 加载 Tokenizer 与模型
tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
model = AutoModelForCausalLM.from_pretrained(
MODEL_ID,
torch_dtype=torch.float16,
device_map="auto"
)
# 构造结构化教学 Prompt
prompt = (
"你是一名专注YCT/初级中文学习者的中文口语应答诊断专家。"
"请根据题目要求与学生回答,准确识别表达卡点,给出温和的引导提示,并生成一道相似场景的迁移补练任务。\n\n"
"【题目情境】:早晨在校门口遇见王老师\n"
"【任务要求】:主动用中文向老师打招呼问好\n"
"【学生回答】:老师好!"
)
messages = [{"role": "user", "content": prompt}]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
# 推荐低温度采样,确保结构化输出稳定性
generated_ids = model.generate(
model_inputs.input_ids,
max_new_tokens=512,
temperature=0.2,
top_p=0.8,
repetition_penalty=1.05
)
response = tokenizer.batch_decode(
generated_ids[:, model_inputs.input_ids.shape[1]:],
skip_special_tokens=True
)[0]
print(response)
2. 本地断网 / Ollama 离线部署(适合展会与现场演示)
本模型原生支持导出为 GGUF 格式并在低算力端侧设备(如 Mac M系列芯片 / 边缘计算终端)断网运行:
# Modelfile 配置示例
FROM ./wanli-yct-qwen-v0.2-q4_k_m.gguf
PARAMETER temperature 0.2
PARAMETER top_p 0.8
PARAMETER stop "<|im_end|>"
SYSTEM """你是一名专注YCT/初级中文学习者的中文口语应答诊断专家。请根据题目要求与学生回答,准确识别表达卡点,给出温和的引导提示,并生成一道相似场景的迁移补练任务。"""
运行终端命令:
ollama create wanli-zhiyan -f Modelfile
ollama run wanli-zhiyan
📊 训练配置细节
- Base Model:Qwen 系列 4B 基础底座
- Fine-tuning Method:LoRA (Rank=16, Alpha=32, Target Modules=
all, Dropout=0.05) - Training Hardware:NVIDIA RTX PRO 6000 (96GB VRAM)
- Optimizer & Schedule:AdamW, Cosine LR Schedule (Peak LR = 1e-4, Warmup = 5%)
- Effective Batch Size:8 (Batch size per device 2 × Gradient Accumulation Steps 4)
- Epochs:3.0 (训练 Loss 从 2.49 收敛至 1.45,Eval Loss 收敛至 1.53)
🤝 研发团队与致谢
- 研发单位:万里中文(WanLi Chinese)教学与算法研发团队
- 数据来源:教育部中外语言交流合作中心 · 国际中文教育语料库(ChinesePlus)、YCT/HSK 权威教学大纲
- 微调框架:感谢 LLaMA-Factory 社区提供的杰出开源支持。
免责声明:本模型主要用于国际中文教学支持与辅助练习,诊断结果建议与一线中文教师教学复核相结合。
- Downloads last month
- 277