基于Vision Transformers的文档理解简介

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_基础版,每接口每天50万次
简介: 文档理解是从pdf、图像和Word文档中提取关键信息的技术。这篇文章的目标是提供一个文档理解模型的概述。

文档理解是从pdf、图像和Word文档中提取关键信息的技术。这篇文章的目标是提供一个文档理解模型的概述。

文档理解算法使用编码器-解码器结构分析文档内容,该管道结合了计算机视觉(CV)和自然语言处理(NLP)方法。管道的CV部分将文档作为输入图像进行分析,生成transformer可以处理的表示形式。在下图中,CV模型生成图像嵌入,并将其馈送到多模态transformer中。

在以前,卷积神经网络(cnn)如ResNet已经主导了CV领域。最近,类似于NLP架构(如BERT)的VIT作为cnn的替代方法获得了更多的关注。ViTs首先将输入图像分割为若干块,将这些块转换为线性嵌入序列,然后将这些嵌入馈送到transformer 编码器中。这个过程如图2所示。线性嵌入的作用类似于NLP中的令牌。与NLP模型一样,transformer 的输出可用于图像分类等任务。

vit比cnn有几个优势。可以获得全局关系,并对对抗性攻击表现出更强的弹性。缺点是训练vit需要更多的样本,因为cnn有归纳偏差,允许用更少的例子来训练它们。我们可以通过使用大型图像数据集预训练VIT来缓解这个问题。vit也是计算密集型的——运行transformer 所需的计算量随着令牌数量的增加而成倍增长。VIT现在可以作为HuggingFace视觉编码解码器模型的一部分,如下面的代码片段所示。

 from transformers import BertConfig, ViTConfig, VisionEncoderDecoderConfig, VisionEncoderDecoderModel
 
 config_encoder = ViTConfig()
 config_decoder = BertConfig()
 config = VisionEncoderDecoderConfig.from_encoder_decoder_configs(config_encoder, config_decoder)
 model = VisionEncoderDecoderModel(config=config)

视觉编码器解码器为许多文档理解模型提供了基础。Donut[3]模型首先使用图像transformer 处理输入图像,然后将其提供给解码器以生成输入文档的结构化表示。在下面的示例中,我们使用收据的图像,并输出了一个结构化JSON,其中包含了收据的行项。

尽管一些文档理解模型(如LayoutLMv3[1])需要预处理来识别边界框并执行OCR,但Donut将输入图像直接转换为目标JSON,如下面的代码所示。这种方法的一个缺点是输出不包括边界框,因此不提供关于提取来自文档中的哪个位置的任何信息。

 from donut.model import DonutModel
 from PIL import Image
 model = DonutModel.from_pretrained("./custom-fine-tuned-model")
 
 prediction = model.inference(
     image=Image.open("./example-invoice.jpeg"), prompt="<s_dataset-donut-generated>"
 )["predictions"][0]
 
 print(prediction)
 {
     "InvoiceId": "# 560578",
     "VendorName": "THE LIGHT OF DANCE ACADEMY",
     "VendorAddress": "680 Connecticut Avenue, Norwalk, CT, 6854, USA",
     "InvoiceDate": "4/11/2003",
     "AmountDue": "Balance Due:",
     "CustomerName": "Eco Financing",
     "customerAddress": "2900 Pepperrell Pkwy, Opelika, AL, 36801, USA",
     "items": [
         {
             "Description": "FURminator deShedding Tool",
             "Quantity": "5",
             "UnitPrice": "$8.09",
             "Amount": "$40.46"
         },
         {
             "Description": "Roux Lash & Brow Tint",
             "Quantity": "5",
             "UnitPrice": "$68.61",
             "Amount": "$343.03"
         },
         {
             "Description": "Cranberry Tea by Alvita - 24 Bags",
             "Quantity": "1",
             "UnitPrice": "$42.30",
             "Amount": "$42.30"
         }
     ],
     "InvoiceTotal": "$425.79"
 }

以上就是文档理解的简介,西洼港对你有所帮助。

https://avoid.overfit.cn/post/6264490feb9d44eaad7a7d56e3987755
作者:Unstructured-IO

