Stockmark Tech Blog

自然言語処理テクノロジーで社会を進化させる ストックマークのテックブログです。

Instruction Tuningを行なった130億パラメータの日本語LLMの公開:Stockmark-13b-instruct

Research部門の近江崇宏です。

先日、ストックマークではビジネスのドメインや最新情報(2023年9月まで)に対応した130億パラメータの大規模言語モデル(LLM)であるStockmark-13bを公開しました(Stockmark-13bの詳細に関しては、こちらのブログを参照ください)。 今回、Stockmark-13bに対して追加の学習を行い、ユーザーの指示に従うように訓練したStockmark-13b-instructを公開します。

モデルはHuggingface Hubからダウンロードいただけます。 Stockmark-13b-instructのライセンスはCC BY-NC-SAで、研究目的のみにご利用いただけます。

https://huggingface.co/stockmark/stockmark-13b-instruct

当社は理化学研究所の共同研究プロジェクトである「LLMのための日本語インストラクションデータ作成プロジェクト」に参加しており、このプロジェクトで作成されたインストラクションデータを用いて1、Stockmark-13b-instructの開発を行いました。

(追記)理化学研究所 革新知能統合研究センターからもプレスリリースが発表されました。

Stockmark-13b-instruct

先日、当社が公開したStockmark-13bは2200億トークンもの日本語のテキストで事前学習されたモデルです。 十分に訓練された事前学習モデルは流暢な文章を生成したり、fine tuningを行うことで様々なタスクに特化することができる一方で、そのままではユーザーの意図に沿った応答を行うことはできません。 LLMがユーザーの指示に従った応答を行うようにするためには、さらに追加の学習が必要です。 このために広く行われているのがinstruction tuningと呼ばれる学習で、これは多様な指示とそれに対する望ましい応答からなるデータセットを用いて学習を行うものです。

日本語のinstruction tuningのデータセットとしては以下のようなものがあります。

データセット 略称 データ数 言語
databricks-dolly-15k-ja dolly 15015 英語のデータセットを日本語に翻訳
oasst-89k-ja oasst 88838 英語のデータセットを日本語に翻訳
alpaca_ja alpaca 51716 英語のデータセットを日本語に翻訳
LLMのための日本語インストラクションデータ作成プロジェクト riken 1003 日本語

Instruction tuningでは、訓練に使うデータセットの質が最終的なモデルの性能に大きな影響を与えます。 最初の3つのデータセットは英語のデータセットを日本語に翻訳したものであり、データ数は多いものの、日本では馴染みのない話題や、日本語としては理解が難しいようなサンプルも含まれています。 「LLMのための日本語インストラクションデータ作成プロジェクト」は、このような既存のデータセットの課題に対応するために、日本語の質の高いデータセットを作成を目指したプロジェクトです。 データセットは現在作成の途中であり、現時点で公開されているデータ数は1003と他のデータセットに比べると少ないものの、データの質は高いものとなっています。

以下では、Stockmark-13bをそれぞれのデータセットで学習し、使うデータセットによって性能がどのように変わるかを評価しました。 ここでは学習の方法としてLoRA tuningを用いました。 結果としては、「LLMのための日本語インストラクションデータ作成プロジェクト」のデータセットで学習したモデルの性能が一番高いものになり、このモデルを公開することとしました。

Stockmark Business Questions

まず最初に、先日のブログでも扱った、ビジネスや時事問題のドメインでの知識を問う50題の質問からなるStockmark Business Questionsを用いて評価を行いました。 モデルの出力の正解・不正解の判定は人の手により行いました。

下の表は学習に用いたデータセットごとにモデルの正答率をまとめたものです。

データセット 正解率
riken 0.86
alpaca 0.80
dolly 0.72
oasst 0.7

どのデータセットを使うかによって性能に差が見られ、性能は大まかには以下のような順になりました。 データ数としては少ないながらも、「LLMのための日本語インストラクションデータ作成プロジェクト」のデータセットで学習されたモデルの正答率が最も高い結果となりました。

riken > alpaca > dolly ~ oasst

以下は、「2023年8月に福島第一原子力発電所が海洋放出をおこなったものは何か?」という質問に対する回答例です。定性的には「LLMのための日本語インストラクションデータ作成プロジェクト」のデータセットで学習されたモデルは、その他のモデルに比べて、質問で聞かれたことを単に答えるだけではなく、より詳細に回答を行う傾向がみられました。

データセット 回答
riken 2023年8月に福島第一原子力発電所が海洋放出をおこなったのは、ALPS処理水です。ALPS処理水とは、多核種除去設備(ALPS)等を用いて、トリチウム以外の放射性物質について安全に関する規制基準値を確実に下回るまで浄化した水です。
alpaca 2023年8月に福島第一原子力発電所が海洋放出を行ったのは、ALPS処理水である。
dolly ALPS処理水
oasst 2023年8月に福島第一原子力発電所が海洋放出をおこなったのは、ALPS処理水です。

JGLUE

次に、日本語の言語理解のベンチマークであるJGLUEを使った評価も行いました2。 評価のために、lm-evaluation-harnessを用いました3。 下の表のbaseはInstruction tuningを行なっていないStockmark-13bを表しています。

データセット JSQuAD JCommonsenseQA JNLI 平均
riken 0.79 0.80 0.55 0.71
alpaca 0.72 0.81 0.50 0.68
dolly 0.75 0.71 0.51 0.66
oasst 0.76 0.74 0.55 0.68
(base) 0.81 0.57 0.47 0.62

どのデータセットを用いたとしても、Instruction tuningを行うことで事前学習のみを行なったベースのモデルに比べるとJGLUEのスコアが上がり、最もスコアが高かったのは「LLMのための日本語インストラクションデータ作成プロジェクト」のデータセットであるということがわかりました。

まとめ

今回行った二つの評価では、「LLMのための日本語インストラクションデータ作成プロジェクト」のデータセットを用いてInstruction tuningを行なったモデルの性能が最も高いという結果が得られました。 このデータセットで現時点で利用可能なデータは他のデータセットと比べるとまだ少ないにも関わらず、最も高い性能を示したことは、最終的なモデルの性能にはデータの質が重要であることが示唆されます。 その一方で、データ数の少なさにより、様々なタイプの指示を試すと、他のモデルは回答できるが、このモデルはうまく回答できないというような例もあるかもしれません。 また、さらに性能を向上させるために、いくつかのデータセットを混合することも考えられます。 このような点は、今後、検証していきたいと思っています。

「LLMのための日本語インストラクションデータ作成プロジェクト」は現在進行中で、今後、利用可能なデータが増えたら、それに応じてStockmark-13b-instructのモデルもアップデートしていく予定です。


  1. 2023/11/3に公開された1003件のデータ
  2. MARC-jaのタスクは現在、公開が停止されるので評価を行いませんでした。
  3. プロンプトのテンプレートはJCommonSenseQAでは0.3のバージョンを、それ以外では0.2のバージョンを用いました。