Bemutatkozik a Modern Text Tokenizer

A modern természetes nyelvi feldolgozási (NLP) modellek, mint például a BERT, a DistilBERT és más transzformátor-alapú architektúrák nagymértékben támaszkodnak a hatékony tokenizációra. A C++ fejlesztők azonban gyakran korlátozott lehetőségekkel szembesülnek, mint például a túlméretezett függőségek, a gyenge Unicode-támogatás vagy a szókincs-alapú kódolókkal való kompatibilitás hiánya.

Ezért hoztam létre a Modern Text Tokenizert - egy villámgyors, csak fejléc-alapú C++ tokenizert, amely UTF-8-tudatos, nulla függőségű és gépi tanulásra kész, azonnal használható.

Mi teszi egyedivé?

  • Nulla függőség – Nincs Boost, nincs ICU, nincsenek külső könyvtárak.
  • UTF-8 biztonságos – Helyesen kezeli a többnyelvű szöveget, emojikat és többbájtos karaktereket.
  • Csak fejléc-alapú – Helyezze be a projektjébe, és már indulhat is.
  • Szókincs kódolás – A HuggingFace-ből betölti a vocab.txt fájlt, és token azonosítókat generál.
  • Transformer-Ready – Támogatja a [CLS], [SEP], [PAD] és a szekvencia formázást.

Főbb jellemzők

  • Gyors ASCII vs. Unicode elágazás std::string_view használatával
  • Fluent API a konfigurációhoz:
    1  TextTokenizer tokenizer;
    2  tokenizer
    3    .set_lowercase(true)
    4    .set_split_on_punctuation(true)
    5    .set_keep_punctuation(true);
  • Szókincsek betöltése:
    1  tokenizer.load_vocab("vocab.txt");
  • Kódolás / Dekódolás:
    1  auto ids = tokenizer.encode("Hello world!");
    2  std::string decoded = tokenizer.decode(ids);

Performance

1Teljesítményteszt 174000 karakterrel
2
3Eredmények:
4Tokenizáció: 2159 μs (22000 token)
5Kódolás: 1900 μs
6Dekódolás: 430 μs
7Teljes idő: 4,49 ms
8Átviteli sebesség: 36,97 MB/s

Ryzen 9 5900X processzoron, -O3-on, kiadási módban tesztelve.

Használati utasítás

Adja hozzá a fejlécfájlt:

1#include "Modern-Text-Tokenizer.hpp"

Ezután fordítsd le:

1g++ -std=c++17 -O3 -o tokenizer_demo main.cpp

Szeretnéd BERT-tel vagy DistilBERT-tel használni? Csak töltsd le a szókincsfájlt:

1curl -O https://huggingface.co/distilbert/distilbert-base-uncased/raw/main/vocab.txt

Keresztplatformos CI-buildek

OSStatus
Ubuntu
Windows
GitHub ActionsCI

Használati esetek

  • Szöveg előfeldolgozása C++ gépi tanulási modellekhez
  • Eszközön belüli NLP (nincs Python többletterhelés)
  • Nagy teljesítményű CLI eszközök
  • Beágyazott rendszerek futásidejű függőségek nélkül

Próbálja ki most

A Modern Text Tokenizer élőben elérhető és készen áll a projektjei számára.

Klónozás, fordítás és tokenizálás másodpercek alatt: Modern Text Tokenizer