查看原文
其他

Nougat来了,能否成为PDF格式转换的新神器?

王悦天 OpenMMLab 2024-04-23



本文入选【技术写作训练营第2期】优秀结营作品,作者:王悦天


科学知识主要存储在书籍和科学期刊中,通常是 PDF 格式。然而,PDF 格式会导致语义信息丢失,尤其是数学表达式。为此,MetaAI 最新提出了 Nougat (Neural Optical Understanding for Academic Documents),这是一个 Visual Transformer,可执行光学字符识别(OCR)任务,将科学文档处理成标记语言。


MetaAI 在一个新的科学文档数据集上演示了 Nougat 的有效性。通过弥合人类可读文档与机器可读文本之间的鸿沟,所提出的方法为在数字时代提高科学知识的可访问性提供了一个前景广阔的解决方案。同时,MetaAI 也发布了模型和代码,以加速未来的科学文本识别工作,Nougat 在 GitHub 上相应 repo 的 star 数也是一路疯涨。



论文链接:

https://arxiv.org/pdf/2308.13418v1.pdf


项目地址:

https://github.com/facebookresearch/nougat


下面,我们一起来了解下 Nougat 的相关情况吧~



1. 为什么要做?😳


在数字化信息高速发展的今天,学术界对于高效、准确的数据转换工具的需求日益增加。作为科研打工仔(bushi),我们平时在阅读论文或者科学文献时见到的文件格式基本上是 PDF(Portable Document Format)。据论文介绍,PDF 也已经成为互联网上第二重要的数据格式,占总访问量的 2.4%。


然而,存储在 PDF 等文件中的信息很难转成其他格式,尤其对数学公式更是显得无能为力,因为转换过程中很大程度上会丢失信息。就像下图所展示的深度学习经典论文《Attention is All you Need》这类带有数学公式的 PDF,转换起来就比较麻烦。



为此,MetaAI 便推出了这款 OCR工具————Nougat。Nougat 基于 Transformer 模型构建而成,可以轻松地将 PDF 文档转换为 MultiMarkdown,扫描版的 PDF 也能转换,上面这些让人头疼的数学公式也不在话下。


甚至,可以往更大的方向吹一吹“Nougat 将科学文档处理成标记语言,在人类可读文档和机器可读文本之间架起了一座桥梁。”



2. 真的有用?——效果展示🗒️


读到这里,相信应该有很多读者已经迫不及待地想看看这玩意儿的实际效果了,MetaAI 也在项目主页上放出了一些 Nougat 的[Example Paper Conversions]示例,下面让我们一起来看看:


首先让我们看看 Nougat 対最近火热的《LLaMA: Open and Efficient Foundation Language Models》这篇论文的转换效果:


首先是最平常的文本内容,没有任何的难度。


原 PDF


转换后


再看看对表格和公式的处理,也是十分完美:


原 PDF


转换后


同时,不仅是正常的 PDF 文档,扫描件也一样可以处理:



怎么样,总的看下来 Nougat 的效果还是十分惊艳的。同时,MetaAI 也在 Huggingface 上开放了 Community Demohttps://huggingface.co/spaces/ysharma/nougat),大家有想亲自体验的也可以直接上手去玩一玩~😉 笔者这里也是以 Nougat 自己这篇论文本身作为输入上手体验了一下(禁止套娃😂),结果还真是不错。




3. 怎么做到的?——模型概览💻


限于篇幅原因,我们这里只大概瞄一眼 Nougat 的整体结构,如果有对这个领域或者是模型细节感兴趣同学,可以去 GitHub 上查看代码和论文,进一步学习和使用 Nougat。


主要贡献


