特化型llm(Doujinshi-1.8b)の開発報告書⑥:slmの特徴考察(wandbの結果より考察)
はじめに
沼津高専のpuwaerです。この度、R18に特化した大規模言語モデル(LLM)、Doujinshi-1.8bを開発しました。
この記事では、特化型llm(Doujinshi-1.8b)の開発報告書⑦:開発における体験談及び、考察、所感の有料記事用に書いたものオープンソースの理念的に公開した方が良いものだあったslmの特徴考察(wandbの結果より考察)を掲載します。
有料記事用に書いており、コピー&ペーストで張り付けるため少し文章の流れが不十分なところがあるかもしれません。
1.slmの特徴考察(wandbの結果より考察)
継続事前学習のwandbの結果は特長がなくネットに示されているような最初だけlossが大きく下がりあとは一定な値に収束したグラフになったため、考察することがないので考察しない。
特化型のllmでさらにパラメータが小さいモデルのsftにおいて以下のような現象が起きました。
1.1. 前提条件
使用したデータセット
run_name | 使用データ | データ量 |
---|---|---|
doujinshi-1.8b-instruct |
Doujinshi-sft-dataset-v1 | 21MB |
puwaer-1.8b-instruct |
AutoMultiTurnByCalm3-22B, random-to-fixed-multiturn-Calm3, magpie-sft-v1.0 | 439MB |
使用したパラメータ(どちらの学習時も同じ値)
パラメータ | 値 |
---|---|
num_train_epochs |
1 |
per_device_train_batch_size |
8 |
per_device_eval_batch_size |
4 |
gradient_accumulation_steps |
8 |
learning_rate |
5e-5 |
warmup_ratio |
0.1 |
lr_scheduler_type |
cosine |
1.2 wandbの結果
wandbの結果を図に示す
doujinshi-1.8b-instructとpuwaer-1.8b-instructの結果
doujinshi-1.8b-instructの結果
puwaer-1.8b-instructの結果
1.3 モデルの出力
R18に特化したモデルをベンチマーク評価するのは非常に難しいです。
(理由:R18に特化したベンチマークが存在しないこと、高精度なLLMを使用して評価する際にR18内容が出力されないこと)
そのため、定性的な評価 の結果を示します。
定性的な評価の結果
run_name | モデルの使用感 |
---|---|
doujinshi-1.8b-instruct |
前学習で獲得したR18の知識を活かして出力できる |
puwaer-1.8b-instruct |
学習データに大きく引っ張られ、事前学習で獲得したR18の知識を忘れ(出力しなくなる) |
1.3考察・今後の開発方針
このような結果より、パラメータの小さいモデルではすぐに直前に学習した内容を強く学習しやすい傾向があると考えられます。
また、SFT(Supervised Fine-Tuning)用のデータセットは「質問文+回答文」の形式になっており、このドメインの単語ベクトル空間が事前学習で得られたドメインの単語ベクトル空間と近い場合、パラメータの小さい特化型LLMでは高い性能を発揮するのではないかと推測できます。
実際に、doujinshi-1.8b-instruct
のtrain/loss
が早い段階で安定したのは、SFT用データセットのドメイン単語ベクトル空間と事前学習時のドメイン単語ベクトル空間が近いことが要因だと考えられます。
一方で、doujinshi-1.8b-instruct
のtrain/loss
の最終値がpuwaer-1.8b-instruct
よりも高い水準で落ち着いた点については、ちょっとよくわかりません。
この結果から、特定のドメインに特化した事前学習用データセットをWebからクロールして収集し、それをSFT用のデータセットに変換してファインチューニングするのが、最も効率的なモデル開発手法の一つかもしれません。
ただし、20MBの事前学習データセットをSFT用データセットに変換するのにRTX A6000で5日かかったため、5.81GBの事前学習データセットを同様に変換するには単純計算で約900日かかる計算となり、個人開発では現実てきではありませんが。
なお、skana ai
と東工大
が開発した蒸留モデル「TinySwallow-1.5B」はQwen2.5-1.5B-Instruct
をベースモデルとして構築されており、この手法の方向性はあながち間違っていないと考えられます。
(ただし、TinySwallow-1.5Bについては論文やドメインをさらっとしか見ていないため間違っているかもしれません。)
おわりに
本記事では、slmの特徴考察(wandbの結果より考察)をしました。
全然間違っている可能性があるので、あくまでも個人の考えだと思って読んでさい。
また、分からないことがありましたら、気軽にTwitterのDMに質問してください。
開発支援のお願い
現在、開発を続けていますが、クラウドGPUの価格が高く、十分な計算リソースを確保できずにいます。そのため、思い通りに開発が出来ていません。
また、オープンソースの理念を大切にしており、プログラム・データセット・モデルを有料で公開するつもりはありません。そのため、金銭的に余裕のある方に支援していただけると大変助かります。
TwitterのDMやご支援いただける方は、以下のプラットフォームよりお願いいたします。
Discussion