Ankur Goyal
commited on
Commit
•
1a67f8e
1
Parent(s):
0007979
Initial commit
Browse files- README.md +29 -0
- config.json +32 -0
- demo.png +0 -0
- merges.txt +0 -0
- pyproject.toml +3 -0
- pytorch_model.bin +3 -0
- setup.cfg +18 -0
- special_tokens_map.json +1 -0
- tokenizer.json +0 -0
- tokenizer_config.json +1 -0
- vocab.json +0 -0
README.md
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
language: en
|
3 |
+
license: cc-by-nc-sa-4.0
|
4 |
+
tags:
|
5 |
+
- layoutlm
|
6 |
+
- document-question-answering
|
7 |
+
- pdf
|
8 |
+
- invoices
|
9 |
+
---
|
10 |
+
|
11 |
+
# LayoutLM for Invoices
|
12 |
+
|
13 |
+
This is a fine-tuned version of the multi-modal [LayoutLM](https://aka.ms/layoutlm) model for the task of question answering on invoices and other documents. It has been fine-tuned on a proprietary dataset of
|
14 |
+
invoices as well as both [SQuAD2.0](https://huggingface.co/datasets/squad_v2) and [DocVQA](https://www.docvqa.org/) for general comprehension.
|
15 |
+
|
16 |
+
## Non-consecutive tokens
|
17 |
+
|
18 |
+
Unlike other QA models, which can only extract consecutive tokens (because they predict the start and end of a sequence), this model can predict longer-range, non-consecutive sequences with an additional
|
19 |
+
classifier head. For example, it can extract the two-line address as below:
|
20 |
+
|
21 |
+
![Two-line Address](./demo.png)
|
22 |
+
|
23 |
+
## Getting started with the model
|
24 |
+
|
25 |
+
The best way to use this model is via [DocQuery](https://github.com/impira/docquery).
|
26 |
+
|
27 |
+
## About us
|
28 |
+
|
29 |
+
This model was created by the team at [Impira](https://www.impira.com/).
|
config.json
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_name_or_path": "impira/layoutlm-document-qa",
|
3 |
+
"architectures": [
|
4 |
+
"LayoutLMForQuestionAnswering"
|
5 |
+
],
|
6 |
+
"attention_probs_dropout_prob": 0.1,
|
7 |
+
"bos_token_id": 0,
|
8 |
+
"classifier_dropout": null,
|
9 |
+
"eos_token_id": 2,
|
10 |
+
"gradient_checkpointing": false,
|
11 |
+
"hidden_act": "gelu",
|
12 |
+
"hidden_dropout_prob": 0.1,
|
13 |
+
"hidden_size": 768,
|
14 |
+
"initializer_range": 0.02,
|
15 |
+
"intermediate_size": 3072,
|
16 |
+
"layer_norm_eps": 1e-05,
|
17 |
+
"max_2d_position_embeddings": 1024,
|
18 |
+
"max_position_embeddings": 514,
|
19 |
+
"model_type": "layoutlm-docquery",
|
20 |
+
"num_attention_heads": 12,
|
21 |
+
"num_hidden_layers": 12,
|
22 |
+
"pad_token_id": 1,
|
23 |
+
"position_embedding_type": "absolute",
|
24 |
+
"tokenizer_class": "RobertaTokenizer",
|
25 |
+
"token_classification": true,
|
26 |
+
"token_classifier_reduction": "sum",
|
27 |
+
"token_classifier_constant": 0.1,
|
28 |
+
"transformers_version": "4.22.0.dev0",
|
29 |
+
"type_vocab_size": 1,
|
30 |
+
"use_cache": true,
|
31 |
+
"vocab_size": 50265
|
32 |
+
}
|
demo.png
ADDED
merges.txt
ADDED
The diff for this file is too large to render.
See raw diff
|
|
pyproject.toml
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
[tool.black]
|
2 |
+
line-length = 119
|
3 |
+
target-version = ['py35']
|
pytorch_model.bin
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:6e540e17254272534b7868382a0fb05ddc693789938fa4bb2fc6aac29dbc0a83
|
3 |
+
size 511251617
|
setup.cfg
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[isort]
|
2 |
+
default_section = FIRSTPARTY
|
3 |
+
ensure_newline_before_comments = True
|
4 |
+
force_grid_wrap = 0
|
5 |
+
include_trailing_comma = True
|
6 |
+
known_first_party = transformers
|
7 |
+
|
8 |
+
line_length = 119
|
9 |
+
lines_after_imports = 2
|
10 |
+
multi_line_output = 3
|
11 |
+
use_parentheses = True
|
12 |
+
|
13 |
+
[flake8]
|
14 |
+
ignore = E203, E501, E741, W503, W605
|
15 |
+
max-line-length = 119
|
16 |
+
|
17 |
+
[tool:pytest]
|
18 |
+
doctest_optionflags=NUMBER NORMALIZE_WHITESPACE ELLIPSIS
|
special_tokens_map.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"bos_token": "<s>", "eos_token": "</s>", "unk_token": "<unk>", "sep_token": "</s>", "pad_token": "<pad>", "cls_token": "<s>", "mask_token": {"content": "<mask>", "single_word": false, "lstrip": true, "rstrip": false, "normalized": false}}
|
tokenizer.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
tokenizer_config.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"unk_token": "<unk>", "bos_token": "<s>", "eos_token": "</s>", "add_prefix_space": false, "errors": "replace", "sep_token": "</s>", "cls_token": "<s>", "pad_token": "<pad>", "mask_token": "<mask>", "model_max_length": 512, "special_tokens_map_file": null, "name_or_path": "roberta-base"}
|
vocab.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|