AI知识库 AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


再谈RAG范式的2个问题:文档解析流程的具象化理解及语义分割方案
浏览次数: 1541

今天是2024年5月8日,星期三,北京,天气晴。

今天我们来看看2个问题,一个是再看RAG中文档解析流程的具象化理解,理解下文档处理中几个模块的输入输出;另一个是现在的语义分割模型,这种思路很依赖于场景标注数据集。

供大家一起参考并思考。

问题1:再看RAG中文档解析流程的具象化理解

《A Method for Parsing and Vectorization of Semi-structuredData used in Retrieval Augmented Generation》(https://arxiv.org/pdf/2405.03989)这个实验报告其中提到的针对半结构化文本的具象化理解,可以看看,加深印象。

1、整个的实现流程

在解析过程中,利用目标检测系统detectron2(https://unstructured-io.github.io/unstructured/platform.html),将.docx文件划分为多个元素,包括标题、文本、图像、表格、页眉和页脚。细化过程只保留了四个核心元素:“标题”、“文本”、“图像”和“表格”,对于“Table”元素,核心文本信息保留在元素的“text属性”中。

2、关于图表部分的处理

对于“图像”元素,利用“gpt-4-vision-preview”API,生成特定查询,提示GPT提供图像的详细文本描述,取代图像最初占据的位置。

3、关于表格部分的处理

为了表格的格式保真度,存储了其HTML表示,可以具象化如下:

这类数据也可以转成html格式进行渲染

实际上,当前的许多工具都已天然支持,例如llama_parse:https://docs.llamaindex.ai/en/stable/module_guides/loading/connector/llama_parse.html,以及ragflow(https://github.com/infiniflow/ragflow.git)

当然,当前也有一些开源工具集合:

问题2:RAG中的语义分割方案是什么

语义分割模型是当前进行chunk以及在缺少段落信息的场景下,我们所需要关注,langchain中内置的一些方案实际上很粗糙暴力切分。我们可以看看这个问题,一个具象化的结果如下:

有一些方案,例如,基于Cross Segment Attention的文本分割。例如,工作《Text Segmentation by Cross Segment Attention》(https://aclanthology.org/2020.emnlp-main.380.pdf)中提到了3种方案:

在跨段BERT模型(左侧)中,模型提供潜在段落断点周围的局部上下文:左侧k个标记和右侧k个标记。

在BERT+Bi-LSTM模型(中间)中,首先使用BERT模型对每个句子进行编码,然后将句子表示输入到一个Bi-LSTM中。

在分层BERT模型(右侧)中,首先使用BERT对每个句子进行编码,然后将输出的句子表示输入到另一个模型当中。

另外,也有一个开源项目SeqModel模型,用于文本切分,地址:nlp_bert_document-segmentation_chinese-base(https://modelscope.cn/models/damo/nlp_bert_document-segmentation_chinese-base/summary)可以进行调用。

from modelscope.outputs import OutputKeys
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
 
p = pipeline(
    task=Tasks.document_segmentation,
    model='damo/nlp_bert_document-segmentation_chinese-base')
 
result = p(documents='......')
print(result[OutputKeys.TEXT])

当然,效果并不是很好,如下一个badcase:

总结

本文主要谈了2个问题,一个是再看RAG中文档解析流程的具象化理解,一个是RAG中的语义分割方案是什么,后者实际上很依赖标注数据。

参考文献

1、https://blog.csdn.net/v_JULY_v/article/details/135386202

2、https://arxiv.org/pdf/2405.03989

关于我们

老刘,刘焕勇,NLP开源爱好者与践行者,主页:https://liuhuanyong.github.io。

老刘说NLP,将定期发布语言资源、工程实践、技术总结等内容,欢迎关注。

对于想加入更优质的知识图谱、事件图谱、大模型AIGC实践、相关分享的,可关注公众号,在后台菜单栏中点击会员社区->会员入群加入。


推荐新闻
RAG系列04:使用ReRank进行重排序
本文介绍了重排序的原理和两种主流的重排序方法:基于重排模型和基于 LLM。文章指出,重排序是对检索到的上下文进行再次筛选的过程,类似于排序过程中的粗排和精排。在检索增强生成中,精排的术语就叫重排序。文章还介绍了使用 Cohere 提供的在线模型、bge-reranker-base 和 bge-reranker-large 等开源模型以及 LLM 实现重排序的方法。最后,文章得出结论:使用重排模型的方法轻量级、开销较小;而使用 LLM 的方法在多个基准测试上表现良好,但成本较高,且只有在使用 ChatGPT 和 GPT-4 时表现良好,如使用其他开源模型,如 FLAN-T5 和 Vicuna-13B 时,其性能就不那么理想。因此,在实际项目中,需要做出特定的权衡。
LangGPT论文:面向大语言模型的自然语言编程框架(中文版)
大语言模型 (Large Language Models, LLMs) 在不同领域都表现出了优异的性能。然而,对于非AI专家来说,制定高质量的提示来引导 LLMs 是目前AI应用领域的一项重要挑战。
第三篇:要真正入门AI,OpenAI的官方Prompt工程指南肯定还不够,您必须了解的强大方法论和框架!!!
自从ChatGPT(全名:Chat Generative Pre-trained Transformer)于2022年11月30日发布以来,一个新兴的行业突然兴起,那就是提示工程(Prompt engineering),可谓如日冲天。从简单的文章扩写,到RAG,ChatGPT展现了前所未有的惊人能力。
(三)12个RAG痛点及其解决方案
痛点9:结构化数据QA 痛点10:从复杂 PDF 中提取数据 痛点11:后备模型 痛点12:LLM安全
(二)12个RAG痛点及其解决方案
痛点5:格式错误 痛点6:不正确的特异性 痛点7:不完整 痛点8:数据摄取可扩展性

联系我们

售前咨询
186 6662 7370
产品演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询