メインコンテンツまでスキップ
バージョン: v2603

ZenithTune

ZenithTuneは、アプリケーションの潜在能力を最大限に引き出し、その性能を天頂(Zenith)までチューニングするためのライブラリです。 ZenithTuneが提供するチューナーを用途に合わせて使用することで、ユーザのコーディングを最小限にしながら最高のパフォーマンスを得ることができます。

特徴

ZenithTuneは実行時間の短縮やコマンド出力の最適化など、アプリケーション全体の性能向上を目指す多様な最適化手法を提供しています。これは、一般的なハイパーパラメータチューニングが主にモデルの精度向上に焦点を当てているのと対照的に、より包括的なアプローチです。

また、分散環境でもシームレスに実行できるような実装が行われています。既存のツールが単一のコンピュータでの利用を前提としているのに対し、SlurmやKubernetesなどの様々な分散環境での性能改善をサポートします。

ZenithTuneはアプリケーションの性能改善に特化したライブラリであり、CPUコア割り当てなどのハードウェアの挙動を細かく調整する機能を有しています。これは他の類似ツールには見られない特徴です。

最後に、ユーザは最適化戦略のみに焦点をあてることができます。既存の多くのツールでは最適化以外の非本質なコードを自分で書く必要があるのに対して、ZenithTuneはユーザーの労力を最大限減らすことを念頭にデザインされています。

セットアップ

チューニング方法を選ぶ

ZenithTuneでは2つのチューニング方法を提供しています。

ノーコードチューニングPythonスクリプトによるチューニング
Pythonコード不要(CLIのみ)必要(目的関数を自分で定義)
使い方プリセット名とコマンドを指定して実行Python APIでチューナーと目的関数を構成
向いているケース対応プリセットがあるフレームワーク独自の評価ロジックや細かい制御が必要な場合
対応フレームワークMegatron-LM / ms-swift任意(自分で目的関数を書く)

対応するプリセットがあるフレームワークを使用している場合は、ノーコードチューニングが最も手軽です。 プリセットが用意されていないフレームワークや、独自の評価指標でチューニングしたい場合はPythonスクリプトによるチューニングを使用してください。

ノーコードチューニング

既存の学習コマンドをzenithtuneコマンドでラップし、チューニング用のプリセットを指定するだけで、パラメータ探索・適用・評価が自動的に行われます。

zenithtune optimize --preset megatron --args n_gpus=8,gbs=64 --n-trials 50 -- bash train.sh

ノーコードチューニング

Pythonスクリプトによるチューニング

Python APIを使って目的関数を自分で定義し、柔軟にチューニングを行います。

Pythonスクリプトによるチューニング