跳到主要内容

3 篇博文 含有标签「hyde」

查看所有标签

脱下“关键词搜寻”的紧身衣

在 4.1 和 4.2 节中,哪怕使用了最时髦的稠密向量查找+纯文本 BM25 稀疏匹配(混合搜索),RAG 系统依然会遭遇工业界的两大史诗级滑铁卢:

  1. “挤牙膏式”提问:用户常扔出一个惜字如金的“请假规定”。系统拿着这 4 个字去浩如烟海的合同里算向量夹角,它根本不知道用户想查的是病假流程还是年假天数。
  2. “大海捞针式”长线逻辑:用户问“分析苹果过去三年高管变动的连锁影响”,普通的 Chunking 切块策略会把不同年份的新闻切成数千块碎片。向量库能命中所有的碎片,但 AI 根本无法将其倒推连接成一张宏大的关系网。

在这节,我们将深入到图谱中 P1 级别的两件镇山之宝:HyDE 生成假答案与颠覆性的 GraphRAG 知识图谱


1. 扩充用户的嘴替:Query Expansion 与 Multi-Query

最粗暴的解决“提问太短”的策略,就是不要直接拿用户的原话去搜。 我们在用户提问和数据库中间,偷偷插一个大模型(开销极低的小模型即可)把它当翻译官

  • Query Expansion(查询扩写):用户输入“劳动法”,模型在后台把它自动扩写成“中国劳动合同违约金赔偿标准及员工维权流程”。用这句丰满的话再去搜,召回精准率暴增。
  • Multi-Query Retrieval(多维度并发):有时候用户的意图是薛定谔的猫。AI 拿到用户的“服务器崩了怎么办?”后,直接生成五条不同视点的变体:
    1. “Nginx 502 报错排查”
    2. “Linux 服务器宕机重启流程”
    3. “如何检查应用服务进程 OOM” ... 拿这五句话去兵分五路全库搜索,把所有结果一并打散扔进咱们上节学的 Reranker (重排序器) 里筛洗,真正的答案必然插翅难逃。

[图片占位:(A clean, minimalist technical diagram on a solid white background. Use simple, crisp vector line art, monochrome or with very subtle minimal color accents. Flat design, no 3D effects, no clutter. Draw a single user text bubble branching out into three distinct, larger text bubbles before entering a database cylinder.)]


2. HyDE:先生成假答案,再按图索骥 (Hypothetical Document Embeddings)

这是一个听起来近乎魔法般的思想,由卡内基梅隆大学的研究人员提出:既然短问题在向量空间的匹配命中率低,我们不如让大模型强行“胡编乱造”一个假答案!

HyDE 的工作流

  1. 生成假象(Hypothetical):用户问“苹果公司 2021 年发生了啥大事?”。此时不查库,直接让大模型发挥自带的“幻觉”硬答,它可能会瞎编:“2021年苹果或许发布了M1芯片,并在第三季度换了CFO...”。
  2. 用魔法打败魔法:我们把这段错漏百出的假答案,打包送进 Embedding 机器变成向量。
  3. 精准命中:奇迹发生了——因为生成的假答案在结构、长度和词语分布上(长得很像真正的企业研报文档),它在向量空间里的距离,反而离库里真实的研报文档非常近!

比起拿着短短两句干瘪的提问去数据库里碰运气,HyDE 等于是画了一张犯人的清晰假想通缉令,再去海量的户籍库里面刷脸。

[图片占位:(A clean, minimalist technical diagram on a solid white background. Use simple, crisp vector line art, monochrome or with very subtle minimal color accents. Flat design, no 3D effects, no clutter. Draw a question mark icon creating a fake document silhouette. The fake document then points directly to a matching real document with a glowing border.)]


3. 撕碎文本边界:GraphRAG(知识图谱增强 RAG)

普通的 Chunking 文本切分存在致命短板——它破坏了逻辑网。 当你把一本书切成一页接一页的代码块时,“第一页提到的张三”和“第一百页提到的张三”在普通向量库中就是两个形同陌路的无关碎片。

要想解决这种宏观叙事的推理题,我们就不能再用“切猪肉”的方式对待数据,而是要使用后来居上的 GraphRAG(微软为首主推的架构体系)

GraphRAG 的运作体系:

  1. 抽丝剥茧(实体提取):在文档入库阶段,大模型先慢悠悠地通读全文。它不切块,而是极其耐心地把所有的实体(人、事物、公司、地点)和它们间的因果联系抽取出来:“张三 -> 任职 -> A公司”。
  2. 编织星图(构建图谱):无数个实体关系被绘制成一张巨大无边的神经网格拓扑图。这里不再是简单的相似度空间。
  3. 全局检索(社区总结):当用户问“张三这辈子做了什么?”时,图谱检索会瞬间锁定“张三”这个实体节点。接着,顺着他蔓延出去的那根隐形线索,把 A公司、B案件、C项目 全部像毛线团一样扯出来!

