目录
- 前言
- 一、大模型训练和应用过程的关键环节面临的问题
- 1、数据
- 2、算力
- 3、语料
- 4、训练时间
- 5、模型规模与复杂度
- 6、部署和推理效率
- 7、安全和隐私
- 二、高精准、高效率的文档解析
- 三、文档解析技术难点
- 四、TextIn文档解析
- 1、算法Pipeline
- 2、文档图像预处理算法效果
- 3、版面分析算法框架
- 4、版面分析算法—物理版面分析与逻辑版面分析
- 5、版面分析算法 – 文档布局分析
- 6、版面分析算法 – 最近研究方向
- 7、逻辑版面分析算法
- 8、TextIn文档解析效果
- 最后
前言
大模型技术近年来已经成为推动人工智能技术革新的一个重要基础性技术,并对不同的科学研究和产业应用领域产生广泛的影响。中国图象图形(CCIG)学术论坛旨在推动计算机视觉、自然语言处理、基础科学研究及行业应用的跨界融合与技术发展,围绕大模型的最新技术进展、前沿应用及未来发展趋势进行深入探讨与交流。
2024 年5月24日-26日,在陕西省西安市成功召开了中国图象图形大会。会中,合合信息智能创新事业部研发总监常扬老师在会中着重介绍了文档解析过程中遇到的技术难点,比如文档元素识别(表格、段落、公式、标题)、上百页PDF转化速度问题、版面正确解析(双栏、三栏、文表混合)、阅读顺序还原以避免混乱语序等问题,为此合合信息研发出具备多文档元素识别、版面分析、高性能的TextIn文档解析技术,让我们一起来了解一下吧!
一、大模型训练和应用过程的关键环节面临的问题
大模型的训练和应用过程中需要面对诸多问题,比如数据、算力、语料、训练时间、模型规模和复杂度、部署合推理效率以及安全隐私等方面的问题,需要综合考虑这些因素并采取相应的措施来解决这些问题。
1、数据
获取大规模数据集可能是一项挑战,尤其是对于特定领域或任务的数据。这可能需要从多个来源收集数据,并确保数据的多样性和代表性。大规模数据往往包含噪音、错误或不一致的信息,因此需要进行数据清洗和预处理,以保证数据质量。存储大规模数据可能需要大量的存储空间和有效的数据管理系统来存储和访问数据。
2、算力
训练大型模型需要大量的计算资源,包括高性能的CPU、GPU或者TPU等。这些资源可能会产生高昂的成本,特别是在云服务上租用。为了加快训练速度,通常需要实施并行计算和分布式训练,以有效利用多个计算节点的计算能力。
3、语料
大规模模型的训练通常需要大量标注数据,这可能需要大量的人力资源和时间成本。同时,确保标注数据的质量和准确性也是一个挑战。语料中的样本可能不够全面或不够平衡,导致模型在某些方面缺乏泛化能力。因此,需要考虑如何处理数据样本偏差,以提高模型的性能。大模型需要大量高质量的数据来进行训练,而数据质量不佳或数量不足可能导致模型性能下降。此外,数据的偏斜也可能影响模型的泛化能力。
常扬老师在会中提到高质量的语料预计在2026年会被耗尽,然而现在的语料又遇到了下面的一些问题:
- 训练Token耗尽。一旦耗尽了可用的Token或资源配额,你将无法继续进行训练,导致中断或延迟。
- 训练语料质量要求高。大型语言模型对训练语料的质量要求很高。如果训练数据质量不佳,例如包含错误、不一致或偏差的数据,可能会导致模型学习到不准确或有偏见的知识。然而互联网的语料即将用完,所以希望大模型可以更加智能就需要更有高质量的语料
- LLM文档问答应用中文档解析不精准。在使用大型语言模型进行文档问答应用时,可能会遇到文档解析不精准的问题,无法正确理解或提取文档中的信息,导致回答不准确或不完整。像chatpdf、chatdoc这种文档类的问答实际上是大模型最早落地的应用,但是目前也发现,这些应用在进行文档解析时不够准确,存在比较多的问题 。
4、训练时间
大模型的训练通常需要较长的时间,从几天到数周甚至数月不等,这增加了开发周期和资源成本。
5、模型规模与复杂度
随着模型规模和复杂度的增加,模型的训练和部署变得更加困难。例如,大模型可能需要更复杂的优化算法和技术来进行训练,并且可能需要更多的内存来存储模型参数。
6、部署和推理效率
部署和推理效率:部署大模型可能面临推理效率低下的问题,特别是在资源有限的设备上,例如移动设备或边缘设备。因此,需要针对部署环境进行优化和压缩模型。
7、安全和隐私
大模型可能会存储大量敏感信息,因此需要采取一些安全和隐私保护措施来保护模型和数据的安全性。
二、高精准、高效率的文档解析
在大模型训练场景中,我们在使用完互联网和数据集的语料之后,会关注人类知识汇集的书籍、论文这些高质量的数据。这些数据无论是对它文档元素的识别,还是图表、公式、标题、版面的正确解析,都需要足够快的转化速度,同时又需要保证阅读顺序正确, 无论它是怎样的排版,都要以正确的顺序输送到大模型,然而此时就需要高精准、高效率的文档解析能力。可以从上面得知我们的诉求:
- 文档元素识别,表格、段落、公式、标题
- 版面正确解析,双栏、三栏、文表混合
- 转化速度快,上百页PDF
- 阅读顺序还原,避免混乱语序
常杨老师针对上面的诉求,列举了几个例子。比如这里上传一个pdf文档,然后询问ChatGPT4.0一个问题:根据文件内容,在本书的致谢环节,主要提到了哪4类感谢对象,可以看到GPT回答的跟PDF内容不一致,答案定位错误。
再上传一个pdf文件,询问ChatGPT4.0:根据所给文件,精氨酸在40度的水中,溶解度是多少,由下图可以看出,GPT回答的为100g/L,pdf文件中显示的是31.9,可见是对无线表的解析错误。
接下来继续上传一个pdf文档,继续向GPT提问:文中提到的OSA是什么意思,还是回答错误,其实就是字符编码解析的问题。
由上可见,在大模型应用的场景是非常需要上面提到的四大核心诉求的文档解析技术,所以希望能够研究出一个具备多文档元素解析、版面分析、高性能文档解析技术的产品是非常重要的。
三、文档解析技术难点
文档解析是一个很复杂的程序,会遇到很多问题,比如:
- 多样化的文档格式:文档可能以各种不同的格式存在,如PDF、Word、HTML、Markdown等,每种格式都有其特定的结构和语法,因此需要开发针对不同格式的解析引擎。
- 复杂的结构和布局:文档中的内容可能具有复杂的结构和布局,包括标题、段落、列表、表格、图像等,解析器需要能够正确地识别和提取这些结构化信息。
- 文本识别和光学字符识别(OCR):对于扫描或图像中的文档,需要进行文本识别或OCR来提取其中的文字内容,但这可能受到文档质量、字体、倾斜、噪声等因素的影响,导致识别准确率下降。
- 语言和编码的多样性:文档可能使用不同的自然语言和字符编码,需要解析器具备多语言支持和字符编码转换能力,以确保正确地解析和处理各种语言的文本。
- 文本语义理解:除了简单地提取文本内容外,还需要进行语义理解,理解文本中的上下文、语义关系和含义,这对于一些复杂的文档解析任务(如自然语言理解、信息抽取等)尤为重要。
- 性能和效率:对于大规模文档的解析,需要考虑解析器的性能和效率,尤其是在处理大量文档或大型文档时,需要确保解析速度和内存占用的合理性。
解决这些难点需要结合机器学习、自然语言处理、计算机视觉等技术,并不断优化和改进解析算法和模型。常杨老师列举了一些在文档解析时的技术难点。比如下图里左侧的会有印章遮盖、页眉会有不同的表现形式、复杂的版式(包括双栏、三栏、甚至跨页)。
多栏和多栏插入表格都会影响阅读顺序,下图中的序号是正确的阅读顺序,如果我们将错误的阅读顺序输送到大模型之中,那么训练质量就会大大降低。下图中右侧上面是多栏,中间是无线表,下面又是多栏,可见文档元素结构十分复杂,在文档解析时,这些复杂的结构增加了文档解析的技术难点。具体如下图所示:
无线表的识别又包括了合并单元格识别、单行公式与行内公式识别、表格里的公式识别,如下图所示:
四、TextIn文档解析
基于上述文档解析的核心诉求以及技术难点,合合信息突破技术障碍,研发出能够处理无线表、跨页表格、页眉、页脚、公式、图像、印章、流程图、目录树等文档内容的产品—TextIn文档解析,对于电子档和扫描档会先进行图片预处理和文字识别,随后将电子档、扫描档的电子信息进行物理的版面分析和逻辑版面分析。
1、算法Pipeline
在使用TextIn进行文档解析时,算法会进行三个部分的处理。
(1)将各种版式类型的电子档和扫描档先进行多页的拆分,然后我们会对其进行不同的判断。电子档进行电子档解析,而扫描档会进行图像的质量提升以及通用文档的识别引擎,最终整合为通用文档的文字信息,其实也就是比较熟知OCR所要做的内容。
(2)对通用文档文字信息进行物理性分析,比如对它的某个段落、表格、页眉页脚元素的分析 也会会对其进行逻辑分析,比如目录数分析,最终会整合成通用文档的层级信息。
(3)会根据最终我们应用的需要,转换成不同的形式。比如大模型应用需要将结果转换成markdown,再次编辑的需要转成word以及一些api/json的需要。
整个流水线如下图所示:
2、文档图像预处理算法效果
下图中左侧是一张有手印、有背景的弯曲的图,算法处理时会首先对其文档区域进行提取,然后手指去除、去摩尔纹、形变矫正、图像增强整个过程都是来自动化进行。
3、版面分析算法框架
文档解析之后提取文字属于OCR的过程,这里着重讲解一下版面分析是如何处理的,拿到通用文档文字信息之后会进行物理版面分析、逻辑版面分析。物理的版面分析会对页眉、页角、表格、图像、文字进行处理,逻辑版面分析能够分析出整个目录结构,
4、版面分析算法—物理版面分析与逻辑版面分析
物理版面分析:侧重于视觉特征。主要任务是把相关性高的文字聚合到一个区域,比如一个段落,一个表格等等。
物理版面分析 – 文档布局:选用目标检测,任务进行建模,使用基于回归的单阶段检测模型进行拟合,从而获得文档中各种各样的布局方式。
逻辑版面分析:侧重于语义特征。主要任务是把不同的文字块根据语义建模,比如通过语义的层次关系形成一个树状结构。
检测模型的发展:FasterRCNN/YOLO->(transformer)DETR/DINO在产业落地时,综合考虑任务难度和推理速度,我们选用:单阶段的检测模型,更多关注数据和模型小规模调优。
5、版面分析算法 – 文档布局分析
通过检测获得各个布局要素之后,我们可以建立文档的布局关系。例如,一个双栏的节(section)通常包括两个栏(column)。
下表为各层级的概念。
层级 | 概念 |
---|---|
page层级 | 页 (page) |
section层级 | 节(section)、栏(column) |
paragraph层级 | 段落(paragraph)、列表(list)、表格(table)、图片(image) |
run层级 | 切片(run) |
6、版面分析算法 – 最近研究方向
在研究版面分析的过程中发现,真实世界的文档有着极为丰富的布局类型,没法单纯地用单栏,双栏、三栏等类别去定义。例如左边列举的,目录,报纸,试卷等。所以判别式的技术路线,可以处理好大部分的文档,还无法真正对真实世界中各式各样的文档进行良好的版面分析。近年来的开放词汇目标检测(OVD),视觉语义对齐(Alignment)等工作,以及生成式模型等前沿进展,都会给版面分析带来新的研究思路。
7、逻辑版面分析算法
逻辑版面分析的主要逻辑是预测每个段落和上一个段落的关系,分为子标题、子段落、合并、旁系、主标题、表格标题,如果是旁系类型,则再往上找父节点,并判断其层级关系,直到找到最终的父节点。其中算法核心为:通过Transformer架构,预测旁系类型与父子类型。
8、TextIn文档解析效果
下图为TextIn文档解析效果,左侧是一个上面是单栏、下面为双栏的pdf文档,右侧为TextIn解析之后的文档效果。
下图左侧为一个不规则的一个双栏,左边大概占据2/3,右边大概占据1/3,并且右边是表格。可以看到分析结果十分明显,并且分析结果表格里的内容跟原文章无差异。
下图左侧为上面双栏、中间两个无线表、下面两个双栏,如果在大模型训练中,我们只需要获取表格中的数据,是完全可以精准获取的。
在上文中我们直接让ChatGPT4.0针对上传的pdf文件回答问题,GPT是回答错误的,那么这里将pdf进行文档分析之后txt形式,然后上传让GPT回答,可以看到此时,GPT回答的答案是正确的,跟原始的pdf文件里的数据一模一样。
接下来对其他两次问答也做一个比较,可见在使用TextIn文档解析之后,GPT回答的准确性提高到了100%.
最后
文档解析技术在大型模型应用中扮演着重要角色,它有助于模型更全面地理解用户输入、提取关键信息和结构化数据,使模型更加深入地分析输入内容,从而提高应用的准确性。此外,文档解析技术还能优化模型的训练和应用性能,通过有效地处理文档信息,加快模型训练速度,提高模型的泛化能力。这种技术应用为大型模型的快速发展和广泛应用提供了有力支持,使其能够更好地适应各种复杂任务和应用场景,为用户提供更高效、更智能的服务。
TextIn文档解析由合合信息旗下开发的一款智能文字识别产品,旨在为开发者提供更多可能性,能够处理多栏、无线表、跨页表格、页眉、页脚、公式、图像、印章、流程图等复杂内容,充分赋能大语言模型的文档问答和数据清洗。合合信息深耕智能文字识别以及商业大数据领域,结合模式识别、图像处理、神经网络、深度学习、NLP打造智能文字识别服务平台,深受全球用户的喜爱。未来期待可以看到合合信息更多的创新和应用,用技术方案服务更多的人群。