跳转至

第9章 模型能力定制与知识增强


企业遇到模型效果问题时,要先判断该改 Prompt、接 RAG、做微调,还是引入偏好对齐。很多团队一看到模型答错就想到 fine-tune,但线上失败的根因可能是知识过期、输出格式不稳、权限边界缺失或评测样本不足。微调适合学习任务模式和领域表达,RAG 适合接入可更新、可引用的企业知识,对齐适合调整拒答、风格和安全偏好。这些路线应放在同一条闭环中:从失败样本分诊开始,经过数据治理、训练或知识更新、评测、灰度和回滚,再回到线上监控。一个企业助手上线后,业务团队通常会很快反馈“模型不懂我们”。客服团队说分类口径不稳定,法务团队说风险等级不符合内部规范,数据团队说模型总是用错指标口径,人力团队说制度问答引用了旧政策。这些问题表面相似,处理方式却不同。

如果模型不知道上周刚更新的休假政策,应该更新知识库,不要训练模型记住新政策。如果模型能理解问题,却总是不按固定 JSON 输出,应先检查 Prompt、schema 和结构化输出链路。如果模型长期写出错误 SQL 模式,说明任务分布与基座模型差异较大,才可能需要 SFT 或 LoRA。如果模型在灰区问题上喜欢给出过度承诺,就要处理偏好和安全边界。能力定制的第一步是分诊:先确认问题来自知识、输出契约、任务分布还是偏好边界,再选择 RAG、Prompt、微调或对齐手段。企业团队说“模型不懂我们”时,背后可能是完全不同的问题。模型不知道最新制度,是知识更新问题;模型总把字段映射错,是任务分布问题;模型能答对但格式不稳,是接口契约问题;模型在敏感场景回答过于激进,是偏好和安全策略问题。若一开始就把所有问题归为“需要微调”,团队会花很大成本训练出一个仍然无法上线的模型。

能力定制的第一步应是失败样本分诊。每个失败样本都要还原输入、上下文、候选知识、模型输出、工具结果和人工判断。数据团队可以判断是否缺少语义层口径,平台团队可以判断是否缺少结构化校验,模型团队再判断是否需要 SFT、LoRA 或偏好对齐。没有这一步,RAG、微调和 Prompt 优化会互相替代,最后没人能说明哪项改动真正解决了问题。一个典型场景是制度问答助手在政策更新后继续引用旧条款。业务方会要求“训练模型记住新制度”,但更合适的动作通常是修复知识库更新、文档切分、版本索引和引用校验。另一个场景是 DataAgent 长期生成错误的指标口径,即使知识库里有定义仍然选错字段,这时才可能需要微调模型学习企业任务模式。定制路线要服务失败原因,而非服务团队偏好的技术路线。

9.1 先判断问题类型

9.1.1 能力定制的三条路线

企业想让模型“更懂业务”,通常会走三条路线:微调、RAG 和对齐。它们可以组合,但不能互相替代。

表9-1:能力定制路线与适用问题。来源:本书整理。

路线 改变什么 适合解决 更新频率
微调 模型参数或 adapter 任务习惯、领域语言、固定输出模式 周级到月级
RAG 外部上下文 最新政策、产品手册、合同条款、指标口径 小时级到天级
对齐 模型偏好与拒答倾向 风格、安全边界、合规话术、风险分级 周级到季度

客服助手可能同时使用这三类能力:RAG 检索最新政策,LoRA 学习工单分类口径,对齐模型避免越权承诺赔付。每个失败样本都要说明根因,不能把所有问题都归为“模型不够懂业务”。

9.1.2 失败样本分诊

失败样本应先进入分诊表,不要直接进入训练集。分诊的目标是回答两个问题:模型缺的是知识、格式、任务能力,还是偏好边界;这个问题能不能通过低成本、可回滚的方式解决。

表9-2:常见失败症状、可能根因与优先方案。来源:本书整理。

症状 可能根因 优先方案
回答不知道最新政策、价格、库存、合同状态 知识不在上下文或已过期 RAG、工具查询、知识库快照
信息基本正确,但输出不符合接口格式 Prompt 与 schema 不稳定 Prompt、结构化输出、回归样例
在特定领域术语、SQL 模式、代码框架上长期错误 任务分布与基座模型差异大 SFT、LoRA、QLoRA
回答语气、拒答、风险等级不符合规范 偏好和安全边界未对齐 偏好数据、DPO/KTO、护栏策略
错误偶发,样本数量很少 评测和数据不足 先补评测集和日志标注

表9-2 背后有一个实用原则:先做可解释、可回滚、链路局部的改动。Prompt 和 schema 可以很快灰度和回滚;RAG 知识快照也能追踪。微调会改变模型行为,应该在评测证明必要之后再做。

分诊还要保留反例。比如同一类“回答错误”里,可能同时有知识过期、检索噪声和模型推理失败。只记录成功修复的样本,会让后续训练集越来越单一;保留失败修复记录,才能帮助团队判断下一轮是该补知识、改检索,还是进入模型训练。

图9-1:能力定制技术路线选择

图9-1:能力定制技术路线选择。来源:本书自绘。Alt text:图中以问题分诊为起点,分别指向知识过期、格式不稳、能力不足和偏好边界四类问题,并对应 RAG、Prompt、微调和对齐路线。

图 9-1 的重点是先分诊再选路线。知识缺失先走外部知识或工具,格式不稳先修结构化输出,长期任务行为差异再进入微调,偏好和安全边界问题才进入对齐。

9.1.3 Prompt、RAG、微调与对齐的分工

