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
OS | Status |
---|---|
Ubuntu | ✅ |
Windows | ✅ |
GitHub Actions |
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
Hozzászólások