日本語に特化したGPT-2の大規模言語モデルを開発しオープンソース化
rinna社はこのたび、製品開発のための自然言語処理(NLP)の実験過程で、日本語に特化したGPT-2の大規模言語モデルを構築しました。日本語のNLP研究コミュニティに貢献するために、開発した言語モデルと、研究者が自分のマシンで実験結果を再現するためのトレーニングコードを、GitHub、およびNLPモデルライブラリHuggingFaceで、オープンソースとして公開します。
- HuggingFace: https://huggingface.co/rinna/japanese-gpt2-medium
- GitHub: https://github.com/rinnakk/japanese-gpt2
■日本語GPT-2モデルの機能
言語モデルは、言語データの機械学習をもとに、会話や文章の「人間が使う言葉らしさ」を確率としてモデル化したものです。優れた言語モデルとは確率を正確に推定できるものを指します。例えば、 "確率(吾輩は猫である)>確率(吾輩が猫である)" と推定できるのが、言語モデルの能力です
GPT-2は、単語レベルの確率の組み合わせから文の確率を計算する言語モデル(自己回帰言語モデル)です。例えば、 "確率(吾輩は猫である) = 確率(吾輩) x 確率(は|吾輩) x 確率(猫|吾輩,は) x 確率(で|吾輩,は,猫) x 確率(ある|吾輩,は,猫,で)" のような方法で推定を行います。この能力を使って、GPT-2は「吾輩は猫で」という接頭辞(Prefix)を与えられたとき、確率の推定から次にくる単語として「ある」を選択し、文章を自動生成できます。
今回、rinna社が公開した日本語GPT-2モデルは、一般的な日本語テキストの特徴を有した高度な日本語文章を自動生成できます。ユーザー/研究者は、特定のテキストデータを微調整して、このモデルから独自のモデルを作成することも可能です。
例えば、Prefixとして「誰も到達していない人工知能の高みへ、ともに」という文章が与えられたとき、特定のコンテキスト(デモ1:講演の感想、デモ2:書籍の紹介)で応答文を生成(※1)するように、微調整できます。
(※1)上記のデモでは生成する文章の文字数上限を設定しており、実際に生成される全文ではありません。
■rinna社の日本語GPT-2モデルの特徴
当社の日本語GPT-2モデルは、以下の特徴があります。
- トレーニングデータとして、CC-100(http://data.statmt.org/cc-100/)のオープンソースデータを使用しています。
- Tesla V100 GPUを用いて、70ギガバイトの日本語テキストを約1カ月の長期間にわたってトレーニングしました。その結果、このモデルの性能は約18 perplexity (※2)を達成しました。モデルは十分にトレーニングされており、汎用性があると言えます。
- ユーザー/研究者が簡単にアクセスできるように、開発したモデルをHuggingFaceに公開しています。また、研究者が自分のマシンで当社の結果を再現できるように、トレーニングコードをGitHubに公開しています。
- 今回公開したのは、GPT2-mediumと定義される中規模サイズのモデルです。今後、パフォーマンスとコストのトレードオフに基づいてユーザー/研究者が最善の選択をできるよう、異なるサイズのモデルも公開する予定です。また、異なるデータでトレーニングした新しいモデルの公開も計画しています。
(※2)18 perplexityは、GPT-2モデルが前に与えられた単語から次の単語を予測するときに、正しいものを含む18のオプションだけを残すことができる性能を意味します。
■今後の展開
rinna社の研究チームが開発している大規模な言語モデルは、すでに当社のプロダクトに広く使用されています。当社は今後も、異なるテキストスタイルや異なるデータ量を含む、より高精度でより大規模な言語モデルの研究開発を続け、AIチャットボットの能力を高めていきます。また、日本語の研究コミュニティのために、これらのモデルをオープンソース化していきます。