我的征尘是星辰大海。。。
The dirt and dust from my pilgrimage forms oceans of stars...
-------当记忆的篇章变得零碎,当追忆的图片变得模糊,我们只能求助于数字存储的永恒的回忆
作者:黄教授
手机视频列表
批判RAG技术一场语义神话下效率与完整性的困局2
视频
音频
原始脚本
第三部分,常输入的单向量困局。 RAG 背离初衷的匹配过载与断章取义。 RAG 技术诞生的核心初衷,本是解决用户本地文档超出自定义模型上下文,如128K,无法一次性输入的痛点。 通过向量检索筛选出少量与查询相关的 chunk ,再与用户问题结合输入模型,避免全文输入超限。 但面对用户的长输入查询,这套逻辑会彻底崩塌。 单向量检索要么因语义模糊匹配过多 chunk,再次超出上下文上限。 要么被迫丢弃大量相关 chunk,陷入断章取义的困境,最终完全背离精准筛选、控制篇幅的初衷。 一、初衷与现实的割裂。 从精准筛选到匹配过载 RAG 的设计逻辑,本应是小而准。 假设某公司有100万字的差旅费报销文档,超出模型128K,约6万字的上下文上限。 通过 RAG 将文档拆分为2000个500字 chunk,用户查询 寻自驾出差油费报销标准时,检索出两到三个相关 chunk,约1000~1500字,即可精准嵌入上下文,既不超限又能提供关键信息。 但当用户输入常查询时,这套逻辑会瞬间失效。 比如用户输入,我下个月要带3人团队去北京做项目,往返自驾,住3晚三星酒店,其中一人是新入职员工需要先走紧急出差审批,回来后要分项目核算报销,新员工的报销流程和 老员工有区别吗?油费按里程还是固定标准报?酒店发票需要备注项目名称吗?这个常查询涵盖团队出差、自驾报销、新员工流程、项目核算、发票要求五个核心需求。 对英文档当中五个不同模块的 chunk 此时,RAG 的单向量检索会陷入两难。 若严格按语义匹配,会同时命中自驾游费规则4个 chunk,新员工报销流程6个 chunk,团队出差核算5个 chunk,发票备注要求3个 chunk,总计18个 chunk,按每个500字计算。 总字数达9000字,虽未超128K上限,但实际文档中每个 chunk 可能包含大量冗余信息,如重复的审批流程图、不同城市的油费补贴差异。 最终实际文本量可能突破3万字。 若用户查询再复杂些,如涉及跨部门分摊、发票真伪校验等更多需求,匹配的 chunk 可能增至30~40个,文本量直接突破20万字,远超128K上限,导致模型无法加载。 这种匹配过载直接让 rag 的初衷落空,他本想解决文档超限,却因长输入查询再次制造检索结果超限。 陷入从一个困境跳进另一个困境的循环。 二、无奈的妥协。 从精准匹配到断章取义,面对匹配过载超限的问题。 当前 RAG 方案只能采取一种极其粗暴的妥协方式,按向量相似度排序,截取前 N个 chunk,如前20个,直接丢弃排序靠后的 chunk。 这种做法看似解决了超限问题。 实则制造了更严重的断章取义错误。 不管算法如何优化,精准排序,丢弃相关的 chunk 就意味着丢失完整语义的风险,这是一个无解的问题。 三,无解的本质。 RAG 无法突破文档体量与查询复杂度的矛盾,说到底,RAG 的第三重困境源于他从一开始就误解了文档超限的本质。 用户本地文档超限,如100万字,核心矛盾不是如何筛选筛选 chunk,而是如何在有限上下文内完 完整承载用户复杂需求对应的所有关键信息。 RAS 试图用单向量检索解决这个矛盾,却忽略了一个关键事实。 当用户需求复杂度、长输入与文档体量、多模块同时增加时,精准筛选少量 chunk 本身就是一个伪命题。 比如某金融公司有500万字的信贷风控手册,涵盖个人信贷、企业信贷、抵押评估、逾期处理等10个模块。 用户输入一个涵盖3个模块的常查询,即便 RAG 能精准匹配每个模块的5个关键 chunk 总文本量也会达到7500字。 若用户查询再涵盖5个模块,文本量会直接突破一、两万字。 这还未算上用户自身的常查询文本,最终即可能逼近或超 出 128K上线。 这种需求复杂度与文档体量的正相关,决定了 RAG 的解决方案从根源上就不成立。 它既无法让用户简化需求,实际业务中需求本就复杂,又无法让文档缩减体量,企业文档需完整记录规则,只能在匹配过多超限与截断丢弃信息之间反复妥协,最终永远无法实现精准完整不超限的核心目标 第四部分,破局之路。 用完整上下文压缩替代 Rag 的折中困局。 当 Rag 技术在为语义分块割裂、匹配过载的三重困境中进退维谷时,真正的解决方案其实早已跳出检索筛选的思维定势。 对文档体量在百万字以内的中小公司而言, Deepseek OCR 的图片化压缩技术,能直接将完整文档压缩至大模型上下文,如128K范围内。 用全量知识输入替代碎片化检索,从根源上规避 RAG 的所有缺陷。 这种方案的核心逻辑简单且彻底,无需拆分文档、无需向量检索、无需担心语义割裂。 先将百万字的内部文档,如全套差旅费报销规则 金融信贷风控手册转化为图片格式,再通过 OCR 压缩技术实现10倍以上的 Token 压缩。 百万字文档压缩后约100~150K。 Token 恰好适配当前主流大模型的128K256K上下文窗口。 用户无论输入短查询,自驾出差油费怎么报,还是长查询,带新员工团队出差的审批、加报销、加核算流程,大模型都能直接读取完整文档,在全量知识的基础上生成回答。 既无需担心分块割裂导致的例外条款丢失,也无需面对匹配过载超 现的妥协,更不会出现单向量压缩导致的语义丢失。 对比 RAG 的折衷与妥协,这种完整压缩输入方案的优势堪称碾压。 对强结构文本,如诗词、规章制度,它能保留全文完整性,不会出现静夜思只显前两句,报销例外条款被拆分的荒诞情况。 对复杂常查询,它无需通过单向量匹配筛选 check,大模型可直接在完整文档中定位所有相关信息。 既不会遗漏子问题,也不会因匹配过多超限。 对效率与成本,它无需重复编码,仅需一次压缩,无需维护向量数据库,既降低了技术复杂度。 又减少了模型调用成本,完全规避 RAG 慢且贵的短板。 说到底,RAG 技术的所有问题,本质都是在文档超限与知识完整之间找折中的必然结果。 而 Deepseek OCR 的方案直接打破了这个折中困境,当完整文档能被压缩至上下文窗口内时,检索筛选就成了多余的步骤,RAG 的所有缺陷也随之失去了存在存在的土壤。 对多数中小公司而言,这不是替代方案,而是唯一能真正解决问题的方案。 结尾, LAG 的神话该醒了。 纵观 LAG 技术的发展,它更像是大模型上下文有限时代的过渡产物,因无法实现完整文档输入,被迫用检索筛选的折中方案弥补短板,却在技术落地中暴露了重重缺陷,唯语义方案是骗局。 真语义方案是慢 且错的双输,长输入处理更是无解的困局。 对中小公司而言,与其耗费精力维护向量数据库、调试分块策略、承受错误输出的风险,不如回归问题本质。 当完整文档能通过 Deepseek OCR 这类技术压缩至上下文窗口内时,Rag 的所有努力都失去了意义。 技术的价值在于解决问题,而非制造新的复杂。 RAG 的羽翼神话该醒了,真正有价值的方案,从来不是在困境中妥协,而是直接打破困境。
修正脚本
第三部分,长输入的单向量困局。 RAG 背离初衷的匹配过载与断章取义。 RAG 技术诞生的核心初衷,本是解决用户本地文档超出自定义模型上下文,如128K,无法一次性输入的痛点。 通过向量检索筛选出少量与查询相关的 chunk ,再与用户问题结合输入模型,避免全文输入超限。 但面对用户的长输入查询,这套逻辑会彻底崩塌。 单向量检索要么因语义模糊匹配过多 chunk,再次超出上下文上限。 要么被迫丢弃大量相关 chunk,陷入断章取义的困境,最终完全背离精准筛选、控制篇幅的初衷。 一、初衷与现实的割裂。 从精准筛选到匹配过载 RAG 的设计逻辑,本应是小而准。 假设某公司有100万字的差旅费报销文档,超出模型128K,约6万字的上下文上限。 通过 RAG 将文档拆分为2000个500字 chunk,用户查询自驾出差油费报销标准时,检索出两到三个相关 chunk,约1000~1500字,即可精准嵌入上下文,既不超限又能提供关键信息。 但当用户输入长查询时,这套逻辑会瞬间失效。 比如用户输入,我下个月要带3人团队去北京做项目,往返自驾,住3晚三星酒店,其中一人是新入职员工需要先走紧急出差审批,回来后要分项目核算报销,新员工的报销流程和老员工有区别吗?油费按里程还是固定标准报?酒店发票需要备注项目名称吗?这个长查询涵盖团队出差、自驾报销、新员工流程、项目核算、发票要求五个核心需求。 对应文档中五个不同模块的 chunk,此时,RAG 的单向量检索会陷入两难。 若严格按语义匹配,会同时命中自驾游费规则4个 chunk,新员工报销流程6个 chunk,团队出差核算5个 chunk,发票备注要求3个 chunk,总计18个 chunk,按每个500字计算。 总字数达9000字,虽未超128K上限,但实际文档中每个 chunk 可能包含大量冗余信息,如重复的审批流程图、不同城市的油费补贴差异。 最终实际文本量可能突破3万字。 若用户查询再复杂些,如涉及跨部门分摊、发票真伪校验等更多需求,匹配的 chunk 可能增至30~40个,文本量直接突破20万字,远超128K上限,导致模型无法加载。 这种匹配过载直接让 rag 的初衷落空,它本想解决文档超限,却因长输入查询再次制造检索结果超限。 陷入从一个困境跳进另一个困境的循环。 二、无奈的妥协。 从精准匹配到断章取义,面对匹配过载超限的问题。 当前 RAG 方案只能采取一种极其粗暴的妥协方式,按向量相似度排序,截取前 N个 chunk,如前20个,直接丢弃排序靠后的 chunk。 这种做法看似解决了超限问题。 实则制造了更严重的断章取义错误。 不管算法如何优化,精准排序,丢弃相关的 chunk 就意味着丢失完整语义的风险,这是一个无解的问题。 三、无解的本质。 RAG 无法突破文档体量与查询复杂度的矛盾,说到底,RAG 的第三重困境源于它从一开始就误解了文档超限的本质。 用户本地文档超限,如100万字,核心矛盾不是如何筛选 chunk,而是如何在有限上下文内完整承载用户复杂需求对应的所有关键信息。 RAG 试图用单向量检索解决这个矛盾,却忽略了一个关键事实。 当用户需求复杂度、长输入与文档体量、多模块同时增加时,精准筛选少量 chunk 本身就是一个伪命题。 比如某金融公司有500万字的信贷风控手册,涵盖个人信贷、企业信贷、抵押评估、逾期处理等10个模块。 用户输入一个涵盖3个模块的长查询,即便 RAG 能精准匹配每个模块的5个关键 chunk,总文本量也会达到7500字。 若用户查询再涵盖5个模块,文本量会直接突破一、两万字。 这还未算上用户自身的长查询文本,最终即可能逼近或超出128K上限。 这种需求复杂度与文档体量的正相关,决定了 RAG 的解决方案从根源上就不成立。 它既无法让用户简化需求,实际业务中需求本就复杂,又无法让文档缩减体量,企业文档需完整记录规则,只能在匹配过多超限与截断丢弃信息之间反复妥协,最终永远无法实现精准完整不超限的核心目标。第四部分,破局之路。 用完整上下文压缩替代 Rag 的折中困局。 当 Rag 技术在语义分块割裂、匹配过载的三重困境中进退维谷时,真正的解决方案其实早已跳出检索筛选的思维定势。 对文档体量在百万字以内的中小公司而言, Deepseek OCR 的图片化压缩技术,能直接将完整文档压缩至大模型上下文,如128K范围内。 用全量知识输入替代碎片化检索,从根源上规避 RAG 的所有缺陷。 这种方案的核心逻辑简单且彻底,无需拆分文档、无需向量检索、无需担心语义割裂。 先将百万字的内部文档,如全套差旅费报销规则 金融信贷风控手册转化为图片格式,再通过 OCR 压缩技术实现10倍以上的 Token 压缩。 百万字文档压缩后约100~150K。 Token 恰好适配当前主流大模型的128K256K上下文窗口。 用户无论输入短查询,自驾出差油费怎么报,还是长查询,带新员工团队出差的审批、加报销、加核算流程,大模型都能直接读取完整文档,在全量知识的基础上生成回答。 既无需担心分块割裂导致的例外条款丢失,也无需面对匹配过载超限的妥协,更不会出现单向量压缩导致的语义丢失。 对比 RAG 的折衷与妥协,这种完整压缩输入方案的优势堪称碾压。 对强结构文本,如诗词、规章制度,它能保留全文完整性,不会出现静夜思只显前两句,报销例外条款被拆分的荒诞情况。 对复杂长查询,它无需通过单向量匹配筛选 check,大模型可直接在完整文档中定位所有相关信息。 既不会遗漏子问题,也不会因匹配过多超限。 对效率与成本,它无需重复编码,仅需一次压缩,无需维护向量数据库,既降低了技术复杂度, 又减少了模型调用成本,完全规避 RAG 慢且贵的短板。 说到底,RAG 技术的所有问题,本质都是在文档超限与知识完整之间找折中的必然结果。 而 Deepseek OCR 的方案直接打破了这个折中困境,当完整文档能被压缩至上下文窗口内时,检索筛选就成了多余的步骤,RAG 的所有缺陷也随之失去了存在的土壤。 对多数中小公司而言,这不是替代方案,而是唯一能真正解决问题的方案。 结尾, RAG 的神话该醒了。 纵观 RAG 技术的发展,它更像是大模型上下文有限时代的过渡产物,因无法实现完整文档输入,被迫用检索筛选的折中方案弥补短板,却在技术落地中暴露了重重缺陷,伪语义方案是骗局。 真语义方案是慢且错的双输,长输入处理更是无解的困局。 对中小公司而言,与其耗费精力维护向量数据库、调试分块策略、承受错误输出的风险,不如回归问题本质。 当完整文档能通过 Deepseek OCR 这类技术压缩至上下文窗口内时,Rag 的所有努力都失去了意义。 技术的价值在于解决问题,而非制造新的复杂。 RAG 的羽翼神话该醒了,真正有价值的方案,从来不是在困境中妥协,而是直接打破困境。
back to top