gpTommy-32k / README.md
SentinelHub's picture
Aggiornamento README Tokenizer v2 (Spazio Implicito + Maiuscole Lossless)
3d823ad verified
|
Raw History Blame Contribute Delete
12.6 kB
metadata
license: other
license_name: sentinel-r08-non-commercial-v2
license_link: LICENSE.md
language:
  - it
pipeline_tag: text-generation
library_name: custom_code
tags:
  - sentinel
  - r08
  - gptommy
  - tokenizer
  - italian

Sentinel R08 โ€” Pocket Core

๐Ÿ‡ฎ๐Ÿ‡น gpTommy 32k โ€” Vocabolario & Tokenizer v2 Nativo per la Lingua Italiana

Official Site Ecosystem Tokenizer Vocabolario Lingua Autore

Vocabolario e Tokenizer lessicale v2 a 32.768 token (Spazio Implicito + Maiuscole 100% Lossless) concepito e strutturato specificamente per la lingua italiana.
Autore & Ideatore: Thomas Seri (Sentinel)
Ecosistema di Riferimento: Sentinel LifeOS & Famiglia di Modelli Sentinel R-08


๐Ÿš€ Aggiornamento Tokenizer v2 & Registro Correzioni (7 novembre 2026)

Questo repository include ora il Tokenizer v2 (v2.0.0, implicit_space=True di default) che risolve i limiti strutturali del Tokenizer v1 pur mantenendo lo stesso vocabolario di 32.768 ID e la retrocompatibilitร  (implicit_space=False) per i checkpoint storici (v7, v7.2, v7.2a).

