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