过去的一年,是大语言模型快速发展的一年。大模型强大的语言理解能力,逐渐让用户习惯了将各类文章丢给大模型,让它来帮忙总结提炼。从产品角度看,这是一次10倍体验的飞跃,意味着巨大的市场机会。也因此,市面上涌现出了大量的文档+大模型的应用。但大多数的开发者普遍都会遇到一个问题,那就是各种文档的效果都想做好,兼容起来太麻烦了,有没有更好的解决方案?
以PDF为例,通常大家会尝试选择开源工具,比如PyPDF2,但发现它们对中文的支持都不太好;有些对行业相对了解的开发者,可能会选择一些付费的OCR api,但往往结果都是按行输出,丢失了段落信息,更不用说对于表格,或者像论文这样的双栏版式的良好支持了。
行内人士都知道,LLM在训练时,通常会采用较多的论文或书籍等知识密度较高的语料。大家一般会采用Markdown格式作为训练语料,这种格式既简单,又能反映一些基本的排版,能很好地表征论文和书籍中的信息。那么很自然地想到,如果模型在做文档问答推理时,给到的内容也是Markdown格式的,效果会不会更好?
对于这个问题,合合信息的回答是肯定的。
合合信息实验结果表明:在同一批合同数据上,用Llama-7B模型,同样的Prompt做信息抽取,比较纯OCR和markdown格式输出的差异,结果发现,Markdown格式的抽取准确率要高于纯 OCR输出不少。
也因此,合合信息决定将智能文字处理领域十几年的积累都利用起来,为当前大模型浪潮下的开发者们,打造一款LLM友好的文档解析产品。
大模型问答应用需要一款怎样的PDF解析工具
经过调研发现,一款好用的PDF解析工具,至少要有3个特性:一是速度快、二是精度高、三是兼容性好。
  • 速度快,是指解析一个文件的耗时要在秒级。尤其对于C端应用而言,如果用户上传一个300页的文档,结果要等上5分钟,这个体验一定是灾难性的。
  • 精度高,是指对于各类版面元素都要有不错的识别效果。不管是公式、表格、还是相对复杂的排版,都能正确理解并准确还原。其中尤其以表格最为关键,如果表格的行列信息错位,会直接导致LLM在理解结论时出错。
  • 兼容性好,是指对于繁杂的PDF编码格式都能正确识别,不会出现乱码、大量丢字等现象。
当然,最基本的还得有产品的稳定性和成本。
  • 作为基础设施,稳定性是立身之本,尤其对于需要文档解析来提供线上服务的应用来说,如果底层基建不响应,精心设计的上层应用自然难以发挥应有的价值。
  • 至于成本,对于要处理大量文件数据的业务而言,一点成本差异乘以巨大的文件数量,也可能导致最终成本难以接受。
最后,这里还想提一个关于开发者友好的需求。不管什么工具,开源的代码也好,闭源的接口也好,最终都是需要开发者集成到自己业务中的。一款开发者友好的工具,能让整个集成调试变得更轻松。最理想的情况是,不需要复杂的debug,不需要安装各种依赖环境,最好直接一键就能完成集成。同时出了问题还有完善的文档体系和售后或是社区支持。
合合信息文档解析实际应用效果
在前面提到的几个特性上,合合信息的文档解析产品,当下到底表现如何呢?
1)速度——长文档秒级处理
这里找了几个长样本,通过接口限定其调用页面数,得到耗时结果如下:

 
同时,团队也测试了不同尺寸的单张图片耗时:
 

 
目前产品还在针对速度做进一步的优化,内部最快的版本,100页的耗时P90小于2.5s,预计5月会上线。
2)精度与兼容性
为了直观展示使用合合信息解析能力后的效果,团队做了一次对比测试。
先用一批样本放到当前主流的几个大模型问答产品中,针对特定内容进行提问。然后挑选出各家产品均未能答对的样本,将其通过合合信息的接口输出为Markdown格式。由于目前仅有两家支持.md格式,因此团队手动将文件后缀改为.txt。然后将该.txt文件上传到各家产品中,再问和之前同样的问题,看回答情况是否有改善。
展示几张主要的结果:
首先是一个扫描件中的无线表格样本。某热门的大模型问答产品,在使用自带的解析时,找到的信息和表格内容不符;换用合合信息的解析结果之后,就能找对正确的数字了。
 

 
 
一张数百页的扫描版书籍,使用自带解析结果时,回答内容并不完全准确,换合合信息的解析结果后,就和原文信息完全能对上了。

 
 
