🦁

[週次報告] 第1回 Team たぬき

2024/03/28に公開

開発テーマ・概要

  • 私たちのチームは、大規模言語モデル(LLM)の開発に取り組んでいます。具体的には、日本語に特化したLLMの開発を目指し、データセットの収集・加工、モデルの学習、推論システムの構築などを行っています。

チーム全体の開発状況

  • 現在、各サブチームが並行して作業を進めています。データセットの収集・加工では、CommonCrawlやPMC OAなどの大規模データから日本語テキストを抽出し、クリーニングを行っています。モデルの学習では、0.3bモデルの学習を完了し、1Bクラスのモデルの学習に向けた準備を進めています。また、独自のパイプラインの構築や、カリキュラム学習の検討なども行っています。

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

サブチーム1: 指示データセット

やったこと

  • インストラクションデータのタスク案をmiro上で作成し、タスク案をクラスタリング
  • 評価データセットの確認
  • データ収集用のWebページを作成開始

分かったこと

  • プログラミングタスクが評価データの一部であるため、LLMに実装力を身につけさせるべきかは要検討事項である。
  • インストラクションデータ作成ガイドラインを作る必要性がある。

次やること

  • クラスタリングしたタスクをタスクカテゴリとし、収集ページへ反映させる。
  • データ収集用のWebページを3月中を目処に取り組んでいただいている。
  • インストラクションデータ作成ガイドラインの検討。

サブチーム2: 事前学習データセット

やったこと

  • CommonCrawl日本語データ 共同抽出 - チーム内外28名が共同して高速で進められています。
  • CommonCrawl+mC4データ クリーニング タスク - 簡単なデータクリーニングのコードまでは作成済み。現在は既存のコーパス作成処理のコード化(コードがない場合)や、その処理を一部データに適用した結果の評価を行っています。
  • PMC OA (学術データ) - タスクの分担は終了。現在はxmlから使用可能なライセンスのデータを抽出する方法の検討と、全体で必要なクリーニング処理の洗い出しが進んでいます。
  • 英語データセット - The PileとSlimPajamaなどデータセットの中身のきれいさを比較。SlimPajamaデータセットのテキストの問題点を分析。
  • コーディングデータセット - The Stack v2データセットの確認と、言語と使用データ数を指定してThe Stack v2のデータをダウンロードする関数の実装。
  • 数学データセット - OpenMathInstruct-1-1.8m-jaの調査がスタート。

分かったこと:

  • CommonCrawl日本語データ 共同抽出 - CC-MAIN-2023-50のsnapshotにおいて90000バッチ中30000バッチは終了。
  • CommonCrawl+mC4データ クリーニング タスク - 既存のコーパス作成に使用された処理のコードは公開されていないことが多い。
  • PMC OA (学術データ) - 処理は多岐にわたり、分散処理や並列処理をしないとすべては加工できない。
  • 英語データセット - SlimPajamaは広告やタグの羅列などのデータが含まれているがThe Pileよりはきれい。そのため、SlimPajamaを採用することを検討。
  • コーディングデータセット - The Stack v2はそのままでもきれいなのでそのまま使用することに。
  • 数学データセット - まだ検討中。

次やること:

  • CommonCrawl日本語データ 共同抽出 - CC-MAIN-2023-50のsnapshotにおいて来週まで50000/90000レコードを目指す。また複数のsnapshotから日本語抽出するためにGCPサービスを検討 (Namiuchi)。
  • CommonCrawl+mC4データ クリーニング タスク - 既存のコーパス作成処理のうち未実装のものは実装。実装済みのものは、現在のテキストデータに適用した際の評価を行う。
  • PMC OA (学術データ) - xmlデータからテキストを抽出したり、クリーニングする処理を更に作成 + 並列・分散処理の検討。
  • 英語データセット - SlimPajamaデータセットのフィルタリングとデータ加工を進める。
  • コーディングデータセット - 特になし。
  • 数学データセット - まずは調査+データのロード。次に数学テキストとコーディングテキストを分ける関数の実装。
  • NHK for SCHOOLのスクレイピング - 畠山氏発案のNHK for SCHOOLの諸々のテキストデータのスクレイピングコードを作成中(内田)。

サブチーム3: Code

やったこと:

  • 標準コードのトレース
  • 独自のパイプラインの構築
  • 0.3bモデルの学習(wikipediaやmc4) (詳細)
  • カリキュラム学習の検討
  • 計算量の試算(詳細)

分かったこと:

  • 標準コードはパイプが殆ど繋がっていない
  • カリキュラム学習では、学習初期に様々なtokenを学ばせておかないと、局所解に陥る
  • クリーニングが性能に与える影響の検証

次やること

  • 1Bクラスの学習
  • Branch-Train-Merge的な学習
    • 学習: データセットの分割
    • 推論: アルゴリズム設計& HuggingFaceモジュール化の検討
  • TransformerEngineの試行錯誤

サブチーム4: 遊撃隊

やったこと

  • 毎週金曜日の19:00を遊撃隊のミーティングとする
  • まずは、A100環境で提供コードを動かしてみた。
  • Mambaあたりの調査ページを作った。
  • ゆるくミーティングを行った。

分かったこと

  • 環境がないため、GCP環境が来るまで調査する⇒3月18日にGCP環境が来た⇒各々提供コードを動かしてみる。
    • 提供コード事前学習まで動かした

次やること

  • 提供環境で各々Mambaを動かしてみる

その他

  • 日本語に特化したLLMの開発には、高品質な日本語データセットが不可欠です。データセットの収集・加工には時間がかかるため、早めに着手し、データの質にこだわることが重要です。

Discussion