用普通 RAG,系统只能死板地回答:“文档里提到了三次张三,分别在 1990、1992、2001年”。 用 GraphRAG,系统能站在上帝视角回答:“张三早年在A公司历练,这件事导致他后来主导了C项目,深刻改变了行业。”

这便是下一代企业级知识中台(长上下文分析大厦)必定会采纳的钢架骨骼。

[图片占位:(A clean, minimalist technical diagram on a solid white background. Use simple, crisp vector line art, monochrome or with very subtle minimal color accents. Flat design, no 3D effects, no clutter. Draw a complex network of connecting dots and lines, with a magnifying glass zooming in on one cluster to reveal distinct interconnected nodes.)]


下一章预告: RAG 的机制从最原始的片段切割进化到了编织因果的神经计算网,看起来强大得无可救药了。 但是企业不是慈善家,一切的架构最终都要面临成本审判和质量考核。当用户问完问题发现答案牛头不对马嘴,你如何定位到底是 Embedding 断联,还是 Reranker 这个裁判没眼光,亦或是大模型脑抽出现了幻觉? 这涉及到极度关键的大道终局:4.4 RAG 专职评估:如何用 Ragas 科学测量幻觉与相关度。


下一章: 4.4 RAG 专职评估:用 Ragas 科学拦截幻觉报错

ai学习raghydegraphrag阅读需 6 分钟

关键词撞库的极限

在上一套基础链路走通后,无论你在本地是用低配的 Chroma,还是在云端跑着重金购买的集群版 Milvus 加上顶级的 Reranker。一旦交付给真实用户,你马上就会发现一个令人绝望的现状: 普通的纯句意向量相似搜索,在面临刁钻的“大白话”提问时,会彻头彻尾地罢工。

这是因为系统里存的医学教科书记载的都是冰冷的《嘌呤代谢诱发尿酸结晶沉积析出机制论》。当用户焦急地发了一条“半夜痛风脚指头红肿怎么治?”时,这句极度口语化的长尾提问无论在词表还是向量坐标上,都极其难与那篇专业的病理学术干货挂钩匹配上。

这不仅是 RAG 的劫难,更是横亘在真实业务转化上的天坑落差。怎么破?这逼迫业界的大神们脑洞大开地掀起了一堆魔改黑科技。


1. Multi-Query:不要只搜一次(多路召回)

如果你直接拿用户的问题去撞库,命中率只有可怜的 30%,那就不要一次走到底!为了把那些因为表达单一而漏网的知识点一举成擒,大模型在这里第一次扮演了“提问拓展家”的身份。

当极其抽象随意的原版短语“今年苹果怎么卖的?”发来时,代码第一时间会在后台把它截留,先抛到一个温度很高的大脑里:

“请你把这句话扩展出 3 个不同维度、更专业的检索提问语句。”

于是这个粗浅的废问题瞬间在暗夜里分裂成了 3 枚指向不同纵深的巡航导弹:

  1. “Apple iPhone 15 高配版全网售价行情汇总。”
  2. “苹果鲜果水果批发价及市场大盘走向。”
  3. “苹果智能硬件近期销售折扣活动方案。”

随后,这 3 把被极致放大清晰的语义刀刃同时向浩如烟海的知识库扎进去展开密集扫射。最后只要有任何一路瞎猫碰上死耗子挂住了目标文档,你就能极速收拢全部猎物。经过这一次极其低廉的预处理开销,最终找回的召回率曲线竟然奇迹般地拔地而起!


2. 大预言家模式:HyDE (假说文档嵌入)

在所有的花里胡哨召回套路中,让整个极客圈拍案叫绝、最叹为观止的当属 HyDE (Hypothetical Document Embeddings)——基于大范围幻觉伪造扩写的召回反杀理论。

它的玩法甚至有些离经叛道:你不是拿那个病人随口问的“痛风怎么治”去搜,因为这肯定会由于句式与专业文档格格不入而惨遭滑铁卢。

HyDE 偏偏反其道而行。 在去数据库里抓取前,它直接先让系统里的语言模型原地狂暴释放一次毫无顾忌的“胡说八道”:

