Presentazione di Modern Text Tokenizer
I moderni modelli di elaborazione del linguaggio naturale (NLP) come BERT, DistilBERT e altre architetture basate su trasformatori si basano fortemente su una tokenizzazione efficace. Tuttavia, gli sviluppatori C++ spesso si trovano ad affrontare opzioni limitate, come dipendenze eccessive, scarso supporto Unicode o mancanza di compatibilità con gli encoder basati su vocabolario.
Ecco perché ho creato Modern Text Tokenizer: un tokenizzatore C++ incredibilmente veloce, solo header, compatibile con UTF-8, senza dipendenze e pronto per il ML fin da subito.
Cosa lo rende unico?
- Nessuna dipendenza – Nessun Boost, nessuna ICU, nessuna libreria esterna.
- Sicuro per UTF-8 – Gestisce correttamente testo multilingue, emoji e caratteri multibyte.
- Solo header – Inseriscilo nel tuo progetto e inizia.
- Codifica del vocabolario – Carica
vocab.txt
da HuggingFace e genera gli ID token. - Pronto per Transformer – Supporta
[CLS]
,[SEP]
,[PAD]
e la formattazione sequenziale.
Caratteristiche principali
- Rapida ramificazione ASCII vs Unicode tramite
std::string_view
- API fluida per la configurazione:
1 TextTokenizer tokenizer; 2 tokenizer 3 .set_lowercase(true) 4 .set_split_on_punctuation(true) 5 .set_keep_punctuation(true);
- Carica vocabolari:
1 tokenizer.load_vocab("vocab.txt");
- Codifica / Decodifica:
1 auto ids = tokenizer.encode("Hello world!"); 2 std::string decoded = tokenizer.decode(ids);
Prestazione
1Test delle prestazioni con 174.000 caratteri
2
3Risultati:
4Tokenizzazione: 2.159 μs (22.000 token)
5Codifica: 1.900 μs
6Decodifica: 430 μs
7Tempo totale: 4,49 ms
8Throughput: 36,97 MB/s
Benchmark eseguito su Ryzen 9 5900X @ -O3 in modalità di rilascio.
Come si usa
Aggiungere il file di intestazione:
1#include "Modern-Text-Tokenizer.hpp"
Quindi compilare:
1g++ -std=c++17 -O3 -o tokenizer_demo main.cpp
Vuoi usarlo con BERT o DistilBERT? Scarica semplicemente il file del vocabolario:
1curl -O https://huggingface.co/distilbert/distilbert-base-uncased/raw/main/vocab.txt
Build CI multipiattaforma
OS | Status |
---|---|
Ubuntu | ✅ |
Windows | ✅ |
GitHub Actions |
Casi d’uso
- Pre-elaborazione del testo per modelli ML in C++
- NLP sul dispositivo (nessun sovraccarico Python)
- Strumenti CLI ad alte prestazioni
- Sistemi embedded senza dipendenze runtime
Provalo ora
Modern Text Tokenizer è attivo e pronto per i tuoi progetti.
Clona, compila e tokenizza in pochi secondi: Modern Text Tokenizer
Commenti