Vör: Icelandic personal-data detector (31B, GGUF)

Author: Magnús Smári Smárason | smarason.is | HuggingFace: Magnuss85

„Hon er ok vitr ok spurul, svá at engi hlutr má hana leyna.“ (Gylfaginning, on Vör) She is wise and inquisitive, so that nothing can be hidden from her.

Vör reads Icelandic text and returns every piece of personal data in it as JSON. Each item is classified under the Icelandic Data Protection Act no. 90/2018 (which implements the GDPR), and the whole document is marked sensitive or not. It is a LoRA fine-tune of google/gemma-4-31B-it, merged and quantised to GGUF. It is the fifth model in the Norn line (Norn v4).

Output

{"einingar": [
   {"texti": "Guðrún Helgadóttir", "tilvik": 1, "tegund": "NAFN",     "flokkur": "ALM",  "grunnur": "3. gr. 2. tl."},
   {"texti": "030588-2149",        "tilvik": 1, "tegund": "KENNITALA","flokkur": "ALM",  "grunnur": "3. gr. 2. tl."},
   {"texti": "vegna þunglyndis",   "tilvik": 1, "tegund": "S_HEALTH", "flokkur": "VIÐK", "grunnur": "3. gr. 3. tl."},
   {"texti": "er félagi í Eflingu","tilvik": 1, "tegund": "S_UNION",  "flokkur": "VIÐK", "grunnur": "3. gr. 3. tl."}],
 "samantekt": {"ALM": 2, "VIÐK": 2, "REFS": 0, "FJÁR": 0},
 "viðkvæmt_skjal": true}
  • texti is copied verbatim from the input. tilvik is the occurrence index, so character offsets can be resolved with a string search and any span that does not exist in the text can be rejected.
  • flokkur (class): ALM general personal data (art. 3(2)), VIÐK sensitive data (art. 3(3): health, genetic, sex life, political views, religion, union membership, ethnic origin, biometrics), REFS criminal records (art. 12), FJÁR financial data (art. 15).
  • viðkvæmt_skjal is true when the document contains VIÐK or REFS data.

The type schema is a working draft and has not been reviewed by a lawyer.

Usage

The model was trained and evaluated with this exact instruction. Use it unchanged, at temperature 0:

Finndu allar persónuupplýsingar í eftirfarandi texta. Skilaðu EINGÖNGU JSON með lyklunum einingar (texti, tilvik, tegund, flokkur, grunnur), samantekt og viðkvæmt_skjal.

Texti:
<document>

Ollama Modelfile:

FROM ./Vor-Icelandic-PII-31B-Q5_K_M.gguf
RENDERER gemma4
PARSER gemma4
PARAMETER temperature 0
PARAMETER num_ctx 8192

Gemma 4 needs RENDERER gemma4 / PARSER gemma4. Without them Ollama does not apply the chat format.

For production use, combine the model with a deterministic layer (kennitala check digit, IBAN mod 97, phone and e-mail patterns) and take the union of both.

Evaluation

317 held-out Icelandic documents of 10 types (medical records, court judgments, employment records, meeting minutes, e-mails, forms, chat threads, news text, tables and OCR-style scans), written by a different model family than the training documents. Test documents sharing a kennitala, IBAN, phone number, e-mail or any 8-word run of text with the training data were removed. Strict scoring requires both the exact text and the correct type.

Metric Vör Norn v4 Gemma 4 31B-it
Span F1 (text match) 0.984 0.865 0.827
Recall, sensitive data (VIÐK) 0.962 – –
Recall, direct identifiers (name, kennitala, phone, e-mail, address, IBAN) 0.997 – –
Precision (strict) 0.982 – –
Document classification (sensitive / not) 0.997 – –
Valid JSON 317 / 317 – –
Recall on names never seen in training 0.991 (324/327) – –
Recall, criminal records (REFS) 0.769 (30/39) – –

The baselines do not know the type names, so they are compared on span F1 only. All runs used the Q5_K_M files in Ollama at temperature 0. Document classification is derived from the predicted classes by the same rule as above.

Limitations

  • The test set is synthetic. Test and training documents were generated from the same fictional-person generator and the same document types. The scores measure performance inside that distribution; on real documents they will be lower. A hand-checked set and real-world documents are the next test.
  • Short, single sentences are weaker than documents. In a spot check, a one-line text lost a health mention and classified union membership as financial data, while a full memo was labelled correctly.
  • Criminal-record mentions are the weakest class (recall 0.77).
  • General Icelandic is weaker than Norn v4. Declension accuracy on our BÍN test is 0.794 (Norn v4: 0.856) and GreynirCorrect flags 2.16 issues per 100 words (Norn v4: 1.93). Use Norn v4 for general writing and Vör for detection.
  • Not a legal opinion. The output supports a human reviewer.

Training

  • Base: google/gemma-4-31B-it, bf16 LoRA (r = 64, alpha = 64), 1 epoch, 560 steps, lr 1e-4, sequence 2048, assistant-only loss, on an NVIDIA DGX Spark. Validation loss 5.38 → 0.78.
  • Data (5,795 rows): 1,518 PII documents built around programmatically generated fictional people (valid kennitala check digits, names declined in all four cases from BÍN), with labels derived from construction rather than annotation; 2,845 Icelandic prose answers filtered with GreynirCorrect; 1,500 declension drills computed from BÍN; 237 identity rows.
  • All personal data in the training and test sets is fictional. No real person's data was used.

Files

File Size
Vor-Icelandic-PII-31B-Q5_K_M.gguf 21.8 GB
Vor-Icelandic-PII-31B-Q8_0.gguf 32.6 GB

License

Apache 2.0, as the base model.

Downloads last month
169
GGUF
Model size
31B params
Architecture
gemma4
Hardware compatibility
Log In to add your hardware

5-bit

8-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Magnuss85/Vor-Icelandic-PII-31B-GGUF

Adapter
(377)
this model