“对于痛风的治理方案,请立刻就这个主题随心所欲瞎编乱造或者根据你的常识,不借助任何外部检索,凭空给我瞎写出一篇包含几百字专业描述的《痛风虚假医学百科全书》指南文章。”

大模型一顿发狂,虽然它写的具体数字和用量极其可能全盘出错(这正是大幻觉时代最臭名昭著的死穴),但它在生成这篇极其漫长恢弘的伪科普长文时,必定会在字里行间高频甩出极其密集的专业骨架词汇,包括不限于“尿酸盐、嘌呤、秋水仙碱片、局部物理代谢”等原问题里绝不可能出现的专业天书名词。

紧接着封神的一步来了:拿着这篇“内容长达几百字且极其专业对位的洋洋洒洒的假文章”的巨量向量长身段,去直接冲进那卷帙浩繁冰冷枯燥的知识深潭里。这叫以长打长,以子之矛攻其之盾。 那篇深深潜底躲避极深的真正医学原著,会在这一次极其恐怖精准、体位极其契合的超大体积匹配撞击之下,瞬间被挤出水面!


3. 切割悖论:小块检索 vs 大块送回

在文档切分(Chunking)里,切片的过大过小永远是一场零和博弈。

  • 如果切得极大(比如 1000 字一大段):大模型的阅读理解极其畅快舒服,但它存入底层变成单向量后,因为夹杂杂质噪音太多,搜索特征被极大冲散摊薄,搜出来的召回率极惨。
  • 如果切得极其细碎极小(比如两句话一段):它极其纯粹,这几十字因为特征浓度高得吓人导致极其方便用来当高爆精准搜索弹药一打一个准,但是在喂给最后真正干活的大模型回答时,一旦丢掉这几句话原本上下文和承上启下的段落前缀,大模型这头没见过世面的巨兽就只能看着这两句无头无尾的干瘪切肉当场陷入呆滞。

如何解脱?Parent-Child Retrieval (父子嵌套链式检索) 应劫而生。

它的设计是双刃绝户网:在切碎做索引进库时,极其严苛残暴地碎尸万段,把每几句话打成一个小标签节点(子块)来保证命中率。但是在这个极其渺小的子标签文件背后,开发者早已为它深深牵连并绑死了一根无形的血丝红线,它在系统后台死死直通到那份大长篇的原版全页整章源码区结构树上(父块)。

一旦当其中任何一片子碎片在大范围混战中被成功召回归档,系统就绝不客气把它当终点,而是一把扯起那根红线连根拔起将深藏其后的那一整张高达两页的长篇广域连贯原文巨网全数给扯出!最后喂入大模型嘴里的,是那种全景式防断章取义绝对完整的满配上下文狂欢体验


4. 路线之争:RAG 会被无敌的长上下文打败吗?

在最近的一段高光时刻里,包括 Google 的 Gemini 1.5 Pro 或者 Kimi 这些顶着动辄支持 200+ 万级别海量汉字输入通量上下文魔幻参数 的生猛超级怪物纷纷下海。 它们把全本的几百万字长篇巨著《资治通鉴》、乃至百重楼层的千人开黑代码群聊记录毫不客气地一波直接拉爆塞满!而且最让人细思极恐的是,即便在大海捞针(Needle in a Haystack)极限盲测里,这些深邃恐怖的超大窗口网络竟然依然能在最阴暗角落里的几句不痛不痒的话一秒之内给你分毫不差地准确揪出!

这自然引发了业界的恐慌追问:既然我现在能一口气把几百本书一股脑不加处理地硬生生塞进模型脑子里让它通读完做选择,那我还有什么必要去苦练什么 RAG,还有什么必要建向量库,还要养一批切片运维?

如果这是你一厢情愿的想法,那就是不折不扣的外行浪漫。

  • 这是成本深渊的屠城级灾难! RAG 是从大海里用网直接捞出且只捞那个核心的三根针,它每次带入上下文跟大模型对话消耗的算力,可能寥寥一千词块,只值零点几分钱。但如果换成长上下文暴力强冲,你每一次,哪怕只是问它一句最卑微简短的“第一页的男主姓啥”,它也必将极度狂暴且绝不打折地将你那全本三百页两百万字的巨著重新通读、疯狂渲染运算流淌一遍显存才能得出你的答案!那每一次对话消耗的上百美金极度奢靡暴涨高昂算力调用计费账单足以在当晚就让任何企业架构老总原地宣布破产!

