这篇文章主要讲了如何更好地处理PDF文件,尤其是把PDF转换成电脑能读懂的格式(比如Markdown)。PDF文件通常有很多复杂的布局和表格,现有的方法要么太贵,要么不够准确。
作者测试了各种工具,发现Google的GeminiFlash 2.0在准确性和成本上表现最好,尤其是处理表格时几乎完美。虽然它还不能完全解决所有问题(比如丢失了文本在PDF中的具体位置信息),但Gemini 2.0的出现让大规模处理PDF变得既便宜又高效。
未来,随着技术的进步,PDF解析可能会变得更加简单和普及。
PDF解析的难题
PDF文件是我们日常工作和学习中经常用到的格式,但它有一个很大的问题:PDF的设计初衷是为了方便人类阅读,而不是为了让电脑理解。PDF里的内容可能是文字、图片、表格,甚至是一些复杂的布局,比如多栏排版、跨页表格等。这些复杂的结构让电脑很难准确地提取出里面的信息。
现在有很多工具可以尝试把PDF转换成电脑能读的格式,比如Markdown(一种简单的文本格式),但这些工具要么太贵,要么不够准确。尤其是处理表格时,很多工具会出错,比如把表格里的数字搞乱,或者漏掉一些重要的信息。
现有的解决方案
目前市面上有两种主要的PDF解析转换工具:一种是开源的,另一种是商业的。开源的工具虽然便宜,但通常需要用到很多复杂的机器学习模型,比如布局检测、表格解析等。这些工具用起来很麻烦,而且效果也不太好。
举个例子,NVIDIA的nv-ingest工具需要启动一个包含八个服务和两个高性能GPU的Kubernetes集群,光是配置这些就够头疼的了,而且性能还不一定好。
商业的工具虽然效果稍微好一点,但价格非常贵。尤其是当我们需要处理大量的PDF文件时,费用会高得吓人。比如,有些供应商的报价让我们根本负担不起。
Gemini 2.0的突破
这时候,Google的Gemini Flash 2.0出现了。虽然Google的开发工具用起来没有OpenAI那么顺手,但Gemini 2.0在成本和准确性上表现得非常出色。尤其是处理表格时,它的准确率几乎达到了完美,而且价格还很便宜。
作者做了一个测试,比较了几种不同的工具在处理PDF时的表现。结果显示,Gemini Flash 2.0每美元可以处理大约6000页PDF,远远超过了其他工具。比如,AWS Textract每美元只能处理1000页,而OpenAI的GPT-4o每美元只能处理200页。
表格解析的挑战
在所有PDF解析的任务中,表格解析是最难的。表格的布局复杂,格式不统一,数据质量也不一致,这些都让表格解析变得非常困难。为了测试Gemini 2.0的表现,作者用了一个叫Reducto的工具来测试它在处理复杂表格时的准确性。
测试结果显示,Gemini Flash 2.0的准确率达到了0.84,虽然比Reducto自己的模型(0.90)稍微低一点,但它的错误大多是格式上的小问题,不会影响表格的实际内容。相比之下,其他工具的表现就差了很多,比如OpenAI的GPT-4o准确率只有0.76,而且还会出现数字幻觉(就是生成一些不存在的数字)。
分块处理的优势
除了表格解析,PDF解析还有一个重要的步骤叫“分块”。分块的意思是把PDF里的内容分成一个个小的、有意义的部分。比如,一篇文章可以分成引言、正文、结论等部分。分块的好处是,这些小块内容可以更方便地被电脑理解和处理。
最近的研究表明,用大型语言模型(LLM)来做分块效果很好,因为LLM擅长理解上下文和识别文本中的自然边界。但问题是,用LLM做分块的成本很高。不过,随着Gemini Flash 2.0的出现,这个问题也得到了解决。它的价格非常便宜,可以用来大规模地对文档进行分块。
作者算了一笔账,用Gemini Flash 2.0解析1亿页PDF只需要5000美元,这比租用几个向量数据库的费用还要低。
缺点:边界框信息的丢失
虽然Gemini 2.0在PDF解析和分块上表现得很好,但它还有一个问题:丢失了边界框信息。边界框信息指的是文本在PDF中的具体位置。比如,某段文字在PDF的第几页、第几行。这个信息对于用户来说很重要,因为它可以帮助用户确认提取的内容是否准确。
目前,Gemini 2.0还不能很好地处理这个问题。虽然LLM在空间理解上表现出了很强的能力(比如可以精确地生成鸟群的边界框),但在处理文档布局时却遇到了困难。作者尝试了很多方法,但Gemini 2.0生成的边界框总是不准确。
总的来说
Gemini 2.0的出现让PDF解析变得更简单、更便宜。虽然它还不能完全解决所有问题,但它已经让我们离“轻松搞定PDF解析”的未来更近了一步。未来,随着技术的进步,PDF解析可能会变得更加高效和普及,任何人都能轻松处理大量的PDF文件。