Внимание_mask отсутствует в возвращаемом dict от tokenizer.encode_plus
У меня есть кодовая база, которая работает нормально, но сегодня, когда я пытался запустить, я заметил, что tokenizer.encode_plus
перестал возвращаться attention_mask
. Он удален в последней версии? Или мне нужно сделать что-то еще?
Следующий фрагмент кода работал у меня.
encoded_dict = tokenizer.encode_plus(
truncated_query,
span_doc_tokens,
max_length=max_seq_length,
return_overflowing_tokens=True,
pad_to_max_length=True,
stride=max_seq_length - doc_stride - len(truncated_query) - sequence_pair_added_tokens,
truncation_strategy="only_second",
return_token_type_ids=True,
return_attention_mask=True
)
Но теперь я получаю только dict_keys(['input_ids', 'token_type_ids'])
из encode_plus. Также я понял, что вернулисьinput_ids
не дополнены max_length
.
1 ответ
Решение
Я разобрался в проблеме. Я обновил API токенизаторов до версии 0.7.0, которая является последней версией. Однако последняя версия API трансформаторов работает с токенизаторами версии 0.5.2. После отката на 0.5.2 проблема исчезла. С участиемpip show
, Вижу следующее.
Name: transformers
Version: 2.8.0
Summary: State-of-the-art Natural Language Processing for TensorFlow 2.0 and PyTorch
Home-page: https://github.com/huggingface/transformers
Name: tokenizers
Version: 0.5.2
Summary: Fast and Customizable Tokenizers
Home-page: https://github.com/huggingface/tokenizers