Prompt 调整改变的是请求上下文。它适合表达任务规则、输出格式和少量边界案例。RAG 改变的是回答前能看到的外部知识,适合需要引用来源和频繁更新的事实。微调改变的是模型参数或 adapter,适合让模型长期学习某类任务模式。对齐改变的是模型偏好,适合处理“应该怎么回答”和“什么时候拒答”。这几个边界在工程上很重要。把动态知识写进模型参数,会导致更新慢、不可追溯、难删除。把任务能力问题全交给 RAG,会得到更多上下文,但不一定得到更稳定的推理和格式。把安全问题全交给 DPO,也不能替代权限、脱敏、工具白名单和审计。

9.1.4 不适合微调的场景

微调不能永久写入企业知识。微调更适合学习任务模式和表达习惯,不适合承载频繁变化的事实。员工制度、商品价格、库存、合同状态和指标口径版本应通过 RAG、工具或数据库查询接入。RAG 也不能替代模型能力。RAG 能提供知识,但不能自动让模型学会复杂任务。检索到了财务口径文档,不代表模型就能稳定生成正确 SQL;检索到了合同模板,也不代表模型就能正确抽取风险条款。对齐不能单独解决安全问题。对齐可以提高拒答倾向和风格一致性,但不能替代权限、审计、脱敏、工具白名单和业务规则。模型即使倾向于拒绝越权请求,工具执行层仍然必须做硬校验。训练数据也不是越多越好。低质量、重复、冲突、过期的数据会让模型退化。企业微调最怕把历史噪声当成真理:旧政策、错误客服话术、临时 workaround 和 SQL 反模式都会被模型学进去。


9.2 从失败样本到灰度发布

9.2.1 能力定制在模型、知识与评测之间的位置

模型能力定制位于模型平台、数据平台、评测平台和业务应用之间。它是一条持续反馈回路,不应被当作一次训练任务:线上问题进入样本池,样本经过治理后进入训练、对齐、RAG 更新或 Prompt 修订,再通过评测、灰度和监控回到线上。

flowchart TD
    App["业务应用 / Agent Runtime"] --> Gateway["LLM Gateway<br/>路由 / 配额 / 审计"]
    Gateway --> Base["基座模型<br/>闭源 API / 开源权重"]
    Gateway --> Adapter["定制模型或 Adapter<br/>SFT / LoRA / QLoRA"]
    Gateway --> Rag["RAG 服务<br/>检索 / 重排 / 引用"]
    Rag --> KB["知识库<br/>文档 / 向量库 / 元数据"]

    Logs["线上日志与反馈"] --> Data["数据治理<br/>清洗 / 脱敏 / 标注 / 版本"]
    Data --> Train["训练与对齐<br/>SFT / DPO / KTO"]
    Data --> Eval["评测集<br/>任务 / 安全 / 回归"]
    Train --> Registry["模型注册表<br/>版本 / adapter / 训练数据"]
    Registry --> Eval
    Eval --> Release["发布决策<br/>灰度 / 回滚 / 路由策略"]
    Release --> Gateway

图9-2:模型能力定制的持续闭环

图9-2:模型能力定制的持续闭环。来源:本书自绘。Alt text:图中展示线上失败样本进入数据治理、训练或知识更新、评测、灰度发布和监控的闭环,模型版本、adapter 和知识快照都进入注册表。

图 9-2 里有三个关键边界。业务应用不应该直接关心模型是否经过 LoRA 或是否接入 RAG,它只声明任务、租户、风险等级和知识域。训练数据和评测数据必须隔离,否则微调后的分数只是记住了测试题。RAG 知识库、adapter、Prompt 模板和模型版本都要进入注册表,线上回答才能被复现和回滚。

9.2.2 数据、训练、知识和发布组件

能力定制链路可以拆成若干组件,但核心职责并不复杂:收样本,治数据,训练或更新知识,评测,通过网关灰度。图 9-1 按这个顺序展开,目的是把微调、RAG 和对齐放回同一条发布链路中比较。

表9-3:能力定制闭环的核心组件。来源:本书整理。

组件 职责 主要风险
Sample Collector 收集线上失败、用户反馈、人工改写和专家样例 偏差采样、敏感数据混入
Data Curator 清洗、脱敏、去重、标注、分层抽样、版本化 标签冲突、训练污染评测集
Knowledge Pipeline 文档解析、切分、索引、元数据过滤 过期文档、权限错配
Trainer 执行 SFT、LoRA、QLoRA、DPO、KTO 过拟合、灾难性遗忘、过度拒答
Eval Harness 评测任务能力、事实性、安全性、成本和延迟 指标单一、测试污染
Registry & Release 管理模型、adapter、知识快照、灰度和回滚 版本不可追踪、无法快速回滚

训练任务的契约至少要把模型、数据、方法和评测门槛写清楚。这样做目的在于让后续灰度、回滚和复盘都能找到同一套依据,文档好看只是手段之一。

job_id: customer_service_sft_2026_06
base_model: qwen3-32b-instruct
method: lora_sft
dataset:
  train: datasets/customer_service/sft/train-2026-06.jsonl
  validation: datasets/customer_service/sft/validation-2026-06.jsonl
  data_policy: pii_redacted_v2
training:
  lora_rank: 16
  learning_rate: 0.0001
  epochs: 2
  max_seq_length: 4096
evaluation:
  suites:
    - customer_service_classification
    - refusal_and_compliance
    - structured_output_regression
  gates:
    task_accuracy_min: 0.88
    json_validity_min: 0.98
    safety_regression_max: 0.01
release:
  canary_tenants:
    - demo-retail
  rollback_to: qwen3-32b-instruct@baseline

RAG 管线的契约关注点和训练任务不同,重点在知识版本、索引策略和权限过滤。下面这份配置示例故意把这些信息单独列出来,便于和模型训练配置区分。

