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

137 天前
 elza

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

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

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

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

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

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

简言之,对计算资源的消耗要有心理准备,但值得一试。
GrayXu
137 天前
只是 llm 提取成 q&a 的话,细节会丢失很多(参考 fastgpt 的实现)。
现在最优解应该还是 graphrag 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1063490

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX