llm-jp-3-13B-Instruct-tuned-modelの構築

開発環境

今回、modelの学習については東京科学大学Tsubame4.0のH100GPU1基、推論についてはOmnicampus内で提供されたL4GPUを用いて開発を行った。

モデルの学習

まず、ベースとなるモデルには国立情報学研究所大規模言語モデル研究開発センターが開発したllm-jp-3-13Bモデルを用いた。SFT用のデータセットについては、以下のデータセットを引用した。

次に学習について、まずソースコードのベースには運営の方から共有されたLoRA_template_unsloth2.ipynbを用いた。ただしunslothを使えるようにするための環境構築が非常に難しかったため、これを諦めてpeftを用いたLoRA-Fine-Turningを行った。学習方法としては、初めに上記のデータセットの組み合わせのいくつかに対して、提供されたソースコード(ハイパーパラメーター含め、一切の変更なし)を用いてLoRA-Fine-Turningを行った。それぞれのTunedモデルの推論で得られたELYZA-tasks-100-TVの解答データをgemini-flashによる採点と目視によって採点した。この中で、スコアの最も良いと思われるデータセットを選択した。

続いて、いくつかのハイパーパラメーターを変えて選択した学習データを用いたLoRA-Fine-Turningを行った。この際に用いたベースモデルは、データセット別にFine-Turningをしたモデルではなく、Fine-Turning前のllm-jp-3-13Bである。

モデルの学習結果

まず、データセット別のFine-Turning結果について示す。以下の表はpandasのdescribe()を用いて表示したデータセット別のスコア統計情報である。

Ichikara_003_001 ichikara_003_001 + ELYZA_100 Ichikawa_003_001 + news_2024 ichikara_003_001 + Tengentoppa Ichikawa_003_001 + dolly-15k-ja
count 100 100 100 100 100
mean 3.760000 3.43000 3.680000 3.560000 3.280000
std 1.326650 1.458206 1.427578 1.451714 1.498012
min 1.000000 1.000000 1.000000 1.000000 1.000000
25% 3.000000 2.000000 2.000000 2.000000 2.000000
50% 4.000000 4.000000 4.000000 4.000000 4.000000
75% 5.000000 5.000000 5.000000 5.000000 5.000000
max 5.000000 5.000000 5.000000 5.000000 5.000000

スコア統計情報の結果を見ると、ichikara_003_001のデータセットのみを単発で用いた場合のデータセットが最もスコアが良いことが分かった。また、下に掲載してあるのは各データセットに関するスコアのヒストグラムである。

image.png

image.png

image.png