satya007's picture
Add model card
f82935f verified
---
language: en
license: cc-by-4.0
tags:
- document-understanding
- layout
- relation-extraction
- lilt
datasets:
- bluecopa/samyx-document-ser
metrics:
- f1
---
# LiLT RE — Document Relation Extraction
Fine-tuned [LiLT](https://huggingface.co/SCUT-DLVCLab/lilt-infoxlm-base) for **Relation Extraction** on documents.
Given key and value entities detected by [LiLT SER](https://huggingface.co/bluecopa/lilt-ser-document-extraction),
predicts which key is linked to which value.
## Results
| Metric | Score |
|--------|-------|
| F1 | **97.1%** |
| Precision | 97.7% |
| Recall | 96.5% |
## Architecture
- **Encoder:** LiLT-InfoXLM (initialized from SER checkpoint)
- **Head:** Bilinear classifier on entity pair embeddings
- **Context:** 1024 tokens
- **Input:** words + bounding boxes + entity pair positions
- **Output:** binary score per (key, value) pair
## Training
Trained on 17,881 documents from [bluecopa/samyx-document-ser](https://huggingface.co/datasets/bluecopa/samyx-document-ser).
Uses gold SER labels during training. At inference, uses SER model predictions.
## Usage
Used in combination with the SER model:
```python
# Step 1: SER model labels each word as key/value/other
# Step 2: RE model links keys to values
from transformers import LiltModel
import torch
# Load encoder
encoder = LiltModel.from_pretrained("bluecopa/lilt-re-document-extraction", subfolder="encoder")
# Load RE head weights
checkpoint = torch.load("model.pt", map_location="cpu")
# checkpoint contains: model_state_dict, hidden_size, epoch, f1
```
## Pipeline
```
Document → OCR → words + bboxes
→ LiLT SER → key/value labels
→ LiLT RE → key→value links (this model)
→ MiniLM → match to schema field names
→ Structured JSON output
```