近期,TextIn通用文档解析完成最新一版产品迭代,将100页文档解析速度提升至最快2秒以内。
P50(百页) | P90(百页) | P95(百页) | P99(百页) | 平均(单页) | |
TextIn | 1.46s | 1.75s | 2.07s | 2.62s | 0.015s |
表格中“P50”代表中位数响应时间。这意味着在所有测试样本中,有一半的响应时间低于P50值,而另一半高于这个值。同理,“P90”代表90th percentile(90百分位)的响应时间。在本次性能测试中,这表示90%的文档解析操作都在1.75秒以内完成,这也是大部份用户获得的使用体验。
发版后,有用户在技术交流群和我们探讨了C端使用感受,在认可产品使用体验的同时,他向我们提出了一个有趣的问题:对个人用户来说,用5到6秒解析一篇长文档是可以接受的等待时间,为什么TextIn技术团队不断优化解析速度,甚至将百页文档的解析时间压缩至2秒以内呢?
我们将通过本篇文章解答这个有趣的问题。
1 为什么我们需要速度够快的文档解析工具
1.1 赋能大数据场景
我们可以金融大数据业务场景为例。
对金融大数据服务商而言,短时间、大批量数据输入属于常见场景。为了提供及时正确的大数据查询和检索服务,在数据更新频繁时期,例如每年财报、年报季,相关企业对T+0完成数据库更新有明确需求,且要求较高的质量标准。
传统数据录入首先需要进行数据清洗,并通过编写大量正则表达式提取网页内容,但面对文档类数据,传统方法不能实现有效处理。格式繁多、版面复杂的文档成为数据被“隐没”的地方,其中的重要信息难以高效、准确地转变为可使用的数据形式。
当大模型的企业级应用逐渐落地,金融大数据行业范式发生了改变。目前,“数据 + 文档解析 + LLM + Prompt”的模式成为新的优选。
与编写正则表达式相比,写Prompt相对更容易维护,也能降低门槛便利使用者。同时,借助大模型出色的读取、理解与生成能力,从业者得以提升内容解读与数据分析能力。需要考虑的环节问题简化为一点:如何将文档中的内容转化为对LLM友好的格式,成为LLM可读可分析的数据信息?
我们给出的答案是:高效、稳定、可靠的文档解析工具。
在金融大数据业务场景下,一款好用的文档解析工具需要具备以下特征:第一,足够快的解析速度:在数据录入密集期,新发布的财报、年报、法律文书等文件数据需要在数据发布的当天立刻上线;
第二,准确还原各类表格结构:报告中经常包含无线表、跨页表格、合并单元格、密集表格等等复杂结构,对非结构化数据提取而言,失之毫厘,差之千里,不够精准的内容输入将影响数据库的质量;
第三,良好的兼容性:对各类版式都要有良好的兼容性,降低解析失败率。
其中,速度是实现高效业务运转的关键所在。一般而言,上市公司年报在200至300页以上,TextIn文档解析工具的解析效率可以支持将数千家企业年报在8小时内完成数据读取,协助大数据企业完成上线。
1.2 加速大模型训练
大模型的表现很大程度上取决于它对人类语言的理解和生成能力。由于自然语言本身的复杂性和多样性,这项任务充满挑战,而在这个过程中,LLM(大语言模型)的训练显得尤为重要。
在训练过程中,借助海量数据预训练的深度学习模型,LLM通过处理超大规模的文本数据来学习语言的规律、语义和上下文,从而获得对自然语言的理解和生成能力,并进一步应用于翻译、对话、问答、文本生成等不同场景。
LLM 训练质量对大模型的性能和应用具有决定性影响。经过高质量训练,大模型能在语义理解、文本推理等任务中表现更佳。而为了实现高质量的 LLM 训练,除了充分的计算资源外,高质量的数据是最重要的因素之一。通俗来说,“喂”给大模型的数据决定了LLM的性能。
快速、准确的文档解析工具将有效加速大模型训练进程。
一方面,对复杂版面的准确识别、良好的格式兼容性将提升预训练数据的质量;另一方面,大模型预训练文本数据量往往以数千万页计。目前,以3000万页PDF文档为例,市面上工具的普遍处理时间大约在接近两周。按TextIn当前版本速度计算,预计可在5个工作日内实现解析,时间差异将达到一周以上。
在效率为王的AI时代,对开发者而言,一周多的时间可以对研发周期起到关键作用。一款好的文档解析工具能为大模型开发与应用装上“加速器”。
1.3 优化C端用户使用体验
目前,在C端使用方面,文档问答的用户体验仍有待提升。例如,如果用户上传一份较大的扫描文档或书籍,经常会超出大模型的文档大小限制,或在长时间加载后显示解析失败。
同时,受限于网速与算力,上传文档后等待解析是大模型问答产品的常见状况,一般来说,解析时间短则十几秒,长则数分钟,是用户使用过程中的常态。
对C端用户来说,高速、稳定的文档解析也将有效提升使用体验,让扫描文档、复杂版式不再成为大模型问答应用的阻碍,帮助大模型检索获取更准确的信息,从而提升问答效果。
2 TextIn vs. X:当前产品能实现的解析速度
TextIn文档解析百页2秒的速度在业内处于怎样的水准?
要回答这个问题,速度测试可以为我们展现最直观的数据。
以一份企业年报为例,我们对当前产品能够实现的解析速度进行对比测试。
我们选择的企业年报文件大小为38.8MB,共49页,文中包含形式多样的图表、数据、证照等页面,如下图所示。
我们使用TextIn、Llamaparse及国内某常用大模型问答产品对文档进行解析。
LlamaParse是由LlamaIndex创建的一项技术,用于解析和表示PDF文件,以便通过LlamaIndex框架进行高效检索和上下文增强,适用于复杂PDF文档,是目前讨论度较高的开源解析器。使用对话式大模型进行文档解析与问答则是现在C端的常用场景。我们使用同一份文件,选择这两款产品与TextIn进行测试,速度测试结果如下。
TextIn | Llamaparse | 国内某大模型 | |
解析速度 | 1.779s | / | 11.10s |
端到端速度 | 18.743s | 26.50s | 36.39s |
截图 |
注:在TextIn接口输出结果中,duration时间单位为毫秒。
对TextIn与llamaparse,我们使用的方式均为调用API接口,并使用测试脚本,可以直观地看到运行所用时长。对于大模型产品,我们上传一份PDF后,界面上会先后显示“上传中...”和“解析中...”两种状态,表格中端到端时间计算方式为上传与解析时间总和。其中,“上传中”这个状态,在控制面板中对应的是一个xhr请求。上传完成后转换到“解析中”状态,该状态对应的是“parse_process”这个请求。
我们列出了各个产品的解析速度与端到端速度(含上传时间)。测试均在相同网络情况下进行。其中,Llamaparse不支持解析速度的单独获取,仅可测量端到端速度。
对于同一份文档,TextIn文档解析具体展现了强大的速度优势。在企业级的使用场景下,当文档数量以百万,甚至千万页计,解析速度将成为影响业务场景落地、大模型开发效率重要的因素之一。
3 试用当前版TextIn文档解析工具
如果当前就有相关需求,TextIn文档解析是否可以随时调用?
在TextIn平台,开发者可以注册账号并随时试用最新版TextIn文档解析工具。
访问链接:https://www.textin.com/market/detail/pdf_to_markdown
点击【免费体验】,即可在线试用,如下图所示:
如果想尝试代码调用,也可以访问对应的接口文档内容:
https://www.textin.com/document/pdf_to_markdown
平台提供了一个Playground,帮开发者们预先调试接口。
点击页面中【API调试】按钮,即可进入调试页面。
在这里可以简单配置一些接口参数,发起调用后,右侧就会出现调用结果。
如果想用python调用,既可以参考平台上的通用示例代码,也可关注公众号《合研社》,获取更全面的demo代码。
文档解析产品目前正处于内测阶段。正式产品通常有1000页的免费试用额度,在内测期间,平台给每位开发者提供每周7000页的额度福利,关注公众号《合研社》即可领取。欢迎大家与我们团队多多交流,提出意见或建议。