[週次報告] 第3回 Team JINIAC

2024/04/15に公開
  • チーム名:JINIAC
  • 日時:2024年4月14日

1. 開発テーマ・概要

記載者: 中村 仁

  • 本プロジェクトでは、日本語の特性を適切に捉えられる大規模言語モデル(LLM)の開発を目指します。

  • この目標達成に向けて、以下の3つの領域に対し、重点的に注力しております。

    1. データセット
      • 良質な日本語データセットの構築が日本語理解の質を大きく左右する。
      • 本プロジェクトでは以下のデータを収集し、最適化を図る。
        • 政府文書
          • 国会答弁
        • 学術論文
        • 知識転移を見据えた独自データセット
          • ヒンディー語
    2. モデル構造
      • Mixtures of Experts(MoE)を活用する。
      • Mamba等を活用したMoEについての検討も行う。
    3. 学習手法
      • データの学習順序の変更等の導入により、モデルの理解力向上を目指す。
  • 加えて、以下のプロジェクト運営面での工夫も行っています。

    • トップダウンとボトムアップの両立
    • Notionを活用したプロジェクト管理の最適化
    • チームメンバーの心理的安全性の確保
    • コミュニケーションの活性化
  • プロジェクトの目標を達成できれば、以下の成果が期待できると考えています。

    1. チームメンバーによる共同執筆での論文発表
    2. NoteやGitHubを通じた積極的な情報公開とLLM人材の育成
  • 日本が世界に誇れるAI技術を持つためには、日本語の豊かな表現を捉えられるLLMの実現が不可欠です。

  • 本プロジェクトはその実現に向け、全力を尽くしてまいります。

2. チーム全体の開発状況

記載者: 中村 仁

  • チーム組成が完了し、各サブチームにおける本格的な開発が開始しました。

  • NEDOにより「本番環境」が提供されるまでの間に、松尾・岩澤研究室より提供されている「プレ環境」において、大規模モデル開発開始のための準備を進めています。

    • データセットの準備や、トークナイザーの構築は順調に進展しており、「プレ環境」においてはMoEモデルが動作することを確認しました。
    • wandb等、学習をモニタリングするツール等についての勉強会や、トークナイザーに関する勉強会も行っています。その他、有志での勉強会や調査会も行われています。
    • さらに、GitHub等の準備についても順調に進んでおり、安定した開発を行えるよう準備中です。
  • 本番環境のメンテナンス対応や、モデルのアライメント等についての調査・検討は今後の課題ですが、現在行うべき課題については順調に対処できていると考え羅れます。

  • 開発とは別に、各サブチームにおける活動をサポートし、チーム全体としての調整をする活動も行っています。

    • 次のマネジメントチームの発足させました。
      1. 情報調査チーム
        1. 情報収集、情報分析、情報の可視化
      2. 外務チーム
        1. 情報の発信、文書の公開範囲設定
      3. 内務チーム
        1. チーム内の方(及びチームへ加入される予定の方)に対するマネジメント、勉強会の調整
  • マネジメントチームにより、Notionにおける情報管理や、コミュニティメンバーの加入についてのフローの確立へ進んでおり、よりよい開発環境とするために活動が進展中です。

    • 新しいメンバー5名の受け入れや、新たなメンバーのリクルーティングも進行中です。
    • 内部での調整や、外部との連絡についても順調に進んでいます。

3. サブチームからの情報共有

3.1 データ班

記載者: @toshiki_nakashima

3.1.1 やったこと

  • 使用データセットのサーベイと,大枠の決定
  • 必要トークン数の見積もり
  • 個人情報フィルタリング手法の検討と実行
  • ヒンディーデータセットのライセンス確認、huggingface にアップデート

3.1.2 分かったこと

  • CulturaX,slimpajamaを中心に,wikiや国会議事録といったデータをミックスする
  • フィルタリングにはhojicharなどを使用予定
  • json変換、継続してアップデート

3.1.3 次やること

  • フィルタリングコードの実装
  • 開発環境にデータを移行

3.2 学習・コード班

記載者: @佐藤紘基

3.2.1 やったこと

  • データセットにおける日本語および,英語データのドメイン割合の調査
  • GitHubオーガナイゼーション・WandBに関するルールの決定
  • moe-recipesと標準コード改造後の動作確認
  • AI・LLM・NLP分野の知識を深める
    • 各メンバーが個々に興味関心のあることを調べ持ち寄る勉強会実施
    • LLMサーベイを読みまとめて発表する発表会実施

