提示词、RAG、微调与预训练的区别
定义
严格意义上的训练会改变模型参数;写提示词、挂知识库和普通对话都不会。需求应先判断是要改变行为、补充可更新知识,还是训练一个新的参数版本。
说明
提示词只改变本次请求的上下文,适合明确任务、格式和行为边界;知识库在回答前检索资料,适合制度、价格、文档等会更新且需要引用的知识。两者都不改模型参数。
微调在现有模型上继续训练,适合需要稳定改变表达风格、输出结构或特定任务行为的场景,但需要训练数据、评测和持续维护。预训练则从大规模语料学习基础能力,投入远高于微调。
判断需求时先问:问题能否靠更清晰的指令解决;答案是否来自经常变化、需要可追溯的资料;是否有足够示例和评测证明必须改参数。多数应用应按提示词、检索、微调的顺序验证。
“我们训练了模型”可能指上述不同层次。沟通时应直接说明是否改变参数、使用了什么数据、如何评测,而不是只用“训练”概括所有配置工作。
跟着一个例子走
公司退款政策更新后该改哪里
客服机器人已经能回答问题,但公司每月都可能调整退款时限;团队还希望所有答复都使用固定 JSON 字段。
- 用提示词规定任务
先在系统提示中定义客服身份、不得猜测政策、输出必须包含
answer与policy_source。这解决的是本次调用的行为和格式。 - 用检索提供最新知识
回答前从当前政策库取回适用条款,并把版本和链接交给模型。政策更新时替换文档即可,不必重新训练参数。
- 有稳定证据后再考虑微调
若大量评测显示模型即使有清晰指令仍反复输出错误结构,且团队有足够高质量示例,才评估微调;从头预训练通常不在这个问题的合理范围内。
边界与误区
普通对话会当场改变模型参数吗: 不会。对话通常只进入本次上下文;服务方之后是否把数据用于集中训练,取决于具体产品的数据政策,需结合隐私词条核对。
微调和从头预训练有什么不同: 微调从现有模型出发,针对行为或任务继续调整参数;预训练从大规模语料建立基础能力,数据和算力要求高得多。
什么时候优先用知识库而不是微调: 当答案来自会更新、需要引用或需要权限控制的资料时,检索通常更易更新和核验。