始める無料で始める

BERT を使った転移学習

PyBooks では、感情分析に事前学習済みの Transformer モデルである BERT を活用することになりました。BERT はさまざまな NLP タスクで顕著な性能を示しており、この用途に最適な候補です。

あなたのタスクは、transformers ライブラリの BERT モデルを使って二値の感情分類を行う基本的なワークフローを構築することです。

すでに BertTokenizerBertForSequenceClassificationtorch がインポートされています。 サンプルデータの 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()}")
コードを編集して実行