3.2.2 分かったこと

  • データセットの割合は,検証結果と既存の文献から本番用の設定を考える
  • どのハイパーパラメータを調整するか調査が必要

3.2.3 次やること

  • 他班が追いきれていない方策の調査
    • LoRA
    • 学習データの最適なエポック数調査
    • lossスパイクへの対処・schedulerに関する高速化手法の検討
  • 標準コード改造検討
    • argparseに書き換え

3.3 モデル班

記載者: @佐野敏幸

3.3.1 やったこと

  • moe-recipes を活用し,wikipedia と pythonコード を混ぜたデータセットを用いた学習。
  • moe-recipes 作者の東工大藤井様にライセンスについて問い合わせ。
  • moe-recipes 以外によるモデルを検討。

3.3.2 分かったこと

  • moe-recipes を活用し,wikipedia と pythonコードを混ぜたデータセットを用いて学習に成功,huggingface にアップロードできた。
  • moe-recipes は、産総研との共同プロジェクトのものなので、東工大藤井様からライセンス付与は現状できない。
  • transformers は使い勝手が良い。
  • openmoe はこちらで用意したカスタムモデルに置換するのに手間取りそうでやめた。

3.3.3 次やること

  • Mixtral (に z-loss および noisy gating を加えたもの)をベースモデルとする.
  • 本番パラメータサイズの決定する。
  • その他の活用できるMoEのコードをさらに検討する。

4. ディスカッション

特になし

5. 開発のマイルストーン

データ班

記載者: y_morinaga

  • 主要なマイルストーン
    • 事前学習
      • 使用データセットのサーベイ
      • 使用データセットの選定
      • 使用データセットのクリーニング
    • 事後学習
      • どのようなデータを使う,作るかサーベイ
    • トークナイザ
      • トークナイザの作成・公開
  • 現在地
    • 事前学習用のデータ準備
      • データおよびクリーニング方法の決定
      • 学習データの環境移行
    • 事後学習用データの準備
      • データの調査中
    • トークナイザの作成
      • 暫定バージョン(v0.2)の作成・公開

学習・コード班

記載者: 加藤万理子

  • 主要なマイルストーン
    • 他班の方策に合わせて使用ライブラリを勉強・検証
    • プレ環境・本番環境での実験実施
    • 標準コードの理解
    • 標準コードを本チームが取る方策に合わせ改造
    • WandBを用いた実験管理の勉強・実践
    • 他班で追いきれない方策の調査
  • 現在地
    • MoE実装のためのコード模索
      • moe-recipes の動作確認
      • 他コードの検討
    • プレ環境での実験実施
      • 標準コードのスクリプト分割後の動作実験
      • トークナイザーに関する予備実験
    • 達成済み
    • 複数の方策を模索中
      • lossスパイクへの対処方法を模索
      • 各データの学習エポック数を調整
      • 学習率に関する高速化手法を導入するか検討
    • WandBを用いた実験管理の実施
      • 他班が行う予備実験をWandBにて実施、管理
    • 他班で追いきれないLoRAなどを検討中

モデル班

記載者: 白石尽誠

  • 主要なマイルストーン
    • MoEモデルの基礎原理を理解する.
    • MoEモデルの事前学習が可能であることを検証する.
    • MoEモデルを実践的なデータで事前学習させ,lossが下がるのをみる.
    • MoEモデルに対し工夫を加える.
    • mambaモデルの理解,実装を行う(optional)
  • 現在地
    • 達成済
    • moe-recipesはライセンスの都合上本番の学習では使用できないため,急遽TransformersとDeepspeedで事前学習を行うパイプラインを構築する方針へと切り替えた.
      • 現在,zero stage 2での学習は行えている.
      • マルチノード学習は,現在プレ環境での使用ができないため,その可否が検証できていない.
    • wikipediaとpythonコードを混ぜたデータセットで学習が行えることを確認した(カスタムデータセットが利用可能であることの検証).
    • z-lossおよびnoisy gatingを実装したCustomMixtralForCausalLMを作成.
      • これらがoriginalのMixtralと比較してうまく学習できるか検証する必要がある.
    • kotomambaのベンチマーキングを行うjupyter notebookを作成.
      • 現状は学習ができることを第一の目標としているため,TramsformerベースのMoEモデルを使用する方針である.mambaモデルの活用(やTramsformerベースモデルとの融合)は,Phase2に進むことができた場合,検討材料になる可能性がある.

6.その他

特になし

Discussion