У меня есть модель, прошедшая предварительную подготовку из BERT:
tokenizer_small = AutoTokenizer.from_pretrained('neuralmind/bert-base-portuguese-cased')
model_small = AutoModelWithLMHead.from_pretrained('neuralmind/bert-base-portuguese-cased')
И мой набор данных имеет следующий формат:
texts = questions[:10]
labels = contexts[:10]
dataset_debug = MyDataset(
texts=texts,
labels=labels,
tokenizer=tokenizer,
max_length=800)
dataloader_debug = DataLoader(dataset_debug, batch_size=4, shuffle=True,
num_workers=0)
token_ids, attention_mask, token_type_ids = next(iter(dataloader_debug))
print('token_ids:\n', token_ids)
print('token_type_ids:\n', token_type_ids)
print('attention_mask:\n', attention_mask)
print('token_ids.shape:', token_ids.shape)
print('token_type_ids.shape:', token_type_ids.shape)
print('attention_mask.shape:', attention_mask.shape)
Результат:
token_ids:
tensor([[ 101, 100, 22268, ..., 2014, 119, 102],
[ 101, 1079, 3264, ..., 125, 669, 102],
[ 101, 443, 18175, ..., 3955, 119, 102],
[ 101, 259, 1151, ..., 470, 119, 102]])
token_type_ids:
tensor([[0, 0, 0, ..., 1, 1, 1],
[0, 0, 0, ..., 1, 1, 1],
[0, 0, 0, ..., 1, 1, 1],
[0, 0, 0, ..., 1, 1, 1]])
attention_mask:
tensor([[1, 1, 1, ..., 1, 1, 1],
[1, 1, 1, ..., 1, 1, 1],
[1, 1, 1, ..., 1, 1, 1],
[1, 1, 1, ..., 1, 1, 1]])
token_ids.shape: torch.Size([4, 800])
token_type_ids.shape: torch.Size([4, 800])
attention_mask.shape: torch.Size([4, 800])
вопрос в том, что я должен делать внутри моей модели на форварде, чтобы преобразовать простую модель BERT для ответа на вопрос:
def forward(self, input_ids, attention_mask, token_type_ids):
return