探索大模型技术及其前沿应用——TextIn文档解析技术

2024-06-04 13:36

本文主要是介绍探索大模型技术及其前沿应用——TextIn文档解析技术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

        中国图象图形大会(CCIG 2024)于近期在西安召开,此次大会将面向开放创新、交叉融合的发展趋势,为图像图形相关领域的专家学者和产业界同仁,搭建一个展示创新成果、展望未来发展,集高度、深度、广度三位于一体的交流平台。大会期间,合合信息智能创新事业部研发总监常扬做了《文档解析技术加速大模型训练与应用》主题报告,介绍了TextIn文档解析技术的技术特征。下面为大家分享一下这次报告的主要内容。

发展现状

        目前大模型训练和应用过程中面临训练Token耗尽、训练语料质量要求高、LLM文档问答应用中文档解析不精准的问题。目前互联网能够提供的语料资源预计将在2026年耗尽,提升大模型应用效果需要更多更高质量的语料。同时文档类语料(chart-pdf或chart-excel等)识别精度很差,严重影响模型应用效果。

        而目前提高大模型训练效果最佳场景集中于书籍、论文等文档中,而它们往往都是PDF格式,甚至是图片扫描件。我们再训练时需要对这些文档进行文档格式识别、图表内容及标题提取、版面正确解析、阅读顺序处理的转换,同时要确保转换速度足够快。比如下面这个gpt阅读文档的例子:

 在这个例子中,由于文章包含一个非标准的列表,使得大模型没有识别到内容。

        这个例子中,由于双栏排版使得大模型识别到了错误的内容。这些例子都说明目前迫切需要一个具备多文档元素识别、版面分析、高性能的文档解析技术,并将其应用在大模型的准备过程中。

技术难点

        由于文档版式多样,模型很难有一个统一的处理方式。比如下面的一些例子:

在这个例子中,页眉的形式多种多样,没有统一的格式。

这个例子中表格和多栏排版混合为文档解析增加了困难。

这个例子中无线表格和合并单元格会使得文字无法定位。

        这个例子中,公式的出现阻碍了文字信息的识别和提取。

        在这些例子里,我们观察到有元素遮盖、重叠,元素(页眉页脚等)有多样性;版式(双栏、跨页、三栏)造成的阅读顺序差异,多栏中插入表格的影响,无线表格以及单元格合并拆分带来的识别困难,单行公式、行内公式以及表格内公式的影响等等一些问题。

TextIn文档解析技术

        针对上面的问题,合合信息研发了TextIn文档解析技术,它专注于处理电子档、扫描件。在识别到文档类型后会提取其中的文字,之后基于合合信息多年的技术积累,对文档进行物理和逻辑版面分析。整个处理流程如下:

        首先将各种类型的文档进行多页拆分,之后按照文档类型进行对应的预处理,然后提取文档数据,整合为通用文档文字信息。之后再对文档进行物理版面分析以及逻辑版面分析,将其与文字信息合并为一个通用文档层级信息。最后依据模型训练需求,将结果转换为指定的格式。

核心技术

        TextIn的核心技术选用了业界领先的模块,旨在实现高精度的文档解析效果。这些模块涵盖了文档图像预处理算法、版面分析算法框架以及逻辑版面分析算法,具体功能如下:

        文档图像预处理算法包括区域提取、干扰去除、形变矫正、图像恢复和图像增强等模块。这些模块的主要任务是提升文字信息提取的准确性和效率。

        区域提取可以识别并提取出文档中具有文字信息的区域,确保后续处理聚焦在有用的部分。

        形变矫正通过分析形变文档的偏移场,将其矫正为正常的图像,并利用附近的像素点填充缺失部分,确保图像的完整性。

        图像恢复和图像增强则进一步优化图像质量,使得文字信息更加清晰和易于识别。图像文档干扰去除算法使用U2net卷积提取出图像的背景,然后通过cab技术去除干扰,得到一个更高质量的图像。

         版面分析算法框架分为物理版面分析和逻辑版面分析两个主要模块。物理版面分析侧重于视觉特征,识别文档中的各个元素,将相关性高的文字聚合到一个区域,这一过程主要关注文档的视觉布局和结构。逻辑版面分析则侧重于语义特征,聚焦于文档结构,其主要任务是通过语义建模将不同的文字块形成层次结构,例如通过树状结构展示文档的语义层次关系。检测模型选用了单阶段的检测模型,关注小规模数据和模型的调优,以提升识别精度

        文档布局分析将文档转换为标准的“页-节-段-切片”层次化布局,有助于系统更高效地处理文档内容。

        大模型在工作时,先定位目标页面,再寻找相关切片,从而提高运行速度和精度。逻辑版面分析算法通过预测每个段落与上一个段落的关系,将其分为子标题、子段落、合并、旁系、主标题、表格标题等类型。如果是旁系类型,则继续向上查找父节点,并判断其层级关系,直至找到最终的父节点。

        通过这一系列技术,TextIn在文档解析工作上展现了卓越的效果。

        此外,在与生成式模型的配合应用上,TextIn同样表现出色,进一步提升了文档解析和处理的整体性能。

技术解析

DocUNet网络

DocUNet模型可以捕获文档级RE的三元组之间的本地上下文信息和全局相互依赖性,将文档级RE表述为语义分割。具体来说,用一个编码器模块来捕获实体的上下文信息,并引用一个U形分割模块来捕获图像样式特征图上的三元组之间的全局相互依赖性。它的主要步骤是:首先通过一个编码器提取输入图像的特征,然后计算相关性并传入U形分割模块进行预测,最后通过损失函数调整结果,进行分类。

