Внимание_Маска отсутствует в возвращенном dict от tokenizer.encode_plus - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть кодовая база, которая работала нормально, но сегодня, когда я пытался запустить, я заметил, что 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 Ответ

0 голосов
/ 09 мая 2020

Я разобрался в проблеме. Я обновил 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
...