Einführung des Modern Text Tokenizers
Moderne Modelle der natürlichen Sprachverarbeitung (NLP) wie BERT, DistilBERT und andere transformerbasierte Architekturen setzen stark auf effektive Tokenisierung. C++-Entwickler sehen sich jedoch oft mit eingeschränkten Möglichkeiten wie überladenen Abhängigkeiten, unzureichender Unicode-Unterstützung oder mangelnder Kompatibilität mit vocab-basierten Encodern konfrontiert.
Deshalb habe ich den Modern Text Tokenizer entwickelt – einen blitzschnellen, header-only C++-Tokenizer, der UTF-8-fähig, unabhängig und ML-fähig ist.
Was macht ihn einzigartig?
- Keine Abhängigkeiten – Kein Boost, keine ICU, keine externen Bibliotheken.
- UTF-8-sicher – Korrekte Verarbeitung von mehrsprachigem Text, Emojis und Multibyte-Zeichen.
- Header-only – Einfach in Ihr Projekt einfügen und loslegen.
- Vokabularkodierung – Laden Sie „vocab.txt“ von HuggingFace und generieren Sie Token-IDs.
- Transformer-fähig – Unterstützt
[CLS]
,[SEP]
,[PAD]
und Sequenzformatierung.
Hauptfunktionen
- Schnelle ASCII- vs. Unicode-Verzweigung mit
std::string_view
- Fluent API für die Konfiguration:
1 TextTokenizer tokenizer; 2 tokenizer 3 .set_lowercase(true) 4 .set_split_on_punctuation(true) 5 .set_keep_punctuation(true);
- Vokabeln laden:
1 tokenizer.load_vocab("vocab.txt");
- Kodieren / Dekodieren:
1 auto ids = tokenizer.encode("Hello world!"); 2 std::string decoded = tokenizer.decode(ids);
Leistung
1Leistungstest mit 174.000 Zeichen
2
3Ergebnisse:
4Tokenisierung: 2159 μs (22.000 Token)
5Kodierung: 1900 μs
6Dekodierung: 430 μs
7Gesamtzeit: 4,49 ms
8Durchsatz: 36,97 MB/s
Benchmarking auf Ryzen 9 5900X @ -O3 im Release-Modus.
Anwendung
Header-Datei hinzufügen:
1#include "Modern-Text-Tokenizer.hpp"
Dann kompilieren:
1g++ -std=c++17 -O3 -o tokenizer_demo main.cpp
Möchten Sie es mit BERT oder DistilBERT verwenden? Laden Sie einfach die Vokabeldatei herunter:
1curl -O https://huggingface.co/distilbert/distilbert-base-uncased/raw/main/vocab.txt
Plattformübergreifende CI-Builds
OS | Status |
---|---|
Ubuntu | ✅ |
Windows | ✅ |
GitHub Actions |
Anwendungsfälle
– Textvorverarbeitung für ML-Modelle in C++ – Geräteinterne NLP (kein Python-Overhead) – Leistungsstarke CLI-Tools – Eingebettete Systeme ohne Laufzeitabhängigkeiten
Jetzt testen
Der Modern Text Tokenizer ist live und bereit für Ihre Projekte.
Klonen, kompilieren und tokenisieren in Sekundenschnelle: Modern Text Tokenizer
Kommentare