datalab-to/lift
Summary
Datalab releases lift, a model that extracts structured JSON from PDFs and images using schema-constrained decoding, with local and hosted inference options.
View Cached Full Text
Cached at: 06/20/26, 08:15 PM
datalab-to/lift · Hugging Face
Source: https://huggingface.co/datalab-to/lift

lift is a structured extraction model fromDatalabthat pulls structured JSON out of PDFs and images. Pass any JSON schema and lift returns a JSON object matching it, using schema-constrained decoding to guarantee valid, well-typed output.

Try lift in thefree playground, or use thehosted APIfor higher accuracy, per-field verification, and citations.
https://huggingface.co/datalab-to/lift#featuresFeatures
- Extract structured data from documents
- Pass any JSON schema
- Handles multi-page documents in a single pass, including values that span pages
- Two inference modes: local (HuggingFace) and remote (vLLM server)
- CLI for single files, inline schemas, or whole directories
- Schema Studio: a Streamlit app to build, save, and test schemas against your documents
https://huggingface.co/datalab-to/lift#quickstartQuickstart
pip install lift-pdf
# With vLLM (recommended, lightweight install)
lift_vllm
lift_extract input.pdf ./output --schema schema.json
# With HuggingFace (requires torch)
pip install lift-pdf[hf]
lift_extract input.pdf ./output --schema schema.json --method hf
A schema is standard JSON Schema. Keep it simple —string,number,integer,boolean, arrays of those, arrays of objects, and nested objects are all supported. Write adescriptionfor any field whose name isn’t self-explanatory, and mark a fieldrequiredonly when it must appear; fields genuinely absent from a document come backnull.
{
"type": "object",
"properties": {
"invoice_number": {"type": "string", "description": "Invoice identifier"},
"total": {"type": "number", "description": "Total amount due"},
"line_items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {"type": "string"},
"amount": {"type": "number"}
}
}
}
},
"required": ["invoice_number", "total"]
}
https://huggingface.co/datalab-to/lift#usageUsage
https://huggingface.co/datalab-to/lift#with-vllm-recommendedWith vLLM (recommended)
from lift import extract
from lift.model import InferenceManager
# Start the vLLM server first with: lift_vllm
model = InferenceManager(method="vllm")
result = extract("document.pdf", "schema.json", model=model)
print(result.extraction)
https://huggingface.co/datalab-to/lift#with-huggingface-transformersWith HuggingFace Transformers
from lift import extract
from lift.model import InferenceManager
# Loads datalab-to/lift in-process (requires: pip install lift-pdf[hf])
model = InferenceManager(method="hf")
result = extract("document.pdf", "schema.json", model=model)
print(result.extraction)
extractaccepts the schema as a dict, a path to a\.jsonfile, an inline JSON string, or the name of a saved schema. Passpage\_range="0\-5"to limit PDF pages, and setVLLM\_API\_BASEto target a remote server.
https://huggingface.co/datalab-to/lift#benchmarksBenchmarks
Evaluated on a 225-document extraction benchmark (6–64 pages per document, ~11,000 scored fields) with adversarial cases planted throughout: cross-page values, exhaustive lists, fields that must be left null, near-miss distractors, multi-source aggregation. Scoring is deterministic exact-match against ground truth (numeric tolerance, normalized strings).
All models receive the same rendered page images, and extract each document in a single pass.
ModelSizeField accuracyFull-document accuracyMedian latency*FeaturesDatalab API—95.9%44.4%30.8sCitations + VerificationGemini Flash 3.5—91.3%40.0%28.1slift9B**90.2%**20.9%9.5sAzure Content Understanding—83.4%22.2%73.7sNuExtract34B81.5%8.4%8.3sQwen3.5-9B9B76.3%24.0%16.8s * Per document, 8 concurrent requests. Local models (lift, Qwen3.5-9B, NuExtract3) served with vLLM on a single GPU; Gemini, Datalab, and Azure via API. Latency varies with hardware and load — treat as relative, not absolute.

- Field accuracy— fraction of individual schema fields extracted correctly.
- Full-document accuracy— fraction of documents whereeveryfield is correct.
Hosted models with verification, citations, and confidence scores are available via theDatalab API— test in theplayground.
https://huggingface.co/datalab-to/lift#commercial-usageCommercial Usage
Code is Apache 2.0. Model weights use a modified OpenRAIL-M license: free for research, personal use, and startups under $5M funding/revenue. Cannot be used competitively with our API. For broader commercial licensing, seepricing.
https://huggingface.co/datalab-to/lift#creditsCredits
Similar Articles
@VikParuchuri: This is lift (our open source extraction model) pulling structured data out of a messy 26-page contract.
Vik Paruchuri showcases lift, an open-source extraction model capable of pulling structured data from messy contracts.
@liquidai: Introducing LFM2.5-VL-1.6B-Extract and LFM2.5-VL-450M-Extract: Vision-language models that return structured JSON, not …
Liquid AI released LFM2.5-VL-1.6B-Extract and LFM2.5-VL-450M-Extract, vision-language models that output structured JSON from images and field lists. The models are open-weight and available in two sizes.
opendataloader-project/opendataloader-pdf
OpenDataLoader PDF is an open-source PDF parser that extracts structured data (Markdown, JSON, HTML) with top benchmark accuracy (0.907 overall) and automates PDF accessibility remediation to Tagged PDF/PDF/UA compliance.
I made a small local model (llama3.2 3B) reliably extract structured JSON from documents - the hard part wasn't the model, it was everything around it
A developer shares lessons from building a local document-to-JSON extractor using llama3.2 3B on Ollama, highlighting that deterministic post-processing and schema-constrained outputs matter more than model size, while seeking feedback on hallucination and context truncation issues with long documents.
@llama_index: Most agentic retrieval demos assume clean, well-structured documents. Enterprise reality is often different, consisting…
LlamaIndex and LanceDB collaborated on a pipeline using LiteParse for PDF parsing and LanceDB for multimodal storage, enabling better retrieval from complex enterprise PDFs for agentic workflows.