**终局答案:长上下文从来不会干掉而且极其热爱 RAG!**它们是天然并轨的互补兄弟。 长上下文更适合让模型一次带入海量连续性前置因果逻辑做诸如大范围归纳提纯以及深层反向纠错比对的推演全盘高压作业;而 RAG 则继续极其顽强地独霸着那些“低频深尾、海量独立零碎碎片高并发召回、以及追求极限极速廉价推算下沉降本开销”的金字塔绝大多数刚需大盘最广阔底部!


下一章预告: 当召回率被强行拉升之后,你终于向老板交差了。但他反手甩给你一个致命问题:“你的这个问答系统准确率究竟是 80% 还是 95%?大模型到底有没有完全遵照你那本破使用说明书来回答而没有加私货?” 传统的文本比对算法全完蛋了,如何评价大模型,这又是一门极深水域的全新炼金术玄学。 请跟随 RAG 系统搭建的最后闭环:4.4 前沿评估与探索:Ragas与图网络,来看看如何让魔法相互制衡!

ai学习rag召回策略hydemulti-query阅读需 9 分钟

关键词撞库的极限

在上一套基础链路走通后,无论你在本地是用低配的 Chroma,还是在云端跑着重金购买的集群版 Milvus 加上顶级的 Reranker。一旦交付给真实用户,你马上就会发现一个令人绝望的现状: 普通的纯句意向量相似搜索,在面临刁钻的“大白话”提问时,会彻头彻尾地罢工。

这是因为系统里存的医学教科书记载的都是冰冷的《嘌呤代谢诱发尿酸结晶沉积析出机制论》。当用户焦急地发了一条“半夜痛风脚指头红肿怎么治?”时,这句极度口语化的长尾提问无论在词表还是向量坐标上,都极其难与那篇专业的病理学术干货挂钩匹配上。

这不仅是 RAG 的劫难,更是横亘在真实业务转化上的天坑落差。怎么破?这逼迫业界的大神们脑洞大开地掀起了一堆魔改黑科技。


1. Multi-Query:不要只搜一次(多路召回)

如果你直接拿用户的问题去撞库,命中率只有可怜的 30%,那就不要一次走到底!为了把那些因为表达单一而漏网的知识点一举成擒,大模型在这里第一次扮演了“提问拓展家”的身份。

当极其抽象随意的原版短语“今年苹果怎么卖的?”发来时,代码第一时间会在后台把它截留,先抛到一个温度很高的大脑里:

“请你把这句话扩展出 3 个不同维度、更专业的检索提问语句。”

于是这个粗浅的废问题瞬间在暗夜里分裂成了 3 枚指向不同纵深的巡航导弹:

  1. “Apple iPhone 15 高配版全网售价行情汇总。”
  2. “苹果鲜果水果批发价及市场大盘走向。”
  3. “苹果智能硬件近期销售折扣活动方案。”

随后,这 3 把被极致放大清晰的语义刀刃同时向浩如烟海的知识库扎进去展开密集扫射。最后只要有任何一路瞎猫碰上死耗子挂住了目标文档,你就能极速收拢全部猎物。经过这一次极其低廉的预处理开销,最终找回的召回率曲线竟然奇迹般地拔地而起!


2. 大预言家模式:HyDE (假说文档嵌入)

在所有的花里胡哨召回套路中,让整个极客圈拍案叫绝、最叹为观止的当属 HyDE (Hypothetical Document Embeddings)——基于大范围幻觉伪造扩写的召回反杀理论。

它的玩法甚至有些离经叛道:你不是拿那个病人随口问的“痛风怎么治”去搜,因为这肯定会由于句式与专业文档格格不入而惨遭滑铁卢。

HyDE 偏偏反其道而行。 在去数据库里抓取前,它直接先让系统里的语言模型原地狂暴释放一次毫无顾忌的“胡说八道”:

“对于痛风的治理方案,请立刻就这个主题随心所欲瞎编乱造或者根据你的常识,不借助任何外部检索,凭空给我瞎写出一篇包含几百字专业描述的《痛风虚假医学百科全书》指南文章。”

大模型一顿发狂,虽然它写的具体数字和用量极其可能全盘出错(这正是大幻觉时代最臭名昭著的死穴),但它在生成这篇极其漫长恢弘的伪科普长文时,必定会在字里行间高频甩出极其密集的专业骨架词汇,包括不限于“尿酸盐、嘌呤、秋水仙碱片、局部物理代谢”等原问题里绝不可能出现的专业天书名词。

紧接着封神的一步来了:拿着这篇“内容长达几百字且极其专业对位的洋洋洒洒的假文章”的巨量向量长身段,去直接冲进那卷帙浩繁冰冷枯燥的知识深潭里。这叫以长打长,以子之矛攻其之盾。 那篇深深潜底躲避极深的真正医学原著,会在这一次极其恐怖精准、体位极其契合的超大体积匹配撞击之下,瞬间被挤出水面!


