说实话,你们觉得 RAG 真的好使吗?这种情况应该怎么优化? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
wingor2015

说实话,你们觉得 RAG 真的好使吗?这种情况应该怎么优化?

  •  
  •   wingor2015 Mar 2 1304 views
    This topic created in 58 days ago, the information mentioned may be changed or developed.

    尝试了使用 Langchain 和其他几种开源的方案搭建 RAG 系统,效果都感觉差强人意。比如我有一个关于消防安全的制度文档,我想检索发生消防安全事故时的处置流程,用了混合检索和 rerank ,还是会检索到其他跟消防安全事故相关,但不是处置流程的分片。即使是找到了最准确的分片,但是因为分片的前面部分还包含了是消防安全但不是处置流程的其他内容,到了 LLM 这里,LLM 全都一股脑的把分片里的所有内容都拼成答案输出出来了。

    14 replies    2026-03-03 17:37:40 +08:00
    liu731
        1
    liu731  
    PRO
       Mar 2
    用的什么模型 rerank+embedding?

    有考虑 RAG 后用大模型再筛选一遍跑题元素吗?
    wingor2015
        2
    wingor2015  
    OP
       Mar 2
    rerank+embedding 都是用的 BGE 。有考虑 RAG 后用大模型再筛选一遍跑题元素吗?---没有试过呢,有效果吗?
    liu731
        3
    liu731  
    PRO
       Mar 2
    @wingor2015 换 Qwen/Qwen3-Reranker-8B + Qwen/Qwen3-Embedding-8B 。不行再加处理跑题环节。
    cowcomic
        4
    cowcomic  
       Mar 2
    分片加到提示词里面的时候有做间隔的处理么?让 LLM 知道这是不同的分片
    另外可以加上每个分片的文章标题,让大模型理解你的片段是哪儿来的,是不是跟问题相关
    类似

    <chunk>
    <title>
    xxxx
    </title>
    <content>
    xxxx
    </content>
    </chunk>

    另外,如果你的文档有比较好的文档格式,可以考虑带着文档的标题,一级标题,二级标题,转换成 markdown 的形式,让 LLM 理解内部每个段落都是哪个标题下的
    72
        5
    72  
       Mar 2
    可以了解一下这个试试:
    Agentic RAG (代理式检索增强生成)可以理解为传统 RAG 的进阶版。

    简单来说,它不再是“问一句、查一次、生成答案”的直线流程,而是引入了一个 AI 智能体( Agent ) 作为“总指挥”。
    这个智能体会根据你的问题,自主规划需要做什么:
    它可以决定调用哪个工具(是搜百度文库、查数据库还是看网页)。
    它可以决定查几次(如果一个关键词搜不到,就换个关键词再搜)。
    它还能处理多步推理的问题(比如“先帮我查北京今天的天气,再根据天气推荐一家附近的火锅店”)。

    用一句话总结:
    传统 RAG 是被动的资料员(你问什么,给你找什么); Agentic RAG 是主动的研究员(它理解你的意图,自己想办法找资料,甚至做分析和总结)。
    wingor2015
        6
    wingor2015  
    OP
       Mar 2
    @liu731 #3 THK ,回头试试
    wingor2015
        7
    wingor2015  
    OP
       Mar 2
    @cowcomic THK 。没有做间隔,我加一下试试。 我也觉得标题的信息很重要,想做完全基于各级标题来的分片,检索的时候优先看标题的匹配度再匹配 content ,不知道是否可行
    wingor2015
        8
    wingor2015  
    OP
       Mar 2
    @72 感觉跟我遇到的问题不是太匹配
    cowcomic
        9
    cowcomic  
       Mar 2
    @wingor2015 完全可以,看你的描述,文档基本都是公文,标题之类的都很规范,可以把内容做个摘要跟标题放一起,再跟标题+正文做个父子文档
    kulove
        10
    kulove  
       Mar 2 via Android
    rag 现在就没做的好的 应该迟早被淘汰
    72
        11
    72  
       Mar 3
    @wingor2015 差不多的 做一份知识文件的清洗和摘要 sitemap (比如什么文件里面有什么东西,作用是什么),然后给 ai 自己去用工具检索(提供对应文件标识、检索关键词)就好了,检索后 ai 再对结果复核看能不能满足要求,不能就再修改关键字检索,比起依靠用向量捞分片,这个还靠谱些。

    但是处理起来比较麻烦,比如 sitemap 怎么才会让 llm 有清晰的理解,检索工具内部如何实现才更好(多级检索/混合检索)、知识库文档怎么处理更好等等问题。

    这个做出来后相当于是有一个 agent 替代原 rag 的 llm ,他可以反复优化关键词、检索并复核答案是否能满足需求,如果一句话存在多个问题,提示词调整好的情况下,可以达到一次性回答多个问题的能力。
    wingor2015
        12
    wingor2015  
    OP
       Mar 3
    @cowcomic #9 好的,我试试
    wingor2015
        13
    wingor2015  
    OP
       Mar 3
    @72 #11 嗯,学习了
    WithoutSugarMiao
        14
    WithoutSugarMiao  
       Mar 3
    来了来了来了,从描述的情况来看,我感觉不是召回阶段的问题。

    可以考虑在分块阶段优化一下,改成语义分块。判断后一句话和前一句话的相似度,从 0~1,为完全不想干与特别相干。设定一个阈值,当两句话分数相差超过阈值,既作为一个分块。这种分块方式可以让不同的语义分得更清楚。

    在处理用户问题的时候,加入意图识别,准确识别意图,你想检索的是处置流程的分片,而不是消防安全事故相关。

    以我的使用体验来看,现代模型准确识别出“想要的是处置流程的分片” 这一需求,不是难事。

    另外,不行换好点的模型,国内用 deepseek 最新的。
    About     Help     Advertise     Blog     API     FAQ     Solana     1249 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 39ms UTC 23:38 PVG 07:38 LAX 16:38 JFK 19:38
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86