Instructions to use CNR-ILC/gs-Logion with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use CNR-ILC/gs-Logion with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("fill-mask", model="CNR-ILC/gs-Logion")# Load model directly from transformers import AutoTokenizer, AutoModelForMaskedLM tokenizer = AutoTokenizer.from_pretrained("CNR-ILC/gs-Logion") model = AutoModelForMaskedLM.from_pretrained("CNR-ILC/gs-Logion", device_map="auto") - Notebooks
- Google Colab
- Kaggle
gs-Logion
CNR-ILC/gs-Logion è un modello linguistico neurale basato su architettura Transformer per il Greco Antico, specializzato nel compito di Masked Language Modeling (MLM) e infilling di lacune testuali (integrazione di caratteri e parole mancanti in papiri ed iscrizioni).
Il modello è stato sviluppato nell'ambito del progetto ERC Advanced Grant GreekSchools (Grant Agreement No. 885222) presso l'Istituto di Linguistica Computazionale "A. Zampolli" del CNR (CNR-ILC) di Pisa.
Scopo del Modello e Casi d'Uso
Il modello è specificamente calibrato per supportare papirologi, epigrafisti e filologi classici nell'analisi e restauro dei testi frammentari dell'antichità greca, con particolare attenzione ai Papiri di Ercolano (es. testi filosofici epicurei di Filodemo di Gadara).
Caratteristiche chiave:
- Lacuna Infilling Multicarattere: integrazione di sequenze mancanti di lunghezza variabile mediante token
[MASK]. - Adattamento di Dominio sul Corpus TLG: continual pre-training sul corpus letterario greco antico (
CNR-ILC/gs-dataset-tlg-uncased). - Conformità Filologica: normalizzazione model-specific diacritica ed epigrafica.
Highlight dei Risultati
🚀 Exact Match @1: 27.30% (
+1.80%vs Pre-FT 25.50%)🚀 Exact Match @5: 38.40% (
+1.50%vs Pre-FT 36.90%)🚀 BERTScore F1 @1: 83.61% (
+0.81%vs Pre-FT 82.80%)🚀 Cluster Inclusion: 43.20% (
+4.80%vs Pre-FT 38.40%)
📊 Risultati Comparativi sul Dataset di Test (TLG)
La valutazione è stata condotta confrontando la baseline pre-addestrata (Pre-FT: cabrooks/LOGION-50k_wordpiece) con il modello fine-tunato (Post-FT: CNR-ILC/gs-Logion) sui casi di test estratti dal corpus TLG (CNR-ILC/gs-dataset-tlg-uncased).
Policy 'Default' (Lacune casuali di 1-6 caratteri simulanti danni fisici ai papiri)
| Metric | Pre-FT (Baseline) | Post-FT (Fine-Tuned) | Delta (Δ) | Trend |
|---|---|---|---|---|
| Exact Match @1 | 25.50% | 27.30% | +1.80% |
🟢 |
| Exact Match @5 | 36.90% | 38.40% | +1.50% |
🟢 |
| Exact Match @10 | 40.40% | 41.70% | +1.30% |
🟢 |
| Exact Match @20 | 42.10% | 43.30% | +1.20% |
🟢 |
| BERTScore F1 @1 | 82.80% | 83.61% | +0.81% |
🟢 |
| BERTScore F1 @5 | 87.45% | 87.70% | +0.24% |
🟢 |
| BERTScore F1 @10 | 88.85% | 89.04% | +0.19% |
🟢 |
| BERTScore F1 @20 | 89.89% | 89.94% | +0.05% |
⚪ |
| Cosine Similarity Max @1 | 61.59% | 62.68% | +1.09% |
🟢 |
| Cosine Similarity Max @5 | 73.21% | 73.36% | +0.15% |
🟢 |
| Cosine Similarity Max @10 | 76.40% | 76.37% | -0.04% |
⚪ |
| Cosine Similarity Max @20 | 79.11% | 78.77% | -0.34% |
🔻 |
| Cosine Similarity Mean @1 | 61.59% | 62.68% | +1.09% |
🟢 |
| Cosine Similarity Mean @5 | 54.15% | 54.62% | +0.47% |
🟢 |
| Cosine Similarity Mean @10 | 52.16% | 52.63% | +0.47% |
🟢 |
| Cosine Similarity Mean @20 | 50.81% | 51.03% | +0.22% |
🟢 |
| Cluster Inclusion Rate | 38.40% | 43.20% | +4.80% |
🟢 |
| Mean Inclusion Margin | -0.2146 | -0.1438 | +0.0708 |
🟢 |
| Gold Centroid CosSim | 63.62% | 64.34% | +0.71% |
🟢 |
Policy 'Word' (Lacune a livello di parola intera)
| Metric | Pre-FT (Baseline) | Post-FT (Fine-Tuned) | Delta (Δ) | Trend |
|---|---|---|---|---|
| Exact Match @1 | 58.40% | 59.70% | +1.30% |
🟢 |
| Exact Match @5 | 75.80% | 78.30% | +2.50% |
🟢 |
| Exact Match @10 | 79.70% | 82.30% | +2.60% |
🟢 |
| Exact Match @20 | 80.20% | 83.60% | +3.40% |
🟢 |
| BERTScore F1 @1 | 89.08% | 89.50% | +0.42% |
🟢 |
| BERTScore F1 @5 | 93.34% | 93.75% | +0.41% |
🟢 |
| BERTScore F1 @10 | 94.28% | 94.75% | +0.47% |
🟢 |
| BERTScore F1 @20 | 94.58% | 95.14% | +0.56% |
🟢 |
| Cosine Similarity Max @1 | 83.77% | 85.01% | +1.23% |
🟢 |
| Cosine Similarity Max @5 | 92.34% | 93.38% | +1.05% |
🟢 |
| Cosine Similarity Max @10 | 94.08% | 94.89% | +0.81% |
🟢 |
| Cosine Similarity Max @20 | 94.55% | 95.48% | +0.93% |
🟢 |
| Cosine Similarity Mean @1 | 83.77% | 85.01% | +1.23% |
🟢 |
| Cosine Similarity Mean @5 | 67.56% | 69.66% | +2.10% |
🟢 |
| Cosine Similarity Mean @10 | 64.05% | 66.10% | +2.05% |
🟢 |
| Cosine Similarity Mean @20 | 61.81% | 64.00% | +2.19% |
🟢 |
| Cluster Inclusion Rate | 84.10% | 85.80% | +1.70% |
🟢 |
| Mean Inclusion Margin | -1356016844.3703 | -5015.6202 | +1356011828.7501 |
🟢 |
| Gold Centroid CosSim | 76.31% | 78.37% | +2.06% |
🟢 |
Policy 'Suffix' (Lacune sulle terminazioni flessive / suffissi grammaticali)
| Metric | Pre-FT (Baseline) | Post-FT (Fine-Tuned) | Delta (Δ) | Trend |
|---|---|---|---|---|
| Exact Match @1 | 12.70% | 11.90% | -0.80% |
🔻 |
| Exact Match @5 | 27.70% | 24.50% | -3.20% |
🔻 |
| Exact Match @10 | 31.60% | 28.10% | -3.50% |
🔻 |
| Exact Match @20 | 32.30% | 29.10% | -3.20% |
🔻 |
| BERTScore F1 @1 | 81.23% | 81.14% | -0.09% |
🔻 |
| BERTScore F1 @5 | 86.18% | 85.77% | -0.42% |
🔻 |
| BERTScore F1 @10 | 87.52% | 86.97% | -0.56% |
🔻 |
| BERTScore F1 @20 | 88.42% | 87.89% | -0.53% |
🔻 |
| Cosine Similarity Max @1 | 57.55% | 57.53% | -0.02% |
⚪ |
| Cosine Similarity Max @5 | 70.71% | 70.05% | -0.67% |
🔻 |
| Cosine Similarity Max @10 | 74.17% | 73.18% | -1.00% |
🔻 |
| Cosine Similarity Max @20 | 76.05% | 75.34% | -0.71% |
🔻 |
| Cosine Similarity Mean @1 | 57.55% | 57.53% | -0.02% |
⚪ |
| Cosine Similarity Mean @5 | 53.53% | 53.32% | -0.21% |
🔻 |
| Cosine Similarity Mean @10 | 51.78% | 51.46% | -0.32% |
🔻 |
| Cosine Similarity Mean @20 | 50.43% | 50.03% | -0.40% |
🔻 |
| Cluster Inclusion Rate | 26.30% | 34.60% | +8.30% |
🟢 |
| Mean Inclusion Margin | -0.2406 | -0.1547 | +0.0859 |
🟢 |
| Gold Centroid CosSim | 62.99% | 63.72% | +0.74% |
🟢 |
- Exact Match (Top-K) misura l'accuratezza lessicale esatta della ricostruzione.
- BERTScore F1 & CosSim valutano la plausibilità semantica contestuale anche quando il completamento differisce dalla congettura gold.
- Cluster Inclusion Rate quantifica la densità e la coerenza dello spazio predittivo rispetto alla gold label.
🛠️ Procedura di Addestramento
Il modello è stato addestrato eseguendo un continual pre-training con obiettivo Masked Language Modeling (MLM) a partire dai pesi pre-addestrati di cabrooks/LOGION-50k_wordpiece.
- Corpus di Addestramento:
CNR-ILC/gs-dataset-tlg-uncased(Thesaurus Linguae Graecae uncased).
⚙️ Iperparametri di Addestramento
| Iperparametro | Valore Configurato |
|---|---|
epochs |
4 |
batch_size |
64 |
lr |
3.34e-05 |
chunk_size |
128 |
num_layers_to_freeze |
4 |
weight_decay |
0.01 |
warmup_ratio |
0.1 |
mlm_probability |
0.15 |
max_span_length |
2 |
lr_scheduler_type |
linear |
🔤 Pipeline di Preprocessing e Normalizzazione Filologica
Per allineare il modello alle caratteristiche dei papiri documentari e letterari (in cui mancano accenti, spiriti e punteggiatura moderna), il testo viene normalizzato con le seguenti impostazioni:
- Case Folding:
lower(conversione in minuscolo) - Rimozione Segni Diacritici:
Abilitata (strip diacritics)(rimozione di accenti, spiriti e iota sottoscritta) - Rimozione Punteggiatura:
Abilitata
💻 Come Utilizzare il Modello
1. Utilizzo ad alto livello con pipeline di Transformers
from transformers import pipeline
# Inizializzazione della pipeline fill-mask
unmasker = pipeline("fill-mask", model="CNR-ILC/gs-Logion")
# Frase in greco antico normalizzato con lacuna mascherata
text = "περι [MASK] λεγομενων"
# Estrazione dei migliori suggerimenti
suggestions = unmasker(text, top_k=5)
for s in suggestions:
print(f"Token: {s['token_str']:<15} | Probabilità: {s['score']:.4f} | Testo completo: {s['sequence']}")
2. Inferenza con AutoModelForMaskedLM e AutoTokenizer
import torch
from transformers import AutoTokenizer, AutoModelForMaskedLM
checkpoint = "CNR-ILC/gs-Logion"
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = AutoModelForMaskedLM.from_pretrained(checkpoint)
model.eval()
text = "κατα την [MASK] των πραγματων"
inputs = tokenizer(text, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
# Identifica la posizione del token [MASK]
mask_token_index = torch.where(inputs.input_ids == tokenizer.mask_token_id)[1]
mask_logits = logits[0, mask_token_index, :]
top_5_tokens = torch.topk(mask_logits, 5, dim=1).indices[0].tolist()
print("Candidati suggeriti:")
for token_id in top_5_tokens:
print("-", tokenizer.decode([token_id]).strip())
- Downloads last month
- 60
Model tree for CNR-ILC/gs-Logion
Base model
cabrooks/LOGION-50k_wordpieceDataset used to train CNR-ILC/gs-Logion
Evaluation results
- Exact Match @1 on gs-dataset-tlg-uncasedself-reported27.300
- Exact Match @5 on gs-dataset-tlg-uncasedself-reported38.400
- Exact Match @10 on gs-dataset-tlg-uncasedself-reported41.700
- Exact Match @20 on gs-dataset-tlg-uncasedself-reported43.300
- BERTScore F1 @1 on gs-dataset-tlg-uncasedself-reported83.610
- BERTScore F1 @5 on gs-dataset-tlg-uncasedself-reported87.700
- Cosine Similarity Max @1 on gs-dataset-tlg-uncasedself-reported62.680
- Cluster Inclusion Rate on gs-dataset-tlg-uncasedself-reported43.200