Fournit une implémentation des tokenizers les plus utilisés aujourd'hui, en mettant l'accent sur les performances et la polyvalence.
Entraînez de nouveaux vocabulaires et tokenisez, en utilisant les tokenizers les plus utilisés aujourd'hui.
Extrêmement rapide (à la fois formation et tokenisation), grâce à l'implémentation de Rust. Il faut moins de 20 secondes pour tokeniser un Go de texte sur le processeur d'un serveur.
Facile à utiliser, mais aussi extrêmement polyvalent.
Conçu pour la recherche et la production.
La normalisation s'accompagne d'un suivi des alignements. Il est toujours possible d'obtenir la partie de la phrase originale qui correspond à un token donné.
Effectue tout le prétraitement : tronquer, compléter, ajouter les jetons spéciaux dont votre modèle a besoin.
Les performances peuvent varier en fonction du matériel, mais l'exécution de ~/bindings/python/benches/test_tiktoken.py devrait donner ce qui suit sur une instance aws g6 :
Nous fournissons des liaisons vers les langues suivantes (d'autres à venir !) :
Rust (implémentation originale)
Python
Noeud.js
Ruby (Contributé par @ankane, dépôt externe)
Vous pouvez installer à partir des sources en utilisant :
pip install git+https://github.com/huggingface/tokenizers.git#subdirectory=bindings/python
notre installer les versions publiées avec
pip installer des tokeniseurs
Choisissez votre modèle entre Byte-Pair Encoding, WordPièce ou Unigram et instanciez un tokenizer :
à partir des tokenizers import Tokenizerfrom tokenizers.models import BPEtokenizer = Tokenizer(BPE())
Vous pouvez personnaliser la façon dont la pré-tokénisation (par exemple, la division en mots) est effectuée :
à partir de tokenizers.pre_tokenizers import Whitespacetokenizer.pre_tokenizer = Whitespace()
Ensuite, entraîner votre tokenizer sur un ensemble de fichiers ne prend que deux lignes de codes :
à partir de tokenizers.trainers import BpeTrainertrainer = BpeTrainer(special_tokens=["[UNK]", "[CLS]", "[SEP]", "[PAD]", "[MASK]"])tokenizer.train(files=[ "wiki.train.raw", "wiki.valid.raw", "wiki.test.raw"], trainer=trainer)
Une fois votre tokenizer formé, encodez n'importe quel texte avec une seule ligne :
output = tokenizer.encode("Bonjour à tous ! Comment allez-vous ? ?")print(output.tokens)# ["Bonjour", ",", "y", "'", "tous", "! ", "Comment", "êtes-vous", "vous", "[UNK]", "?"]
Consultez la documentation ou la visite rapide pour en savoir plus !