特化型llm(Doujinshi-1.8b)の開発報告書①:開発の全体像
はじめに
沼津高専のpuwaerです。この度、R18に特化した大規模言語モデル(LLM)、Doujinshi-1.8bを開発しました。
この記事では、特化型LLM(Doujinshi-1.8b)のデータセットの作成および、継続事前学習、SFTなど、特化型LLMの開発フローをプログラムを交えて分かりやすく解説していきます。
個人で特化型LLMを開発したいと考えている方の参考になる記事を目指します。
開発支援のお願い
現在、開発を続けていますが、クラウドGPUの価格が高く、十分な計算リソースを確保できずにいます。そのため、思い通りに開発が出来ていません。
また、オープンソースの理念を大切にしており、プログラム・データセット・モデルを有料で公開するつもりはありません。そのため、金銭的に余裕のある方に支援していただけると大変助かります。
今後もLLMの開発を続けていきたいと考えています。特に、十分な開発リソースが確保できれば、R18に特化したLLM「Doujinshi」の精度をさらに向上させ、男の夢を叶えるモデルを作りたいと思っています。
TwitterのDMやご支援いただける方は、以下のプラットフォームよりお願いいたします。
開発の流れ
1.事前学習用のデータセットを作成
事前学習用のデータセットを作成するために、特定のWebサイトからテキストをスクレイピングしました。
詳細は以下のZennの記事およびGitHubで詳細について解説しています。
作成した事前学習用のデータセット
- huggingface: puwaer/dlsite-jp-v1
- huggingface: puwaer/dmm-fanza-jp-v1
2. SFT用のデータセットをLLMで生成
作成した事前学習用データセットの一部を使用し、LLMを活用してSFT用の合成データを作成しました。
詳細は以下のGitHubリポジトリおよびZennの記事で解説しています。
- GitHub: puwaer/sft_generateed_data
- Zenn: 特化型llm(Doujinshi-1.8b)の開発報告書③:特定のドメインに特化したsft用データセット(コーパス)の作成
作成したsft用のデータセット
- huggingface: puwaer/Doujinshi-sft-dataset-v1
3. DeepSpeedを用いた継続事前学習
継続事前学習を実施し、特化型LLMとしての精度を向上させました。
詳細は以下のGitHubリポジトリおよびZennの記事で解説しています。
作成したモデル
- huggingface: Doujinshi-1.8b
4. trlライブラリを用いたSFT(教師ありファインチューニング)
SFTを行い、対話能力の向上を図りました。
詳細は以下のGitHubリポジトリおよびZennの記事で解説しています。
作成したモデル
- huggingface: Doujinshi-1.8b-instruct
5. 量子化
モデルの軽量化のため、量子化を実施しました。
GitHubのコード及び、Zennの記事はありません
作成したモデル
- huggingface: Doujinshi-1.8b-instruct-gguf
slmの特徴考察(wandbの結果より考察)
小さいパラメータモデル独自の挙動をしたためwandbの結果より考察しています。
その他
開発における体験談及び、考察、所感を書いた記事を作成しました。補足的な内容になっています。
一応、1000円の有料記事で販売していますが内容にそこまでの価値はありません。金銭的に余裕のある方のみ購入してください。
おわりに
本記事では、「Doujinshi-1.8b」の開発フローについて解説しました。
各工程の詳細については、リンクよりZennの記事をご参照ください。
Discussion