U2Net网络

        U2net是一种用于图像分割的神经网络模型。它的网络结构为大型的U-net结构的每一个block里面也为U-net结构。其中Block总共分两种,一种是Encoder1-4以及Decoder1-4,另一种是Encoder5-6和Decoder5。

        第一种block在Encoder阶段,每通过一个block后都会通过最大池化层下采样2倍,在Decoder阶段,通过每一个block前都会用双线性插值进行上采样。如下图,绿色代表卷积+BN+ReLU,蓝色代表下采样+卷积+BN+ReLU,紫色代表上采样+卷积+BN+ReLU,在RSU-7中下采样了5次,也即把输入特征图下采样了32倍,同样在Decoder阶段上采样了32倍还原为原始图像大小。

         第二种block是RSU-4F主要是在RSU-4的基础上,将下采样和上采样换成了膨胀卷积,整个过程中特征图大小不变。

        

        在每个block工作完成后,将每个阶段的特征图进行融合,并对他们做3*3的卷积,卷积核个数为1,再用线性插值进行上采样恢复到原图大小,进行concat拼接,使用sigmoid函数输出最终分割结果。

Transformer模型

        Transformer模型是近年大火的模型。它由多个编码器和解码器块堆叠构成,每个块包括两个子层:多头自注意力层和全连接前馈层。每个子层后增加了一个残差连接,并进行层归一化操作。

        多头自注意力层包含若干自注意力层。自注意力层使用权重矩阵得到查询向量Q、键向量K和值向量V,带入公式即可得到输出,最终的输出即为前馈神经网络的输入。全连接前馈层包括一个两层的全连接网络和一个非线性激活函数。

        残差连接与归一化层的引入可以解决梯度消失的问题。残差连接需要输入和输出的维度相同,此处将输出维度设置成 . 归一化将每一层神经元的输入都转成均值方差都一样的,可以加快收敛。

        解码器相比编码器增加了一个多他自注意力层,并采用了掩码操作,目的是防止Q去对序列中尚未解码的位置施加操作。解码器输出结果经过线性连接后,由一个Softmax层计算预测值。

体验TextIn文本解析Demo

        TextIn的官网上提供了一个对给定的句子列表进行向量化,并计算句子之间的相似度的案例。下面是详细步骤:

        首先我们定义一个包含两个句子的列表 sentences。

sentences = ["数据1", "数据2"]

之后使用 'acge_text_embedding' 预训练模型初始化 SentenceTransformer 对象,并将其赋值给 model 变量。

model = SentenceTransformer('acge_text_embedding')

        接下来使用 model.encode() 方法对 sentences 列表中的句子进行向量化,得到两组嵌入向量 embeddings_1 和 embeddings_2。设置参数normalize_embeddings为True,表示归一化这些向量,使其长度为1。

embeddings_1 = model.encode(sentences, normalize_embeddings=True)
embeddings_2 = model.encode(sentences, normalize_embeddings=True)

        最后计算两组向量 embeddings_1 和 embeddings_2 之间的相似度。@ 符号表示矩阵乘法,embeddings_2.T 表示 embeddings_2 的转置矩阵。这将得到一个相似度矩阵 similarity,其中 similarity[i][j] 表示 sentences[i] 和 sentences[j] 之间的余弦相似度。

similarity = embeddings_1 @ embeddings_2.T

完整代码如下:

from sentence_transformers import SentenceTransformersentences = ["数据1", "数据2"]
model = SentenceTransformer('acge_text_embedding')
print(model.max_seq_length)
embeddings_1 = model.encode(sentences, normalize_embeddings=True)
embeddings_2 = model.encode(sentences, normalize_embeddings=True)
similarity = embeddings_1 @ embeddings_2.T
print(similarity)

总结

上海合合信息科技股份有限公司通过其智能文字识别技术TextIn文档解析在电子档解析和扫描档识别领域表现出色,保证了准确识别且不漏检、不错检。该技术在处理无线表、跨页表格、页眉、页脚、公式、图像、印章、流程图、目录树等元素方面非常出色。此外,TextIn文档解析已经适配云服务集群,在云服务方面综合体验良好,速度快、服务稳定,能够实现100页PDF解析工作最快1.46秒。上海合合信息科技股份有限公司还致力于为全球企业和个人用户提供创新的数字化、智能化服务,其开发的C端产品全球累计用户下载超过23亿,月活跃用户约1.3亿,其中名片全能王和扫描全能王免费版在App Store排行榜上名列前茅。

这篇关于探索大模型技术及其前沿应用——TextIn文档解析技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1030228

相关文章

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

pip install jupyterlab失败的原因问题及探索

《pipinstalljupyterlab失败的原因问题及探索》在学习Yolo模型时,尝试安装JupyterLab但遇到错误,错误提示缺少Rust和Cargo编译环境,因为pywinpty包需要它... 目录背景问题解决方案总结背景最近在学习Yolo模型,然后其中要下载jupyter(有点LSVmu像一个

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus

MySQL 缓存机制与架构解析(最新推荐)

《MySQL缓存机制与架构解析(最新推荐)》本文详细介绍了MySQL的缓存机制和整体架构,包括一级缓存(InnoDBBufferPool)和二级缓存(QueryCache),文章还探讨了SQL... 目录一、mysql缓存机制概述二、MySQL整体架构三、SQL查询执行全流程四、MySQL 8.0为何移除查

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee