YaLM 100B は、テキストを生成および処理するための GPT のようなニューラル ネットワークです。世界中の開発者や研究者が自由に使用できます。
このモデルは 1,000 億のパラメータを活用しています。 800 枚の A100 グラフィックス カードと 1.7 TB のオンライン テキスト、書籍、その他無数の英語とロシア語のソースのクラスターでモデルをトレーニングするのに 65 日かかりました。
トレーニングの詳細と加速と安定化に関するベスト プラクティスについては、 Medium (英語) およびHabr (ロシア語) の記事を参照してください。
DeepSpeed を使用してモデルをトレーニングし、Megatron-LM の例からインスピレーションを得ました。ただし、このリポジトリのコードは、モデルのトレーニングに使用されたコードと同じではありません。むしろ、これは DeepSpeed リポジトリの標準サンプルであり、モデルを推論するために必要な最小限の変更が加えられています。
重みをダウンロードする前に、200 GB の空きディスク容量があることを確認してください。モデル(コードは Microsoft/DeepSpeedExamples/Megatron-LM-v1.1.5-ZeRO3 に基づいています)は、テンソル並列処理を使用して複数の GPU で実行されることになっています。 4 個 (A100 80g) および 8 個 (V100 32g) GPU でテストされましたが、合計 ≈200 GB の GPU メモリを備えたさまざまな構成で動作し、重量次元を正しく分割します (例: 16、64、128)。
bash download/download.sh
実行して、モデルの重みと語彙をダウンロードします。./yalm100b_checkpoint/weights/
にダウンロードされ、語彙は./yalm100b_checkpoint/vocab/
にダウンロードされます。docker/pull.sh
でプルできます。 A100、V100と互換性があります。docker/build.sh
使用してソースから docker イメージをビルドすることもできます (これはdocker/Dockerfile
から docker イメージをビルドするだけです)。docker/run.sh
使用します(ボリューム、名前、その他のパラメータは変更可能) 。 次のスクリプトから始めることができます。
examples/generate_interactive.sh
: コマンド ラインからの対話型生成。モデルを試す最も簡単な方法です。examples/generate_conditional_sampling.sh
: サンプリング戦略による条件付き生成。 Top-p はデフォルトで使用されますが、温度を自由に変更したり、top-k を使用したりしてください。入力は jsonlines (例: examples/example_cond_input.json
)、出力は同じ jsonlines になり、生成されたテキスト フィールドが各行に追加されます。examples/generate_conditional_greedy.sh
: 前と同じですが、生成は貪欲です。ショット数が少ない問題の解決に適しています。examples/generate_unconditional.sh
: 無条件生成。入力は使用されず、出力は jsonlines になります。 このモデルは、研究と商業利用の両方を許可する Apache 2.0 ライセンスに基づいて公開されており、Megatron-LM は Megatron-LM ライセンスに基づいてライセンスされています。
YaLM-100B のトレーニングに使用されるデータセットは、次の部分で構成されます (大まかなパーセンテージは、モデルによって認識されるトークンで測定されます)。
25% The Pile — Eleuther AI チームによるオープン英語データセット
75%チームが収集したロシア語のテキスト (データセット全体の割合が示されています)
Yandex Search インデックスの 49% のロシアの Web ページは、次のヒューリスティックによって ~100Tb から ~1Tb までフィルタリングされました。
12% Yandex Search インデックスからのさまざまなソースからのニュース
10% ロシア語分布シソーラスで使用されるデータセットからの書籍
3% Taiga データセットからのその他のテキスト
1.5% ソーシャル メディアからの対話は、The Pile で Reddit が処理される方法と同様の方法で前処理されます。
ウィキペディアのロシア語部分 0.5%
一部のサブセットはトレーニング中に最大 3 回走査されました。
モデルは、800 個の A100 のクラスターで約 65 日間トレーニングされました。その間、300Bトークンを消費しました。 LR を備えた TensorBoard とランプアップ スケジュール、トレーニング メトリクス、および「温度計」は HF ページで確認できます。