성능과 다양성에 중점을 두고 오늘날 가장 많이 사용되는 토크나이저의 구현을 제공합니다.
오늘날 가장 많이 사용되는 토크나이저를 사용하여 새로운 어휘를 훈련하고 토큰화합니다.
Rust 구현 덕분에 매우 빠릅니다(훈련 및 토큰화 모두). 서버 CPU에서 1GB의 텍스트를 토큰화하는 데 20초도 채 걸리지 않습니다.
사용하기 쉽지만 매우 다양합니다.
연구 및 생산용으로 설계되었습니다.
정규화에는 정렬 추적이 포함됩니다. 주어진 토큰에 해당하는 원래 문장의 부분을 얻는 것은 항상 가능합니다.
자르기, 채우기, 모델에 필요한 특수 토큰 추가 등 모든 사전 처리를 수행합니다.
성능은 하드웨어에 따라 다를 수 있지만 ~/bindings/python/benches/test_tiktoken.py를 실행하면 g6 aws 인스턴스에서 다음이 제공됩니다.
우리는 다음 언어에 대한 바인딩을 제공합니다(더 많은 언어가 추가될 예정입니다!):
Rust(원래 구현)
파이썬
Node.js
Ruby(기고자: @ankane, 외부 저장소)
다음을 사용하여 소스에서 설치할 수 있습니다.
pip 설치 git+https://github.com/huggingface/tokenizers.git#subdirectory=bindings/python
다음을 사용하여 릴리스된 버전을 설치합니다.
pip 설치 토크나이저
바이트 쌍 인코딩, WordPiece 또는 Unigram 중에서 모델을 선택하고 토크나이저를 인스턴스화합니다.
from tokenizers import Tokenizerfrom tokenizers.models import BPEtokenizer = Tokenizer(BPE())
사전 토큰화(예: 단어로 분할)가 수행되는 방식을 사용자 정의할 수 있습니다.
from tokenizers.pre_tokenizers import Whitespacetokenizer.pre_tokenizer = Whitespace()
그런 다음 파일 세트에 대해 토크나이저를 훈련하려면 두 줄의 코드만 사용하면 됩니다.
tokenizers.trainers에서 import BpeTrainertrainer = BpeTrainer(special_tokens=["[UNK]", "[CLS]", "[SEP]", "[PAD]", "[MASK]"])tokenizer.train(files=[ "wiki.train.raw", "wiki.valid.raw", "wiki.test.raw"], 트레이너=트레이너)
토크나이저가 훈련되면 단 한 줄로 모든 텍스트를 인코딩하십시오.
output = tokenizer.encode("안녕하세요, 여러분! 잘 지내세요? ?")print(output.tokens)# ["안녕하세요", ",", "y", "'", "all", "! ", "어떻게", "입니까", "너", "[UNK]", "?"]
자세한 내용은 설명서나 빠른 둘러보기를 확인하세요!