1. 背景与目标
原始 Qwen3.5-4B 已具备通用对话与思考能力,但 4B 参数规模决定了其开放领域知识、 长链抽象推理和复杂指令稳定性存在上限。当前目标不是扩大知识量,而是提高“听懂、补全、判断、拆解和路由”的能力。
1.1 成功定义
- 同一知识条件下,模型对用户真实意图、约束、指代和歧义的识别明显优于原始模型。
- 不知道事实时优先形成检索需求,不把缺失知识伪装成理解结论。
- 在多轮对话中,能区分长期目标、当前任务、用户临时修正和已废弃条件。
- 增强后不明显损害通用表达、基础推理、中文自然度和工具调用格式稳定性。
1.2 非目标
- 把 4B 全面训练成 32B 级别的通用模型。
- 把百科、新闻、代码库和个人记忆写入模型参数。
- 通过更长回答或更长思维链制造“更聪明”的表象。
- 第一阶段直接做全参数训练、模型结构改造或强化学习基础设施。
2. 能力边界
| 能力 | 由 Qwen3.5-4B 负责 | 由外部系统负责 |
|---|---|---|
| 意图理解 | 真实目标、显式/隐式约束、语气与优先级 | — |
| 上下文理解 | 指代、省略、多轮关系、冲突检测 | 历史对话存储与召回 |
| 知识 | 判断需要什么知识 | RAG、网络搜索、数据库、API |
| 记忆 | 判断是否需要读写记忆 | 事件、事实、偏好、关系和任务状态 |
| 规划 | 任务分解、顺序、依赖和停止条件 | 任务执行器与调度器 |
| 事实校验 | 比较证据、表达不确定性 | 来源、时间戳、可信度和交叉验证 |
| 复杂推理 | 完成中低复杂度推理并判断难度 | 必要时升级至更强模型 |
3. 技术决策
方案 A:后训练模型 + QLoRA
基座:Qwen/Qwen3.5-4B
优点:保留现有指令遵循、思考、对话和工具能力;所需数据更少;回退简单。
代价:受原后训练偏好约束,专项能力上限略低于完全重建后训练。
方案 B:Base + 完整后训练
基座:Qwen/Qwen3.5-4B-Base
优点:行为控制空间大,可重建“认知核心”。
代价:需要大规模 SFT、偏好数据和安全对齐;容易丢失通用对话能力。
3.1 不采用的底层改造
不修改 Transformer / DeltaNet 结构
架构改造需要预训练级数据和计算,且容易破坏已有能力;对当前目标收益不可预测。
不修改分词器与词表
会造成嵌入层兼容问题,并引入新的训练成本;理解专项数据不需要新增语言符号。
不做知识型持续预训练
容易把知识扩充与理解增强混在一起,增加灾难性遗忘和评测污染。
不以长思维链作为唯一目标
回答更长不等于理解更好;训练应奖励正确意图、正确约束和正确行动。
4. 总体架构
模型作为“认知核心”,外部知识作为可更新的证据层。理解与回答之间增加稳定的中间表示。
4.1 快慢双路径
Fast Path
简单闲聊、明确问题、无需外部知识。一次生成完成理解与回答。
低延迟低成本Deep Path
多轮、省略、复杂约束、事实不确定或高风险问题。先生成理解中间层,再检索、整合和校验。
高可靠可追踪4.2 依赖方向
MemoryPort、SearchPort、
ToolPort、EscalationPort;不直接依赖向量数据库、搜索供应商或具体云模型。
这样可以更换外部能力而不重新训练核心模型。
5. 理解中间层(Understanding IR)
中间层不是给用户看的“思维链”,而是供系统路由和校验使用的结构化语义表示。 生产环境默认不向前端暴露。
{
"intent": {
"primary": "用户真正要完成的目标",
"secondary": ["次要目标"],
"confidence": 0.91
},
"context_refs": [
{"mention": "这个", "resolved_to": "上一轮讨论的训练方案"}
],
"constraints": {
"explicit": ["只增强理解能力"],
"implicit": ["知识允许外部获取", "需要本地可运行"]
},
"ambiguities": [],
"missing_information": [],
"knowledge_requests": [
{
"query": "当前模型/框架兼容性",
"source_type": "official_docs",
"freshness": "latest"
}
],
"plan": [
"建立基线评测",
"生成理解专项数据",
"执行 QLoRA SFT",
"执行偏好优化",
"回归测试并部署"
],
"answer_policy": {
"mode": "deep",
"must_cite": true,
"escalate": false
}
}
5.1 设计原则
- 字段少而稳定:只保留会影响路由、回答或评测的语义。
- 允许空值:模型不应为了填满 JSON 而制造歧义或缺失信息。
- 区分事实与假设:显式条件、隐含条件和系统推断必须分开。
- 置信度仅作辅助:不能把模型自报置信度当作真实概率,应结合规则和校准集。
6. 数据工程
效果上限主要由数据决定。训练数据必须围绕“理解错误”设计,而不是围绕“知识问答”设计。
6.1 数据构成建议
| 类型 | 建议占比 | 训练目标 | 示例 |
|---|---|---|---|
| 口语、省略、错别字 | 20% | 补全真实意图 | “这个再简单点,别改功能” |
| 多轮指代与需求变化 | 25% | 识别“这个/它/刚才那个”及废弃条件 | 前一轮选 A,后一轮撤销某约束 |
| 约束提取 | 15% | 区分必须、偏好、禁止和默认值 | 性能优先,但不能增加云成本 |
| 歧义与冲突 | 15% | 判断能否直接行动 | 同一句话含相互冲突的时间或目标 |
| 知识路由 | 10% | 知道何时搜索、读记忆或调用 API | “最新版”“我上次说的”“今天价格” |
| 任务拆解 | 10% | 形成依赖正确的执行计划 | 从需求到设计、实现、验证 |
| 拒绝盲猜与升级 | 5% | 识别能力边界 | 高风险、证据不足、复杂推理 |
6.2 数据规模
以上为工程起始范围,不是效果保证。应由学习曲线决定是否继续扩充。
6.3 教师蒸馏流水线
- 收集真实或仿真的多轮对话,只保留与理解能力相关的样本。
- 强教师模型生成:真实意图、约束、指代、歧义、知识缺口、正确行动和最终回答。
- 使用第二个教师或规则进行批判,重点寻找遗漏约束和虚构信息。
- 生成至少一个“表面理解/错误行动”负例,形成 DPO 数据。
- 对高难样本进行人工抽检;优先修正标签逻辑,而不是润色文字。
6.4 防止知识污染
6.5 数据格式
{
"messages": [
{"role": "system", "content": "你是理解与任务路由核心。"},
{"role": "user", "content": "用户历史、当前消息、可用工具与外部证据"},
{"role": "assistant", "content": "结构化 Understanding IR + 最终回答"}
],
"metadata": {
"capabilities": ["coreference", "constraint_extraction"],
"difficulty": 3,
"requires_external_knowledge": false,
"source": "synthetic+human_reviewed"
}
}
7. 训练方案
建立不可污染的基线
先冻结测试集,再测试原始 Qwen3.5-4B。没有基线就无法证明“更聪明”,只能证明“回答风格变了”。
QLoRA SFT:学会正确理解
训练结构化语义表示、外部知识路由和基于理解结果的简洁回答。只对 assistant token 计算损失。
DPO:偏好深层理解
同一个输入提供 chosen/rejected,让模型偏好“完整识别意图和约束”的回答,而不是“流畅但答非所问”的回答。TRL 原生支持偏好数据和 PEFT 适配器。[4]
校准与回归
调整复杂度路由、思考模式、采样参数和量化级别;任何专项提升都必须通过通用能力回归测试。
7.1 LoRA 目标层
q_proj/v_proj 配置。
Qwen3.5-4B 使用 Gated DeltaNet 与 Gated Attention 混合语言架构,模型卡显示 32 层并采用混合布局。[1]
实施时应先枚举语言骨干的线性层,再决定目标模块。
# 伪代码:先检查,再配置;不要假设模块名称
for name, module in model.named_modules():
if is_linear(module) and name.startswith("language_model"):
print(name, module.__class__.__name__)
# 推荐原则
target = "语言骨干中的主要 Linear 层"
exclude = ["vision_encoder", "embed_tokens", "lm_head"]
strategy = "先小范围注意力/DeltaNet投影;不足时再扩至 all-linear"
LoRA 冻结原权重并训练低秩更新矩阵,可显著减少可训练参数;适配器可合并回基座, 便于部署和回滚。[3]
7.2 起始超参数
| 参数 | 试验起点 | 说明 |
|---|---|---|
| 量化训练 | 4-bit NF4 / 双量化 | 适合 8GB 显存试验;最终质量需与更高精度对比 |
| LoRA rank | 16 或 32 | 先测 16;能力不足再提高,避免直接堆参数 |
| LoRA alpha | 32 或 64 | 与 rank 联合搜索 |
| LoRA dropout | 0.05 | 数据量较小时抑制过拟合 |
| 学习率 | 1e-4 ~ 2e-4 | 以验证集为准,DPO 通常更低 |
| 训练序列 | 2048 起步,逐步扩到 4096/8192 | 4070 Laptop 上优先保证稳定与数据迭代速度 |
| Micro batch | 1 | 通过 gradient accumulation 获得有效批次 |
| 优化 | gradient checkpointing + paged optimizer | 降低激活与优化器显存 |
| 训练轮数 | 1–3 epoch | 根据验证曲线早停,防止风格过拟合 |
7.3 硬件策略
本地 RTX 4070 Laptop
- 用于数据管线调试、小规模 QLoRA、评测与推理。
- 序列先从 2048 开始,冻结视觉编码器。
- Windows 建议使用 WSL2,减少训练框架兼容问题。
24GB+ 云 GPU
- 用于更长序列、较大 rank、全线性层 LoRA 和批量实验。
- 优势是实验速度和显存余量,不改变最终本地部署目标。
7.4 训练技术栈
Transformers PEFT TRL bitsandbytes Datasets Accelerate Unsloth(可选) Weights & Biases / MLflow(可选)
8. 推理与部署策略
8.1 思考模式路由
Qwen3.5 默认使用 thinking mode,也支持通过接口参数关闭思考;官方同时给出了 thinking 与 non-thinking 的建议采样参数。[1] 生产环境不应固定使用一种模式,而应由理解复杂度路由。
| 情况 | 模式 | 原因 |
|---|---|---|
| 寒暄、明确指令、短问答 | Non-thinking | 降低延迟,避免过度分析 |
| 多轮指代、多个约束、模糊需求 | Thinking | 先建立语义模型再行动 |
| 需要检索或工具调用 | Thinking + IR | 明确知识缺口、查询和停止条件 |
| 高风险或超出能力 | Escalation | 升级强模型或要求证据,不让 4B 硬猜 |
8.2 量化策略
- 建立 BF16/FP16 参考结果,再比较 Q8、Q6 和 Q4;不要仅按显存选择。
- 理解核心优先 Q6/Q8;Q4 仅在速度或显存压力明显时采用。
- 量化验收必须单独统计:约束遗漏、指代错误、JSON 格式错误和工具路由错误。
8.3 服务路径
本地优先
Ollama / llama.cpp 运行 GGUF,适合桌面数字伙伴;部署简单,隐私好。
服务化优先
vLLM / SGLang 提供 OpenAI-compatible API,适合并发、工具系统和多客户端。
Qwen3.5 模型卡列出了 Transformers、vLLM、SGLang、KTransformers 等兼容方式,并提供量化入口。[1]
8.4 外部知识安全边界
- 外部网页、文档和记忆均作为“数据”,不得覆盖系统指令。
- 证据附带来源、抓取时间、有效期和可信等级。
- 工具调用采用 allowlist 和 JSON Schema;危险操作需要单独确认。
- 回答前检查:每个关键结论是否有证据或被明确标记为推断。
9. 评测与验收
核心原则:评测“理解是否正确”,而不是只评测“答案是否像强模型”。
9.1 自建 UnderstandingBench-CN
| 指标 | 计算方式 | 目标 |
|---|---|---|
| Intent Accuracy | 主意图准确率 | ≥ 原模型 +15% |
| Constraint Recall | 关键约束召回率 | ≥ 92% |
| Coreference Accuracy | 指代解析正确率 | ≥ 90% |
| Ambiguity F1 | 应追问/可直接执行的判断 | ≥ 0.88 |
| Knowledge Routing | 是否正确选择搜索、记忆、工具或无需检索 | ≥ 90% |
| Plan Validity | 步骤依赖、完整性和可执行性 | ≥ 原模型 +15% |
| Hallucinated Assumption | 无依据补条件的比例 | 降低 ≥ 40% |
| General Regression | 通用对话/基础推理回归 | 下降 < 3% |
以上为建议验收阈值,可在首轮基线完成后调整;相对提升比绝对分数更重要。
9.2 测试集结构
- Gold Set:人工审核的 1,000–3,000 条核心测试,训练过程永不使用。
- Challenge Set:反事实、长上下文、多个冲突条件、诱导盲猜、工具注入攻击。
- Personal Style Set:来自实际交流风格的省略句、短句和项目上下文。
- Regression Set:普通聊天、摘要、翻译、基础逻辑、结构化输出和工具调用。
9.3 评测方法
- 结构字段使用程序化指标:Exact Match、F1、JSON Schema 成功率。
- 开放回答采用双教师盲评,并随机抽取人工复核。
- 所有模型使用相同上下文、采样设置、知识证据和输出限制。
- 同时记录延迟、首 token 时间、总 token、显存和工具调用次数。
10. 实施计划与代码结构
10.1 分阶段交付
| 阶段 | 交付物 | 退出条件 |
|---|---|---|
| P0 基线 | 评测框架、Gold Set、原模型报告 | 指标可重复,测试集冻结 |
| P1 数据试验 | 10k SFT + 2k DPO、质量审计报告 | 标签一致率达到目标 |
| P2 首轮训练 | LoRA Adapter、训练曲线、A/B 报告 | 专项提升且无明显回归 |
| P3 系统集成 | Understanding IR、知识路由、证据层 | 端到端工具链稳定 |
| P4 稳定版 | 扩充数据、量化模型、部署包、ADR | 通过上线门槛 |
10.2 推荐仓库结构
qwen-understanding-core/ ├─ apps/ │ ├─ api/ # OpenAI-compatible API / orchestration │ └─ evaluator/ # 评测 UI 与报告 ├─ packages/ │ ├─ understanding-schema/ # IR JSON Schema │ ├─ context-builder/ # 上下文与记忆组装 │ ├─ knowledge-router/ # 搜索/RAG/API/强模型端口 │ ├─ evidence-normalizer/ # 来源、时间、置信度标准化 │ └─ safety-policy/ # 工具 allowlist 与注入防护 ├─ training/ │ ├─ datasets/ │ ├─ sft/ │ ├─ dpo/ │ ├─ configs/ │ └─ checkpoints/ ├─ evaluation/ │ ├─ gold/ │ ├─ challenge/ │ ├─ regression/ │ └─ reports/ └─ docs/ └─ adr/
10.3 模型版本策略
understanding-core-v1.0.0 ├─ base_model: Qwen/Qwen3.5-4B@固定 revision ├─ dataset: understanding-cn-v1.0 ├─ adapter: sft-dpo-r16 ├─ inference_profile: q6-thinking-router-v1 ├─ schema_version: understanding-ir-v1 └─ evaluation_report: benchmark-2026-xx-xx.json
11. 风险与对策
| 风险 | 表现 | 对策 |
|---|---|---|
| 训练成固定模板 | 所有问题都输出相同 JSON/话术 | 结构字段稳定、自然语言多样;加入直接回答样本 |
| 过度推断意图 | 把猜测当用户要求 | 显式/隐式/假设分离,训练空字段和低置信度 |
| 过度追问 | 简单问题也要求补充信息 | 专门训练“可安全默认”和“必须澄清”的边界 |
| 灾难性遗忘 | 中文表达或基础推理退化 | 混入少量通用保持数据,严格回归测试,保留 Adapter 回滚 |
| 知识路由滥用 | 所有问题都搜索,成本和延迟上升 | 训练无需检索负例,设置 freshness 与 risk 规则 |
| 量化损失 | 约束遗漏、格式不稳定 | 以任务指标选择量化,不只看困惑度和速度 |
| 教师错误放大 | 蒸馏复制强模型偏差 | 多教师批判、规则校验、人工审计和真实错误回流 |
| 外部提示注入 | 网页内容影响系统规则 | 证据隔离、指令优先级、工具 allowlist 和输出校验 |
12. Architecture Decision Records
ADR-001:使用后训练版 Qwen3.5-4B 作为 V1 基座
状态:Accepted
Context:需要增强理解能力,同时保留现有对话、思考和工具能力;训练资源有限。
Decision:使用后训练模型进行 QLoRA SFT 和 DPO,不从 Base 重建完整后训练。
Consequences:更快、可回滚、数据需求较低;但能力上限受现有对齐约束。
ADR-002:知识与理解分离
状态:Accepted
Context:事实知识变化快,写入参数成本高且不可追踪。
Decision:模型负责理解和知识需求生成,外部系统负责事实获取。
Consequences:知识可更新、可引用;代价是系统复杂度、延迟和外部依赖增加。
ADR-003:使用结构化 Understanding IR
状态:Accepted
Context:直接回答难以判断模型是否真正理解,也难以稳定调用外部工具。
Decision:复杂请求先生成内部结构,再执行知识路由和回答。
Consequences:可评测、可追踪、可编排;代价是额外 token 和一次结构解析。
13. 方案自审
- 目标一致:训练数据和验收指标均围绕理解,而不是知识记忆。
- 复杂度可控:V1 不修改架构,优先 LoRA,可快速回滚和比较。
- 依赖可替换:搜索、记忆、数据库和云模型通过端口隔离。
- 有客观证据:先冻结测试集,使用结构指标与盲测,不凭主观聊天感受。
- 适配本地硬件:RTX 4070 Laptop 可完成试验和部署,重实验可临时使用大显存 GPU。
- 风险已覆盖:包括遗忘、过度推断、量化损失、教师偏差和提示注入。
14. 参考资料
- Qwen / Qwen3.5-4B Model Card: https://huggingface.co/Qwen/Qwen3.5-4B
- Qwen / Qwen3.5-4B-Base Model Card: https://huggingface.co/Qwen/Qwen3.5-4B-Base
- Hugging Face PEFT — LoRA: https://huggingface.co/docs/peft/main/conceptual_guides/lora
- Hugging Face TRL — DPO Trainer: https://huggingface.co/docs/trl/dpo_trainer
注:训练超参数和验收阈值为本方案的工程起始建议,并非官方推荐值;应以实际基线和消融实验结果调整。