株式会社ユーザベースでUB Researchを担当している高山です。
ユーザベースでは2023年7月からStudio Ousiaさんと業務提携して、LLMの研究開発に取り組んでいます。
今回はその続報として、Studio Ousiaさんと共同でおこなった日本語LUKEモデルを改変したモデルについて書いていきます。
背景
ユーザベースの課題の一つに「ニューステキスト内の企業名抽出」(人工知能学会全国大会2023の発表)があります。
Studio Ousiaさんの開発する、エンティティリンキングなどのタスクで高い精度を誇る言語モデルLUKEを用いてこの課題に取り組んでみました。
日本語LUKEはトークナイザとしてSentencepieceを使っているため、日本語として自然でないトークナイズをすることが知られています。*1
例: 'アップルが作った製品' ↓ '▁', 'アップ', 'ルが', '作った', '製品' 'NTTデータのサービス' ↓ '▁N', 'TT', 'データの', 'サービス'
これは文書分類や含意関係認識などの文/文書単位で評価を行うタスクではあまり問題になりません。しかし、単語に対応する出力ベクトルを得ることができないため、固有表現抽出や抽出型質問応答などの単語単位で処理を行う必要のあるタスクはうまく解くことができません。例えば、固有表現抽出について上述のように分割されているテキストから「アップル」を抜き出すことは困難です。
そこで、トークナイザをWordPieceに切り替えたモデルを作成しました。
WordPieceは単語分割をしてからサブワード分割をするトークナイザで、今回の実装では単語分割にMeCabを使っていますので日本語の単語境界をうまく扱うことができます。
モデル
今回作成したモデルはHugging Faceにて公開しています。
オリジナルの日本語LUKE(studio-ousia/luke-japanese-base)からの変更点は以下のとおりです。
- ベースのモデルをRoBERTaから日本語BERTに切り替え、それに伴ってトークナイザがSentencepieceからWordPieceになりました
- 2023年7月1日時点の日本語Wikipediaのデータで事前学習をおこないました
[UNK]
(unknown) エンティティを扱えるようにしました
性能
JGLUEに含まれるタスクのうち3つを使って、Studio Ousiaさんが公表する日本語LUKEと、今回新たに事前学習を行ったLUKEとの比較をしました。*2
ベンチマーク | JSTS (pearson / spearmanr) | JNLI (accuracy) | JCommonsenseQA (accuracy) |
---|---|---|---|
studio-ousia/luke-japanese-base | 0.9187 / 0.8831 | 0.9113 | 0.8445 |
uzabase/luke-japanese-wordpiece-base | 0.9138 / 0.8777 | 0.9051 | 0.8418 |
これらのベンチマークにおいてはオリジナルの日本語LUKEに比べると僅かに性能が下がっています。仮説として考えられるのは、トークナイザの差によるものか、ベースのモデルの差によるものと思われます。
一方、この新しいLUKEを、ユーザベース社内の企業名抽出を行う固有表現抽出タスクに当てはめてみました。人工知能学会で発表したパイプラインに組み込むにあたって、MNTSQさんが公開されている固有表現抽出の実験スクリプトを参考に、TaggerベースのモデルからCRFベースのモデルにしています。今回のTokenizerの変更で、単語やエンティティの境界をきれいに抽出することができるようになり、手元の実験では、発表時のスコアから少し向上することを確認し、現在は検証実験中です。(手元の実験のため詳細の公表は控えさせていただきます)
おわりに
今回はStudio Ousiaさんにご協力いただいて、ユーザベースの用途に合った言語モデルを作成し、世に出すことができました。
ユーザベースでは他にもLLMの研究開発に取り組んでいますので、ご興味があれば是非ご覧ください。
*1:Sentencepieceの分割を自然な単語分割に沿いやすくする方法 も提案されていますが、日本語LUKEでは採用されていません。
*2:データセットや精度指標はJGLUEの方式に従っています。既存のモデルの計算にあたっては、計算環境の違いからStudio Ousiaさんが公表する精度と若干の誤差がでてしまっています。