Back to blog

    NuExtract 2.0: Outclassing Frontier LLMs in Information Extraction

    Alexandre Constantin

    Alexandre Constantin

    Machine Learning Scientist

    Liam Cripwell

    Liam Cripwell

    Machine Learning Scientist

    Nathan Fradet

    Nathan Fradet

    Machine Learning Scientist

    Sören Dréano

    Sören Dréano

    Machine Learning Engineer

    Etienne Bernard

    Etienne Bernard

    Co-Founder & CEO

    July 16, 2025

    We introduce NuExtract 2.0, the latest version of our LLM specialized in extracting structured information (document to JSON). NuExtract 2.0 brings vision, abstraction, and in-context learning abilities. We release open-source versions in the 2B-8B parameter range, and give access via API to our biggest model — NuExtract 2.0 PRO — which largely outperforms GPT-4.1 (+9 F-Score) and other frontier models.

    Quick Links

    NuExtract Goes On!

    NuExtract is an LLM specialized in extracting structured information from documents: it returns a JSON output from a document and a template (a.k.a. schema). We released NuExtract 1.0 about a year ago, NuExtract 1.5 about 6 months ago, and have been pleased to see their popularity (several million downloads) and performance (similar to GPT-4o while much smaller).

    Nevertheless, NuExtract 1.0 and 1.5 had important limitations: they could only perform pure extraction (copy-paste of the input) on text documents. We thus decided to add 3 key features to NuExtract 2.0:

    • Vision: to process documents as images, allowing extraction from scanned documents, PDFs, Excel files, etc.
    • Abstraction: to perform classification, reformulation, formatting, etc.
    • In-context learning: to customize the model by adding examples in the prompt.

    On top of that, we gave a strong push on the performance side of things — better datasets, better training procedures, and better base models.

    Creation procedure of NuExtract 2.0.
    Creation procedure of NuExtract 2.0.

    We are releasing 3 open-source versions of NuExtract 2.0:

    • NuExtract 2.0 2B (Qwen 2.0 VL 2B base, MIT license)
    • NuExtract 2.0 4B (Qwen 2.5 VL 3B base, research license)
    • NuExtract 2.0 8B (Qwen 2.5 VL 7B base, MIT license)

    All have a 32k token context.

    These models perform impressively well. But what if we go bigger? We trained a substantially bigger model — NuExtract 2.0 PRO — and were stunned by the results: the model simply outclasses frontier LLMs like GPT-4.1 and Claude 4 Opus.

    0-shot performance of NuExtract 2.0 PRO compared to frontier LLMs on the extraction benchmark (text and image documents). NuExtract outperforms GPT-4.1 by over 9 F-Score points.
    0-shot performance of NuExtract 2.0 PRO compared to frontier LLMs on the extraction benchmark (text and image documents). NuExtract outperforms GPT-4.1 by over 9 F-Score points.

    Driven by these results, we created a platform entirely dedicated to NuExtract 2.0 PRO — nuextract.ai — where you can define extraction tasks and use NuExtract via API.

    Giving Eyes to NuExtract

    Documents are not just text — they can be formatted (PDFs, spreadsheets) or scanned. The traditional approach captures their raw text via OCR, which loses formatting information: titles merge with paragraphs, tables lose structure, diagrams disappear.

    Structured extraction from a scanned ID card.
    Structured extraction from a scanned ID card.

    A recent way to solve this is to directly extract from images with a Vision Language Model (VLM). VLMs have made enough progress that traditional OCR is now largely unnecessary. We thus made NuExtract 2.0 a VLM, using Qwen 2.5 VL and Qwen 2.0 VL as base models.

    Images are tokenized by patches of 28×28 pixels and embedded via a vision module. The unified sequence of token embeddings is then processed by a regular transformer. There is no hard limit on image size: NuExtract 2.0 can process arbitrarily large (or high-resolution) images.

    We find the resulting model can correctly extract information from all kinds of image documents — receipts, floor plans, multi-page PDFs, even handwritten prescriptions (with fine-tuning for difficult cases).

    Structured extraction from a receipt.
    Structured extraction from a receipt.
    Structured extraction from a floor plan.
    Structured extraction from a floor plan.
    Structured extraction from a multi-page PDF document.
    Structured extraction from a multi-page PDF document.
    Prescription extraction — the final OCR frontier.
    Prescription extraction — the final OCR frontier.

    Importantly, the multimodal transition does not affect performance on text documents, so we only release a multimodal model.

    Abstraction & New Template Format

    NuExtract 1.0 and 1.5 were pure extractors: they copy-pasted text from the input. Pure extraction is a common use case, but you sometimes need to go beyond it:

    1. Reformat an output — dates, country codes, numbers.
    2. Deduce an answer — country from capital, number of rooms from a floor plan.
    3. Predict a class — sentiment, job mode (remote/on-site/hybrid).
    4. Generate new text — translation, summarization.

    To get the best of both worlds, we updated the template format to include type specifications. In particular, the "verbatim-string" type tells the model to perform a pure extraction, while "string" allows free generation. We also added "choice" (enum), date, and number types. null now represents missing information.

    Template field types.
    Template field types.
    Template constructors.
    Template constructors.
    Example of a NuExtract 2.0 template and a compatible extraction output.
    Example of a NuExtract 2.0 template and a compatible extraction output.

    This is a minimalist template format, designed to be easy to read and write, both for humans and LLMs, while being precise about what to extract.

    In-Context Learning

    Templates resolve a lot, but not everything: in {"address": "string"}, the format is unspecified. Providing examples in the prompt — In-Context Learning (ICL) — is the natural answer.

    We taught NuExtract to perform ICL by adding examples-in-prompt to the training set, both for text and images.

    Minimalist training example to teach NuExtract to perform in-context learning.
    Minimalist training example to teach NuExtract to perform in-context learning.

    Even 3 examples can substantially improve performance: NuExtract 2.0 PRO gains 6 F-Score points, which is a lot at this level of performance.

    In-context learning abilities of NuExtract 2.0 on the extraction benchmark (text + image).
    In-context learning abilities of NuExtract 2.0 on the extraction benchmark (text + image).

    ICL is a great way to provide a light but efficient fine-tuning to NuExtract.

    Performance

    We use our extraction benchmark composed of 1000+ extraction examples grouped into 21 extraction problems. Documents are text or images, and span multiple languages.

    Open-source models — transforming generic models into extraction specialists massively increases performance. NuExtract 2.0 8B reaches 73 F-Score (a bit better than non-reasoning frontier models). These small specialized language models are well suited for high-volume applications with resource-limited infrastructure.

    0-shot performance of open-source NuExtract 2.0 models compared to their base models.
    0-shot performance of open-source NuExtract 2.0 models compared to their base models.

    NuExtract 2.0 PRO vs frontier models — NuExtract 2.0 PRO largely outperforms frontier models, with a +9 F-Score margin over GPT-4.1.

    vs reasoning models — NuExtract 2.0 PRO is also ahead of frontier reasoning models: +5 F-Score over reasoning Claude 4 Opus, +2 F-Score over Gemini 2.5 PRO. And it costs at least 10× less to use on extraction tasks.

    0-shot performance of NuExtract 2.0 PRO compared to reasoning frontier models. NuExtract outperforms o3 by 3 F-Score points.
    0-shot performance of NuExtract 2.0 PRO compared to reasoning frontier models. NuExtract outperforms o3 by 3 F-Score points.

    Precision vs recall — for structured extraction, precision is king: you prefer not having information rather than polluting your database with wrong information. NuExtract 2.0 PRO has a higher precision than recall, in part because we specifically teach it to say "I don't know" (null) when information is missing.

    Recall (left bars) and precision (right bars) results on the extraction benchmark.
    Recall (left bars) and precision (right bars) results on the extraction benchmark.

    Failure Points

    • Long documents — context size of 32k tokens (~60 pages of text or 20 pages of images) is the most obvious shortcoming. All LLMs also tend to have issues with long lists.
    • Laziness — on complex templates with long lists and many missing properties, NuExtract may return very little. Workaround: simpler templates or split documents.
    • Looping — rarely, NuExtract repeats the same element. This mainly happens on low-resolution images with non-Latin characters. The platform detects and corrects this.
    • Invalid JSONs — very rare (e.g. 07 instead of 7). The platform guarantees valid JSON output. Off-platform, use a library like jsonrepair.

    Conclusion & Next Steps

    NuExtract 2.0 is the highest-performing extraction LLM, usable for pretty much any extraction task, on any kind of document, in any language.

    The road is not over: better uncertainty estimates, longer documents, and reasoning are on the roadmap. In the meantime, we hope you'll make good use of this model. Feedback always welcome 😊