Понимание того, как gpt-2 токенизирует строки
Используя здесь руководства , я написал следующие коды:
from transformers import GPT2Tokenizer, GPT2Model
import torch
tokenizer = GPT2Tokenizer.from_pretrained('gpt2')
model = GPT2Model.from_pretrained('gpt2')
inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
outputs = model(**inputs)
last_hidden_states = outputs.last_hidden_state
Итак, я понимаю, что «входы» состоят из токенизированных элементов моего предложения. Но как я могу получить значения токенизированных элементов? (см., например, [«привет», «,», «мой», «собака», «это», «милый»])
Я спрашиваю об этом, потому что иногда мне кажется, что он отделяет слово, если этого слова нет в его словаре (т.е. слова из другого языка). Поэтому я хочу проверить это в своих кодах.
1 ответ
Ты можешь позвонить
tokenizer.decode
на выходе токенизатора, чтобы получить слова из его словаря с заданными индексами:
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> list(map(tokenizer.decode, inputs.input_ids[0]))
['Hello', ',', ' my', ' dog', ' is', ' cute']