[週次報告] 第3回 Team 甲

2024/04/15に公開

開発テーマ・概要

  • テーマ:メンバー全員で作り上げるボトムアップ型開発
  • 当チームでは、研究に裏打ちされた手堅い手法をベースとした開発を行い、質の良い日本語の出力が可能なLLMの開発を目指す。具体的には、GPT3, Llama2, Mistralのモデルを実験し、比較的精度の高かったMistralモデルを採用することとした。
  • 事前学習に用いるデータはJapanese mC4とWikipediaから構成される日本語データなどを用い、ファインチューニングに用いるデータセットはチーム内で作成する。事後学習用データセットについては、余裕があれば①やわらかい言葉を使い傾聴力を持つ、②日本文学などに詳しく俳句を詠めるといった独自コンセプトを意識したデータセットを追加的に用意する。

チーム全体の開発状況

  • メンバーの希望を聴取し、各チームのチーム割りを行った。
  • Githubなどの開発環境を構築し、チーム開発の進め方を整えた。
  • データセットとモデルの準備方針の策定を行った。

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

全体統括T

技術的総括T

  • 今週の進捗
    • 情報のキャッチアップ
  • ネクストステップ
    • 計算リソースのジョブ利用ルールの検討、運用

事務的総括T

  • ネクストステップ
    • 使用データセットとソースコードの一覧作成

データT

事前学習用データ

  • 今週の進捗
    • データセットの決定
    • LLM-jp corpus のスクリプトを用いたフィルタリング
      • wikipedia (2.2GB) に対して実験
        • 手元のノート PC で2分程度
      • mC4 に対する処理を開始
        • したものの,実際の処理に入る前にノードに入れなくなった
          • 全員が動かし始めたせい?
            • 今確認したら自分のミスでした
          • 手元 or colab で処理したほうが早いかもしれない
    • 機械学習フィルタの実装方針を決める
      • 機械学習&手作り特徴量でデータにメタデータを付ける
        • データの選別(やわらかい日本語,論理構成がしっかりしている,など)
        • 重複処理の負担を減らす
        • カリキュラムラーニングに利用
          • 簡単な文から学習する
            • これは可能なのか学習Tに聞く ⇒ できる
      • 機械的に判定できないところはアノテーションしてモデル作る
      • テキストのスコア付け
      • メタデータを先頭に着けることで生成文を制御できないか?
        • 理論的には出来る.続きから生成させればよい.
        • 許されるかどうか微妙
  • ネクストステップ
    • フィルタリングを進める
      • これから1週間で最低限のフィルタリングは行いたい
    • 機械学習フィルタ作成
      • アノテーション
      • テキストのベクトル化

事後学習用データ

  • 今週の進捗
    • データ加工のワークフローを決定し、一部動き始めた
      • LLMでllm-jp-eval対策用データセット作成を行う
        • llm-jp-evalのデータをダウンロードして内容を確認
        • データ作成用のcolabの構築中
      • Japanese MTbechや幅広いタスクに対応するデータセットの作成
        • evol instructによる多様性のある指示データの作成を行うことで決定
        • 指示に対応する回答データの作成方法は議論中
      • 数学・コーディングデータの調査
        • 開発DBに追加した
      • その他高品質なデータセットの調査
        • 開発DBに追加した
  • ネクストステップ
    • llm-jp-eval用データセット
      • データ作成用のcolabの整備(~4/8)
      • データ作成(4/9~)
    • Japanese MTbech用データセット
      • evol instructに用いる指示データの収集とevol instructの実行(~4/9)
      • evol instructしたデータに対する回答作成(4/10~)
      • MTbechで高得点をマークしているモデルに使用しているデータセットの調査(~4/5)
    • データセットのフィルタリング方法の検討
    • コンセプト実現をしようとすると精度が下がるかもしれない問題への対処方法の検討
      • 古語と現代語を使い分けられるか?
      • 柔らかい言葉を使うと要約タスクの性能が下がらないか?
  • 相談事項等
    • チーム内への相談事項
      • データ作成を来週から始めるのでよろしくお願いします。
    • コミュニティ外の方とのディスカッションなど
      • コンセプト実現をどうするか
        • 俳句は諦めて川柳にするなど妥協案を試みる
        • データセットはつくるがフェーズ1では学習に使わない

学習T

  • 今週の進捗

    標準コード:

    • ZeROのstageについて
      • ZeROは番号が若い方が速いので, memoryが足りなくなったらstageをあげるという方針

    Llama2 Team:

    • スモールサイズでの学習実験は完了
    • HuggingFaceへの変換手法の完了

    Mistral

    • GQA&SWAを用いた学習は完了

      → Llama2での実験と比較し, Lossが下がっているので有望

    • Switch MLPでのMoEの実験も完了

      → 良さそう?

    全体的にMistralの精度が良さそうなので, Mistralに動きをシフトし始めた形になります。

  • ネクストステップ

    • Mistralのhuggingfaceへの変換
    • MoEモデルのSwitch MLPの改善
    • その他ablationに関する実験
    • マルチGPUでの実行

Discussion