knowledge_domain: employee_policy
snapshot: 2026-06-01
sources:
  - hr_policy_handbook
  - benefits_faq
index:
  embedding_model: bge-m3
  chunk_policy: policy_v3
  vectorstore: enterprise_vectorstore
retrieval:
  top_k: 20
  rerank_top_k: 6
  require_citation: true
security:
  metadata_filters:
    tenant: demo-company
    visibility: employee

这类配置不是形式主义。线上问题发生时,团队需要知道回答用了哪个 adapter、哪个 Prompt、哪个知识库快照、哪个评测报告和哪条灰度规则。没有这些记录,模型能力定制就很难进入可运维状态。

9.2.3 生命周期与回退策略

能力定制不是一次训练完成就结束,它有一条持续进入问题分诊、评测、灰度和回退的发布链。下面的状态机把这条链路压缩成便于讨论的最小骨架。

stateDiagram-v2
    [*] --> ProblemTriage
    ProblemTriage --> PromptChange: prompt/schema issue
    ProblemTriage --> RagUpdate: missing or stale knowledge
    ProblemTriage --> FineTune: task behavior gap
    ProblemTriage --> Alignment: preference or policy gap
    PromptChange --> Eval
    RagUpdate --> Eval
    FineTune --> Train
    Alignment --> Train
    Train --> Eval
    Eval --> Reject: quality or safety gate failed
    Eval --> Canary: gates passed
    Canary --> Rollback: regression detected
    Canary --> FullRelease: stable
    Reject --> DataFix
    Rollback --> DataFix
    DataFix --> ProblemTriage
    FullRelease --> Monitor
    Monitor --> ProblemTriage: new failures
    Monitor --> [*]

失败恢复也要按类型处理。

表9-4:能力定制链路的失败模式与修复路径。来源:本书整理。

失败模式 触发条件 修复路径
选错技术路线 用微调解决知识过期,或用 RAG 解决格式稳定性 重新分诊样本,记录根因类别
数据泄露 日志中含手机号、合同、薪酬等敏感字段 脱敏、权限审批、样本留存策略
评测污染 训练数据包含评测样本或近似改写 数据指纹、去重、评测集隔离
过拟合 训练集指标上升,线上泛化下降 降低 epoch,扩展验证集和样本多样性
灾难性遗忘 领域能力提升,通用能力或安全能力下降 混合回归样本,按任务路由 adapter
过度拒答 对齐后正常问题也大量拒答 补充安全可答正例,拆分风险等级
RAG 噪声注入 检索片段相关性低或权限错配 检索评测、重排、元数据过滤
发布不可回滚 模型、adapter、Prompt、索引版本未绑定 注册表记录完整版本并支持网关回滚

表9-4 可以直接用于上线评审。它提醒团队:训练失败不一定发生在训练脚本里,更多时候发生在样本、评测、发布和回滚边界。


9.3 能力定制路线的决策框架

9.3.1 Prompt、RAG、微调和对齐的选择

Prompt 调整成本低、上线快、易回滚,适合规则清楚、样本较少、格式约束明确的任务。RAG 适合知识更新快、需要引用来源、权限可控的任务。SFT / LoRA 适合分类、抽取、SQL、固定工作流等任务模式长期不稳定的场景。DPO / KTO 适合客服话术、合规拒答和安全偏好,但需要高质量偏好数据。工程顺序通常是:先修 Prompt、schema、RAG 和评测,再决定是否微调。只有当评测证明低成本手段无法稳定解决问题,并且训练样本足够干净时,微调才值得进入发布流程。

判断路线时还要看问题是否可被“外部化”。知识、权限、时间和数据状态通常应该外部化,由 RAG、工具或数据库在调用时提供;任务格式、术语习惯和稳定分类口径才适合让模型长期学习。把可外部化的问题写进模型,会让删除、纠错和审计变得困难;把稳定任务能力全部放到外部上下文,又会让每次调用都携带大量规则,增加延迟和不确定性。因此,路线选择不应只由模型团队决定。业务 Owner 要确认规则是否稳定,数据团队要确认知识是否可版本化,安全团队要确认样本能否用于训练,平台团队要确认发布和回滚是否可控。一个样本在进入微调前,至少应回答“是否有更低成本修复方式”“修复后如何评测”“失败时如何回滚”三个问题。

9.3.2 全量微调与 LoRA / QLoRA

全量微调调整能力强,但成本高,回滚和多租户治理都复杂。LoRA 和 QLoRA 更适合多数企业任务,因为 adapter 小、发布快、回滚简单,也方便同一个基座模型服务多个业务域。它们的代价是能力上限受基座模型影响,训练稳定性和评测仍要认真处理。adapter 的治理价值很高。网关可以按租户、任务和风险等级选择 adapter;新版本出问题时,也可以只回滚某个业务域,避免影响所有任务。

9.3.3 知识写进模型还是放在外部

事实性知识越动态、越敏感、越需要引用,就越不应该写进模型参数。员工制度、产品价格、库存、订单状态、合同条款和指标口径应走 RAG、工具或数据库查询。模型参数更适合学习稳定术语、任务格式、领域语言和长期不变的表达习惯。

9.3.4 单一通用模型与领域模型矩阵

早期平台可以用单一通用模型降低运维复杂度。任务增多后,通用模型加 adapter 是更可靠的折中。只有在金融、法务、代码等高价值领域,且评测和运维体系成熟后,才适合维护多个领域专用模型。模型矩阵越复杂,越需要统一注册、评测、路由和成本治理。


9.4 能力定制的发布与回退链路

9.4.1 定制策略的模型目录与评测链路

