Instructions to use Zual/soter-mini with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Zual/soter-mini with Transformers:
# Load model directly from transformers import AutoTokenizer, AutoModelForSeq2SeqLM tokenizer = AutoTokenizer.from_pretrained("Zual/soter-mini") model = AutoModelForSeq2SeqLM.from_pretrained("Zual/soter-mini", device_map="auto") - Notebooks
- Google Colab
- Kaggle
Sôtêr mini — lemmatiseur de grec ancien, 1,9 M de paramètres
1 871 000 paramètres. 2,1 Mo en int8. Assez petit pour se charger instantanément dans un navigateur, et pourtant au niveau des lemmatiseurs de l'état de l'art sur les treebanks UD grec ancien.
Architecture T5 entraînée from scratch (aucun poids ByT5 repris) : encodeur/décodeur 3+3
couches, d_model 128, d_ff 512, 4 têtes. Entrée au niveau de l'octet, vocabulaire de 387
— donc aucun problème de segmentation, d'OOV, ni de graphie inhabituelle.
Démo : https://lucpommeret.com/soter/ · Grand frère 60× plus gros :
Zual/soter-megas
Usage
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
tok = AutoTokenizer.from_pretrained("Zual/soter-mini")
model = AutoModelForSeq2SeqLM.from_pretrained("Zual/soter-mini")
def build_input(formes, i, ctx=8):
lo, hi = max(0, i - ctx), min(len(formes), i + 1 + ctx)
return (f"{' '.join(formes[i])} <sep> {' '.join(formes[lo:i])} "
f"<tgt> {formes[i]} </tgt> {' '.join(formes[i+1:hi])}").strip()
formes = "Ἀλέξανδρος ἐγένετο βασιλεύς".split()
enc = tok(build_input(formes, 1), return_tensors="pt")
print(tok.decode(model.generate(**enc, max_length=48)[0], skip_special_tokens=True))
# γίγνομαι
La forme cible est épelée lettre à lettre en tête, puis vient un contexte de ±8 mots avec la cible balisée. Le texte doit être en NFC : le modèle travaille sur les octets, et du NFD (accents décomposés, fréquent au copier-coller depuis macOS ou un PDF) produit du charabia.
Exports ONNX dans onnx/, fp32 et int8. La quantification int8 est gratuite ici : 0,01 point
d'écart sur les benchmarks.
Une seule convention, et des tables pour les autres
Contrairement aux versions précédentes, ce modèle n'a pas de tag de treebank en entrée. Il produit toujours la convention Perseus/AGDT, celle qui s'aligne sur les vedettes du LSJ — donc celle qu'attend quelqu'un qui lemmatise pour consulter un dictionnaire.
Les conventions PROIEL et PTNK sont restituées après coup par une table de correspondance,
fournie dans tables/. Clé "forme\tlemme_perseus", valeur : le lemme de la convention cible.
import json
conv = {tuple(k.split("\t")): v for k, v in json.load(open("tables/proiel.json")).items()}
lemme_proiel = conv.get((forme, lemme_perseus), lemme_perseus)
Ce découpage est délibéré et mesuré. Les conventions de lemmatisation sont des décisions
arbitraires — PROIEL lemmatise εἶπεν en λέγω et ὑμῖν en ὑμεῖς, Perseus en εἶπον et
σύ — qu'un modèle de 1,9 M n'a aucune raison de mémoriser. Externalisées, elles deviennent
auditables et corrigeables, et la capacité du modèle va à la lemmatisation elle-même.
Les tables couvrent 3 521 conversions pour PROIEL et 366 pour PTNK ; elles sont apprises sur les
trains UD uniquement, jamais sur dev ni test.
Mesure de l'apport : à taille et budget égaux, l'entraînement mono-convention gagne +2,7 à +2,9 points sur PROIEL par rapport au même modèle entraîné avec les trois conventions et un tag, pour un effet nul ailleurs.
Résultats
Tests UD complets (conll18_ud_eval, colonne Lemmas, segmentation gold, NFC)
| PROIEL | Perseus | PTNK | |
|---|---|---|---|
| Sôtêr mini (1,9 M) | 97.41 ¹ | 92.75 | 98.59 ¹ |
| Sôtêr 9,6 M (multi-convention) | 94.43 | 93.06 | 98.18 |
| Sōtēr Megas (581 M) | 96.99 | 92.91 | 98.40 |
| meilleur publié | 97.48 (GreTa+Chars, R&F ACL 2023) | 91.14 (idem) | — |
¹ après application de la table de conversion fournie. Sans elle, la sortie est en convention Perseus et vaut 92.06 sur PROIEL et 94.64 sur PTNK — ces colonnes évaluent la convention cible, pas la qualité de lemmatisation.
Perseus : +1,61 sur le meilleur publié. PROIEL : 97.41 contre 97.48, une égalité. Avec 1,9 M de paramètres contre les centaines de millions des systèmes comparés.
DBBE — grec byzantin non édité, zéro-shot (Swaelens et al., 10k tokens)
exact = 79.28 (sans diacritiques 83.89)
Références : MTL_lemma (SOTA supervisé sur ce domaine, ACL Findings 2025) 79.31 · CLTK back-off 71.69 · GLEM 70.82 · Stanza 64.99.
79.28 contre 79.31 : égalité, à trois centièmes sur 9 982 tokens, pour une erreur-type binomiale de 0,41. La formulation défendable est égale un SOTA supervisé sur ce domaine, en zéro-shot, avec 1,9 M de paramètres — pas « dépasse ».
Entraînement
Distillation en deux étages : un LLM généraliste (DeepSeek V4-Flash, few-shot 128-512 exemples, sortie TSV contrainte, T=0) annote les treebanks UD ; un ByT5-base est distillé dessus (Sōtēr Megas) ; ce ByT5 réannote un corpus large, sur lequel ce modèle est entraîné.
- 49 379 934 exemples (1 exemple = 1 token à lemmatiser), 8,3 milliards de sous-tokens par epoch, tous en convention Perseus.
- 150 000 steps, batch effectif 512, Adafactor, LR 1e-3 avec warmup 5 % puis décroissance linéaire jusqu'à zéro. Le recuit compte : il apporte +0,3 de score composite (t = 7,8 sur blocs pré-déclarés), et l'essentiel arrive quand le LR passe sous 60 % du pic.
- Contexte ±8 mots, entrées ≤ 384 octets.
Limites
- PROIEL et PTNK exigent la table. Sans elle, la sortie reste correcte mais dans une autre convention que celle attendue par ces treebanks.
- Les treebanks UD grc sont publics et ont pu être vus au pré-entraînement des LLM annotateurs. Les phrases de dev et test ont été retirées du corpus d'entraînement, mais le NT existe en plusieurs éditions et l'exclusion exacte ne suffit pas toujours.
- Le protocole DBBE reconstruit les frontières de phrases par coupe sur la ponctuation forte ; à vérifier contre celui de Swaelens et al. avant toute comparaison fine.
- Les évaluations internes du projet utilisent aussi un « gold corrigé » qui n'est pas publiable en l'état : l'adjudication n'y porte que sur les divergences d'un seul système, ce qui l'avantage. Tous les chiffres ci-dessus sont sur gold brut.
Données et licences
Annotations produites par DeepSeek V4-Flash sur les trains UD grc et un échantillon de GLAUx/Diorisis. Corpus sources en CC BY-SA / CC BY ; treebanks UD grc (CC BY-NC-SA) utilisés pour l'évaluation uniquement. Poids sous Apache 2.0.
Citation
Article en préparation. Auteur : Luc Pommeret (LISN/CNRS).
- Downloads last month
- -