最后是一张会乱码的电子版论文,打开并复制第一段前两行内容后,粘贴出来是乱码,如下:
? <=>?@ABCD $ "@A % KLMN?@OP

QABCDRSTU?VWX89YZ[?@AB
在使用自带解析结果时,直接提示内容乱码,而在使用合合信息解析结果后,便能正确回答问题了。
 

 
 
 
如果尝试过基于开源PDF解析工具,或是开源OCR方案,搭建自己的PDF解析服务的开发者们,应该对文档处理的复杂程度有很深刻的体会。要么是公式精度不够高,输出的latex格式经常语法错误;要么是layout识别不好,需要拼接别的方案;再或者就是花大量的时间维护一套规则,去兼容奇怪的格式。
合合信息想做的,就是帮各位开发者们节省自己宝贵的生产力,和文档打交道这样的麻烦事,让我们来就好。开发者们的精力,如果用来构建自身产品的优势,往往会发挥更大的价值。
3)稳定性——低于万分之一的失败率
当前产品的公有云版本已正式上架,一个多月以来,经过多次迭代,目前的稳定性可以做到页面失败率小于万分之0.5。当然,这也不是终点,合合信息的产品团队期望将整体错误率降低到百万分之一以下,从而为开发者们提供足够可靠的产品。
4)成本——低至1分钱/页
目前平台上提供3个套餐可选,如下图所示:
 

 
如果觉得用量很大,也可以联系商务切换为后付费机制,每月180万页以上调用的,即可按1分钱/页计费。
5)One more thing
过去几个月里,合合信息在金融年报和研报场景下做了不少优化,尤其处理了各种年报中最难的无线表格和合并单元格等。这里向大家汇报一下成果。
首先是对于年报中的多行表头或多行单元格,合合信息的产品能够正确的划分结构,而多数识别引擎会错误折行,或是把第一行表头丢掉。

 
再来一个更复杂的Case,上表中,数据部分只有第一列是多行,干扰情况可能还好。下面这张样本中第二个框里,第一列和后面的数据列,都是多行,不少识别引擎就会将其拆分成多行表格,而实际上,这里应该只有一行。

 
同时,从这个样本也可以看出,对于大多数合并单元格的样本,合合信息的文档解析能按照原始样式进行还原,而不是胡乱拆分。
对于研报这种一页里紧密排了好几张表的样本,合合信息的文档解析也能按正确的顺序和归属,将数据分类对应,拆成独立的表输出。

 
 
如何使用
合合信息文档解析产品已经上架TextIn平台,任何开发者都可以注册账号并开通使用。

 
访问链接,点击【免费体验】,即可在线试用,如下图所示:

 
如果想试试用代码调用,也可以访问对应的接口文档内容:TextIn - API中心 - 通用文档解析。平台提供了一个Playground,帮开发者们预先调试接口。

 
点击页面中【API调试】按钮,即可进入调试页面。

 
 
在这里,可以简单配置一些接口参数,发起调用后,右侧即会出现调用结果。
如果想用python调用,既可以参考平台上的通用示例代码,也可以关注公众号《合研社》,获取一些更全面的demo代码。
尾声
文档解析产品目前正处于内测阶段。正式产品通常有1000页的免费试用额度,在内测期间,平台给每位开发者提供每周7000页的额度福利,关注公众号《合研社》即可领取。欢迎大家提意见或建议。

同时,也欢迎更多从业者来与合合信息技术团队交流,多多讨论,多多碰撞。