mini-platform 当前相关模块以边界表达为主:mini-platform/core/gateway/ 负责网关与模型路由,mini-platform/core/eval/ 负责评测反馈链路,mini-platform/core/rag/ 表达 RAG 抽象,mini-platform/infra/vectorstore/ 表达向量库基础设施,mini-platform/core/observability/ 负责可观测性。后续实现可以增加以下文件。这组路径要先表达发布边界,而非急着堆训练脚本。mini-platform/core/gateway/customization_policy.py 负责根据任务、知识域和风险等级选择 Prompt、RAG 或 adapter;mini-platform/core/gateway/model_registry.py 记录基座模型、adapter、评测结果和发布状态;mini-platform/core/eval/model_eval.py 汇总任务评测、安全评测和回归评测;mini-platform/core/rag/retriever.py 根据知识域检索上下文并返回引用;mini-platform/infra/vectorstore/client.py 则封装索引、查询、过滤和版本快照。把这些职责拆开,是为了让每次发布都能被复现。customization_policy.py 决定某次调用使用哪种能力组合;model_registry.py 记录可回滚对象;model_eval.py 给出是否能进入灰度的证据;RAG 与向量库接口则把知识快照和权限过滤留在模型参数之外。这样,线上回答出现问题时,团队能沿着 route、adapter、prompt、knowledge snapshot 和 eval report 逐层定位,而非只看到一个模型名称。

9.4.2 定制策略示例

下面示例展示一个线上网关可用的能力定制策略。它不训练模型,只决定当前任务应该使用哪种能力组合。

# 来源建议:mini-platform/core/gateway/customization_policy.py
from __future__ import annotations

from dataclasses import dataclass

@dataclass(frozen=True)
class ModelRoute:
    base_model: str
    adapter: str | None = None
    prompt_template: str | None = None
    rag_domain: str | None = None
    require_citation: bool = False
    safety_profile: str = "default"

@dataclass(frozen=True)
class TaskContext:
    task: str
    tenant: str
    risk_level: str
    knowledge_domain: str | None = None

class CustomizationPolicy:
    def resolve(self, ctx: TaskContext) -> ModelRoute:
        if ctx.task == "employee_policy_qa":
            return ModelRoute(
                base_model="qwen3-32b-instruct",
                prompt_template="policy_qa_v3",
                rag_domain="employee_policy",
                require_citation=True,
                safety_profile="hr_policy",
            )

        if ctx.task == "customer_service_classification":
            return ModelRoute(
                base_model="qwen3-32b-instruct",
                adapter="customer_service_lora_v2",
                prompt_template="complaint_classifier_v2",
                safety_profile="customer_service",
            )

        if ctx.risk_level == "high":
            return ModelRoute(
                base_model="qwen3-32b-instruct",
                prompt_template="high_risk_default_v1",
                safety_profile="strict",
            )

        return ModelRoute(base_model="qwen3-32b-instruct", prompt_template="default_v1")

模型注册表里不应只保存模型名,还要把训练数据、评测结果和发布状态一起挂上去。这样线上出现回归时,团队才能顺着同一条记录追到训练批次、评测证据和发布窗口。

{
  "model_version": "customer_service_lora_v2",
  "base_model": "qwen3-32b-instruct",
  "adapter_uri": "models/adapters/customer_service_lora_v2",
  "training_data": "datasets/customer_service/train-2026-06.jsonl",
  "eval_report": "reports/customer_service_lora_v2.json",
  "status": "canary",
  "created_at": "2026-06-09",
  "rollback_to": "qwen3-32b-instruct@baseline"
}

RAG 侧也需要快照化。

{
  "rag_domain": "employee_policy",
  "snapshot": "2026-06-01",
  "embedding_model": "bge-m3",
  "chunk_policy": "policy_v3",
  "top_k": 20,
  "rerank_top_k": 6,
  "require_citation": true
}

9.4.3 adapter、Prompt 与 RAG 版本的发布门禁

能力定制进入生产流量前至少要看五类证据。表 9-8 将这些证据拆开,是为了让发布评审能同时看到质量、成本、回滚和审计材料。

表9-5:模型能力定制上线前验证项。来源:本书整理。

验收项 检查问题 证据
路线选择 是否明确问题属于 Prompt、RAG、微调或对齐 分诊记录、失败样本标注
数据治理 训练样本是否脱敏、去重、分层并隔离评测集 数据版本、脱敏策略、指纹去重报告
评测结果 任务能力、安全、结构化输出和通用能力是否通过 gate eval report、回归失败清单
发布控制 模型、adapter、Prompt、知识快照能否灰度和回滚 Registry 记录、网关路由策略
线上监控 新版本的拒答率、幻觉率、引用命中率、成本和延迟是否可观测 dashboard、trace、用户反馈

这些验收项的目的,是让失败有迹可循,不是拖慢发布。没有评测和版本治理的微调,会把模型从“偶尔答错”推向“行为不可解释”。早期平台可以先把验收做成发布清单和脚本检查,不必一开始就建设完整 MLOps 系统。只要每次发布都能拿到样本版本、评测报告、路由策略和回滚目标,模型能力定制就从一次性实验进入了可复审的工程流程。发布门禁还要避免只看平均分。一个 adapter 的总体准确率可能上升,但安全拒答、JSON 有效率或长尾业务类别下降;RAG 快照的引用命中率可能提高,但权限过滤漏掉了边界样本。发布报告应展示主指标、反指标和失败样例,而非只写“通过”。只有失败样例能被复现,灰度期间的线上问题才能回到样本治理环节。

9.4.4 能力定制出问题时先分清责任层

用微调解决政策更新

上线当天回答正确,几周后制度更新,模型仍引用旧政策。修复方式是把政策问答改为 RAG,微调只保留回答格式、引用规范和拒答边界。