# Aspetto Tokenizer v1 (storico) Tokenizer v2 Aggiornato (v2.0.0, default) Stato
1 gptommy_tokenizer.py Aveva un SyntaxError (from __future__ import annotations dopo l'header di licenza) Corretto e aggiornato a v2.0.0 (implicit_space=True di default, implicit_space=False per compatibilitร  v1) โœ… Risolto e attivo
2 Gestione degli spazi e token per parola (sui 177 testi italiani di prova: 32.560 parole, 200.713 caratteri) Ogni spazio singolo era un token separato (ID 10 = <spazio>, pari al 41,1% di tutti i token): 75.815 token totali, 2,33 token/parola (2,65 caratteri/token). (In precedenza era indicato ~1,06 token/parola, che contava solo i token-parola senza spazi e punteggiatura) Spazio singolo implicito tra le parole (zero token sprecati per gli spazi normali; ID 10 = <attaccato> usato solo per incollare sotto-pezzi o punteggiatura; ID 9 per spazi multipli): 60.366 token totali (-20,4%), 1,85 token/parola (3,32 caratteri/token) โœ… Tokenizer v2 attivo
3 Decodifica 100% Lossless e Maiuscole (decode(encode(testo)) == testo) Restituiva il testo tutto minuscolo ("Il cuscinettoโ€ฆ" โ†’ "il cuscinettoโ€ฆ") 100% Lossless (decode(encode(testo)) == testo) su tutti i 177 testi di prova, grazie ai marcatori di caso ID 6 (Iniziale Maiuscola / TitleCase, es. "Il", "Thomas") e ID 5 (TUTTO MAIUSCOLO, es. "PLC", "R08") โœ… 100% Lossless in v2
4 Confronto con i tokenizer subword (2,4 โ€“ 3,2 sub-token per parola) Dichiarato nella prima versione del README senza benchmark riproducibile allegato Ritirato finchรฉ non verrร  pubblicato uno script di benchmark comparativo pubblico โœ… Corretto

I 177 testi di prova (heldout_it_v1.jsonl) sono un set di valutazione italiano mai usato in addestramento.


๐Ÿ’ผ Investment, Compute Grants & Enterprise Licensing (Investimenti & Partnership Industriali)

๐Ÿ‡ฌ๐Ÿ‡ง Sentinel is scaling the Geodesic Pyramidal Sphere Architecture (R-08) from 50M to 110Mโ€“1B+ parameters, with a patent application filed at the Italian Patent and Trademark Office (UIBM).
Open to Seed / Deep-Tech Investment, GPU/TPU Compute Grants, and Enterprise R&D Partnerships.
๐Ÿ‡ฎ๐Ÿ‡น Aperto a Investimenti Seed / Deep-Tech, Grant Computazionali GPU/TPU e Licenze Industriali Enterprise.
๐Ÿ“ฉ Contact Founder & Inventor Thomas Seri: ๐ŸŒ www.sentinelhub.eu | ๐Ÿ™ GitHub (@Thomasseri) | ๐Ÿค— Hugging Face (@SentinelHub) | ๐Ÿ’ฌ Open an Inquiry / Issue


๐ŸŒ Ecosistema Sentinel & Modelli R-08 Correlati

Il vocabolario gpTommy 32k รจ il motore lessicale ad alta densitร  impiegato per la nuova generazione di modelli geodetici compatti e leggeri della famiglia Sentinel R-08:

๐ŸŒ Suite Europea Multilingua gpTommy 32k (32.768 Token Nativi per Lingua):


๐ŸŽฏ Perchรฉ gpTommy 32k รจ Diverso dai Tokenizer Tradizionali

I tokenizer BPE statistici tradizionali calibrati prevalentemente sulla lingua inglese presentano una forte frammentazione quando applicati alla morfologia italiana. Nel testo italiano questo comporta una grave frammentazione:

  • Una parola come ยซcuscinettoยป o ยซmanutenzioneยป viene spezzata in 3 o 4 sottosillabe arbitrarie (cus-, ci-, net-, to), aumentando a dismisura la lunghezza del contesto, i costi computazionali e il rischio di allucinazioni ortografiche.

gpTommy 32k adotta un approccio lessicale nativo e strutturato:

  • Contiene 29.775 parole italiane complete (il 90,9% dell'intero vocabolario), coprendo forme base, singolari, plurali, verbi coniugati e l'intero lessico tecnico-scientifico.
  • Le parole non vengono spezzettate: la rete neurale associa un singolo token atomico a ciascun concetto lessicale finito.

๐Ÿ“ Metriche Oggettive di Compressione & Nota sulla Nomenclatura (32k)

  • Significato di 32k: Il suffisso 32k indica la dimensione del vocabolario lessicale (32.768 token ID distinti) e non la finestra di contesto del modello.
  • Efficienza di Tokenizzazione (Tokenizer v2 vs v1 sui 177 testi di valutazione): Con il Tokenizer v2 (implicit_space=True), lo spazio singolo ASCII tra le parole รจ implicito e non consuma token: sui 177 testi italiani di prova (32.560 parole, 200.713 caratteri), la sequenza completa richiede 60.366 token (1,85 token per parola, 3,32 caratteri per token) con ricostruzione 100% lossless delle maiuscole, rispetto ai 75.815 token (2,33 token per parola) della modalitร  storica v1 (implicit_space=False).

๐Ÿ“š Architettura ad Archivio: Il Sistema a Schede SSvvv

Il vocabolario gpTommy adotta una codifica deterministica a 5 cifre SSvvv:

  • SS (Scheda): Indica la categoria o la lettera dell'alfabeto (da 01 a 26 per le lettere A..Z).
  • vvv (Riga): Indica la specifica riga / lemma all'interno di quella scheda.
Scheda Intervallo ID Contenuto Principale Esempi di Token
00 00000 โ€“ 00999 Token speciali AI, marcatori di caso/spazio v2 (ID 5, 6, 9, 10), punteggiatura, cifre <|user|>, <|assistant|>, <|system|>, +, -, =, *, %
01 01000 โ€“ 01999 Lettera A (parole italiane e forme latine) anche, amico, allora, avere, analizzare, attualitร 
03 03000 โ€“ 03999 Lettera C casa, cosa, cittร , cuscinetto, costruire, cilindro
07 07000 โ€“ 07999 Lettera G giorno, grande, gruppo, giovane, governo
20 20000 โ€“ 20999 Lettera T tempo, terra, tavolo, totale, tiranti, trasmissione
26 26000 โ€“ 26999 Lettera Z (oltre 940 lemmi in Z) zona, zone, zero, zio, zucchero, zaino, zitto, zucca

๐Ÿ“Š Ripartizione dei 32.768 Token

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                   gpTommy 32k (32.768 ID)                   โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Tipologia                            โ”‚ Conteggioโ”‚ Percentualโ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Parole Italiane Complete             โ”‚   29.775 โ”‚     90,9% โ”‚
โ”‚ Caratteri Singoli, Cifre e Simboli   โ”‚    1.925 โ”‚      5,9% โ”‚
โ”‚ Token Speciali di Controllo & Chat   โ”‚    1.069 โ”‚      3,2% โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿš€ Utilizzo Rapido in Python โ€” Tokenizer v2 (Zero Dipendenze Esterne)

Il tokenizer gptommy_tokenizer.py (v2.0.0) รจ completamente autonomo e non richiede pacchetti pesanti esterni:

from gptommy_tokenizer import gpTommyTokenizer

# 1. Inizializza il Tokenizer v2 (Spazio Implicito + Maiuscole Lossless di default)
tokenizer = gpTommyTokenizer()

# 2. Codifica una frase italiana in token ID (senza sprecare token per gli spazi singoli)
testo = "Il cuscinetto a sfere radiale riduce l'attrito volvente."
token_ids = tokenizer.encode(testo)
print("Token IDs v2:", token_ids)
# Output: [6, 9043, 3001, 10, 21472, 10, 14147, 1001, 28253, 18533, 10, 4262, 10, 12045, 18405, 12001, 10, 71, 10, 30421, 30656, 10, 63]

# 3. Decodifica 100% Lossless tornando al testo italiano originale (maiuscole incluse!)
testo_ricostruito = tokenizer.decode(token_ids)
print("Decodifica v2:", testo_ricostruito)
# Output: "Il cuscinetto a sfere radiale riduce l'attrito volvente."
assert testo_ricostruito == testo

# 4. Opzionale: modalitร  v1 legacy per i checkpoint storici (R-08 v7 / v7.2 / v7.2a)
tokenizer_v1 = gpTommyTokenizer(implicit_space=False)

๐Ÿ›ก๏ธ Licenza e Attribuzione

Questo vocabolario รจ rilasciato per scopi di Ricerca Scientifica e Sperimentazione Libera (Non-Commercial Research License) con vincoli etici di protezione (esclusione di impieghi bellici, propaganda e usi lesivi).

Tutti i diritti sull'architettura a schede e sull'organizzazione lessicale sono riservati a Thomas Seri (Sentinel). Per collaborazioni o utilizzi in progetti di produzione: www.sentinelhub.eu.