😽

[週次報告] 第3回 Team 天元突破

2024/05/02に公開

週次報告フォーマット

  • 直近の全体定例MTG

開発テーマ・概要

開発テーマ

  1. メインテーマ

    「ハルシネーションが最大限逓減された(最大限自然言語的に自然な言語のみを含ませた事前学習データによって学習された)日本語大規模言語モデルを開発する.」

  2. サブテーマ1

    「ディベートデータを用いて言語モデルを事後学習することでより高次な論理的思考力をモデルに付与する」

  3. サブテーマ2

    「MoE(Mixture of Expert)の実装例となるモデルをOSS公開する」

プロジェクト目標

  • 全員が成長する.
    • できるだけ離脱者を出さず,LLM開発経験者を最大限生産する
  • 研究余地や公開意義のある知見を取り出す
    • 日程,計算,データなどのリソースは限られるが,最大限アカデミアへの貢献を目指す
  • ハルシネーションの最大限逓減を目指す
    • 嘘をできるだけつかないLLM開発へ向け,事前学習データの精査(+RLHF)に挑戦する

メインの参考文献

開発状況

  • メンバーの個々人の特性に合わせてサブチームに振り分け.コアメンバーにサブチームリーダーを担当してもらう.
  • 各サブチームにリーダー補助のアシスタントリーダーを複数人配置
  • 能力値の高いメンバーにはサテライトコアメンバーとしてチームを横断して意向を優先する権利を付与
  • 全サブチームを横断的に手助けするサポートチームを用意
  • サポートチームアシスタントリーダーを用意.

チーム構成

  • データコレクションチーム
    • 使用するWebコーパスの決定・収集,それ以外のテキストデータの収集を担当
    • それぞれのコーパスの性質を理解し,必要なデータを決定し,データキュレーションにも助言する
    • 幅広いドメインに関わりのあるチーム
  • データキュレーションチーム
    • Webクロールデータを事前学習データへと変換する作業を担当
    • 参考文献から従来のフィルタリング手法を参考に,MLやLLM等も駆使し,高品質な事前学習データを作成する.
    • LLMによるリフレーズを用いて,データの絶対量を減らさないキュレーションフレームワークを検討する.
    • 最も人数配分の大きいチーム
  • モデル・トークナイザーチーム
    • 使用するモデルやトークナイザーを決定し,実装する作業を担当
    • 標準コードを参考に,transformerベースでMoEを組み合わせたモデルを開発する.
    • その他のモデルや学習手法についても検討する.
    • 少数精鋭で意思決定の速いチーム
  • サポートチーム
    • 文献の整理,Notionの整理,他チームや外部からの知識の整理を行い,全サブチームのサポートを担当する
    • 論文を読む能力やキャッチアップ能力の高い学生が中心のチーム

協力団体

  • 日本教室ディベート連盟
  • 全日本ディベート協会
  • 日本ディベート協会
  • パーラメンタリーディベート協会

サブチームの状況

コレクションチーム

  • 進捗
    • チームの共有ディスクの利用状況を踏まえ、別環境準備(AWS 5TB)@高志 柴田
      • 通信コストを考えて,アクセスメンバーは限定
    • SlimPajama:DL完了 @村上一真 @坂本真樹 @高志 柴田
      • チーム間の受け渡し方法やJSONL形式の単位について相談したい
      • Train/Validation/Testの単位で1個のJSONLファイルの計3個がアウトプットでよいか
      • 前処理で重複処理などをかける場合はマージ処理をしないほうがよいか
    • CulturaXのJSONL化:対応中 @由紀子 松田 @高志 柴田
    • proof-pile-2:今後、着手
    • ディベートデータ関連
      • 状況把握
      • PDF2Text対応から着手 @満喜 田上
      • 事後学習用の場合にどのようなアウトプットにするか
        • 今後チーム横断して作業する方向で.
  • これからやること
    • CulturaX JSONL化
    • proof-pile-2 DL
    • ディベートデータ関連

