|
Download README.md from SentinelHub/gpTommy-32k: direct link, hf CLI and curl.
- Browser
- Download file 12.6 kB
-
https://huggingface.co/SentinelHub/gpTommy-32k/resolve/main/README.md
- Command line
-
hf download hf://SentinelHub/gpTommy-32k/README.md
-
curl -L -o README.md https://huggingface.co/SentinelHub/gpTommy-32k/resolve/main/README.md
12.6 kB
| 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 | |
| <p align="center"> | |
| <img src="assets/r08_logo.jpg" width="320" alt="Sentinel R08 โ Pocket Core" style="border-radius: 16px;" /> | |
| </p> | |
| # ๐ฎ๐น gpTommy 32k โ Vocabolario & Tokenizer v2 Nativo per la Lingua Italiana | |
| [](https://www.sentinelhub.eu) | |
| [](https://www.sentinelhub.eu) | |
| [](https://github.com/Thomasseri/gpTommy-32k) | |
| [](https://github.com/Thomasseri/gpTommy-32k) | |
| [](https://github.com/Thomasseri/gpTommy-32k) | |
| [-orange.svg)](https://www.sentinelhub.eu) | |
| > **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](https://www.sentinelhub.eu) & 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](https://www.sentinelhub.eu)** | ๐ **[GitHub (@Thomasseri)](https://github.com/Thomasseri)** | ๐ค **[Hugging Face (@SentinelHub)](https://huggingface.co/SentinelHub)** | ๐ฌ **[Open an Inquiry / Issue](https://github.com/Thomasseri/R-08/issues/new)** | |
| --- | |
| ## ๐ 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**: | |
| * ๐ **Sito Ufficiale:** **[www.sentinelhub.eu](https://www.sentinelhub.eu)** โ Piattaforma Sentinel LifeOS | |
| * ๐ค **Sentinel R-08 v7 (Pyramid 44.5M):** [GitHub](https://github.com/Thomasseri/R-08) | [Hugging Face](https://huggingface.co/SentinelHub/R-08) | |
| * ๐ **Sentinel R-08 v7.2 (51.6M con 12 Hub Icosaedrici):** [GitHub](https://github.com/Thomasseri/R-08-v7.2) | [Hugging Face](https://huggingface.co/SentinelHub/R-08-v7.2) | |
| * ๐ **Sentinel R-08 v7.2a DA ZERO (51.6M 82.51% BLiMP-IT, migliore tra gli R-08):** [GitHub](https://github.com/Thomasseri/R-08-v7.2a) | [Hugging Face](https://huggingface.co/SentinelHub/R-08-v7.2a) | |
| * ๐ฌ **Modello di Controllo A/B Transformer Baseline (44.9M):** [GitHub](https://github.com/Thomasseri/R-08-Transformer-Baseline) | [Hugging Face](https://huggingface.co/SentinelHub/R-08-Transformer-Baseline) | |
| ### ๐ Suite Europea Multilingua gpTommy 32k (32.768 Token Nativi per Lingua): | |
| * ๐ฎ๐น **Italiano (`gpTommy-32k`):** [GitHub](https://github.com/Thomasseri/gpTommy-32k) | [Hugging Face](https://huggingface.co/SentinelHub/gpTommy-32k) | |
| * ๐ฌ๐ง **English (`gpTommy-32k-EN`):** [GitHub](https://github.com/Thomasseri/gpTommy-32k-EN) | [Hugging Face](https://huggingface.co/SentinelHub/gpTommy-32k-EN) | |
| * ๐ฉ๐ช **Deutsch (`gpTommy-32k-DE`):** [GitHub](https://github.com/Thomasseri/gpTommy-32k-DE) | [Hugging Face](https://huggingface.co/SentinelHub/gpTommy-32k-DE) | |
| * ๐ซ๐ท **Franรงais (`gpTommy-32k-FR`):** [GitHub](https://github.com/Thomasseri/gpTommy-32k-FR) | [Hugging Face](https://huggingface.co/SentinelHub/gpTommy-32k-FR) | |
| * ๐ช๐ธ **Espaรฑol (`gpTommy-32k-ES`):** [GitHub](https://github.com/Thomasseri/gpTommy-32k-ES) | [Hugging Face](https://huggingface.co/SentinelHub/gpTommy-32k-ES) | |
| --- | |
| ## ๐ฏ 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: | |
| ```python | |
| 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](https://www.sentinelhub.eu)**. | |