Aan de slagGa gratis aan de slag

Transfer learning met BERT

Bij PyBooks heeft het bedrijf besloten om de kracht van het BERT-model, een voorgetraind transformer-model, in te zetten voor sentimentanalyse. BERT levert uitstekende prestaties op uiteenlopende NLP-taken en is daarom een geschikte kandidaat voor deze use case.

Jij krijgt de taak om een basisworkflow op te zetten met het BERT-model uit de transformers-bibliotheek voor binaire sentimentclassificatie.

Het volgende is alvast voor je geïmporteerd: BertTokenizer, BertForSequenceClassification, torch. De voorbeelddata texts en bijbehorende labels zijn ook al ingeladen.

Deze oefening maakt deel uit van de cursus

Deep Learning voor tekst met PyTorch

Cursus bekijken

Oefeninstructies

  • Laad de bert-base-uncased tokenizer en het model dat geschikt is voor binaire classificatie.
  • Tokenize je gegevensset en bereid deze voor op het model; zorg dat het PyTorch-tensors retourneert met het argument return_tensors.
  • Stel de optimizer in met de modelparameters.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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()}")
Code bewerken en uitvoeren