V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wingor2015
V2EX  ›  人工智能

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

  •  
  •   wingor2015 · 3 天前 · 568 次点击

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

    14 条回复    2026-03-03 17:37:40 +08:00
    liu731
        1
    liu731  
    PRO
       3 天前
    用的什么模型 rerank+embedding?

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

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

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

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

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

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

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

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

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

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

    另外,不行换好点的模型,国内用 deepseek 最新的。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5575 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 08:49 · PVG 16:49 · LAX 00:49 · JFK 03:49
    ♥ Do have faith in what you're doing.