[週次報告] 第4回 Team たぬき
動画
パスコード: *.41J%nQ
開発テーマ・概要
当チームでは、上質な日本語データベースの構築と活用に焦点を当てた開発を行っています。具体的には、高品質な日本語テキストデータを大規模に収集・加工し、大規模言語モデルの学習に適したデータセットを作成することを目指しています。
データ収集においては、CommonCrawlをはじめとする大規模ウェブデータから日本語テキストを抽出し、ルールベースのフィルタリングに加え、人手によるアノテーションを行うことで、クリーンで高品質なデータを選別します。また、学術論文や書籍など、ウェブ以外の日本語データも積極的に取り入れ、多様性に富んだデータベースの構築を目指します。
収集したデータは、先進的な自然言語処理技術を駆使して加工・統合し、大規模言語モデルの学習に最適化します。具体的には、文書のクラスタリングや重複除去、カリキュラム学習に対応したデータの順序付けなどを行います。
さらに、構築したデータベースを用いて、最先端の大規模言語モデルを学習・評価し、日本語処理タスクにおける性能向上を図ります。
チーム全体の開発状況
- 日本語400GB、英語300GBまでクリーニング済み (dedup後)
- モデル学習コードはほぼ完了。来週微調整して動かす予定
- マルチGPUで2.7Bモデルを30B tokenで動かした。マルチノードでの動作も確認済み
- 計画はおおむね順調。多分大丈夫な見込み
開発のマイルストーン
- データ準備
- [回答]dedup前で日本語800gbまでクリーニング済み
- [回答]英語も準備済み300gb
- モデル学習コード準備
- [回答]ほぼ完了。来週微調整して動かすだけ
- シングルGPUでの稼働確認、実績
- [回答]マルチgpuで2.7bmodelを30b tokenほど動かした
- マルチノードでの稼働確認、実績
- [回答]動作確認済み
- うまくいきそうか計画の確信度
- [回答]多分大丈夫
直近1週間でやったこと
- 指示データセット
- 投稿サイトhttps://minnade.chat/ がオープン
- 事前学習
- データセットの作成完了&tokenize済み(200b)
- コード
- パイプラインの動作確認、ROPEの導入
サブチームからの情報共有
サブチーム1: 指示データセット
やったこと
- 新しいサイト名 MinnadeChat でウェブサイトを作成 (shu)
- https://minnade.chat/
- アカウント作成、投稿できます
- mtbenchをベースとしたインストラクションデータセットの作成を開始
- チームメンバーにより指示データセットを数十件の規模で作成頂いた。
- 作成データと元データでの類似性からカンニングの指摘を懸念
- 類似度評価システムを導入し、低類似度でデータを作成する。
- 作成データと元データでの類似性からカンニングの指摘を懸念
- チームメンバーにより指示データセットを数十件の規模で作成頂いた。
分かったこと
- コンペ用のためだけのデータを作成をすることに長期的に見て意味性がないため、評価指標にとらわれない日本語LLMモデル用のインストラクションデータセットの作成を開始予定
次やること
- MinnadeChat の投稿体験の改善 (shu)
- 質問タイトルを不要にするなど
- MinnadeChat上にデータセットを作成していく。
サブチーム2: 事前学習データセット
やったこと
- クリーニング、dedup、トークナイズまでの処理(畠山)
- アノテーションできるところまでアノテーション進めた
- 4/10 10時までに6800件をアノテーションした
- アノテーションできるところまでアノテーション進めた
- mC4+日本語データのクリーニングパイプラインの進捗
・日本語クリーニングコードの共有、クリーニング回して“jsonl”形式で保存(内藤さん)https://github.com/hatakeyama-llm-team/Dataset_for_BTM)(レポの一番下に、使っているものをまとめ)
・形態素解析によるクリーニングプログラムを作成(Komurasaki様)
・Eluther-AIの方々からcode以下のコードデータの推薦を受け、the stack v2の代わりに使用
分かったこと
- (クリーニングコードは)突貫で作ったコードのため、同じテキストに対して何度も形態素解析を行うなど、処理上の無駄が多い
次やること
- ファインチューニングへとフェーズが移行
- 50bに向けて、日本語スクリプトをブラッシュアップ
- 雑多なTODOとして、
・mdpiというオープンアクセス論文からごっそり落としてきた論文のhtmlデータの解析 - リンクの除去、機械学習ベース(アノテーションしてもらってるやつ)でのクリーニング、遊撃部隊的に課題の発見など
サブチーム3: Code
やったこと:
- 2.7bモデルのカリキュラム学習(カテゴリごとにクラス分け)
- llmのデモサーバー設置
分かったこと: 特に問題なく動く
次やること: 10bモデルの学習
ディスカッション
-
相談したい事項(畠山)
- 10bモデルの運用体制
- 環境設定・モデルパラメータ類の設定など: 畠山が主に担当、随時メンバーが協力、でOKか?
- どういうjobシステムなのかがまだわからないので、なんとも言えない
- 見守り体制は少し考えたい
- 細々とした設定
- モデルサイズ: データは0.5T-1TB程度(100-300b token?)
- この学習が2,3weekで終わるようなモデルサイズに設定 (余裕があるなら、13bー20bモデルくらいにする?)
- 保存するsnapshotの頻度: ストレージ次第
- モデルサイズ: データは0.5T-1TB程度(100-300b token?)
- ZeRo関連の設定
- 環境設定・モデルパラメータ類の設定など: 畠山が主に担当、随時メンバーが協力、でOKか?
- 10bモデルの運用体制
-
事前学習データセットの方針
- できれば分散・分業型の処理体制を作りたい
- しかし、commoncrawlが膨大すぎるので、意外と分散処理が難しい
- 未圧縮状態で数TB、しかも重複多数。
- あらかじめ、commoncrawlなどを一括で処理&カテゴライズして、カテゴリごとに分担処理するなどは有り?
- 新たに入れたいデータ
- 数学ソルバー出力
- …
-
ファインチューニングデータセットの方針
- 50-100bモデルを見据えた、高度なデータセットにしたい?
Discussion