合合TextIn - 大模型加速器
TextIn是合合信息旗下的智能文档处理平台,在智能文字识别领域深耕17年,致力于图像处理、模式识别、神经网络、深度学习、STR、NLP、知识图谱等人工智能领域研究。凭借行业领先的技术实力,为扫描全能王、名片全能王等智能文字识别产品提供强大的底层技术支持,并对企业、开发者、个人用户提供智能文字识别引擎、产品、云端服务。
立足AI时代,TextIn以深厚的技术积累为基础,接连推出通用文档解析、通用文本向量等技术,赋能大模型文档应用落地、RAG与Agent开发,成为大模型的“加速器”。
一、大模型训练与应用过程的挑战
在当前的大模型训练与应用过程中,我们面临着诸多关键环节的挑战,这些挑战直接影响着模型的性能和应用效果。
1. 训练Token耗尽
大模型训练所需的Token数量非常庞大,随着模型规模的不断扩大,Token的消耗量也呈指数级增长。例如,LLAMA2需要2万亿个Token,而GPT-4则需要高达13万亿个Token。这对计算资源和数据获取提出了极高的要求。如何在有限的资源下,高效获取并利用这些Token,是一个亟待解决的问题。
2. 高质量训练语料要求高
随着大模型的不断进化,对训练语料的质量要求也越来越高。传统的预训练数据集,如CommonCrawl、C4、Github、Wikipedia、StackExchange和Huggingface数据集,已经无法完全满足当前大模型的需求。因此,如何高效地获取更多高质量的数据,成为了一大挑战。
互联网数据、书籍、论文等PDF或扫描件是重要的潜在数据来源。然而,这些文档往往结构复杂,包含表格、段落、公式和标题等多种元素。准确识别和解析这些文档元素,并将其快速转化为训练数据,是确保数据质量的关键。具体的核心诉求包括:版面正确解析、阅读顺序还原、避免混乱语序等。
3. LLM RAG应用中文档解析不精确
在LLM RAG(检索增强生成)应用中,文档解析的准确性至关重要。不精确的文档解析会导致信息检索和生成内容的质量下降,从而影响实际应用效果。当前的解析技术在处理复杂文档结构时,仍存在一定的局限性,需要进一步的技术突破和优化。
二、计算机视角下的文档
在大模型训练和应用过程中,文档数据是非常重要的一环。为了更好地理解和处理这些文档,我们需要从计算机的视角来区分不同类型的文档。主要可以分为有标记文档和无标记文档两大类。每种文档类型都有其独特的特点和处理方法。
1. 有标记文档
有标记文档包括Word文档、Markdown文档和HTML文档等。这些文档具有明确的结构和标签,能够将文本组织成段落、单元格、表格等。计算机可以直接读取和解析这些文档,从而提取其中的有用信息。
示例:有标记文档的结构
以下是一个Markdown文档的示例:
## 有标记文档Markdown示例
### 第一部分
#### 子标题
|表格列1|表格列2|表格列3|
|--------|--------|--------|
|数据1 |数据2 |数据3 |
正文:有标记的文档能够被计算机直接读取和处理,从而提取结构化的信息。
由于有标记文档的结构清晰,计算机可以高效地进行处理。这对于大模型的训练和数据提取非常有利,因为可以确保数据的准确性和一致性。
2. 无标记文档
无标记文档包括扫描文档图像和部分PDF文档。这些文档没有存储任何结构信息,如表格或段落。计算机无法直接读取这些文档,需要通过光学字符识别(OCR)技术将图像转换为可读文本。这一过程可能会出现识别错误,影响数据的质量和准确性。
示例:无标记文档的结构
以下是一个PDF文档的示例:
%PDF-1.0
4 0 obj <</Length 65>>
stream
1. 0. 0. 1. 50. 700. cm
BT
/F0 36. Tf
(Hello, World!) Tj
ET
endstream
endobj
如上所示,PDF文档通常包含大量的低级别格式信息,计算机需要通过复杂的解析过程才能提取出有效的文本内容。这种无标记文档处理起来相对困难,需要更多的计算资源和时间。
3. 处理无标记文档的挑战
无标记文档的处理主要面临以下挑战:
- 结构识别困难:由于没有明确的标记,计算机需要通过复杂的算法来识别文档的结构,这可能会出现错误。
- 准确率低:OCR技术在处理复杂文档时,准确率可能不高,尤其是在处理包含表格、公式等复杂内容的文档时。
- 资源消耗大:无标记文档的处理需要大量的计算资源和时间,可能会影响大模型的训练效率。
三、文档解析典型技术难点
在智能文档技术的发展过程中,文档解析面临着许多技术难点。这些难点主要集中在如何准确地识别和处理文档中的复杂结构和内容。以下是一些典型的技术难点:
1. 单行公式与行内公式
在技术文档中,公式是常见的内容之一。公式可以是独立的一行(单行公式),也可以嵌入到文本中(行内公式)。对于计算机来说,准确识别这两种不同类型的公式,并正确地进行解析和转换,是一项复杂的任务。
2. 表格内公式
表格内公式是另一大挑战。在技术文档中,表格常用于组织和展示数据,其中也可能包含公式。解析表格内的公式需要同时处理表格结构和公式内容,确保数据的准确提取和转换。
3. 元素遮盖重叠
在文档扫描或图像中,常常会出现元素遮盖重叠的情况,例如印章、签名覆盖在文本或其他元素上。计算机需要具备识别和处理这些遮盖重叠元素的能力,确保被遮盖信息的完整性。
4. 元素多样性与复杂版式
文档中的元素多种多样,包括文本、图像、表格、公式等。不同文档的版式也千差万别,有的文档采用双栏、跨页甚至三栏的布局。解析这些复杂版式的文档,需要计算机具备高度的灵活性和准确性。
5. 表格识别技术难点
表格识别是文档解析中的一大难点,尤其是在处理复杂表格时。表格可能包含合并单元格、跨页表格、多栏表格等,这些情况都对表格识别技术提出了很高的要求。计算机需要准确地识别表格的边界、单元格内容和结构,并能够正确地重建这些信息。
四、TextIn文档解析算法
TextIn文档解析是一个高度复杂且功能强大的文档处理工具,专为处理各类电子文档和扫描件而设计。其核心目标是通过高级算法,将各种文档准确、快速地转换为结构化数据,以便进一步分析和应用。下面我们详细介绍TextIn文档解析的算法逻辑及其实现过程。
1. 算法框架概述
TextIn文档解析的算法框架主要包括以下几个核心步骤:
文档拆分(Doc Parser):
- 该步骤负责将输入的多页文档拆分为单独的页面,并进行初步的文档类型判断(电子档PDF或扫描档)。
- 对于电子档PDF,直接进入PDF解析模块;对于扫描档,先进行文档图像预处理,再进行文字识别。
版面分析(Layout Analysis):
- 物理版面分析:识别文档的物理布局,包括段落、表格、图像等元素的位置和大小。
- 逻辑版面分析:进一步解析文档的逻辑结构,如章节标题、段落间的关系等。
文档构建(Doc Construction):
- 该步骤将解析后的各类信息进行重组,生成结构化数据。输出格式可以是Markdown、Word、TXT、Excel、JSON等多种形式,满足不同应用场景的需求。
2. 文档图像预处理
对于扫描档的处理,文档图像预处理是一个重要步骤。主要包括以下几个方面:
- 图像去噪:去除图像中的噪点和干扰信息,提高后续识别的准确性。
- 图像增强:增强图像的对比度和清晰度,使文字和图像元素更加清晰。
- 倾斜校正:校正扫描过程中可能产生的图像倾斜,保证文字和表格的正常识别。
3. 文字识别
文字识别是将预处理后的图像转换为可编辑文本的关键步骤。TextIn使用先进的OCR(光学字符识别)技术,能够准确识别各种字体和语言的文本。文字识别过程包括字符检测、字符分类和文本重组三个主要步骤。
4. 物理版面分析
物理版面分析是对文档的视觉布局进行解析,识别文档中的各种元素,如文本块、表格、图像等。具体过程如下:
- 元素检测:检测文档中的各类元素,确定其位置和边界。
- 元素分类:将检测到的元素分类为不同类型,如段落、标题、表格、图像等。
- 元素组合:根据元素的位置和类型,组合成完整的文档版面结构。
5. 逻辑版面分析
逻辑版面分析是在物理版面分析的基础上,进一步解析文档的逻辑结构。
6. 输出内容构建
在完成版面分析后,TextIn将解析得到的信息进行重组,构建结构化的文档数据。输出内容的格式可以根据需求进行灵活调整,支持Markdown、Word、TXT、Excel、JSON等多种格式。
7. 算法优化和应用场景
TextIn文档解析系统不断优化算法,以提高解析速度和准确性。其广泛应用于金融、法律、教育、医疗等领域,为各行业提供高效的文档处理解决方案。
五、合合TextIn文档解析,赋能智能文档交互
随着大模型应用中文档智能交互在C端、B端各类场景的落地,用户对快速、准确的文档解析工具的需求逐渐升高。C端场景下,用户的常用功能包括:要求大模型根据上传文件完成知识问答,给出关联信息建议,以及提供专业性分析参考等。文件格式、类型的丰富性导致解析稳定性难以保证。而企业级应用对文档解析精度有更高的要求,企业自建知识库、RAG系统开发都要求高效稳定的解析工具。
目前,大模型在文档互动中的表现仍有待提升。文档解析的准确度对大模型互动表现相当重要,解析不精准会导致模型无法正确理解文档内容,影响问答的准确性和用户体验。当文档中的表格、公式、图表等复杂元素不能被正确解析时,模型可能会提供错误或不完整的答案。
以下图的学术论文为例,大模型问答产品无法获取扫描版论文表格中的关键数据。
使用TextIn文档解析工具,将文件转化为Markdown格式后再次上传大模型并提出相同问题,大模型在解析工具的辅助下,顺利给出正确答案。
TextIn通用文档解析工具利用强大的文字识别和文档理解能力,识别文档或图片中的文字信息,并按常见的阅读顺序进行还原,赋能大语言模型的数据清洗和文档问答任务。支持标准的年报、文书、函件、合同等文档内容,兼容扫描文档和电子PDF文件。
目前,文档解析主流专业产品采用的路线结合了PDF提取技术与OCR识别技术。其中,PDF提取技术主要用于处理PDF格式的文档,通过直接解析PDF文件的结构来提取文本和其他内容;其优点是处理速度快,适合于结构简单的PDF文档,但在处理复杂布局或包含大量图表、图片的文档时,准确率可能较低。OCR(Optical Character Recognition)技术通过扫描文档图像,识别其中的文字信息。这种技术适用于各种格式的文档,特别是扫描的纸质文档或图像格式的电子文档。OCR技术可以处理复杂布局的文档,但处理速度相对较慢,且对图像质量有一定要求。
TextIn文档解析工具在此基础上,以多文档元素识别能力和版面分析关键技术为核心,突破多项技术难点,具备全量的扫描件识别能力,既支持单张的卡、证、票,也支持数百页的扫描版文档;拥有精准的表格还原能力,面对无线表、跨页表格、合并单元格、密集表格、手写字符、公式等识别解析难点,也能做到不漏检、不错检、内容准确;对多栏、多图表的复杂版面文件进行阅读顺序还原,支持Markdown、Json等多种格式输出,为大模型提供最“便捷舒适”的序列文字。
凭借文档树提取关键技术,TextIn文档解析可为长文档构建文档树,判断逻辑结构,为后续Embedding优化提供良好基础。
目前,TextIn通用文档解析完成最新一版产品迭代,将100页文档解析速度提升至最快1.5秒以内。
TextIn文档解析将100页文档解析速度提升至最快1.5秒以内,为大模型训练、微调与文件量大、时效性高的机构级业务场景保障稳定的技术支撑。
产品试用链接:https://cc.co/16YSIZ
六、RAG解决的问题
检索增强生成(Retrieval-Augmented Generation,RAG)技术在处理复杂信息检索和生成任务中,展现了显著的优势。其核心在于结合了检索和生成的双重能力,能够在多个方面解决传统生成模型所面临的问题。以下是RAG技术在实践中解决的一些关键问题。
1. 长尾知识
长尾知识是指那些不常见但重要的信息,传统生成模型由于训练数据的局限性,难以生成准确的长尾知识。而RAG通过检索数据库或知识库,可以找到并利用这些长尾信息,从而生成更全面和准确的回答。比如在专业技术领域,RAG可以通过检索相关文献和资料,提供详细且权威的解释。
2. 私有数据
在许多应用场景中,生成模型需要处理和利用私有数据,如企业内部文档、专利资料等。RAG技术能够集成私有数据进行检索,确保生成的内容具备高度的相关性和准确性,同时避免泄露敏感信息。例如,在企业知识管理系统中,RAG可以帮助员工快速找到内部文档中的关键信息,提高工作效率。
3. 数据实时性
数据实时性是许多生成任务中必须解决的问题。传统生成模型训练后的数据是静态的,无法反映最新的信息。而RAG通过实时检索最新的数据源,确保生成的内容与当前信息同步。例如,在新闻报道和金融分析中,RAG能够及时检索最新事件和市场动态,提供实时的内容更新。
4. 来源和可解释性
生成内容的来源和可解释性是用户信任和采用系统的关键因素。RAG技术能够提供检索到的信息来源,使生成的内容具有可验证性和可信度。这对于需要高准确性和透明度的应用场景尤为重要,如医学诊断和法律咨询。用户可以查看生成内容的来源,增加对系统的信任度。
5. 幻觉问题
生成模型的“幻觉”问题,即生成内容虚构或不准确,是一个长期存在的挑战。RAG通过检索真实的文档和数据,可以显著减少这种现象发生的概率。通过依赖外部可靠信息源,RAG生成的内容更加可靠和准确,有助于提高用户体验和系统的实用性。
七、RAG存在的问题
检索增强生成(Retrieval-Augmented Generation,RAG)技术在处理复杂文档和信息检索时展现了强大的潜力。然而,在实际应用过程中,RAG技术仍然面临一些亟待解决的问题。以下将详细探讨这些问题,并分析其对文档解析与向量化检索的影响。
1. 文档内容解析出错
RAG技术依赖于准确的文档解析来获取所需的信息。然而,文档解析过程中可能会出现错误,导致信息提取不准确。这些错误可能源于OCR技术的局限性、复杂文档结构的误识别等因素。这种情况会直接影响RAG模型生成答案的质量和准确性。
2. 文档存在太多Corner Case
在实际应用中,文档的格式和内容千差万别,存在大量的特殊情况(Corner Case)。这些特殊情况可能包括非标准的文档格式、不规则的排版、混合语言的使用等。这些Corner Case给文档解析带来了极大的挑战,使得RAG技术难以应对所有情况,影响了系统的稳定性和鲁棒性。
3. 解析速度慢,用户体验差
文档解析和信息检索是RAG技术的核心环节。由于文档解析过程复杂且耗时,尤其是在处理大量文档或高分辨率扫描件时,解析速度会显著降低。这种情况下,用户体验会受到严重影响,难以满足实时检索和生成的需求。
4. 知识库更新耗时长
RAG技术需要定期更新知识库,以保证生成的答案具有最新的时效性。然而,知识库的更新过程往往耗时较长,无法及时反映最新的信息变化。这种滞后性会导致RAG生成的答案过时或不准确,影响用户的信任度。
5. 机械分chunk丢失语义信息
在文档解析过程中,常采用将文档分块(chunking)的方法来处理大规模文本。然而,机械地将文档分块可能会丢失语义信息,尤其是当句子或段落被切断时。这种情况下,RAG技术难以准确理解上下文,导致生成的答案不连贯或不完整。
6. 目标检索内容召回不到
RAG技术依赖于准确的内容召回来生成高质量的答案。然而,由于检索算法的限制,目标检索内容可能无法被准确召回,导致生成答案的依据不足或错误。这种问题在处理大规模文档库或高度复杂的检索请求时尤为明显。
7. 召回结果排序困难
即使检索到了相关内容,对召回结果的排序也是一项挑战。如何根据上下文和用户需求,准确地对召回结果进行排序,直接影响到RAG生成答案的质量和相关性。不合理的排序可能导致最相关的信息被忽略,影响用户的满意度。
8. 答案生成有幻觉
答案生成过程中的“幻觉”现象是指模型生成的内容并非基于真实的数据,而是“编造”出来的。这种现象在RAG技术中并不少见,尤其是在处理不完整或不准确的信息时。幻觉现象会严重影响答案的可靠性,给用户带来误导。
八、通用文本向量,提升检索召回能力
Embedding 是一种用于机器学习和自然语言处理领域的表示技术,它将高维的离散数据(如单词、句子或者图像的特征等)转换为低维的连续向量,这些向量被称为嵌入(embeddings),它们能够捕捉到数据的语义特征和关系,将单词、短语或整个文档的语义和上下文信息封装在一个密集的、低维的向量空间中;Embedding在自然语言处理和机器学习中起着关键作用,是基础、核心且经典的建模任务,对于各种不同的下游NLP任务是必不可少的,如分类、聚类、检索、句子相似性判断等。
从Word2Vec到BERT表征模型、再到现如今的大模型,Embedding 建模方法在不断创新迭代。不论在传统的搜索、问答场景,还是如今大语言模型(LLM)驱动的检索增强生成(Retrieval-Augmented Generation, RAG)场景中,Embedding 技术一直扮演着语义理解的核心角色。
今年三月,合合信息发布的文本向量化模型 acge_text_embedding(简称“acge模型”)在中文文本向量化领域取得了重大突破,荣获 Massive Text Embedding Benchmark (MTEB) 中文榜单(C-MTEB)第一名的成绩。
为提高整体模型效果,TextIn团队采用对比学习技术,通过最小化正对之间的距离和最大化负对之间的距离来呈现文本语义表示;重视数据挖掘,构造多场景、数量庞大的数据集提升模型泛化能力,挑选高质量数据集加快模型收敛。技术开发过程中,采用多任务混合训练,多loss适配场景,适应各种下游任务,避免模型“偏科”;引入持续学习训练方式,改善引入新数据后模型灾难性遗忘问题;同时运用MRL技术,训练可变维度的嵌入,提高处理速度,降低了存储需求。
与目前C-MTEB榜单上排名前列的开源模型相比,合合信息发布的acge模型较小,占用资源少;模型输入文本长度为1024,满足绝大部分场景的需求。此外,acge模型还支持可变输出维度,使应用者能够根据具体场景去合理分配资源。
当前,acge模型已在多个应用场景下展现其优势:
(a) 文档分类:通过ocr技术精确识别图片、文档等场景中的文字,利用acge强大的文本编码能力,结合语义相似度匹配技术,构建通用分类模型;
(b) 长文档信息抽取:通过文档解析引擎与层级切片技术,利用acge生成向量索引,检索抽取内容块,提升长文档信息抽取模型精度;
(c) 知识问答:通过文档解析引擎与层级切片技术,利用acge生成向量索引,定位文件内容,实现精准问答。
产品试用链接:https://cc.co/16YSIr
TextIn通用文档解析、通用文本向量工具,以专业智能识别技术储备为支撑,加速当前大模型开发与应用,与上下游共建LLM+文档交互的智能生态。
如有帮助,请多关注
TeahLead KrisChang,10+年的互联网和人工智能从业经验,10年+技术和业务团队管理经验,同济软件工程本科,复旦工程管理硕士,阿里云认证云服务资深架构师,上亿营收AI产品业务负责人。
合合TextIn - 大模型加速器的更多相关文章
- Tidyverse|数据列的分分合合,爱恨情仇
Tidyverse|数据列的分分合合,爱恨情仇 本文首发于“生信补给站”Tidyverse|数据列的分分合合,一分多,多合一 TCGA数据挖掘可做很多分析,前期数据“清洗”费时费力但很需要. 比如基因 ...
- 【Python自动化Excel】pandas处理Excel的“分分合合”
话说Excel数据表,分久必合.合久必分.Excel数据表的"分"与"合"是日常办公中常见的操作.手动操作并不困难,但数据量大了之后,重复性操作往往会令人崩溃. ...
- 【Python自动化Excel】pandas操作Excel的“分分合合”
话说Excel数据表,分久必合.合久必分.Excel数据表的"分"与"合"是日常办公中常见的操作.手动操作并不困难,但数据量大了之后,重复性操作往往会令人崩溃. ...
- 【前端优化之拆分CSS】前端三剑客的分分合合
几年前,我们这样写前端代码: <div id="el" style="......" onclick="......">测试&l ...
- 无插件的大模型浏览器Autodesk Viewer开发培训-武汉-2014年8月28日 9:00 – 12:00
武汉附近的同学们有福了,这是全球第一次关于Autodesk viewer的教室培训. :) 你可能已经在各种场合听过或看过Autodesk最新推出的大模型浏览器,这是无需插件的浏览器模型,支持几十种数 ...
- PowerDesigner 学习:十大模型及五大分类
个人认为PowerDesigner 最大的特点和优势就是1)提供了一整套的解决方案,面向了不同的人员提供不同的模型工具,比如有针对企业架构师的模型,有针对需求分析师的模型,有针对系统分析师和软件架构师 ...
- PowerDesigner 15学习笔记:十大模型及五大分类
个人认为PowerDesigner 最大的特点和优势就是1)提供了一整套的解决方案,面向了不同的人员提供不同的模型工具,比如有针对企业架构师的模型,有针对需求分析师的模型,有针对系统分析师和软件架构师 ...
- 华为高级研究员谢凌曦:下一代AI将走向何方?盘古大模型探路之旅
摘要:为了更深入理解千亿参数的盘古大模型,华为云社区采访到了华为云EI盘古团队高级研究员谢凌曦.谢博士以非常通俗的方式为我们娓娓道来了盘古大模型研发的"前世今生",以及它背后的艰难 ...
- 文心大模型api使用
文心大模型api使用 首先,我们要获取硅谷社区的连个key 复制两个api备用 获取Access Token 获取access_token示例代码 之后就会输出 作文创作 作文创作:作文创作接口基于文 ...
- AI大模型学习了解
# 百度文心 上线时间:2019年3月 官方介绍:https://wenxin.baidu.com/ 发布地点: 参考资料: 2600亿!全球最大中文单体模型鹏城-百度·文心发布 # 华为盘古 上线时 ...
随机推荐
- 用pageOffice控件实现 office word文档 强制留痕编辑Word
OA办公中,业务需要多人编辑word文档,需要强制留痕功能,用来查看文档编辑过程中的具体修改痕迹. 怎么实现word文档的强制留痕呢? 1 实现方法 通过pageOffice实现简单的在线打开编辑wo ...
- 鸿蒙HarmonyOS实战-Stage模型(服务卡片的模块和创建)
一.服务卡片的模块和创建 在HarmonyOS中,服务卡片是一种提供即时信息和快速操作的小组件,类似于Android中的通知栏.服务卡片可以显示各种类型的信息,包括通知.天气.日历事件.音乐播放器.快 ...
- 使用 Spacesniffer 找回 48G 系统存储空间的总结
前言 Spacesniffer 是一个免费的文件扫描工具,通过使用树状图可视化布局,可以立即了解大文件夹的位置,帮助用户处理找到这些文件夹 当前系统C盘空间 清理后系统C盘空间 下载 Spacesni ...
- Swoole 源码分析之 Http Server 模块
首发原文链接:Swoole 源码分析之 Http Server 模块 Swoole 源码分析之 Http Server 模块 Http 模块的注册初始化 这次我们分析的就是 Swoole 官网的这段代 ...
- Django - 在后台上传文章封面图 - 并在前端页面展示
需要用到 models.ImageField(), 它继承自 models.FileField(), 用ImageField的时候需要安装pillow pip install pillow -i h ...
- CSS置顶操作(z-index属性)
z-index使用方法: 1.首先要把position设置为 absolute 或 relative 或 fixed,z-index才能生效 2.设置z-index的值(整数) # 值越大代表越置前, ...
- 代码界的超级英雄:GitHub的奇幻冒险之旅
GitHub简介 GitHub是一个用于代码托管.版本控制和协作开发的平台.它于2008年2月8日由Chris Wanstrath.PJ Hyett和Tom Preston-Werner创立,目前由微 ...
- MDK5常见问题
(1)MDK5下载时未找到对应的芯片 解决方式:需要下载pack包. 官方链接:https://www.keil.com/dd2/pack/ 其它链接:https://blog.csdn.net/ni ...
- c# IdHelper生成唯一的雪花Id
为什么使用雪花ID 在以前的项目中,最常见的两种主键类型是自增Id和UUID,在比较这两种ID之前首先要搞明白一个问题,就是为什么主键有序比无序查询效率要快,因为自增Id和UUID之间最大的不同点就在 ...
- Wakeup Source框架设计与实现
Wakeup Source 为系统组件提供了投票机制,以便低功耗子系统判断当前是否可以进入休眠. Wakeup Source(后简称:WS) 模块可与内核中的其他模块或者上层服务交互,并最终体现在对睡 ...