客服微调后 JSON 有效率下降

模型语气更自然,但结构化分类接口解析失败增加。修复方式是按任务分层训练集,结构化任务单独评测,并把 JSON validity 放进发布 gate。

DPO 后过度拒答

合规风险下降,但正常问题也频繁回答“无法处理”。修复方式是补充安全可答正例,按风险等级拆分安全策略。

RAG 检索到无权限文档

普通员工问福利政策时,回答引用了仅 HR 可见的内部说明。修复方式是在索引写入租户、部门、密级和有效期等 metadata,检索时强制过滤。

新 adapter 发布后无法复现问题

日志只记录模型名,没有记录 adapter 和 Prompt 版本。修复方式是每次调用记录 base_model、adapter、prompt_template、schema、RAG snapshot 和 release_id。


9.5 能力定制的发布证据

模型能力定制不能只凭一组离线分数上线。Prompt 调整、RAG 扩容、LoRA adapter 和对齐策略都会改变模型行为,但改变的范围不同,回滚成本也不同。上线前需要准备发布证据,说明这次定制解决了哪些失败样本,影响了哪些业务域,是否引入新的拒答、幻觉、格式错误或安全风险。没有这份证据,能力定制很容易变成“感觉更好”的经验判断。发布证据应当覆盖四类样本。第一类是目标样本,也就是本次定制要修复的问题;第二类是邻近样本,检查模型是否把相似但不同的意图混在一起;第三类是反向样本,确认不该回答、不该调用工具、不该越权的场景仍然被拦住;第四类是历史高频样本,防止新版本破坏已经稳定的能力。对于 RAG 和微调组合使用的系统,还要区分答案改善来自模型参数、检索内容还是 Prompt 编排。发布证据要进入模型目录和评测系统。模型目录记录版本、adapter、Prompt、知识库、训练数据摘要和适用范围;评测系统记录样本、指标和失败分析。两者结合起来,平台才能在问题发生时判断应该回滚模型、回滚 adapter、回滚知识库,还是只修复 Prompt。能力定制应纳入持续发布过程,不能被当作一次训练任务。

9.6 定制策略的生产边界

并不是所有能力缺口都适合通过微调解决。业务口径频繁变化、权限强相关、需要实时数据、答案必须带证据的场景,更适合放在 RAG、工具调用或语义层里。微调适合稳定表达风格、结构化任务习惯、领域术语理解和特定格式输出,但不适合承载每天变化的企业事实。把事实写进模型,会让更新、审计和删除都变得困难。生产边界还包括数据治理。训练样本、偏好样本和失败样本可能包含客户信息、内部流程、敏感字段或业务策略。平台需要在进入训练前完成脱敏、授权和用途登记,并记录样本来源。若用户要求删除某类数据,团队要知道它是否进入了训练集、评测集、RAG 索引或日志。相比 RAG,微调后的删除和追溯成本更高,因此更需要前置审查。能力定制的最终判断标准,是它是否降低了平台复杂度。一个 adapter 如果让业务链路更稳定、评测更清楚、回滚更简单,它就是合适的;如果它只是把 Prompt 和知识库的问题藏进模型参数里,后续治理会更困难。读者在设计企业 Agent 平台时,应当把能力定制看作发布工程,而非模型训练技巧。

9.7 失败样本的分层归因

能力定制的第一步是把失败样本分层归因,再选择训练、检索、Prompt 或策略手段。一个回答失败可能来自指令理解、知识缺失、工具选择、格式输出、业务规则、权限限制或安全策略。若团队没有先做归因,就很容易用微调解决检索问题,用 RAG 解决格式问题,或者用 Prompt 掩盖权限问题。短期看似有效,长期会让系统边界越来越不清楚。归因时应保留原始问题、模型输出、检索结果、工具调用、用户反馈和人工修正。对每个样本先判断“模型是否拥有完成任务所需信息”,再判断“模型是否有正确动作空间”,最后判断“输出是否符合接口和业务规则”。如果信息缺失,优先考虑知识库、语义层或工具;如果动作空间错误,优先调整工具暴露和策略;如果表达和格式不稳定,再考虑 Prompt、结构化输出或微调。

这套分层会让能力定制更慢一些,但能避免错误投资。模型训练和 adapter 维护有持续成本,一旦把错误样本混进训练集,后续还涉及其他场景。企业平台需要的是可解释的能力演进,而非每次遇到失败都启动一轮新训练。能力定制还要有停用机制。某个 adapter 或 Prompt 版本长期没有带来质量收益,或者只服务少量低价值场景,就应当进入观察和下线流程。下线前要确认依赖它的 Agent、评测样本和发布配置,避免直接破坏线上能力。模型能力资产越多,治理成本越高;定期清理无效版本,是保持平台可维护性的必要工作。停用机制也能让团队更谨慎地引入新版本。每次新增 adapter、知识增强策略或对齐配置,都意味着后续要维护评测、回滚和解释材料。把生命周期成本算进去,能力定制才不会变成无边界的版本堆叠。

能力定制还要明确 owner。Prompt、RAG、adapter 和安全对齐通常由不同团队维护,线上问题发生后必须知道由谁判断、谁回滚、谁补样本。没有 owner 的定制版本,即使效果不错,也不适合进入核心链路。owner 还负责判断能力边界是否仍然成立。业务变化后,原本有效的定制策略可能不再适用,必须重新评估样本和发布范围。能力定制还需要灰度和回退。微调模型、RAG 索引、Prompt 模板和偏好策略都可能改善一类任务,同时伤害另一类任务。发布前的评测集要覆盖成功样本、历史失败样本和高风险边界样本;发布后还要观察真实用户问题是否偏离评测集。