キュレーションチーム

  • 進捗
    • 実装・検証
      • ルールベースフィルタリング
        • 予定よりも進捗が遅れている(新学期が始まり、作業時間の確保が難しい人が想像以上に多いため)
        • 今週のメンバーの進捗状況を再確認したところ、水曜日の夜に実装が出揃う予定
        • 現在のフィルタリング実装だとほとんどのデータが削除されてしまっており、実装を見直しつつ原因を調査中
      • 重複削除
        • テストまで完了
        • 日本語Webコーパス2010の重複排除から実施予定
      • URLフィルタリング
        • ルールベースフィルタリングに合流する
        • ルールベースフィルタリングの実装リストに、URLフィルタリングと日本語判定を追加して進める
      • CommonCrawl抽出(3800/9000完了,フィルタリングが完成したら終了)
  • これからやること
    • 検証・プレ環境への実装
    • データ補充
    • 手分けして処理を回す
    • MLベースフィルタリング LLM Rephrasing?(人手募集)

モデルチーム

  • 進捗
    • 標準コードのベースラインの動作確認・改善
      • ja_wikiの一部を使ったデータセットとトークナイザで実験可能に
      • マルチノードの動作確認が完了
      • 標準コードのパラメータ、モニタリング方法の確認
    • MoEなどを含むアーキテクチャの改善可能性の検討
      • Megatron-DeepSpeedでのMoEが動作することを確認
      • RoPEなどの改善デクニックを追加
      • huggingface transformers + DeepSpeedも間に合えば候補に入る可能性がある
    • その他事前学習の改善方法(カリキュラム学習など)の検討
  • これからやること
    • アーキテクチャの改善テクニックを本番で使える状態に仕上げる
      • MoEで実験して精度が改善するか確認する
      • HFへの重み変換スクリプトを作成し、動作確認する
    • 本番での学習を見据えた準備をする
      • コード、データ、トークナイザなど、必要なものをもれなくリストアップして確認する
      • コードの動作確認を行う
      • 学習が壊れることを想定して、モニタリング、モデルの保存、再開ができるように準備する
    • できれば、+αの工夫(学習方法か、トークナイザか、高速化か、チューニングか)を盛り込む)

サポートチーム

  • 進捗

    • 他チーム偵察

      • 使用しているデータセットと学習概要を報告

      • チームHatakeyama

        • スケジュール
          • 4/10~クリーニング開始
          • 4/15~学習開始、ファインチューニングの準備
        • 多くの種類のデータセットを使用

        HuggingFace Dataset化

        • cc100
        • oscar
        • shisa
        • japanese2010
        • NHK school news
        • J research courpus

        準備中

             CommonCrawl PDF
             Wikibooks
        
             PMC OA
        

        pes2o

        ChemRxiv

        The Stack v2

        OpenMathInstruct-ja/en

        • Branch-Train-Mergeを使用(モデルの構築はTransformerベース)
          • カリキュラム学習のようにドメインごとで徐々に行ってく形
          • 切換え方法は今後最適化
        • インストラクションデータをアプリを使用して収集(最低1000件程度作りたい)

      チームHatakeyama

      チームNakamura

      チームSannai

  • これからやること

    • 追加調査
    • キャッチアップ資料の作成(Yokoi, Nonakaさん)
    • データベース整理(Matuiさん)

その他

コンペの評価指標について

(時間があったらで) @hiroaki shioya

  • プレ環境の制限が厳しくなったので、使い方を相談したい
    • チームで3ジョブまでらしいので、使う場合は毎回slack(tema_ozaki_11_privとか?)で連絡する形に?
    • 各サブチームの使用予定を聞きたい
      • slackに整理
  • データセットに関して
    • 実験用データに前処理後のデータも使ってみたいのだが可能か?
    • 現状の標準コードだと一つのjsonlファイルを処理して渡す形になっているが、本番用データはどういう形になっている想定か?
  • トークナイザに関する知見を募集
    • 単純に工夫した方がいいポイントがあれば知恵を増やしたい
    • どのデータを使うかと不可分なので、データチームと相談して決めたい
    • slackチャネルが多い、作業に必要な情報が流れてしまう.
    • 対策としてnotionにキャッチアップ用の資料を作る.
    • 特にslackの内容のキャッチアップさせるのが困難

Discussion