【機械学習】古いtransformersでも最新のBERTの日本語学習済みモデルを使いたかった

【機械学習】古いtransformersでも最新のBERTの日本語学習済みモデルを使いたかった

日本語の学習済みモデルを使用する際は、東北大学が公開してくれている学習済みのモデルを使用することが一般的だと思います(多分)。
そんな状況が続いていたのですが、当然ながら学習データもやや古くなり新しい使われ方をし始めた言葉(コロナなど)に対して、精度が下がるようになっている現状がありました。
ということで、新しい学習済みのモデルを探していたのですが、その導入で躓くポイントが有ったので知見として残しておこいたいと思います。

やりたいこと

東北大学が公開している日本語版学習済みBERTモデルの最新のものを使用したい。

https://huggingface.co/cl-tohoku/bert-base-japanese-v2

ちなみに、よく探すと出てくる事前学習済みのモデルは下記になりますが、

https://huggingface.co/cl-tohoku/bert-base-japanese-char-whole-word-masking

The model is trained on Japanese Wikipedia as of September 1, 2019.

※bert-base-japanese-char-whole-word-masking

と、2019年時点のデータを用いて学習しているようなので最新の情勢を反映したいようなタスクの場合には適していません。
それに対し、新たに公開された「bert-base-japanese-v2」は

The training corpus is generated from the Wikipedia Cirrussearch dump file as of August 31, 2020.

※bert-base-japanese-v2

となっており、新型コロナウィルスで大きく情勢が変わっている部分も学習データにある程度含まれています。
そのため、コロナウィルス関連やリモートワーク等に関する情報も適切に処理するために新しいモデルの使用を検討しました。

モデル読み込み時に起きた問題

(少なくとも)上記に書いたようなメリットがあるため、新しいモデルが作られたなら候補に入れたいと考えていたのですが、初っ端からつまづきました。

huggingfaceのmodel hubにこの事前学習済みモデルは公開されており、該当のモデルのページにはtransformers(ライブラリ)からモデルを使用する方法が丁寧に書かれています。

なのですが、そちらを参考にして実行したところ、
transformersのバージョンが2.3.0の場合は

というようなエラーが出ましました。

どうやらライブラリ内に読み込み先の定義がされており、新しく公開されたものを読み込めないようでした。

解決方法

リポジトリからのダウンロードではなく、ローカルに置いたファイルでも動作するように作られています。

なのでgit でダウンロードしてダウンロードしたものを読み込みましょう

 

まとめ

最新版のライブラリを使いましょう。また運用時などでも出来る限り最新版のライブラリを使えるような工夫をしているとみんな幸せになれそうですね…。

機械学習カテゴリの最新記事