文章区分了 RAG 补充可检索知识与微调调整模型行为的用途,建议文档、政策和产品问答优先采用 RAG。无论选择哪条路线,都应先建立评估集,再判断方案是否满足上线要求。
“能不能用我们的文档来训练 ChatGPT?”这是我们最常收到的需求之一。这个问题很合理,但通常混淆了两种不同的技术。多数情况下,企业需要的根本不是训练,而是检索增强生成,也就是 RAG。
本文会用通俗的语言解释这两种技术,说明各自在什么情况下更合适,并列出一个 chatbot 在面向客户之前必须具备的能力。
RAG 改变的是模型能看到什么。Fine-tuning 改变的是模型如何表现。
如果你的 chatbot 需要根据企业文档、政策或产品数据回答问题,就从 RAG 开始。
Fine-tuning 有助于调整风格、格式,以及处理范围明确、重复性高的任务,但不适合用来保持事实信息的时效性。
多数生产环境中的助手使用 RAG 加上精心编写的 system prompt;真正需要 fine-tuning 的很少。
无论选择哪种方案,都先建立评估集,否则你无法判断它到底有没有效果。
LLM 已经知道很多关于世界的知识,但它不了解你的退款政策、价目表,也不知道上周的产品更新。填补这个缺口有两种方法:
RAG 会在用户提问时,从你自己的内容中查找相关段落,再把这些段落连同问题一起交给模型。模型根据刚刚看到的内容作答。
Fine-tuning 则用数百或数千组示例对话继续训练模型,让它学会某种模式:一种语气、一种格式,或一种分类方式。
模型缺少知识时,用 RAG。模型缺少某种行为能力时,用 fine-tuning。
准备内容。 将文档、帮助中心文章、PDF 和数据库记录切分成较小的段落,也就是“chunk”。
建立索引。 将每个 chunk 转换为 embedding,也就是一组表达其语义的数字,再存入向量索引。如果你已经在使用 PostgreSQL,pgvector 扩展通常就够用了。
检索。 用户提问时,系统找出最相关的 chunk。将关键词搜索与向量搜索结合起来,也就是 hybrid search,通常比单独使用其中一种效果更好。
生成。 将问题和检索到的 chunk 一起交给模型,并附上指令,例如“只根据这些来源回答,并注明引用来源”。
引用。 回答会关联到它使用的原文段落,方便用户和你的团队核查。
文档发生变化时,只需为修改过的文件重新建立索引,不需要重新训练模型。因此,RAG 很适合每周甚至每天都会更新的内容。
Fine-tuning 以现有模型为基础,用你的示例继续训练:反复向模型提供输入及其理想输出。模型会更擅长稳定地产生这类输出,而且所需的 prompt 也更短。
它不擅长的,是存储可以让你放心依赖的事实。经过 fine-tuning 的模型,仍可能信心十足地报出旧价格;每次事实发生变化,你都得重新整理训练数据,再训练一次。这也是为什么 Anthropic 等厂商会建议多数客户先做好 prompting 和检索,再考虑 fine-tuning;OpenAI 自己的指南也建议先尝试 prompt engineering。服务商提供的选项和价格经常变化,因此在决定采用之前,请查阅其最新文档。
客户支持助手可以用 RAG 回答问题,再用经过 fine-tuning 的模型,按照企业规定的风格生成回复。根据我们的经验,一个写得好的 system prompt 加上少量示例,就能满足大部分风格要求。因此,先从这里开始,只有在真实测试问题中证明它仍有差距时,再加入 fine-tuning。
做一个 RAG 演示只需要一个下午。但要让 chatbot 真正面向客户,还需要更多能力:
具体价格取决于服务商,而且经常变化,但影响成本的主要因素相对稳定:
对多数企业来说,最大的支出项是工程投入,而不是 API 账单。这也是应该从简单方案开始、再通过评估衡量效果的另一个原因。
不会。使用 RAG 时,文档存储在你自己的索引中,每次提问只会发送相关段落。底层模型不会被重新训练。
包括 OpenAI 和 Anthropic 在内的主要 API 服务商都表示,默认不会使用企业 API 数据训练模型。面向消费者的应用与 API 的条款有所不同,而且条款会变化,因此请阅读所选服务商最新的数据使用政策。
不一定。如果你已经在使用 PostgreSQL,pgvector 扩展可以处理许多工作负载。只有规模非常大,或需要专门的搜索功能时,独立的向量数据库才更值得采用。
可以。每种数据源都需要一个 connector,用来提取文本并保持索引更新。扫描版 PDF 需要先进行文字识别,也就是 OCR。
要求它只根据检索到的来源回答,展示引用;没有找到相关内容时,返回“我不知道”;每次发布前,都用评估集进行测试。
我们使用 Python 和 TypeScript,在你已经运行的系统之上构建 RAG 助手和 LLM 功能。你可以了解我们的 LLM 集成和 AI chatbot 服务,或告诉我们,你希望助手回答哪些问题。
本文最初发表于 znovastudio.com。
如需采取进一步措施,你可以考虑屏蔽此人和/或举报滥用行为。