BERT を使った転移学習
PyBooks では、感情分析に事前学習済みの Transformer モデルである BERT を活用することになりました。BERT はさまざまな NLP タスクで顕著な性能を示しており、この用途に最適な候補です。
あなたのタスクは、transformers ライブラリの BERT モデルを使って二値の感情分類を行う基本的なワークフローを構築することです。
すでに BertTokenizer、BertForSequenceClassification、torch がインポートされています。
サンプルデータの texts と、それに対応する labels も読み込まれています。
この演習はコースの一部です
PyTorch で学ぶテキストの Deep Learning
演習の手順
- 二値分類に適した
bert-base-uncasedのトークナイザとモデルを読み込みます。 - データセットをトークナイズし、
return_tensors引数を使って PyTorch のテンソルを返すように準備します。 - モデルのパラメータを使ってオプティマイザを設定します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# 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()}")