(Я следую этому руководству pytorch о слове BERT вложения, а в учебнике автор получает доступ к промежуточным уровням модели BERT.)
Я хочу получить доступ к последним, скажем, 4 последним слоям одного входного токена модели BERT в TensorFlow2 с использованием библиотеки Transformers HuggingFace. Поскольку каждый уровень выводит вектор длиной 768, последние 4 уровня будут иметь форму 4*768=3072
(для каждого токена).
Как я могу реализовать это в TF / keras / TF2, чтобы получить промежуточные уровни предварительно обученной модели для входного токена? (позже я попытаюсь получить токены для каждого токена в предложении, но пока достаточно одного токена).
Я использую модель BERT HuggingFace:
!pip install transformers
from transformers import (TFBertModel, BertTokenizer)
bert_model = TFBertModel.from_pretrained("bert-base-uncased") # Automatically loads the config
bert_tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")
sentence_marked = "hello"
tokenized_text = bert_tokenizer.tokenize(sentence_marked)
indexed_tokens = bert_tokenizer.convert_tokens_to_ids(tokenized_text)
print (indexed_tokens)
>> prints [7592]
Результатом является токен ([7592]
), который должен быть входом для модели BERT.