💡

松尾研LLM開発プロジェクト進捗状況|MoE特化チーム

2024/05/23に公開

第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コミュニティ主催各イベント等、関連リンクはこちらにまとめられております。
ぜひご覧ください!!
https://linktr.ee/matsuolab_community

東大松尾・岩澤研究室 | LLM開発 プロジェクト[GENIAC]

Discussion