alt.freeweights.text / NuExtract-1.5-tiny-ONNX
From: onnx-community <huggingface.co/onnx-community>Newsgroups: alt.freeweights.textSubject:

NuExtract-1.5-tiny-ONNX

Date: 2026-11-15Commit: 051dfb0Signed: 2DC28CC7B26A283B ✓

Text generation model. Onnx weights, 6.46 GB in all. Published by onnx-community under MIT.

text6.46GBNuExtract-1.5-tiny-ONNXonnxpermissive
FactsParamsnot statedSize6.46 GBFormatsonnxTasktext generationLicenseMITFrom sourcepermissive
$ fw get onnx-community/NuExtract-1.5-tiny-ONNX
# manifest sha256 a2222d29718e… · 6.46 GB · 19 files
$ fw verify ./NuExtract-1.5-tiny-ONNX onnx-community/NuExtract-1.5-tiny-ONNX
From sourceHosted (signed)onnx-community/NuExtract-1.5-tiny-ONNXLast check: 2026-11-15 05:26 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Quantized of NuExtract-1.5-tiny.

Works with

Runs with

Ranked by fit to this model (onnx), then by GitHub stars.

Convert with

Overview

Size
6.46 GB
Weights
474 MB (smallest of 8 ONNX variants)
Parameters
not stated
Formats
onnx
Task
text generation
License
MIT (permissive)
Files
19, each with a sha256
Publisher
onnx-community
Added
2026-11-15
Section
alt.freeweights.text
Lineage

Original release from the publisher.

Base model: numind/NuExtract-1.5-tiny

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 05:26 UTCpassed

Model card

From the publisher at commit 051dfb0. Shown as plain text with links; images open at the publisher.

NuExtract-1.5-tiny (ONNX)#

This is an ONNX version of numind/NuExtract-1.5-tiny. It was automatically converted and uploaded using this Hugging Face Space.

Usage with Transformers.js#

See the pipeline documentation for text-generation: https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.TextGenerationPipeline


NuExtract-tiny-v1.5 by NuMind 🔥#

NuExtract-tiny-v1.5 is a fine-tuning of Qwen/Qwen2.5-0.5B, trained on a private high-quality dataset for structured information extraction. It supports long documents and several languages (English, French, Spanish, German, Portuguese, and Italian). To use the model, provide an input text and a JSON template describing the information you need to extract.

Note: This model is trained to prioritize pure extraction, so in most cases all text generated by the model is present as is in the original text.

We also provide a 3.8B version which is based on Phi-3.5-mini-instruct: NuExtract-v1.5

Check out the blog post.

Try the 3.8B model here: Playground

⚠️ We recommend using NuExtract with a temperature at or very close to 0. Some inference frameworks, such as Ollama, use a default of 0.7 which is not well suited to pure extraction tasks.

Benchmark#

Zero-shot performance (English):

Image: image

Few-shot fine-tuning:

Image: image

Usage#

To use the model:

import json
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

def predict_NuExtract(model, tokenizer, texts, template, batch_size=1, max_length=10_000, max_new_tokens=4_000):
    template = json.dumps(json.loads(template), indent=4)
    prompts = [f"""<|input|>\n### Template:\n{template}\n### Text:\n{text}\n\n<|output|>""" for text in texts]
    
    outputs = []
    with torch.no_grad():
        for i in range(0, len(prompts), batch_size):
            batch_prompts = prompts[i:i+batch_size]
            batch_encodings = tokenizer(batch_prompts, return_tensors="pt", truncation=True, padding=True, max_length=max_length).to(model.device)

            pred_ids = model.generate(**batch_encodings, max_new_tokens=max_new_tokens)
            outputs += tokenizer.batch_decode(pred_ids, skip_special_tokens=True)

    return [output.split("<|output|>")[1] for output in outputs]

model_name = "numind/NuExtract-tiny-v1.5"
device = "cuda"
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.bfloat16, trust_remote_code=True).to(device).eval()
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)

