Arlo Extract 1.0
Arlo is een Nederlandse modelfamilie voor snelle, getypeerde beslissingen. Waar een taalmodel tekst genereert die je daarna moet interpreteren, geeft Arlo direct een waarde terug waar software mee kan werken — altijd met een confidence score.
Dit model dekt het Extraction-primitief: getypeerde velden uit vrije tekst halen. Datums, bedragen, kenmerken, locaties, namen — je stelt per veld een vraag en krijgt de letterlijke waarde uit de tekst terug.
Arlo in actie
Wat dit model onderscheidt
Het model wijst een stuk van de originele tekst aan als antwoord. Het verzint
dus niets: wat je terugkrijgt staat er letterlijk, op de positie waar het model
het gevonden heeft. En staat het gevraagde veld er niet in, dan zegt het model
dat — value is dan None in plaats van een plausibel klinkende gok.
Dat laatste is waar veel extractie-oplossingen op stukloopt. Een ontbrekend veld moet leeg blijven, niet ingevuld worden met het dichtstbijzijnde stukje tekst.
Gebruik
from transformers import AutoModel, AutoTokenizer
model = AutoModel.from_pretrained("NoaberAI/arlo-extract", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("NoaberAI/arlo-extract")
model.extract(tokenizer,
"Melding: kapotte straatverlichting aan de Julianalaan ter hoogte van "
"huisnummer 42, gemeld op 3 september 2026.",
"Waar is het probleem?")
# {"value": "Julianalaan", "confidence": 1.00}
Meerdere velden tegelijk
model.extract_fields(tokenizer,
"Factuur 4471 van Bakkerij Jansen, totaalbedrag 47 euro 50, "
"vervaldatum 15 oktober 2026.",
{
"factuurnummer": "Wat is het factuurnummer?",
"bedrag": "Wat is het totaalbedrag?",
"vervaldatum": "Wat is de vervaldatum?",
})
# {"factuurnummer": {"value": "4471", "confidence": 1.00},
# "bedrag": {"value": "47 euro 50", "confidence": 0.84},
# "vervaldatum": {"value": "15 oktober 2026", "confidence": 1.00}}
Een veld dat er niet in staat
model.extract(tokenizer,
"Het pakket wordt morgen bezorgd door PostNL.",
"Wat kost de bezorging?")
# {"value": None, "confidence": 0.93}
Hoe het werkt
Het model voorspelt voor elke positie in de tekst hoe waarschijnlijk het is dat daar een antwoord begint en eindigt. De beste combinatie daarvan is de kandidaat-span.
Die kandidaat wordt vervolgens afgewogen tegen een aparte "geen antwoord"-score.
Alleen als de beste span duidelijk sterker is dan die drempel, wordt hij
teruggegeven. De drempel (null_bias) is gekalibreerd op een validatieset en
zit in de modelconfiguratie — je hoeft er zelf niets aan te doen.
Vraagformulering
Hoe specifieker de vraag, hoe scherper het antwoord. Vraag je "Waar is het probleem?" dan krijg je de locatie; vraag je "Wat is er kapot?" dan krijg je het object. Twee vragen op dezelfde tekst leveren dus netjes twee verschillende velden op:
model.extract_fields(tokenizer,
"Kapotte lantaarnpaal aan de Julianalaan ter hoogte van huisnummer 42.",
{"object": "Wat is er kapot?", "locatie": "Aan welke straat is het probleem?"})
# {"object": {"value": "lantaarnpaal", "confidence": 1.00},
# "locatie": {"value": "Julianalaan", "confidence": 1.00}}
Ook op andere talen
Het model is op Nederlands getraind, maar de backbone (mdeberta-v3-base) is
multilingual en dat blijft merkbaar. Dezelfde factuur in drie talen, met de
vraag in de taal van het document:
model.extract(tok, "Invoice 8842 from Baker Jones, due date March 3rd 2027.",
"What is the due date?")
# {"value": "March 3rd 2027", "confidence": 1.00}
model.extract(tok, "Rechnung 8842 von Bäcker Jones, Fälligkeitsdatum 3. März 2027.",
"Was ist das Fälligkeitsdatum?")
# {"value": "3. März 2027", "confidence": 1.00}
model.extract(tok, "Facture 8842 de Boulanger Jones, date d'échéance 3 mars 2027.",
"Quelle est la date d'échéance?")
# {"value": "3 mars 2027", "confidence": 1.00}
Handig voor administraties die ook buitenlandse facturen verwerken.
De Arlo-familie
Arlo bestaat uit drie modellen die samen een complete laag vormen voor gestructureerde beslissingen. Ze delen dezelfde backbone-architectuur en hetzelfde output-contract — een waarde plus een confidence — en zijn onafhankelijk of gecombineerd te gebruiken.
| Model | Primitieven | Waarvoor |
|---|---|---|
| arlo-classify | Choice, Noul | categoriseren, routeren, waarheidsvragen |
| arlo-score | Score | numeriek beoordelen tegen een rubric |
| arlo-extract | Extraction | getypeerde velden uit tekst halen |
Extraction wordt sterker in combinatie met de andere twee: arlo-classify
bepaalt wat voor soort document je voor je hebt, en op basis daarvan stel je
gericht de juiste extractievragen. Een factuur vraagt om andere velden dan een
bezwaarschrift.
soort = classify.choice(tokenizer_c, tekst, ["factuur", "bezwaarschrift", "melding"])
velden = VELDEN_PER_SOORT[soort[0]["label"]]
resultaat = extract.extract_fields(tokenizer_e, tekst, velden)
Technische details
- Backbone:
microsoft/mdeberta-v3-base(~280M parameters) - Kop: extractive question answering (start/eind-posities)
- Taal: Nederlands
- Trainingsdata: Nederlandstalige extractieve QA-data, aangevuld met domeinspecifieke voorbeelden in de stijl van meldingen, aanvragen en formele correspondentie — inclusief vragen waarop géén antwoord in de tekst staat
- Hardware: getraind op een NVIDIA A100
- Licentie: MIT
Gemaakt door NoaberAI.
- Downloads last month
- 85
Model tree for NoaberAI/arlo-extract
Base model
microsoft/mdeberta-v3-base