数据治理是定制质量的底座。训练样本、检索文档和偏好数据都要标明来源、时间、适用范围和脱敏状态。把临时工单、个人偏好或过期制度混进训练数据,会让模型形成难以定位的错误习惯。定制后的模型越强,数据污染带来的事故越隐蔽。最终,企业应把能力定制做成一条运营链路:失败样本进入分诊,分诊决定路线,路线产生可发布资产,资产经过评测和灰度,再由线上监控继续补充样本。这样团队才知道什么时候该改知识库,什么时候该改 Prompt,什么时候值得训练模型。能力定制还要明确资产归属。Prompt 模板归应用团队维护,知识库归内容或数据团队维护,训练数据归模型团队和业务专家共同确认,评测集归平台质量体系维护。归属不清时,线上失败会在多个团队之间流转,最后变成“模型效果不好”的泛化结论。归属清楚后,每类问题都有入口和处理时限。

定制路线的成本结构也不同。RAG 的成本主要在文档治理、解析、索引和检索评测;微调的成本在样本构造、训练、推理部署和回归;偏好对齐的成本在成对样本、人工标注和安全验证。业务方提出“让模型更懂我们”时,平台需要把这些成本说清楚,帮助业务选择足够好而非最复杂的方案。发布后的观察窗口尤其重要。微调模型可能在历史样本上提升明显,却在新业务问题上过拟合;RAG 更新可能让新政策可见,同时引入重复文档和冲突版本;偏好策略可能让模型更安全,也可能过度拒答。观察窗口内要看人工驳回、无答案率、引用错误、格式失败和用户追问,而非只看离线准确率。失败样本进入训练或知识更新前,还要做脱敏和范围判断。一次客服个案中的特殊处理,不应被模型学成通用规则;一个地区的制度口径,也不应自动影响全国。样本带着来源、时间和适用范围进入资产库,后续才有机会解释模型为什么形成某种行为。

能力定制做得成熟后,团队会少一些路线争论,多一些证据判断。看到失败样本,先判断缺知识、缺格式、缺策略还是缺任务能力,再选择 RAG、Prompt、微调或对齐。这个顺序能减少无效训练和无效调参。失败样本分诊要进入工具链,而非依赖临时会议。每个线上失败都可以记录为一张卡片:用户问题、上下文来源、模型输出、实际后果、人工修正、初步归因和建议路线。模型团队看到的是训练或对齐线索,数据团队看到的是知识和口径缺口,平台团队看到的是运行时和校验问题。卡片积累到一定规模,团队才能看出哪类问题最值得投入。微调前还要确认推理链路是否稳定。如果 Prompt、schema、检索、权限和评测都还在频繁变化,训练出的模型很快会追不上平台状态。很多企业第一次微调失败,原因是训练目标持续漂移,并非训练技术本身无法使用。更稳的路径是先固定任务定义和评测集,再用一小批高质量样本验证微调是否真的改善目标问题。

RAG 更新也需要发布门禁。新增文档后,旧问题是否仍能答对,新文档是否被正确召回,冲突版本是否被处理,敏感内容是否被过滤,都要检查。知识库不是文件夹,不能只看“上传成功”。尤其是制度、合同和产品手册,文档版本变化会直接改变答案,发布流程必须留下证据。偏好对齐要谨慎使用。让模型更礼貌、更保守或更符合品牌表达是有价值的,但偏好数据也可能压制必要的拒答或改变专业判断。合规、财务和法律类场景里,风格偏好不能覆盖事实和证据。对齐评测要单独检查拒答率、风险提示、证据引用和关键结论是否发生变化。能力定制还有一个容易被忽略的指标:维护成本。微调模型需要重新部署和回归,RAG 需要持续整理知识,Prompt 需要版本管理,偏好数据需要标注。团队选择路线时,应看未来三个月谁来维护,而非只看当前哪种方法看起来最先进。能被持续维护的中等方案,往往比没人维护的复杂方案更可靠。

定制后的能力还要防止局部优化。一个 LoRA adapter 可能提升某个部门的术语表达,却降低通用问答稳定性;一个 RAG 索引可能让新制度可见,却因为重复文档降低召回精度。平台应按租户、任务和知识域控制定制能力的生效范围,避免把局部改动扩散成全局行为。训练数据的负样本同样重要。只收集正确示例,模型会学会输出格式,却不一定学会拒绝越权问题、识别证据不足或处理冲突口径。企业能力定制应把拒答、澄清、转人工和失败恢复样本纳入训练或评测。这样模型学到的范围才能覆盖“怎么答”和“什么时候不该答”。能力定制的复盘要看真实业务后果。分类准确率提升是否减少了人工分派,制度问答引用改善是否减少了客服升级,SQL 生成提升是否缩短了分析周期。若指标只停留在离线分数,团队很难判断定制投入是否值得继续扩大。

9.8 定制资产台账与租户化路由

能力定制进入平台后,要被当作资产管理,而不是散落在训练脚本、Prompt 文件和知识库配置里的临时改动。资产台账至少记录 base model、adapter、Prompt 模板、RAG 快照、训练样本版本、评测集版本、适用租户、适用任务、风险等级、owner、灰度范围和回滚目标。这样一次线上问题才能被定位到具体资产组合。用户投诉“回答不符合新政策”时,团队需要知道当时是否启用了旧 RAG 快照;结构化输出失败时,要知道是否路由到了带客服语气微调的 adapter;安全拒答异常升高时,要知道偏好策略是否刚刚发布。