text = """We introduce Mistral 7B, a 7–billion-parameter language model engineered for
superior performance and efficiency. Mistral 7B outperforms the best open 13B
model (Llama 2) across all evaluated benchmarks, and the best released 34B
model (Llama 1) in reasoning, mathematics, and code generation. Our model
leverages grouped-query attention (GQA) for faster inference, coupled with sliding
window attention (SWA) to effectively handle sequences of arbitrary length with a
reduced inference cost. We also provide a model fine-tuned to follow instructions,
Mistral 7B – Instruct, that surpasses Llama 2 13B – chat model both on human and
automated benchmarks. Our models are released under the Apache 2.0 license.
Code: <https://github.com/mistralai/mistral-src>
Webpage: <https://mistral.ai/news/announcing-mistral-7b/>"""

template = """{
    "Model": {
        "Name": "",
        "Number of parameters": "",
        "Number of max token": "",
        "Architecture": []
    },
    "Usage": {
        "Use case": [],
        "Licence": ""
    }
}"""

prediction = predict_NuExtract(model, tokenizer, [text], template)[0]
print(prediction)

Sliding window prompting:

import json

MAX_INPUT_SIZE = 20_000
MAX_NEW_TOKENS = 6000

def clean_json_text(text):
    text = text.strip()
    text = text.replace("\#", "#").replace("\&", "&")
    return text

def predict_chunk(text, template, current, model, tokenizer):
    current = clean_json_text(current)

    input_llm =  f"<|input|>\n### Template:\n{template}\n### Current:\n{current}\n### Text:\n{text}\n\n<|output|>" + "{"
    input_ids = tokenizer(input_llm, return_tensors="pt", truncation=True, max_length=MAX_INPUT_SIZE).to("cuda")
    output = tokenizer.decode(model.generate(**input_ids, max_new_tokens=MAX_NEW_TOKENS)[0], skip_special_tokens=True)

    return clean_json_text(output.split("<|output|>")[1])

def split_document(document, window_size, overlap):
    tokens = tokenizer.tokenize(document)
    print(f"\tLength of document: {len(tokens)} tokens")

    chunks = []
    if len(tokens) > window_size:
        for i in range(0, len(tokens), window_size-overlap):
            print(f"\t{i} to {i + len(tokens[i:i + window_size])}")
            chunk = tokenizer.convert_tokens_to_string(tokens[i:i + window_size])
            chunks.append(chunk)

            if i + len(tokens[i:i + window_size]) >= len(tokens):
                break
    else:
        chunks.append(document)
    print(f"\tSplit into {len(chunks)} chunks")

    return chunks

def handle_broken_output(pred, prev):
    try:
        if all([(v in ["", []]) for v in json.loads(pred).values()]):
            # if empty json, return previous
            pred = prev
    except:
        # if broken json, return previous
        pred = prev

    return pred

def sliding_window_prediction(text, template, model, tokenizer, window_size=4000, overlap=128):
    # split text into chunks of n tokens
    tokens = tokenizer.tokenize(text)
    chunks = split_document(text, window_size, overlap)

    # iterate over text chunks
    prev = template
    for i, chunk in enumerate(chunks):
        print(f"Processing chunk {i}...")
        pred = predict_chunk(chunk, template, prev, model, tokenizer)

        # handle broken output
        pred = handle_broken_output(pred, prev)
            
        # iterate
        prev = pred

    return pred

Files

