V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
elza
V2EX  ›  程序员

请教一个 RAG 相关的问题,求解惑

  •  
  •   elza · 137 天前 · 1373 次点击
    这是一个创建于 137 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近,在看一些 RAG 相关的内容,但在实操的时候发现生成的内容有些不尽人意。

    第一个想到的点就是提供的原始数据有问题。比如,直接上传一本 <斗破苍穹.txt> 的小说,然后进行文本 chunk ,接着就是后面的流程,但效果就是脏数据进,脏数据出。

    疑惑,是不是不应该直接使用原始数据,而是需要对数据进行处理。

    但是怎么进行处理呢,比如 <斗破苍穹.txt> 这个小说,是要人工的总结里面的内容变为 Q&A 这种问答型结构在存储到知识库里面(这样做是不是工程量太大),还是要怎么样。

    所以针对原始数据的数据清洗这一块要怎么做?清洗成什么样的结构给到知识库才能产生更好的效果。

    10 条回复    2024-08-08 15:24:10 +08:00
    cinlen
        1
    cinlen  
       137 天前
    现有流程是啥?分段 -> text embeding -> 向量数据库 -> rerank -> llm ?
    elza
        2
    elza  
    OP
       137 天前
    @cinlen 是的,现有的流程和你讲的差不多。但里面有很多细节。其中最重要的就是数据清洗这一块,直接决定了生成数据的质量。现在的问题是直接对原始数据进行分段,提问得到的效果并不好。怎么对原始数据进行清洗或者变换为某种结构,在进行分段会好一点呢?
    kneo
        3
    kneo  
       137 天前 via Android
    别抱太大期待。单纯基于 RAG 做通用问答系统,现状就是你说的“不尽人意”。
    SunnyRain
        4
    SunnyRain  
       137 天前
    换一个中文的 embedding 模型试试看
    elza
        5
    elza  
    OP
       137 天前
    @kneo 😭
    cinlen
        6
    cinlen  
       137 天前
    SunnyRain
        7
    SunnyRain  
       137 天前
    或者试试 GraphRAG ,我看官方给的例子跟你的需求差不多。GraphRAG 每一段 chunk 会有知识图谱关联,索引出来的内容关联性更高一些。
    elza
        8
    elza  
    OP
       137 天前
    @SunnyRain 感谢,我去看看
    yuhr123
        9
    yuhr123  
       137 天前
    GraphRAG 的关系图应该可以满足楼主的需要,只是这个东西对 embedding 的消耗会比较大,每次新增内容都会重新计算它与现有资源的关系。增长不是线性的,但 token 消耗量会有相对固定的模式。比如最近一次的消耗量是 50k token ,要新增一个 2000 字的文本文件,它也可能会有 50k 左右的消耗(主要取决于内容的关联度,不是一定的)。

    简言之,对计算资源的消耗要有心理准备,但值得一试。
    GrayXu
        10
    GrayXu  
       137 天前
    只是 llm 提取成 q&a 的话,细节会丢失很多(参考 fastgpt 的实现)。
    现在最优解应该还是 graphrag 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1013 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 20:25 · PVG 04:25 · LAX 12:25 · JFK 15:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.