Я получил странную ошибку при попытке кодировать пары вопрос-ответ для BERT с использованием метода encode_plus
, предоставленного в библиотеке Transformers.
Я использую данные этого конкурса Kaggle, Учитывая название вопроса, тело вопроса и ответ, модель должна предсказать 30 значений (проблема регрессии). Моя цель - получить следующую кодировку в качестве входных данных для BERT:
[CLS] question_title question_body [SEP] ответ [SEP]
Однако, когда я пытаюсь использовать
tokenizer = transformers.BertTokenizer.from_pretrained("bert-base-uncased")
и кодировать только второй вход из train.csv следующим образом:
inputs = tokenizer.encode_plus(
df_train["question_title"].values[1] + " " + df_train["question_body"].values[1], # first sequence to be encoded
df_train["answer"].values[1], # second sequence to be encoded
add_special_tokens=True, # [CLS] and 2x [SEP]
max_len = 512,
pad_to_max_length=True
)
Я получаю следующую ошибку:
Token indices sequence length is longer than the specified maximum sequence length for this model (46 > 512). Running this sequence through the model will result in indexing errors
Это говорит о том, что длина индексов токена равна длиннее указанной максимальной длины последовательности, но это не так (как видите, 46 не> 512).
Это происходит для нескольких строк в df_train
. Я что-то здесь не так делаю?