1. **定義:** * **1秒あたりに処理できるトークン数** を示す指標です。 * [[LLM]]の学習や推論における **スループット(処理能力)** を測る最も直接的な指標の一つです。 * 「処理」とは、学習の場合はフォワードパスとバックワードパスの計算、推論の場合はフォワードパスの計算を指します。 2. **計算方法:** * 一般的には以下の式で計算されます。 ``` TPS = (グローバルバッチサイズ × シーケンス長) / ステップ時間 ``` * **グローバルバッチサイズ:** 1回の学習ステップ(パラメータ更新)で処理されるシーケンス(サンプル)の総数。分散学習環境全体での合計値です。 * **シーケンス長:** 各入力シーケンスに含まれるトークンの数。 * **ステップ時間:** 1回の学習ステップ(フォワードパス、バックワードパス、パラメータ更新、通信などを含む)にかかる時間(秒)。 * **例:** グローバルバッチサイズが 2048、シーケンス長が 4096、1ステップに 10秒かかった場合、 `TPS = (2048 * 4096) / 10 = 8,388,608 / 10 = 838,860.8 tokens/sec` となります。 3. **意味・重要性:** * **学習速度の直接的な指標:** TPSが高いほど、同じ時間内により多くのデータ(トークン)を学習させることができ、モデルの学習完了までの時間を短縮できます。 * **システムの全体的な処理能力:** 計算、メモリ、通信など、システム全体のパフォーマンスが総合的に反映されます。 * **比較の容易さ:** 異なる設定やシステム間でのスループット比較に用いやすい指標です。 4. **影響要因:** * **ハードウェア性能:** GPUの計算能力、メモリ帯域幅、ノード間通信速度など。 * **モデルアーキテクチャ:** モデルのサイズ(パラメータ数)、層の数、Attention機構の種類など。 * **学習設定:** グローバルバッチサイズ、シーケンス長、勾配累積ステップ数、マイクロバッチサイズ、混合精度(FP16/BF16)の使用など。 * **ソフトウェア最適化:** 並列化戦略(データ並列、テンソル並列、パイプライン並列)、カーネル実装の効率、通信ライブラリ(NCCLなど)の性能、OSやドライバの最適化など。 5. **利点と欠点:** * **利点:** * 直感的で分かりやすい。 * 学習の進捗速度を直接的に示す。 * システム全体の総合的なスループットを評価できる。 * **欠点:** * **ハードウェアの潜在能力をどれだけ引き出しているかを示さない:** 例えば、非常に強力なGPUを使っていても、ソフトウェアの最適化不足やボトルネックによりTPSが低い場合、その原因がTPSだけでは特定しにくい。 * **トークン長の変動:** データセットによってトークン長が大きく異なる場合、単純なTPS比較が難しくなることがある(平均トークン長などを使う必要がある)。 --- [Nemo Megatron (DGXC Benchmarking) \| NVIDIA NGC](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/dgxc-benchmarking/resources/nemo-megatron-dgxc-benchmarking) > (sequence length) * (global batch size) / (training_step_timing) = (throughput in tokens per second)