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

OSStatus
Ubuntu
Windows
GitHub ActionsCI

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