💡
松尾研LLM開発プロジェクト進捗状況|MoE特化チーム
第1回:週次報告
開発テーマ・概要
- 新しいMoEモデルの作成と検証(モデル1, 2チーム)
- 新しいMoEの学習アルゴリズムの作成と検証(学習アルゴリズムチーム)
- コーパスの自動作成(自動コーパスチーム)
チーム全体の開発状況
- モデル1, 2は小規模での実験を行った
- 学習アルゴリズムについては環境構築中
- コーパスについても検討、前処理に向けて進行中
サブチームからの情報共有
開発基盤
- やったこと
- 各チームの状況と今後の大枠の計画の整理
- 分かったこと
- Tokenizerの訓練が必要であること
- MoEの分散環境構築に工数がかかりそうであること
- 次やること
- 各チームの状況の確認
- 4月以降のモデル、アルゴリズムチームのコードの統合の準備
自動コーパス
- やったこと
- 事前学習のためのコーパスの検討/文献調査
- コーパス前処理に関する文献調査とテスト環境整備
- 分かったこと
- 必要コーパスの量の決定とその種類について仮決定
- コーパス前処理コードの処理と実行の確認
- 次やること
- コーパスの分類のためのアルゴリズムの検討
- コーパスのカテゴリに応じた既存データの利用可能性の検討
- コーパス前処理コードに関する追加調査と処理内容の確立
- 前処理済みのコーパスの提供準備
学習アルゴリズム
- やったこと
- プレ環境の構築
- 事前学習のデモ
- 分かったこと
- プレ環境の様子
- tokenizerの決定
- 事前学習/FT用のデータセットの決定
- 事前学習に必要な準備
- 次やること
- 事前学習のコードの調査/準備
- 事前学習/FT用のデータセットの準備
- merge scriptの作成
モデル1
- やったこと
- SparseMoEにDeepSetsを埋め込んだモデルの作成、任意のexpert数に対応
- skip connectionの機能追加
- DeepSpeed上へのDeepSetsモデルの移植
- 松尾研のGCP環境への移植
- 分かったこと
- DeepSetsのみだと、Lossが既存のモデルより下がらない。
- スキップコネクションの導入とphi,rhoの隠れ層の調整により、denseモデルよりわずかに良い結果に調整できる。
- 現状、DeepSetsの寄与がすくない。
- 次やること
- 松尾研のGCP環境でのデバック作業
- 既存のコーパスでの学習
- DeepSetsを機能させる学習方法等検討
- モデル固定でデータのカテゴライズによる差分
モデル2
- やったこと
- 並列処理なしの基本実装によるSMoEの実験
- DeepSpeed上でSMoEを実行するためのサーベイ
- 分かったこと
- 現在計画中のモデルアーキテクチャでdenseモデルの性能を上回る見通し
- DeepSpeed上でMoEを動かす場合、パイプライン機能が対応していない
- 次やること
- 現在の実験用実装コードのうち、ベース論文と一致していない部分を完成させる
- DeepSpeedのサーベイ・改修を続行する
第2回:週次報告
チーム全体の開発状況
- モデル1, 2は小規模での実験を続行
- 学習アルゴリズムについてはTokenizerの学習に関する調査を実施
- コーパスについては調査及びフィルタリングパイプライン構築を実施
サブチームからの情報共有
開発基盤
- やったこと
- Tokenizerの学習に関する調査
- 分かったこと
- 次やること
- 分散環境への移植の検討・フォロー
自動コーパス
- やったこと
- コーパスの調査
- 日本語データのフィルタリングパイプラインの構築
- 分かったこと
- CC-100等、大きな日本語データは一定度見つかりそう
- 一方、有害なデータや重複等、大規模なフィルタが必要→フィルタリングパイプラインは作成済み
- 英語データに関しては、日本語に文脈が合わないと思われるもの(ex.欧米の文化的背景を強く踏まえたもの)をフィルタする必要あり
- 次やること
- コーパスの作成
- 日本語データのフィルタリング実行
- ASK-LLMを用いた日本語LLMのPretraining用英語コーパスの作成
学習アルゴリズム
- やったこと
- 40Gデータ準備
- 小さいサイズのデータでの0.1B事前学習動作
- merge script作成/動作良さそう
- 分かったこと
- 事前学習のパラメタの選定
- megatron-deepspeedでのfinetuningのハイパラやコード
- huggingfaceでのfinetuningのハイパラやコード
- load balancing lossについて
- 次やること
- 0.1B実験スタート
モデル1
- やったこと
- 現在のモデルをMegatoron-DeepSpeed上に移植
- SMoEモデルをMegatron−LMを使用してGCP上への移植調査、環境構築
- 分かったこと
- ABEJYAさんのMegatron−LMのコードが公開になる
- 現在のGCP環境上では、sudoが使えないのでDockerが動かない。
- 次やること
- Megatrron−DeepSpeed上の現在のモデルをGCP上でpipインストールできるようにし、動作確認。
- 最新のバージョンをMegatrron-DeepSpeedとABEJYAさんのMegatron−LMのバージョンに移植して、動作確認。
- トークナイザーの調査、作成。
モデル2
- やったこと
- 現在計画している各アーキテクチャ構造での小規模データ実験
- Megatron-DeepSpeed上でSparsMoEを実装するうえでの課題整理
- 分かったこと
- 小規模データでは安定的に既存MoEを上回る性能及び低計算負荷を実現できることを確かめられた
- Megatron-DeepSpeed上でSparseMoEを一から実装するのには莫大な工数がかかることを把握
- 次やること
- 現在予定しているアーキテクチャでのハイパーパラメータ探索を完了させる
- Megatron-LMのMixtralを上記アーキテクチャに改修
第3回:週次報告
チーム全体の開発状況
- 実験的に良い結果の出たモデル2と学習アルゴリズムをマージした
- コーパスについては調査及びフィルタリングパイプライン構築を実施
サブチームからの情報共有
自動コーパス
- やったこと
- コーパスの調査、データ作成
- Router学習用クラスタリングの試運転
- フィルタリング
- ASK-LLMの調査
- 分かったこと
- クラスタ、フィルタ、ASK-LLMは多量の計算資源が必要
- 時間的制約も厳しい
- 計算資源等の環境が整い次第、速やかに上記に取り掛かれるよう用意が必要
- コンペのルールに従うと、ASK-LLMに利用できるモデルがなかなか見つからない
- 次やること
- クラスタ、フィルタの準備
- 環境が整い次第実行
- ASK-LLMの継続調査
学習アルゴリズム
- やったこと
- 0.1B事前学習Done
- mutli-gpu動作
- 分かったこと
- Router FTの実装
- CUDA error: device-side assert triggered 調査
- multi-node動作
- 次やること
- アーキテクチャを変えて実験(gpt2 to llama2)
モデル1
-
やったこと
- トークナイザーの調査、実装
- コーパスごとの前処理のスクリプト、調査、実装
-
分かったこと
- データの種類が少ないかつデータセットの量が少ないと、アウトプットが文章にならない。
- トークナイザーは一つで22日までに作成したらfix
-
次やること
- データの前処理済みのコーパスが得られたら、
前処理なしのデータと比べて、コーパス毎等、半自動化のサイクルを回す。
- データの前処理済みのコーパスが得られたら、
モデル2
- やったこと
- 基本構造部分に関する小規模データ実験を完了
- モデル改善を進捗
- router配置・attention構造・活性化関数・rotary embeddingなど、各箇所の手法改善
- 分かったこと
- 基本構造部分について筋の良い組合せを把握
- 次やること
- モデル改善の継続
- 実装完了した改善手法での性能検証
第4回:週次報告
チーム全体の開発状況
- 開発した新しい学習アルゴリズムでのMoEの学習を行う方針に決定
- コーパスについては完了
サブチームからの情報共有
コーパス
- やったこと
- Tokenizerの完成
- データのバイナリ化
学習アルゴリズム
- やったこと
- 本番環境でのMoEの学習アルゴリズムの作成と検証
モデル1
- やったこと
- 本番環境でのハイパラ設定探索
開発のマイルストーン
- データ準備
- フィルタリング&BIN化完了
- モデル学習コード準備
- 概ね終了
- 本番環境でのパイプラインチェックが残っている
- シングルGPUでの稼働確認、実績
- 確認済み
- マルチノードでの稼働確認、実績
- 確認済み
第5回:週次報告
チーム全体の開発状況
- 開発した新しい学習アルゴリズムでのMoEの学習を行う方針に決定
- コーパスについては完了
サブチームからの情報共有
コーパス
- やったこと
- Tokenizerの完成
- データのバイナリ化
学習アルゴリズム
- やったこと
- 本番環境でのMoEの学習アルゴリズムの作成と検証
モデル1
- やったこと
- 本番環境でのハイパラ設定探索
開発のマイルストーン
- データ準備
- フィルタリング&BIN化完了
- モデル学習コード準備
- 概ね終了
- 本番環境でのパイプラインチェックが残っている
- シングルGPUでの稼働確認、実績
- 確認済み
- マルチノードでの稼働確認、実績
- 確認済み
第6回:週次報告
チーム全体の開発状況
- 開発した新しい学習アルゴリズムでのMoEの学習を行う方針に決定
- コーパスについては完了
- 事前学習に入ったため、事前学習チームを作成し主導で行うことにした。
サブチームからの情報共有
事前学習チーム
- やったこと
- 本番環境でのMoEの学習アルゴリズムの作成と検証の続き
コーパス
- やったこと
- 数学データの補強、SFTデータの補強
開発のマイルストーン
- データ準備
- フィルタリング&BIN化完了
- モデル学習コード準備
- 概ね終了
- 本番環境でのパイプラインチェックが残っている
- シングルGPUでの稼働確認、実績
- 本番環境で確認済み
- マルチノードでの稼働確認、実績
- 本番環境で確認済み
第7回:週次報告
チーム全体の開発状況
- 事前学習を行なっていく上で、loss nanのエラーが出てその状況に対応中
- MoEへのパイプラインetcはほぼ完成
サブチームからの情報共有
事前学習チーム
- やったこと
- 本番環境でのMoEの学習アルゴリズムの作成と検証の続き
- loss nanエラーへの対処
コーパス
- やったこと
- 数学データの補強、SFTデータの補強
開発のマイルストーン
- データ準備
- フィルタリング&BIN化完了
- モデル学習コード準備
- 概ね終了
- 本番環境でのパイプラインチェックが残っている
- シングルGPUでの稼働確認、実績
- 本番環境で確認済み
- マルチノードでの稼働確認、実績
- 本番環境で確認済み
第8回:週次報告
チーム全体の開発状況
- 新しいMoEモデルのexpertマージ中
- 新しいMoEモデルの router 学習中
サブチームからの情報共有
事前学習チーム
- やったこと
- zoo_modelの事前学習のphase2の学習
- zoo_model のexpert作成(wiki,math, 算術, novel)
- MoEのルーター以外のモデル学習、評価
開発のマイルストーン
- データ準備
- 算術データ自動作成
- MoEの評価データ作成が残っている
- zoo_model sft のデータ選択が残っている
- モデル学習コード準備
- 概ね終了
- 本番環境での評価が残っている
- マルチノードでの稼働確認、実績
- 本番環境で確認済み
この成果は、NEDO(国立研究開発法人新エネルギー・産業技術総合開発機構)の助成事業「ポスト5G情報通信システム基盤強化研究開発事業」(JPNP20017)の結果得られたものです。
松尾研LLMコミュニティへのご案内
Slack参加リンクを始めとして、GENIACの概要やLLMコミュニティ主催各イベント等、関連リンクはこちらにまとめられております。
ぜひご覧ください!!
東京大学 松尾・岩澤研究室が運営する松尾研LLMコミュニティのLLM開発プロジェクト[GENIAC] の開発記録、情報発信になります。 各種リンクはこちら linktr.ee/matsuolab_community
Discussion