Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Wczytaj tokenizer i model bert-base-uncased odpowiedni 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()}")
Edytuj i uruchom kod