在论文中,作者将 Nougat 的主要贡献归为以下三点:


  • “Release of a pre-trained model capable of converting a PDF to a lightweight markup language. ”团队向社区了开源了相关的预训练模型,可以将 PDF 转换为简单的标记语言。Nougat 发布了两个模型(https://github.com/facebookresearch/nougat/releases):0.1.0-base 中的 decoder 是 10层,允许的最大解码长度为 4096,参数量大概是 350M,模型文件大小是 1.31G。而 0.1.0-small 中的 decoder 是 4 层,允许的最大解码长度为 3584,参数量大概是 250M,模型文件大小是 956M。


  • “We introduce a pipeline to create dataset for pairing PDFs to source code”文中描述了一种用于构建将 PDF 文档与其关联源代码配对的数据集的方法。这种数据集开发方法对于测试和完善牛轧糖模型至关重要,可能对未来的文档分析研究和应用有用,这里我们后面也会一起来瞧一瞧。


  • “Our method is only dependent on the image of a page, allowing access to scanned papers and books”Nougat 的突出功能之一是它能够仅对页面图像进行操作。这使其成为从各种来源提取内容的灵活工具,即使原始文档没有数字文本格式,它可以处理扫描的纸张和书籍。


整体结构


如下图所示,Nougat 是一个标准的 Encoder-Decoder 框架下的 Transformer 架构,允许端到端的训练,并以 Donut 架构为基础 (https://github.com/clovaai/donut/,这两个模型一个叫‘甜甜圈’ [Donut],一个叫‘牛轧糖’ [Nougat] ,我只能说研究人员是懂命名的😂 ) 。该模型不需要任何 OCR 相关输入或模块,文本直接由网络隐式识别。



Encoder:Encoder 用的是 20 层的 Swin Transformer(Swin-B {2, 2, 14, 2}),接收文档图像    ,裁剪边距并调整图像大小以适应大小为 (H, W) 的固定矩形。如果图像小于矩形,则添加额外的填充以确保每个图像具有相同的维度。我们使用 Swin Transformer,这是一种分层视觉转换器 ,它将图像分割为固定大小的非重叠窗口,并应用一系列自注意力层来聚合这些窗口的信息。该模型输出一个嵌入补丁序列   ,其中 d 是潜在维度,N 是补丁的数量。


Decoder:Decoder 用的是文字生成模型 mBART 中decoder,可以看成比较标准的 transformer decoder,使用具有交叉注意的变压器解码器架构将编码后的图像 z 解码为一系列标记。token 以自回归方式生成,使用自注意力和交叉注意力分别关注输入序列和编码器输出的不同部分。最后,输出被投影到词汇表 v 的大小,产生   。


独特的数据增强


在图像识别任务中,使用数据增强技术来提高泛化能力往往是有益的。由于本文只研究数字化的学术研究论文,因此需要使用一些变换来模拟扫描文件的不完美和多变性。这些变换包括侵蚀、扩张、高斯噪声、高斯模糊、位图转换、图像压缩、网格变形和弹性变换 。每种变换都有固定的概率应用于给定的图像。这些变换在 Albumentations 库中实现。在训练过程中,这里也会通过随机替换 token 的方式,对实际文本添加扰动。



新的数据集


论文中介绍,目前还没有 PDF 页面和相应源代码的配对公开数据集,因此,研究团队从 arXiv 上开放获取的文章中创建了自己的数据集。为了数据多样性,数据集中还包括 PubMed Central  (PMC) 开放访问非商业数据集的一个子集。预训练期间,还加入了部分行业文档库  (IDL)。



https://arxiv.org/

https://www.ncbi.nlm.nih.gov/pmc/

https://www.industrydocuments.ucsf.edu/

http://dlmf.nist.gov/LaTeXML/



以使用 arXiv 来源文件为例,构建数据集的 pipeline 如下:


作者收集了在 arXiv 上发布的 1,748,201 篇文章的源代码并编译成 PDF。为确保格式的一致性,首先使用 LaTeXML 处理源文件并将其转换为 HTML5 文件。这一步很重要,因为它消除了 LaTeX 源代码中歧义,让结果更加标准化,尤其是对数学表达式。转换过程包括替换用户定义的宏、标准化空白、添加可选的括号、规范化表格,以及用正确的数字替换引用和引文。


之后,解析 HTML 文件并将其转换为一种轻量级的标记语言(Mathpix Markdown, MMD),该语言支持各种元素,如标题、粗体和斜体文本、算法、LaTeX 内联和显示数学以及 LaTeX 表格。这样,确保源代码格式正确并准备好进行进一步的处理。完整的流程可见下图:




看代码库,作者构造的训练集arXiv应该是不提供下载的,但提供了构造数据集的脚本。有需要的话可以从头自己构造(https://github.com/facebookresearch/nougat#generate-dataset)。



4. 总  结🎆


总的来说,Nougat 为我们提供了一种新的解决方案,可以将科学文献转化为机器可读的格式,从而提高了科学知识的可访问性和可搜索性。这款工具特别适用于学术界,尤其是那些需要频繁互动和转换学术文章和研究论文的研究人员和学者(科研打工仔)。通过 Nougat,他们可以轻松地将包含复杂数学公式的 PDF 文件转换为其他格式,而不会丢失关键信息。这在很大程度上提高了研究效率和数据准确性。



5. MMOCR✨


同时,作为业界领先的基于 PyTorch 和 MMDetection 的开源工具箱,MMOCR(https://github.com/open-mmlab/mmocr/tree/main)一直以来都专注于文本检测,文本识别和关键信息提取等多个主要方向与相应的下游任务;它还支持了大多数流行的学术数据集,并提供了许多实用工具帮助用户对数据集和模型进行多方面的探索和调试,助力优质模型的产出和落地。我们也期待着 MMOCR 对 Nougat 相关工作的进一步跟进~







上海人工智能实验室大模型方向招聘 | 《offer来了》第1期

2023-09-15

跨专业计算机小白的逆袭之路!看 Active Contributor 郑琳潇如何走花路

2023-09-14

OpenMMLab技术答疑bot诞生记!快来一起打造专属你的AI对话模型

2023-09-13

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存