Transfer learning z wykorzystaniem BERT
W PyBooks firma postanowiła wykorzystać model BERT – wstępnie wytrenowany model transformerowy – do analizy wydźwięku (sentymentu). BERT osiąga znakomite wyniki w różnych zadaniach z zakresu NLP, co czyni go idealnym kandydatem do tego zastosowania.
Twoim zadaniem jest przygotowanie podstawowego przepływu pracy z użyciem modelu BERT z biblioteki transformers do binarnej klasyfikacji sentymentu.
Następujące elementy zostały już zaimportowane: BertTokenizer, BertForSequenceClassification, torch.
Przykładowe dane texts oraz odpowiadające im labels są również wstępnie załadowane.
To ćwiczenie jest częścią kursu
Uczenie głębokie dla tekstu z PyTorch
Instrukcje do ćwiczenia
- Wczytaj tokenizer i model
bert-base-uncasedodpowiedni do klasyfikacji binarnej. - Stokenizuj zbiór danych i przygotuj go dla modelu – upewnij się, że zwracane są tensory PyTorch, ustawiając argument
return_tensors. - Skonfiguruj optymalizator, przekazując mu parametry modelu.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Load the BERT tokenizer and model
tokenizer = BertTokenizer.from_pretrained('____')
model = BertForSequenceClassification.from_pretrained('____', num_labels=____)
# Tokenize your data and return PyTorch tensors
inputs = tokenizer(____, padding=True, truncation=True, return_tensors="____", max_length=32)
inputs["labels"] = torch.tensor(labels)
# Setup the optimizer using model parameters
optimizer = torch.optim.AdamW(____, lr=0.00001)
model.train()
for epoch in range(2):
outputs = model(**inputs)
loss = outputs.loss
loss.backward()
optimizer.step()
optimizer.zero_grad()
print(f"Epoch: {epoch+1}, Loss: {loss.item()}")