はじめに
最近、AIや自然言語処理について勉強をしている。LLMについての理解を深めるため、まずはBERTの使い方を学ぼうと思い、以下の記事を参考に動かしてみる。
環境
言語はPython。使用ツールはGoogle Colaboratory。
Google ColabのGPU環境を設定
Google ColabのGPU環境が必要だそうなので、このサイトを参考に設定しました。
GPUは12時間まで無料で連続使用できるそうです。
ランタイムのタブからランタイムのタイプを変更をクリックしてT4 GPUを選びます。
コードを試してみる
まずは記事のコードを一通りコピペして試してみると……エラーが出ますね。
To authenticate with the Hugging Face Hub, create a token in your settings tab (https://huggingface.co/settings/tokens), set it as secret in your Google Colab and restart your session.
どうやらHugging Faceでトークンを作る必要があるみたいです。
私はまだHugging Faceに登録していなかったので、こちらの記事を参考に登録して、トークンを取得しました。
Google Colabのシークレットにトークンを追加
エラーの文章を読むと
The secret HF_TOKEN
does not exist in your Colab secrets.
と書いてありました。
調べてみたらGoogle Colabのシークレット機能を使えばいいみたいなので
この記事を参考に Colab secretsにHF_TOKENを追加してみます。
左メニューの鍵アイコンをクリックし、 HF_TOKEN
という名前で Hugging Face のアクセストークンをシークレットに登録し、「ノートブックからのアクセス」を ON にします。
リポジトリURLの修正
これで進めると、またエラーが出ました。
Repository Not Found
とのことなので調べると、どうやら元のコードで使っていたリポジトリのURLが変わっているようですね。
参考にした記事が4年前のものなので、当時とは色々と状況が変わっているのでしょう。
リポジトリのURLにtohoku-nlp/を追加して
tokenizer = BertJapaneseTokenizer.from_pretrained('tohoku-nlp/bert-base-japanese-whole-word-masking')
にして試すと、進みました。
fugashiとIPAdicのインストール
またエラーが出たので調べていくと……
fugashiとIPAdicをインストールする必要があるようなので
!pip install fugashi
!pip install ipadic
を実行してからもう一回進めます。
コードの修正
次はAttributeError: 'str' object has no attribute 'backward’
のエラーが出ました。
Teratailに同様の質問があったので確認してコードを修正。
それから、numpyのインポートしてなくてエラーが出たので
そこも修正して進めると……
動きました!!
logit_0 | logit_1 | pred_label | true_label | |
---|---|---|---|---|
0 | 4.465312 | -5.010775 | 0 | 0 |
1 | -4.279079 | 5.095233 | 1 | 1 |
2 | -4.622071 | 5.218770 | 1 | 1 |
3 | -4.371633 | 5.159783 | 1 | 1 |
4 | -4.620034 | 5.224734 | 1 | 1 |
予測と正解が合ってますね。
どうやらうまく動かせたようです。
おわりに
初めてBERTを使ってみましたが、参考記事と状況が変わっているところもあって苦労しました。
今後も学習を頑張っていきたいです。