租户化路由要比“哪个模型效果最好”更具体。不同租户的数据权限、术语、合规要求和成本预算不同,同一个 adapter 不能自动扩散到所有租户。平台可以把能力定制写成路由条件:某个租户的客服工单分类使用 adapter_a,内部制度问答使用 RAG 快照 policy_2026_06,高风险外发内容仍走基础模型加审核策略。路由记录进入 Trace 后,团队才能解释为什么同样的问题在不同租户得到不同处理。若没有这层记录,能力定制会让线上行为变得难以复现。

台账还要支持下线。训练样本过期、业务 owner 离开、评测集长期无人维护、线上收益低于维护成本时,定制资产应进入观察、冻结或下线流程。下线前要确认依赖它的 Agent、Prompt、评测样本和路由规则,并保留一段回滚窗口。能力定制的治理目标,是让每个版本都能说明适用范围、证据来源、运行成本和退出条件。只有这样,模型能力才会随业务演进,而不会沉积成越来越难解释的版本堆。

9.9 能力定制的发布证据与回收边界

模型能力定制上线前,要证明定制确实服务业务任务。微调、LoRA、RAG 增强、Prompt 模板、工具示例和评测样本都可能让模型在某类任务上表现更好,也可能让它在通用任务上退化。发布证据不能只展示几个成功例子,应包含基线对比、失败样本、适用范围、不可用场景、成本变化和回滚方式。

定制能力还要有回收边界。某个业务术语、流程、产品或政策过期后,对应的定制样本可能继续影响模型行为。平台需要记录定制来源、业务 owner、样本有效期、评测覆盖和下线条件。若定制样本来自临时项目,项目结束后应进入复审;若定制模型长期无人使用,应退回通用能力或归档;若定制引发安全或合规问题,应能快速切回基础模型。

能力定制的运营要连接第39章 Eval 和第41章成本治理。定制带来的质量收益、额外推理成本、维护成本和数据标注成本应放在一起看。若收益只体现在少量样本上,可能更适合通过 Prompt 或工具示例解决;若收益稳定覆盖高价值流程,才值得保留专门模型或专门策略。这样定制不会变成模型团队的单点优化,而会进入平台投资判断。

9.10 定制能力的业务复审周期

能力定制上线后,需要固定复审周期。业务术语、政策、产品、客户分层和流程规则都会变化,原本有效的 adapter、Prompt、RAG 快照或偏好策略,可能在几个月后变成误导来源。复审不应等到线上事故出现才启动。平台可以按月或按季度检查定制资产的使用量、失败样本、业务 owner、成本、评测结果和下线条件。

复审材料要区分“能力仍有价值”和“能力仍可维护”。某个定制模型可能仍然提高少数样本分数,但业务 owner 已经离开,训练样本无人维护,评测集不再覆盖新流程,这种能力不适合继续扩大。另一个简单 Prompt 模板可能分数提升有限,却服务稳定高频任务,owner 清晰,回滚容易,就值得保留。能力复审的目标,是让定制资产跟随业务变化更新,而不是把早期项目遗留成长期运行负担。

当复审发现资产退化时,处理方式可以分级:先冻结新流量,再补样本或更新知识库;若仍无法证明收益,就把路由退回基础模型或通用策略。退役记录应保留一段时间,方便解释历史 Trace 中为什么使用过某个定制能力。能力定制进入这个生命周期后,平台才不会被越来越多模型版本、Prompt 版本和知识快照拖慢。

9.11 定制能力的影响评估

能力定制是否值得保留,不能只看离线样本分数。评估应把业务结果、维护成本、运行成本和风险变化放在一起看。一个 LoRA adapter 可能让客服分类准确率提高,但如果它增加了路由复杂度、带来额外推理延迟、需要单独维护回归集,并且只覆盖低频场景,就未必适合进入主链路。相反,一个简单 Prompt 模板可能分数提升有限,却稳定服务高频任务、owner 清晰、回滚成本低,就更适合作为平台能力沉淀。

影响评估要从任务链路出发。业务方提出“让模型更懂业务”时,平台应先定义它要改善的具体行为:减少人工分派、降低政策问答升级、提高结构化字段可用率、减少 DataAgent 查询失败,还是让报告更容易通过复核。每个行为都要有可观测指标和样本来源。若指标不能进入 Trace、Eval 或人工复核记录,后续就无法判断定制是否真的带来价值。定制前后的对比应覆盖成功路径和失败路径,尤其要观察拒答、澄清、引用错误、格式失败和人工接管是否发生变化。

维护成本也要进入决策。微调模型需要样本清洗、训练、部署、回归和安全复核;RAG 定制需要文档解析、索引刷新、冲突处理和检索评测;偏好对齐需要成对样本、标注规范和安全边界检查。若业务 owner 无法长期维护样本和规则,定制能力上线后很快会过期。平台应在发布记录中写明 owner、复审周期、评测集、下线条件和替代路线。没有这些信息,定制能力会变成线上行为差异的来源,而不是能力提升。

定制能力还要评估路由影响。一个平台里可能同时存在基础模型、租户 adapter、任务 Prompt、知识库快照和安全策略。路由规则越复杂,线上复现越困难。影响评估应检查这次定制是否真的需要独立路由,是否可以通过工具示例、知识库更新或 schema 修正解决,是否会影响其他租户或任务。若定制只服务少量用户,应限制生效范围,并在 Trace 中记录命中的原因。这样线上问题发生时,团队能快速判断是基础能力问题,还是某个定制资产带来的局部行为。

退役信号也应提前定义。使用量下降、owner 缺失、评测集失效、维护成本高于收益、与新基础模型能力重叠、线上失败长期无人处理,都说明定制资产需要复审。退役不等于删除历史记录,而是停止新流量、保留历史 Trace 可解释性,并把仍有价值的样本迁入通用评测集。这样能力定制才会形成健康的生命周期:引入时有证据,运行中有观察,收益不足时能收回。

