RAG = 开卷考试。模型做题(回答用户)的时候,允许它翻书(检索话术库),而不是全靠自己死记硬背。
| 方案 | 优势 | 劣势 | 结论 |
|---|---|---|---|
| 7B 微调 (v5/v6 QLoRA) |
风格像师傅 | 听不懂话、答非所问 推理能力弱 |
✗ 不采用 |
| 32B 原版 (无 RAG) |
推理强、听得懂 | 没有师傅味 回答像 AI 客服 |
△ 不够好 |
| 32B + RAG (当前方案) |
推理强 + 风格对 | 需要维护话术库 | ✓ 最终选择 |
| 微调(QLoRA) | RAG | |
|---|---|---|
| 修改风格 | 重新训练(3-6小时 GPU) | 改 JSONL 文件(5 分钟) |
| 添加新话题 | 造数据 → 训练 → 合并 | 加几条到话术库 |
| 发现说错话 | 难以精确修正 | 删/改对应话术 |
| 依赖 GPU | 训练阶段需要 | 完全不需要 |
模型同时看到:① 阶段指令 ② 话术风格参考 ③ 排盘数据 ④ 用户对话历史,然后综合生成回复。
BM25(Best Matching 25)是搜索引擎的核心算法之一,和 Google 搜索的底层逻辑相似。它做的事情很简单:给定一个查询词,在一堆文档里找最相关的几条。
相比更复杂的向量检索(需要 embedding 模型),BM25 的优势:
| 文件 | 条数 | 来源 | 特点 |
|---|---|---|---|
| video_cleaned.jsonl | 948 | B 站视频字幕提取 | 教学为主,风水/面相/八字知识 |
| realcase_cleaned.jsonl | 551 | 真实案例对话 | 最有价值 — 真实的师傅话术风格 |
| synthetic_cleaned.jsonl | 352 | AI 合成数据 | 补充覆盖面,含异议处理话术 |
话术库按「销售漏斗」的四个阶段标注,检索时按当前阶段过滤,避免过早推销:
注:teaching 类话术不在主对话流程中使用,仅作为知识补充检索。
为了防止模型在不该推销的时候推销,系统有三层防护:
输入用户可能说的话,看 BM25 会检索到哪些话术:
| BM25(我们用的) | 向量检索(FAISS/Chroma) | 全文搜索(ES) | |
|---|---|---|---|
| 原理 | 关键词匹配+统计权重 | 语义相似度(embedding) | 倒排索引 |
| 需要 GPU | 不需要 | 建索引时需要 | 不需要 |
| 外部依赖 | jieba(10MB) | embedding 模型(500MB+) | ElasticSearch 服务 |
| 语义理解 | 弱(靠关键词) | 强(理解同义词) | 弱 |
| 2000 条的速度 | < 5ms | < 10ms | < 10ms |
| 适合场景 | 中文话术检索 | 跨语言/多义词场景 | 大规模数据集 |