OpenAI のディープラーニングインフラと Kubernetes-EC2 オートスケーラ
OpenAI はディープラーニング向けインフラストラクチャのアプローチを発表し、バースト的な GPU ワークロードを迅速にスケールできるように Kubernetes‑EC2 オートスケーラをリリースしました。
インフラはディープラーニング研究サイクル全体をサポート
OpenAI のインフラは、研究者が単一 GPU でのアドホックな実験から大規模で数日間にわたるトレーニングジョブへと迅速に移行できるよう設計されています。
例のワークフロー: GAN のアイデアから ImageNet スケーリングまで
典型的なプロジェクトは単一 GPU での迅速なプロトタイピングから始まり、ImageNet のような大規模データセットでのマルチ GPU トレーニングへとスケールします。その際、実験管理やハイパーパラメータの探索を慎重に行う必要があります。
ソフトウェア、ハードウェア、プロビジョニングの選択
OpenAI は TensorFlow を使用し、AWS EC2 インスタンスとオンプレミスの Titan X GPU を組み合わせ、Terraform でサーバ構成を一貫させ、Kubernetes を 3 つの AWS リージョンにまたがるクラスターのスケジューラとして利用しています。
オーケストレーションによりローカルと分散作業が似た感覚に
SSH ノードはインタラクティブなデバッグを提供し、Kubernetes は Docker コンテナ内でジョブを実行します。プラットフォームは Flannel ネットワークを公開しているため、研究者は各ポートごとに Service を作成することなく、ラップトップから直接 TensorBoard にアクセスできます。
Kubernetes‑EC2 オートスケーラがバースト需要に対応
オートスケーラは通常の Pod として動作し、Kubernetes マスターにポーリングして必要な容量を算出し、Auto Scaling グループのサイズを調整、終了前にノードをドレインし、複数の ASG、GPU およびメモリリソースを管理し、容量上限に達した場合はセカンダリの AWS リージョンへオーバーフローします。
研究者への影響
シンプルなインターフェースと自動スケーリングを提供することで、インフラはディープラーニングチームがクラスター管理ではなく科学的なイテレーションに集中できるようにし、オープンソース化されたオートスケーラは同様のバッチ最適化スケーリングを広くコミュニティに提供します。
Sources
- OriginalInfrastructure for deep learning