huggingface-recap
인코딩 값을 되돌리기
decode
from transformers import AutoTokenizer, AutoModelForSequenceClassification
model_name = "nlptown/bert-base-multilingual-uncased-sentiment"
tokenizer = AutoTokenizer.from_pretrained(model_name)
ids = tokenizer("Father enters the room")['input_ids']
tokenizer.decode(ids, skip_special_tokens=True)
ref huggingface tutorial huggingface tokenizer documemnt: https://huggingface.co/docs/transformers/main_classes/tokenizer
decode() list[int]만 받는다. 배치 단위로 바꾸려면 batch_decode 사용
for batch in train_loadera:
ids = batch['more_toxic_ids'] # (B, max_seq_len)
print( tokenizer.batch_decode(ids, skip_special_tokens = True) )
- 기본 토크나이저 클래스는 tokenization_utils.py 의 PreTrainedTokenizer(PreTrainedTokenizerBase) class이다. 자주 쓰는 roberta는 이 순서로 상속 함. roberta -> gpt tokenizer -> PreTrainedTokenizer -> PreTrainedTokenizerBase으로 상속. PreTrainedTokenizer에 _decode 함수가 있고, 사용은 PreTrainedTokenizerBase의 decode 함수를 사용한다. _decode는 list[int] 만 받는다. 그래서 배치를 한꺼번에 되돌리려면 batch_decode을 쓰면 됨.
https://github.com/huggingface/transformers/blob/v4.15.0/src/transformers/tokenization_utils.py
ref https://huggingface.co/docs/transformers/main_classes/tokenizer
Comments