探索大模型技术及其前沿应用——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 SentenceTransformer
 
sentences = ["数据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排行榜上名列前茅。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/677694.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

劳动仲裁避坑指南(收集证据仲裁流程)

前言: 常在河边走,哪能不挨刀。 在大环境不好的滚滚洪流中,老实的IT打工人,一波波的被裁员。随时准备一些材料,特附上准备清单。 参考一些资料:2023年A股上市公司,裁员榜:1、 中国…

el-table动态配置显示表头

在实际工作中,会遇到动态配置e-table表头的情况,如下方法可以实现: // 要展示的列 column: [{prop: name, name: 名称 }, {prop: age, name: 年龄 }, {prop: sex, name: 性别 }, {prop: address, name: 地址 }, {prop: city, name: 城市 }]…

UFS协议—新手快速入门(二)【5-6】

目录 五、UFS协议栈 六、UFS技术演进与详解 1、UFS应用层 设备管理器 任务管理器 2、UFS传输层 3、UFS互联层 UFS协议—新手快速入门(一)【1-4】 五、UFS协议栈 UFS(Universal Flash Storage)协议是针对固态存储设备&…

【面试干货】 非关系型数据库(NoSQL)与 关系型数据库(RDBMS)的比较

【面试干货】 非关系型数据库(NoSQL)与 关系型数据库(RDBMS)的比较 一、引言二、非关系型数据库(NoSQL)2.1 优势 三、关系型数据库(RDBMS)3.1 优势 四、结论 💖The Begin…

深圳比创达|EMC与EMI测试整改:确保设备电磁兼容性的关键步骤

在当今电子产品日益普及的时代,电磁兼容性(EMC)已成为产品设计、制造和测试过程中不可忽视的重要环节。EMC问题不仅影响设备的正常运行,还可能对周围环境和其他设备产生干扰。因此,进行EMC与EMI(电磁干扰&a…

【python】修改目标检测的xml标签(VOC)类别名

需求: 在集成多个数据集一同训练时,可能会存在不同数据集针对同一种目标有不同的类名,可以通过python脚本修改数据内的类名映射,实现统一数据集标签名的目的。 代码: # -*- coding: utf-8 -*- # Time : 2023/9/11 1…

EE trade:通缩下什么最保值

通缩,即物价水平总体持续下降的现象,会对经济和投资产生深远影响。在通缩环境下,持有的资产类型和策略需要做出相应调整,以确保资产的保值和增值。以下是几类在通缩环境下通常最保值的资产及其原因: 1. 现金和现金等价…

二十三、 企业可能涉及的数据跨境传输场景有哪些?

(一)人力资源数据出境场景 1. 公司招聘(应聘者个人信息出境) 以外企为例,在公司招聘的过程中,可能被认定为涉及数据出境的典型场景如下: a) 境外总部企业官网统一招聘员工,由应聘…

高校实验室危险化学品及重大危险源安全管理系统

高校实验室危险化学品及重大危险源安全管理的重要性: 保障师生安全:通过严格管理,可以有效地降低这些风险,确保师生在实验室内的安全。 确保实验教学质量:良好的危化品管理能够确保实验材料的准确性和可靠性&#xff0…

从0开始学人工智能测试节选:Spark -- 结构化数据领域中测试人员的万金油技术(三)

分布式计算原理 分布式计算的原理总结一句话就是:分而治之。 把数据分片,存在不同的机器中,解决数据存储的压力。客户端和服务端之间通过相关协议来自动的完成在不同的机器之间进行数据的存取,用户并不感知数据的物理存储结构。 用…

【赠书活动】好书推荐—《详解51种企业应用架构模式》

导读: 企业应用包括哪些?它们又分别有哪些架构模式?世界著名软件开发大师Martin Fowler给你答案。 01 什么是企业应用 我的职业生涯专注于企业应用,因此,这里所谈及的模式也都是关于企业应用的。(企业应用…

在QML中调用 C++ 函数的方法(四)

文章目录 前言一、qml 和 c++ 交互的官方文档介绍二、QML 中调用 C++ 实现的函数的方法1. Exposing Attributes of C++ Types to QML1.1 暴露 Properties1.2 暴露 Methods(槽函数和Q_INVOKABLE 修饰的函数)1.3 暴露 Signals2. Defining QML Types from C++3. 代码实例3.1 创建一…

基因分析平台开发1 - Layui WebUI组件库快速地构建网页界面

介绍一个Web UI库,可快速实现基因分析平台前端部分的开发,借助帮助文档,快速实现自己想要效果。 1. Layui 简介 Layui 是一套免费的开源 Web UI 组件库,可用于更简单快速地构建网页界面,全部主流 Web 浏览器&#xf…

Springboot JVM监控 通过Promethus

Springboot内置了对Prometheus得支持,可以监测得点有: JVM各指标参数(GC,堆,非堆等)接口调用次数,延时系统内存,IO,CPU使用率 部署Prometheus和Grafana 准备一台2核4G…

抖音小店有哪些违规处罚?18处扣钱违规,商家赶紧收藏!

哈喽~我是电商月月 做抖音小店的商家最怕的事情就是店铺违规处罚了,那你们知道抖音小店的违规处罚都有哪些吗? 今天月月就给大家一次性讲清楚,抖店运营中包含的违规条例吧: 一.商品违规 1. 滥发信息:不贩卖违规的…

浅谈配置元件之计数器

浅谈配置元件之计数器 JMeter 的计数器(Counter)是一个非常实用的配置元件,它允许你在测试计划中生成并递增一个序列号或计数器。这对于需要在请求中包含唯一标识符、序列号或是进行循环控制等场景非常有用。下面是一份详细的使用指南&#…

js每日十题(二)

1. 6.3 js第6题 以下结语句中,返回true的是? A !![] B 1’1’ C nullundefined D !!’’ 答: A选项,由于数组属于对象类型,所以空的数组转换成布尔型是true,前置!!,两次取…

BLE芯片DA145XX系列:配置SDK支持多连接

Dialog的DA145XX系列BLE芯片可以配置允许多连接,需要修改SDK,下面主要说明如何实现多连接配置。 1、新增宏定义:__EXCLUDE_ROM_APP_TASK__ 用于取消ROM里关于APP部分函数的调用,改为使用自定义的函数 2、部分宏定义(DA…

人工智能专业现代学徒制人才培养质量评价体系构建

一、 引 言 随着信息时代的发展,人工智能(AI)技术的飞跃进步对各行各业产生了深远影响,对专业人才的培养提出了更高要求。现代学徒制作为一种创新人才培养模式,通过校企合作,强调理论与实践的深度结合&…

Nexus3(nexus-3.19.1-01)忘记管理员密码

1、停服 ./nexus stop 2、进入OrientDB控制台: cd /apply/nexus3/nexus-3.42.0-01/lib/support/ java -jar ./nexus-orient-console.jar 3、在控制台执行: connect plocal:/apply/nexus3/sonatype-work/nexus3/db/security admin admin 4、重置密码…