19 files · 6.46 GBWeights 474 MB (smallest of 8 ONNX variants). Sizes and sha256 from the signed manifest.
Hide all 19 files with their sha256
FileSizesha256
.gitattributes1.57 KB34448b82c17d60fec9b65b1f093c115ddbaadc04beb1b0140b6bfed2e012a930
README.md6.63 KB5692d66ced03461a9d702e281393de1f645a7ecd8a9c96a5481dd969b3ebfa58
added_tokens.json605 B58b54bbe36fc752f79a24a271ef66a0a0830054b4dfad94bde757d851968060b
config.json791 B13cb18499c44ba190563b4724036ee3690b64df1a6b49d10d8ef24c17ead3258
generation_config.json117 Bcffaff49109b279cffdf516565044bdf0464d01753990e64d6723b6b687dddc6
merges.txt1.67 MB8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5
onnx/model.onnx1.98 GBa4907385241b9dd262afb2be946862c7c936828fdf8136b8a51947b6f654af2c
onnx/model_bnb4.onnx747 MBd719c1fab248db16d4afc0b8b202f9252d45a6c03411f698bb937fa6d2830146
onnx/model_fp16.onnx989 MBd93b69976f9efe39f9241106ca712f0c2b6fc08c21402df1ed8d417a8246dd04
onnx/model_int8.onnx495 MBd2449fa00c80bb3a5632763b166a02954f74f465b2052904d25057a65d393139
onnx/model_q4.onnx769 MB16bbf6fc5fad5e19ee08f4ed2698002575ba1260b1ae4e807041516de2f583a2
onnx/model_q4f16.onnx474 MB3f24ad7ac7e86e33a55b25ab48d62ac3a11ef5b8773e104d4fc7e6f7c3022fd8
onnx/model_quantized.onnx495 MBd2449fa00c80bb3a5632763b166a02954f74f465b2052904d25057a65d393139
onnx/model_uint8.onnx495 MBaf61c25e6c6e2f6784d71999d743d2728c4d435c506c535cf0bc3197b6b3b8b8
quantize_config.json312 B70f61db8708568fa3ee6e66ecbcfdb8a89b9069feadff679dea00b097e521c98
special_tokens_map.json616 B6676f091c8bc4d1b50146427cfde92073402866b87b6e39223227931b70083e9
tokenizer.json11.4 MB15706fc8309d8e7119027503bd135bbb216b283f2d6d2e6efeaf5871d88f650e
tokenizer_config.json7.39 KB3a86f8de571ca639a5c9df1b7b361e64f71d7f22d2aea49d3d79cc9db73c0bdc
vocab.json2.78 MBca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
051dfb0fba pinned now2026-11-15 05:26 UTC19 files · 6.46 GB

Use it

$ fw get onnx-community/NuExtract-1.5-tiny-ONNX
# manifest sha256 a2222d29718e… · 6.46 GB · 19 files
$ fw verify ./NuExtract-1.5-tiny-ONNX onnx-community/NuExtract-1.5-tiny-ONNX
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/onnx-community/NuExtract-1.5-tiny-ONNX.json --dir ./NuExtract-1.5-tiny-ONNX $ python3 fw.py verify ./NuExtract-1.5-tiny-ONNX ./onnx-community__NuExtract-1.5-tiny-ONNX.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download onnx-community/NuExtract-1.5-tiny-ONNX --revision 051dfb0fba73508c4e94e302238f907616e8d588 --local-dir ./NuExtract-1.5-tiny-ONNX

License

Name
MIT License
Id
MIT
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
5692d66ced03461a9d702e281393de1f645a7ecd8a9c96a5481dd969b3ebfa58
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: onnx-community <huggingface.co/onnx-community>Newsgroups: alt.freeweights.textSubject: NuExtract-1.5-tiny-ONNXDate: 2026-11-15Commit: 051dfb0Signed: 2DC28CC7B26A283B ✓
Upstream
onnx-community/NuExtract-1.5-tiny-ONNX
Pinned commit
051dfb0fba73508c4e94e302238f907616e8d588
Manifest
NuExtract-1.5-tiny-ONNX.json · .minisig
Manifest sha256
a2222d29718e7267757a1af28b85b0d07a6f73e5a3fba81678189c2ba3b9f6c3
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 05:26 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/onnx-community/NuExtract-1.5-tiny-ONNX.json $ curl -O https://freeweights.allternit.com/manifests/onnx-community/NuExtract-1.5-tiny-ONNX.json.minisig $ minisign -Vm NuExtract-1.5-tiny-ONNX.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

Parent

numind/NuExtract-1.5-tiny · this model is a quantization of it

No model in the catalog names this one as its parent.

Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download onnx-community/NuExtract-1.5-tiny-ONNX
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. NuExtract-1.5-tiny-ONNX.json. Provenance. Takedown history: none.
From: laion <huggingface.co/laion>Subject: a2-rl-e2egit_large-50-32B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-large-15-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-v2-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_pymethods2test-large-80-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_unitsyn-python-large-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_mix_h2_language_proportional-65-8B