9.12 定制能力的退役与知识回收

能力定制上线后,也要设计退役。某个微调模型、LoRA、RAG 增强包或 Prompt 策略可能在试点阶段有效,但随着基础模型升级、业务规则变化、知识库重构或安全策略调整,它的收益会下降。若这些定制能力长期留在路由中,平台会积累大量难以解释的特殊路径,后续事故复盘也会更复杂。

退役前要先判断定制能力带来的真实收益。平台可以比较启用和关闭定制后的业务样本,观察质量、成本、延迟、人工退回、安全拒答和用户接受情况。若定制能力只改善少数低价值任务,却增加模型维护和评测成本,可以移入观察池;若定制能力依赖过期知识或旧业务规则,应冻结新请求;若基础模型已经覆盖同类能力,应把定制资产逐步回收。

知识回收同样重要。定制能力里沉淀的失败样本、业务术语、领域问答、拒答规则和工具使用模式,不应随模型退役一起丢失。团队可以把有效样本回收到 Eval,把稳定术语回收到 Glossary,把高质量知识片段回收到知识库,把风险样本回收到 Guardrails。这样退役不会浪费试点经验,反而能让平台能力更通用。

早期可以为每个定制能力建立退役条件:连续低调用量、质量优势消失、维护成本过高、知识过期、安全事件或基础模型替代。退役流程记录资产迁移、历史 Run 解释和替代路由。能力定制因此会成为可收可放的工程手段,而不是上线后无人敢动的长期分叉。

9.13 能力定制的版本冻结与客户承诺

能力定制上线后,平台要管理客户承诺。某个租户可能依赖定制 Prompt、专属工具、特定模型路由、私有知识库或业务模板。若平台在未通知的情况下升级基础模型、调整工具 schema 或替换模板,客户看到的行为会变化,却不知道变化来自哪里。能力定制必须有版本冻结和变更通知机制。

冻结不意味着永远不升级。它表示某个客户或业务线当前使用的是一组明确版本:模型、Prompt、工具、知识库、策略和评测样本。平台可以在新版本中修复问题,但要先在客户样本上回放,确认输出结构、口径、权限和成本没有不可接受变化。若变化影响正式承诺,应提供灰度、对比报告和回滚窗口。

定制能力还要避免长期分叉。每个租户都复制一套 Prompt 和工具,会让平台维护成本快速上升。平台应区分可配置参数、可复用模板和真正专属能力。能用配置解决的需求,不应 fork 模板;能沉淀为通用模板的需求,应回到平台资产;只有涉及专有流程、权限或术语的部分才保留专属版本。

早期可以为定制能力建立客户版本卡:当前版本组合、适用范围、承诺指标、样本集、变更窗口、owner 和退役条件。这样能力定制既能满足业务差异,也不会把平台推向不可维护的分支集合。

9.14 能力定制的验收材料

模型能力定制进入生产后,新增能力不能只看功能是否可用,还要看运行证据能否被不同角色复用。平台需要把定制目标、训练或配置来源、评测样本、灰度用户、失败样本和撤回条件记录成稳定字段,并和发布单、Trace、评测样本以及事故记录关联起来。这样一次线上问题发生后,团队可以沿着同一组事实判断影响范围、责任归属和修复顺序,而不是在模型日志、业务日志和人工说明之间来回拼接。

这类证据还要服务相邻章节的能力。它和第16章嵌入模型、第39章 Eval 和第44章模型服务相连:上游能力提供输入假设,下游能力使用执行结果,治理能力负责保存证据和复审结论。若这些材料没有统一编号和版本,章节里讨论的工程能力在生产中会被拆散。业务 owner 只能看到用户投诉,平台 owner 只能看到系统错误,安全或合规团队只能看到事后说明,最后很难判断问题到底来自数据、模型、工具、流程还是组织责任。

生产环境中常见的风险包括定制后只看演示样例、旧能力退化无人发现、灰度人群和生产人群不同。这些问题在演示阶段不明显,因为演示通常只覆盖成功路径;上线后,用户会带来边界问题、重复请求、权限变化和长时间运行状态。平台团队应把失败样本纳入发布节奏,记录哪些样本需要阻断发布,哪些样本可以通过降级处理,哪些样本需要业务 owner 接受剩余风险。

能力定制应先证明目标收益,再证明原有能力没有不可接受的退化。这份记录不需要复杂,但要包含时间、版本、owner、样本、处置动作和下次复查条件。没有这些字段,复盘会停留在口头经验;有了这些字段,平台才能把一次问题转成后续发布、评测和培训材料。

早期平台可以从少量高风险场景开始。先选择调用量高、业务影响大或涉及敏感数据的路径,要求每次变更都留下证据包,再逐步推广到普通场景。这样章节里的能力不会停留在概念层,而会成为可运行、可解释、可退回的工程系统。

本章小结

微调、RAG 和对齐解决的问题不同:微调学任务,RAG 接知识,对齐调偏好。动态、敏感、需要引用的事实应优先走 RAG 或工具,不应写进模型参数。LoRA / QLoRA 更适合企业多租户和多任务定制,因为 adapter 易发布、易回滚、易路由。对齐不能替代权限、审计、脱敏、工具白名单和业务规则。能力定制必须以评测和版本治理为中心;缺少样本版本、评测报告、路由策略和回滚目标时,训练越多,系统越难解释和回滚。

参考文献

Hu, E. J. et al. (2022). LoRA: Low-Rank Adaptation of Large Language Models. ICLR.

Hugging Face. (n.d.). PEFT documentation.

Lewis, P. et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. NeurIPS.

Ouyang, L. et al. (2022). Training Language Models to Follow Instructions with Human Feedback. NeurIPS.