Zenn
📖

特化型llm(Doujinshi-1.8b)の開発報告書⑥:slmの特徴考察(wandbの結果より考察)

2025/03/19に公開

はじめに

沼津高専の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の結果

doujinshi-1.8b-instructの結果

doujinshi-1.8b-instructとpuwaer-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-instructtrain/lossが早い段階で安定したのは、SFT用データセットのドメイン単語ベクトル空間と事前学習時のドメイン単語ベクトル空間が近いことが要因だと考えられます。

一方で、doujinshi-1.8b-instructtrain/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

ログインするとコメントできます