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
Oefeninstructies
- Laad de
bert-base-uncasedtokenizer 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()}")