--- language: nl license: mit base_model: microsoft/mdeberta-v3-base pipeline_tag: text-classification tags: - text-classification - regression - scoring - dutch - nederlands - multilingual --- # Arlo Score 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 **Score**-primitief: tekst beoordelen tegen een rubric en daar een getal tussen 0 en 1 voor teruggeven. ## Arlo in actie ## Wat dit model onderscheidt Het rubric geef je pas op het moment van gebruik mee. Hetzelfde model scoort klanttevredenheid, kwaliteit van dienstverlening of semantische gelijkenis — afhankelijk van het criterium dat je meestuurt. Je hoeft niet per maatstaf een apart model te trainen. Daarnaast voorspelt het model naast de score ook zijn eigen onzekerheid. Die komt niet uit een truc achteraf, maar uit de training zelf: het model is getraind met heteroscedastic regressie, waarbij het per voorbeeld zowel de waarde als de spreiding leert. Een lage confidence betekent dus echt dat het model twijfelt — bruikbaar om te bepalen wat automatisch door kan en wat naar een mens moet. ## Gebruik ```python from transformers import AutoModel, AutoTokenizer model = AutoModel.from_pretrained("NoaberAI/arlo-score", trust_remote_code=True) tokenizer = AutoTokenizer.from_pretrained("NoaberAI/arlo-score") model.score(tokenizer, "Geweldige service, binnen een dag alles geregeld.", "klanttevredenheid (0-1)") # {"score": 0.86, "confidence": 1.00} ``` ## Voorbeelden ```python model.score(tokenizer, "Vriendelijke bediening, eten kwam snel, prima ervaring.", "algemene tevredenheid over het restaurantbezoek (0-1)") # {"score": 0.81, "confidence": 0.99} model.score(tokenizer, "De trein naar Amsterdam vertrekt om 14:32 uur.", 'semantische gelijkenis (0-1) met: "Om 14:32 vertrekt de trein richting Amsterdam."') # {"score": 0.97, "confidence": 1.00} ``` ## Een goed rubric schrijven De kwaliteit van de score hangt af van hoe concreet je het criterium formuleert. Geef het schaaluiteinden en een situationele betekenis: ```python # scherp "klanttevredenheid op schaal 0-1, waarbij 0 = zeer ontevreden en 1 = zeer tevreden" # vaag "hoe goed is dit" ``` Heeft een beoordeling meerdere onafhankelijke aspecten, splits die dan op in losse vragen en combineer de uitkomsten zelf — dat levert scherpere en beter uitlegbare scores op dan één samengesteld oordeel. ## Ook op andere talen Het model is op Nederlands getraind, maar de backbone (`mdeberta-v3-base`) is multilingual en dat blijft merkbaar. Hetzelfde rubric — in het Nederlands — werkt op anderstalige tekst: ```python rubric = "klanttevredenheid (0-1)" model.score(tok, "Geweldige service, binnen een dag alles geregeld.", rubric) # {"score": 0.86, "confidence": 1.00} model.score(tok, "Excellent service, everything sorted within a day.", rubric) # {"score": 0.83, "confidence": 0.99} model.score(tok, "Ausgezeichneter Service, alles innerhalb eines Tages geregelt.", rubric) # {"score": 0.85, "confidence": 0.99} ``` Je hoeft je rubric dus niet per taal te herschrijven. ## 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](https://huggingface.co/NoaberAI/arlo-classify) | Choice, Noul | categoriseren, routeren, waarheidsvragen | | **[arlo-score](https://huggingface.co/NoaberAI/arlo-score)** | Score | numeriek beoordelen tegen een rubric | | [arlo-extract](https://huggingface.co/NoaberAI/arlo-extract) | Extraction | getypeerde velden uit tekst halen | Score is de natuurlijke aanvulling op de andere twee: `arlo-classify` bepaalt wáár iets over gaat, `arlo-extract` haalt de feiten eruit, en `arlo-score` geeft er een maat aan. Samen leveren ze uit één stuk vrije tekst een compleet gestructureerd record op — label, velden én beoordeling. ```python tekst = "Vriendelijke bediening, eten kwam snel, prima ervaring." classify.choice(tokenizer_c, tekst, ["compliment", "klacht", "vraag"]) # [{"label": "compliment", "confidence": 0.62}, ...] classify.noul(tokenizer_c, tekst, "De klant is tevreden.") # {"truth": 0.93} score.score(tokenizer_s, tekst, "algemene tevredenheid over het restaurantbezoek (0-1)") # {"score": 0.81, "confidence": 0.99} ``` ## Technische details - **Backbone**: `microsoft/mdeberta-v3-base` (~280M parameters) - **Kop**: regressie met twee outputs — voorspelde waarde en voorspelde log-variantie (heteroscedastic regressie, Gaussian NLL-loss) - **Taal**: Nederlands - **Trainingsdata**: Nederlandstalige data uit meerdere domeinen — productbeoordelingen, servicekwaliteit en semantische gelijkenis — zodat het model rubric-beoordeling in brede zin leert in plaats van alleen sentiment - **Hardware**: getraind op een NVIDIA A100 - **Licentie**: MIT Gemaakt door [NoaberAI](https://huggingface.co/NoaberAI).