3. 切割悖论:小块检索 vs 大块送回

在文档切分(Chunking)里,切片的过大过小永远是一场零和博弈。

  • 如果切得极大(比如 1000 字一大段):大模型的阅读理解极其畅快舒服,但它存入底层变成单向量后,因为夹杂杂质噪音太多,搜索特征被极大冲散摊薄,搜出来的召回率极惨。
  • 如果切得极其细碎极小(比如两句话一段):它极其纯粹,这几十字因为特征浓度高得吓人导致极其方便用来当高爆精准搜索弹药一打一个准,但是在喂给最后真正干活的大模型回答时,一旦丢掉这几句话原本上下文和承上启下的段落前缀,大模型这头没见过世面的巨兽就只能看着这两句无头无尾的干瘪切肉当场陷入呆滞。

如何解脱?Parent-Child Retrieval (父子嵌套链式检索) 应劫而生。

它的设计是双刃绝户网:在切碎做索引进库时,极其严苛残暴地碎尸万段,把每几句话打成一个小标签节点(子块)来保证命中率。但是在这个极其渺小的子标签文件背后,开发者早已为它深深牵连并绑死了一根无形的血丝红线,它在系统后台死死直通到那份大长篇的原版全页整章源码区结构树上(父块)。

一旦当其中任何一片子碎片在大范围混战中被成功召回归档,系统就绝不客气把它当终点,而是一把扯起那根红线连根拔起将深藏其后的那一整张高达两页的长篇广域连贯原文巨网全数给扯出!最后喂入大模型嘴里的,是那种全景式防断章取义绝对完整的满配上下文狂欢体验


4. 路线之争:RAG 会被无敌的长上下文打败吗?

在最近的一段高光时刻里,包括 Google 的 Gemini 1.5 Pro 或者 Kimi 这些顶着动辄支持 200+ 万级别海量汉字输入通量上下文魔幻参数 的生猛超级怪物纷纷下海。 它们把全本的几百万字长篇巨著《资治通鉴》、乃至百重楼层的千人开黑代码群聊记录毫不客气地一波直接拉爆塞满!而且最让人细思极恐的是,即便在大海捞针(Needle in a Haystack)极限盲测里,这些深邃恐怖的超大窗口网络竟然依然能在最阴暗角落里的几句不痛不痒的话一秒之内给你分毫不差地准确揪出!

这自然引发了业界的恐慌追问:既然我现在能一口气把几百本书一股脑不加处理地硬生生塞进模型脑子里让它通读完做选择,那我还有什么必要去苦练什么 RAG,还有什么必要建向量库,还要养一批切片运维?

如果这是你一厢情愿的想法,那就是不折不扣的外行浪漫。

  • 这是成本深渊的屠城级灾难! RAG 是从大海里用网直接捞出且只捞那个核心的三根针,它每次带入上下文跟大模型对话消耗的算力,可能寥寥一千词块,只值零点几分钱。但如果换成长上下文暴力强冲,你每一次,哪怕只是问它一句最卑微简短的“第一页的男主姓啥”,它也必将极度狂暴且绝不打折地将你那全本三百页两百万字的巨著重新通读、疯狂渲染运算流淌一遍显存才能得出你的答案!那每一次对话消耗的上百美金极度奢靡暴涨高昂算力调用计费账单足以在当晚就让任何企业架构老总原地宣布破产!

**终局答案:长上下文从来不会干掉而且极其热爱 RAG!**它们是天然并轨的互补兄弟。 长上下文更适合让模型一次带入海量连续性前置因果逻辑做诸如大范围归纳提纯以及深层反向纠错比对的推演全盘高压作业;而 RAG 则继续极其顽强地独霸着那些“低频深尾、海量独立零碎碎片高并发召回、以及追求极限极速廉价推算下沉降本开销”的金字塔绝大多数刚需大盘最广阔底部!


下一章预告: 当召回率被强行拉升之后,你终于向老板交差了。但他反手甩给你一个致命问题:“你的这个问答系统准确率究竟是 80% 还是 95%?大模型到底有没有完全遵照你那本破使用说明书来回答而没有加私货?” 传统的文本比对算法全完蛋了,如何评价大模型,这又是一门极深水域的全新炼金术玄学。 请跟随 RAG 系统搭建的最后闭环:4.4 前沿评估与探索:Ragas与图网络,来看看如何让魔法相互制衡!

ai学习rag召回策略hydemulti-query阅读需 9 分钟