目录
相关文章
|
机器学习/深度学习 缓存 自然语言处理
义无反顾马督工,Bert-vits2V210复刻马督工实践(Python3.10)
Bert-vits2更新了版本V210,修正了日/英的bert对齐问题,效果进一步优化;对底模使用的数据进行优化和加量,减少finetune失败以及电音的可能性;日语bert更换了模型,完善了多语言推理。
义无反顾马督工,Bert-vits2V210复刻马督工实践(Python3.10)
|
1月前
|
机器学习/深度学习 自然语言处理 PyTorch
Transformers入门指南:从零开始理解Transformer模型
【10月更文挑战第29天】作为一名机器学习爱好者,我深知在自然语言处理(NLP)领域,Transformer模型的重要性。自从2017年Google的研究团队提出Transformer以来,它迅速成为NLP领域的主流模型,广泛应用于机器翻译、文本生成、情感分析等多个任务。本文旨在为初学者提供一个全面的Transformers入门指南,介绍Transformer模型的基本概念、结构组成及其相对于传统RNN和CNN模型的优势。
106 1
|
1月前
|
数据采集 自然语言处理 PyTorch
动手实践:使用Hugging Face Transformers库构建文本分类模型
【10月更文挑战第29天】作为一名自然语言处理(NLP)爱好者,我一直对如何利用最先进的技术解决实际问题充满兴趣。Hugging Face 的 Transformers 库无疑是目前最流行的 NLP 工具之一,它提供了大量的预训练模型和便捷的接口,使得构建和训练文本分类模型变得更加简单高效。本文将通过具体的实例教程,指导读者如何使用 Hugging Face 的 Transformers 库快速构建和训练一个文本分类模型,包括环境搭建、数据预处理、模型选择与训练等步骤。
87 0
|
4月前
|
机器学习/深度学习 自然语言处理 PyTorch
PyTorch与Hugging Face Transformers:快速构建先进的NLP模型
【8月更文第27天】随着自然语言处理(NLP)技术的快速发展,深度学习模型已经成为了构建高质量NLP应用程序的关键。PyTorch 作为一种强大的深度学习框架,提供了灵活的 API 和高效的性能,非常适合于构建复杂的 NLP 模型。Hugging Face Transformers 库则是目前最流行的预训练模型库之一,它为 PyTorch 提供了大量的预训练模型和工具,极大地简化了模型训练和部署的过程。
234 2
|
4月前
|
存储 人工智能 自然语言处理
【AI大模型】Transformers大模型库(十四):Datasets Viewer
【AI大模型】Transformers大模型库(十四):Datasets Viewer
34 0
|
5月前
|
自然语言处理 PyTorch API
`transformers`库是Hugging Face提供的一个开源库,它包含了大量的预训练模型和方便的API,用于自然语言处理(NLP)任务。在文本生成任务中,`transformers`库提供了许多预训练的生成模型,如GPT系列、T5、BART等。这些模型可以通过`pipeline()`函数方便地加载和使用,而`generate()`函数则是用于生成文本的核心函数。
`transformers`库是Hugging Face提供的一个开源库,它包含了大量的预训练模型和方便的API,用于自然语言处理(NLP)任务。在文本生成任务中,`transformers`库提供了许多预训练的生成模型,如GPT系列、T5、BART等。这些模型可以通过`pipeline()`函数方便地加载和使用,而`generate()`函数则是用于生成文本的核心函数。
|
机器学习/深度学习 人工智能 自然语言处理
栩栩如生,音色克隆,Bert-vits2文字转语音打造鬼畜视频实践(Python3.10)
诸公可知目前最牛逼的TTS免费开源项目是哪一个?没错,是Bert-vits2,没有之一。它是在本来已经极其强大的Vits项目中融入了Bert大模型,基本上解决了VITS的语气韵律问题,在效果非常出色的情况下训练的成本开销普通人也完全可以接受。
栩栩如生,音色克隆,Bert-vits2文字转语音打造鬼畜视频实践(Python3.10)
|
7月前
|
自然语言处理 PyTorch API
Transformers从入门到精通:Transformers介绍
transformer是当前大模型中最流行的架构,而Transformers是实现transformer的最流行的实现的库,由著名的huggingface推出。Transformers提供了丰富的API和工具,可以轻松下载和训练最先进的预训练模型。使用预训练的模型可以降低计算成本,并为从头开始训练模型节省所需的时间和资源。5月更文挑战第2天
132 0
|
机器学习/深度学习 编解码 自然语言处理
【18】Vision Transformer:笔记总结与pytorch实现
【18】Vision Transformer:笔记总结与pytorch实现
883 0
【18】Vision Transformer:笔记总结与pytorch实现
|
自然语言处理 算法 语音技术
【nlp-with-transformers】|Transformers中的generate函数解析
今天社群中的小伙伴面试遇到了一个问题,如何保证生成式语言模型在同样的输入情况下可以保证同样的输出。 这里面造成问题的因素有两个方面: 一个方面是在forward过程中参数的计算出现了差异,这种情况一般发生在游戏显卡中,游戏显卡无法保证每一次底层算子计算都是成功的,也没有办法保证同输入同输出,这里我们就需要采用具有ecc内存纠错机智的专用显卡用来解决相关的问题。
604 0
下一篇
DataWorks