🦔
[週次報告] 第4回 Team 甲(きのえ)
開発テーマ・概要
- テーマ:メンバー全員で作り上げるボトムアップ型開発
- 当チームでは、研究に裏打ちされた手堅い手法をベースとした開発を行い、質の良い日本語の出力が可能なLLMの開発を目指す。具体的には、GPT3, Llama2, Mistralのモデルを実験し、比較的精度の高かったMistralモデルを採用することとした。
- 事前学習に用いるデータはJapanese mC4とWikipediaから構成される日本語データなどを用い、ファインチューニングに用いるデータセットはチーム内で作成する。事後学習用データセットについては、余裕があれば①やわらかい言葉を使い傾聴力を持つ、②日本文学などに詳しく俳句を詠めるといった独自コンセプトを意識したデータセットを追加的に用意する。
チーム全体の開発状況
- メンバーの希望を聴取し、各チームのチーム割りを行った。
- Githubなどの開発環境を構築し、チーム開発の進め方を整えた。
- データセットとモデルの準備方針の策定を行った。
サブチームからの情報共有
全体統括T
技術的総括T
- 今週の進捗
- 計算リソースのジョブ利用ルールの検討、運用(ルールはこちらです)
- ネクストステップ
- W&Bの設定について
W&B→チームを作成して、学習の推移などのモニタリングに使用する-
W&BのSlack通知→Slackに通知用のチャネルを作成して監視する。
→運営よりW&Bチームアカウントについてアナウンスあり
- 新規加入メンバーとのキャッチアップ支援
- W&Bの設定について
- 相談事項等
- チーム内への相談事項
- ソースコードのコミット(共有)をお願いしたい。
- ツールの再現性や継続性、紛失防止のため。
- ドキュメント化。
- Phase1の環境構築に向けた手順などの実験したい。(協力者求)
- MiniCondaの環境は共有できるはずなので、Phase0のうちに実験および手順を確立したい。
- 期待できる効果
- 最初に一人がビルド等を行えば、残りの人はビルド不要。
- 全員が手順に則れば、環境差異による障害は防げる。
- Phase1のユーザはどうなるのか?例えばチーム内共通アカウントとなれば、手順としては不要。
- ソースコードのコミット(共有)をお願いしたい。
- チーム内への相談事項
データT
事前学習用データ
- 今週の進捗
- mC4 フィルタリング完了
- https://matsuokenllmcommunity.slack.com/archives/C06MZ5L3FPU/p1712678084713459
- ちょっと基準を厳しくしすぎて 120B token くらい.
- 結果を眺めながらもう少しデータを救う方法を検討中.
- この基準でやると全体で 180B token くらいになる.
- OSCAR, cc100 の処理に移る
- llm-corpus のフィルタを調整した現行のフィルタが割と性能が良いので同様の基準で処理を進める予定
- sbatch で処理を投げるもすぐプロセスが kill されてしまう現象が発生していて原因調査中
- リソース制限に引っかかっている?
- 機械学習ベースのテキスト選別
- mC4 フィルタリング完了
- ネクストステップ
- 全データ前処理を終わらせる(oscar, cc100)
事後学習用データ
- 今週の進捗
- llm-jp-eval用データセット作成
- 7bモデル(rakuten以外)では厳しい
- Japanese MT bench用データセット作成
- 実行するとMTbechのデータを取ってくるcolab
- 7bモデルではevol instructは厳しかった
- プロンプトの工夫でデータつくるのも厳しい
- llm-jp-eval用データセット作成
- ネクストステップ
- llm-jp-eval用データセット作成
- rakuten7b+プロンプトでデータ作ってみる
- 多分上記厳しいので手動でデータ作成
- Japanese MT bench用データセット作成
- 手動でデータ作成
- 既存データセット選定・フィルタリング
- 4/10(本日)開催のMTGで方法を議論
- llm-jp-eval用データセット作成
- 相談事項等
-
チーム内への相談事項
- llm-jp-eval用、MT-bech用データを手動で作るのに協力いただきたいです
-
コミュニティ外の方とのディスカッションなど
- To 事前学習・事後学習チーム
- 事前学習データの学習の最後の20%?くらいから事後学習データを混ぜていくと精度が上がるという手法みたいです。こういった手法を検討される場合は、優先的にそれ用のデータを準備します。
MiniCPM: Unveiling the Potential of End-side Large Language Models
-
トークナイゼーション
- 今週の進捗
- sentensepieceのオプションを調査
- ネクストステップ
- sentence piece用のデータ作成
- 使うオプションとその選定理由リストを公開し、合意をとる
学習T
- 今週の進捗
- モデルサイズについて
- 初動: Mixtral 7*8B > Mistral 13B(Llama2のparameter) > Mistral 7B
- Phase 1環境 (Python 3.11)
- Mixtralについて実装は完了
- マルチGPUでの実験も済
- モデルサイズについて
- ネクストステップ
- 課題: Hugging Faceへの変換, 重みの検証が課題。実行中
- その他, ZeROなどstageの検証
- 事後学習, RLHFにシフトしていくと思います
- データの学習のさせ方等について議論必要
- 事前・事後の学習期間の決定について
開発のマイルストーン
-
事前学習データ準備
- 使用するデータセットの選定【済】
- 使用するデータセットのダウンロード【済】
- データセットの簡易フィルタリング(目標:4/15)
- テキストのアノテーション(目標:4/12)
→ラストエポックに質の良いデータやラベル付きデータを持ってくるというのもあり得るので、初動に間に合わない場合は、そこまでに間に合わせたい - 事前学習データの重複処理
- 事前学習データセット完成(期限:4/20)
-
トークナイザ学習(予定:4/21)
※作成された事前学習データセットで学習(所要時間は半日程度を想定)
→サブセットで学習可能なので、早めることは可能かも -
事後学習データ準備
- LLMコンセプトの決定【済】
- 既存データセット選定・フィルタリング(目標:4/20)
- llm-jp-eval用データセット作成(elに絞る?)(目標:4/30)
- Japanese MT bench用データセット作成(簡単なタスクを中心とした20件に絞る)(目標:4/30)
- チームで1日40件×15日
- コンセプト用データセット(目標:5/8)
- 川柳:200件
- 傾聴:200件
-
事前学習モデル準備
- 検討するモデル案の選定【済】
- 検討するモデルの実装と実験 【済】(目標:4月13日)
- 採用するモデルの決定【済】(目標:4月13日)
- データの学習のさせ方(エポック数や用いるデータセットを途中で変更するかなど)
- パラメータサイズの決定(目標:4月23日?)
-
事後学習モデル準備
※事前学習モデル準備が落ち着き次第整備
Discussion