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)