はじめに
今回の最終課題では、最終的に以下の成績を取り、優秀賞をいただくことが出来ました。
- 予選最終スコア: 3.83
- 決勝最終スコア: 3.77
- 最終結果: 1位
本レポートではこのモデルの開発に関してまとめます。
簡単な自己紹介
初めまして、Aratakoと申します。普段は通信関連企業でエンジニアをやっております。
業務においてもLLMを扱っていますが、基本的にGPTやClaude等のAPI経由でアクセスするものを扱っており、いわゆるローカルLLMについては現在のところほぼ個人の興味として触っております。
SNSアカウント等はこちら
https://lit.link/aratako
今回のレポートでは、最終課題公開からの開発方針決定、ベースモデルの選定、学習、量子化と推論という流れでまとめます。
開発方針について
最終コンペの内容公開を受け、まず初めにルールの熟読とタスクの目視確認を行いました。それぞれ以下のような部分を特に見ていました。
コンペルールについては、以下のように主に制約事項を確認しました。
- ベースモデルとして、llm-jp-3またはGemma-2シリーズのいずれかのbaseモデルから選択が必須である。この時点でベースモデルの候補をllm-jp-3 13bまたはGemma-2 27bの2択にまで絞りました。
- 学習リソースに制約はないが、推論側にはL4を用いて1時間以内に推論完了が必須という制約がある。L4はVRAM 24GBなので、llm-jp-3 13bなら8bit、Gemma-2 27bなら5bitあたりまで量子化が必要そうだなと目星を付けました。
- 学習に利用する合成データのライセンスには一部注意が必要。特にGemma-2を使う場合はCC-*-SA系のデータを使えないので、ELYZA-tasks-100やそれを元に合成したデータを学習に使えないということを認識。