这款PDF解析工具,精准触达大模型问答应用的需要的更多相关文章

  1. 付费?是不可能的!20行Python代码实现一款永久免费PDF编辑工具

    PDF(Portable Document Format),中文名称便携文档格式是我们经常会接触到的一种文件格式,文献.文档…很多都是PDF格式.它以格式稳定的优势,使得我们在打印.分享.传输过程中能 ...

  2. 推荐一款免费的PDF转换工具 | PDFCandy

    相信大家在用的PDF转换工具也很多,下面良心推荐这款软件(PDFCandy)给大家,方便在今后的工作中进行运用.提高大家的工作效率. PDFCandy分为两种:网页端和客户端.(根据大家的喜好度来进行 ...

  3. PDF审计工具peepdf

    PDF审计工具peepdf   PDF是Portable Document Format(便携式文档格式)的缩写.它是Adobe公司推出的文件格式规范.现在,PDF是网络电子书籍的主流格式.由于PDF ...

  4. 赞!jsPDF – 基于 HTML5 的强大 PDF 生成工具

    jsPDF 是一个基于 HTML5 的客户端解决方案,用于生成各种用途的 PDF 文档.使用方法很简单,只要引入 jsPDF 库,然后调用内置的方法就可以了.浏览器兼容性: IE 10, Firefo ...

  5. 分析和解析PHP代码的7大工具

    PHP已成为时下最热门的编程语言之一,然而却有许多PHP程序员苦恼找不到合适的工具来帮助自己分析和解析PHP代码.今天小编就为大家介绍几个非常不错的工具,来帮助程序员们提高自己的工作效率,一起来看看吧 ...

  6. Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql、oracle...)间进行数据的传递

    http://niuzhenxin.iteye.com/blog/1706203   Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql.postgresql.. ...

  7. 功能强大的PDF实用工具

    PDF实用工具(PDFTool)是北京博信施科技有限有限公司研制开发的一款专门提供对PDF文件进行编辑.加工的处理软件.本软件具有对PDF文件进行分割.结合.加密.解密.添加水印.设定有效期限等多种功 ...

  8. PDF文件如何标注,怎么使用PDF标注工具

    我们在使用文件的时候需要给文件的部分添加标注,能够更加直观的了解文件,但是有很多小伙伴们对于PDF文件怎么添加标注都不知道,也不知道PDF标注工具要怎么使用,那么下面就跟大家分享一下怎么使用PDF标注 ...

  9. Android程序员不容错过的10款在线实用工具

    Android十款在线工具,在做Android开发过程中,会遇到一些小的问题,虽然自己动手也能解决,但是有了一些小工具,解决这些问题就得心应手了.Android在线工具,包括在线测试工具,及其他较为重 ...

  10. Java:JSON解析工具-org.json

    一.简介 org.json是Java常用的Json解析工具,主要提供JSONObject和JSONArray类,现在就各个类的使用解释如下. 二.准备 1.在使用org.json之前,我们应该先从该网 ...

随机推荐

  1. axios和AJAX的区别

    axios和ajax的区别 Axios和Ajax都是用于处理网络请求和与服务器进行通信的技术,但它们之间存在一些关键的区别:12 一.技术基础:Ajax(Asynchronous JavaScript ...

  2. Java的TimeStamp

    Java的TimeStamp 很简单,我们可以这样声明 Timestamp ts=new Timestamp(new Date().getTime());这样我们就可以得到时间比较具体的一个类型转换! ...

  3. 高程读后感(三)— JS对象实现继承的6种模式及其优缺点

    目录 1.原型链 1.1.默认的原型 1.2.原型和实例的关系 1.3.原型链的问题 2.借用构造函数 2.1.传递参数 2.2.借用构造函数的问题 3.组合继承 4.原型式继承 5.寄生式继承 6. ...

  4. MySQL 实现 EF Code First TimeStamp/RowVersion 并发控制

    在将项目迁移到MySQL 5.6.10数据库上时,遇到和迁移到PostgreSQL数据库相同的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Serv ...

  5. python virtualenv虚拟环境配置与使用

    python virtualenv虚拟环境配置与使用 By:赖富玉 QQ:1033553122 概述 python开发过程中,我们可能需要同时开发多款应用,这些应用可能公用同一个版本的Python程序 ...

  6. openGL之多线程渲染

    随着Vulkan的引入,我们的图形技术的发展到达了一个新的顶点,但是呢,我们的老干爹OpenGL作为落日余晖,他在一些Vulkan才有的新功能上,也提供了一些支持,现在我们来讨论一下OpenGL之多线 ...

  7. Python | 解决方案 | 多个文件共用logger,重复打印问题

    项目中封装了logging库为log.py,实现既把日志输出到控制台, 又写入日志文件文件. 环境:python3.7.3 项目中,多个文件共用logger,出现重复打印问题,解决流程记录如下: 文件 ...

  8. Python项目批量管理第三方包(requirements.txt)

    python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号,以便新环境部署. requirements.txt可以通过pip命令自动生成和安装 生成re ...

  9. 写写Redis十大类型stream的常用命令

    前言:感觉这个好像没啥用,我没学过mq,好像这个东西用别的中间件比较好,比如kafka,rabbitmq 最后一个是bitfield,看尚硅谷介绍说那玩意基本用不着,所以那个也不看了,直接跳了,十大类 ...

  10. idea2020修改help的vm options之后导致idea打不开的问题

    如图所示,如果你修改了VM参数,导致启动没反应,证明你的参数配置有误. 这个时候你可能会想着直接修改idea安装目录bin中的配置文件,但是这个文件并不是你在idea中修改的配置文件,所以你修改这里的 ...