EleutherAI/gpt-neox
An implementation of model parallel autoregressive transformers on GPUs, based on the Megatron and DeepSpeed libraries
GPT‑NeoX とは?
GPT‑NeoX は、GPU クラスタ上で非常に大規模な自己回帰言語モデル(数十億パラメータを想定)をトレーニングするためのオープンソースライブラリです。NVIDIA の Megatron‑LM コードベースをベースに構築され、DeepSpeed スタイルの最適化を追加し、多くのスーパーコンピューティング環境(AWS、Summit、Frontier、LUMI など)で大規模トレーニングを現実的なものにするための多くのエンジニアリングが含まれています。
誰が使用するか?
- 研究ラボ:新しい LLM をゼロからトレーニングするか、既存の LLM のトレーニングを継続したい場合。
- エンジニア:Slurm、MPI、または IBM Job Step Manager クラスタで実行できる本番環境対応のトレーニングスタックが必要な場合。
- すべての人:マルチノード、マルチ GPU トレーニングの計算予算を既に持っており、低レベルの PyTorch からすべてを構築するのではなく、ターンキーフレームワークを望む場合。
既存のモデルで推論を実行するだけの場合は、README では代わりに Hugging Face transformers を使用することを推奨しています。
コア機能(README に記載されている通り)
| 機能 | 意味 |
|---|---|
| 分散トレーニング | ZeRO ステージの最適化と 3D 並列処理(データ、テンソル、パイプライン)をサポートし、モデルを多くの GPU に分散させます。 |
| ハードウェアの柔軟性 | NVIDIA および AMD GPU で動作し、Slurm、MPI、pdsh、または IBM Job Step Manager 経由で起動でき、クラウド(AWS、CoreWeave)や多くのスーパーコンピュータ(Summit、Frontier、Polaris、LUMI)で実行されています。 |
| 最新のモデルテクニック | rotary および alibi 位置エンベディング、flash attention、並列フィードフォワードレイヤー、および Mixture‑of‑Experts、RWKV、Mamba などの新しいアーキテクチャのサポートが含まれます。 |
| カリキュラム学習と選好学習 | カリキュラムスケジュールの組み込みパイプラインと、DPO、KTO、報酬モデリングなどの最近のファインチューニングメソッド。 |
| エコシステム統合 | Hugging Face tokenizers/transformers を使用し、WandB、Comet、TensorBoard にログを記録し、EleutherAI LM‑Evaluation‑Harness で評価できます。 |
| エクスポート | トレーニングされたチェックポイントは、下流の推論のために Hugging Face 形式に変換できます。 |
| コンテナサポート | 再現可能な環境のために Docker および Apptainer イメージが提供されています。 |
始め方(クイックスタートの概要)
- Python 環境をセットアップし(Python 3.8‑3.10、PyTorch 1.8‑2.0)、
requirements/*.txtファイル経由で必要なパッケージをインストールします。 - 起動方法を選択 – 例:Slurm、MPI、またはデフォルトの
pdsh。ノード/GPU を記述した hostfile を作成します。 - 設定を選択または作成 – リポジトリには、一般的なモデルサイズ(1‑3 B、20 B など)とアーキテクチャ(Pythia、PaLM、Falcon、LLaMA 1/2)の YAML 設定が同梱されています。
- ヘルパースクリプトを使用してトレーニングを実行します:
python3 deepy.py train.py /path/to/your/config.yml - WandB、Comet、または TensorBoard 経由で監視し、オプションで S3 にチェックポイントを保存します。
- 最終チェックポイントを推論用の Hugging Face 形式にエクスポートします。
適していないケース
- 既存のモデルで推論を行うだけの場合(
transformersを使用してください)。 - マルチ GPU クラスタへのアクセス権や、数十億パラメータのトレーニング予算がない場合。
- 低レベルの起動詳細を抽象化した、より高レベルな単一ノードのトレーナー(例:Lightning、FastChat)を好む場合。
詳細情報の場所
- 導入と出版物セクションには、GPT‑NeoX を使用したラボと論文がリストされています。
- ライセンスと貢献の詳細は、リポジトリの管理ノートにあります。
- コンテナは、Docker または Apptainer 用の
containers/の下にあります。
結論: GPT‑NeoX は、さまざまな HPC 環境全体で大規模な分散トレーニングジョブを実行する必要がある研究者やエンジニア向けの、本格的な本番環境グレードの大規模言語モデルトレーニングフレームワークです。おもちゃのデモやシンプルな推論ライブラリではありません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト