PAI-TensorFlow は、ネイティブ TensorFlow カーネルを最適化し、ディープラーニングのトレーニング効率を向上させるツールを提供します。サービス化、分散スケジューリング、グローバルコンピューティングスケジューリング、GPU マッピング、およびオンラインモデル予測をサポートします。
パブリッククラウドの GPU サーバーは段階的に廃止されます。CPU サーバーで実行される TensorFlow タスクは引き続き送信できます。モデルトレーニングに GPU を使用するには、Deep Learning Containers (DLC) でジョブを送信してください。詳細については、「トレーニングジョブの作成」をご参照ください。
背景情報
TensorFlow は、Google が開発したオープンソースのディープラーニングフレームワークです。畳み込みニューラルネットワーク (CNN)、リカレントニューラルネットワーク (RNN)、Long Short-Term Memory (LSTM) など、複数のニューラルネットワークモデルをサポートします。TensorFlow は、音声、画像、テキスト処理などの分野で効率的なモデルトレーニングを可能にし、豊富な機能と柔軟な API により広く採用されています。
PAI-TensorFlow は、ネイティブ TensorFlow コードと完全に互換性があり、多くの本番環境シナリオで優れたパフォーマンスを提供します。Platform for AI (PAI) や E-MapReduce (EMR) など、複数の Alibaba Cloud 製品のコンポーネントです。
機能
PAI-TensorFlow は、以下の機能を提供します。
-
サービス化
MaxCompute は、Apsara システム上に構築された Alibaba Cloud のビッグデータプラットフォームであり、数万の企業や開発者にサービスを提供しています。PAI-TensorFlow を使用すると、MaxCompute 内で TensorFlow フレームワークを実行できます。API はオープンソース版と同一であり、TensorFlow Training Script API を使用して MaxCompute コンピューティングクラスターにジョブを送信できます。
-
分散スケジューリング
Platform for AI (PAI) は、GPU Quota によって管理される大規模なコンピューティングリソースを提供します。分散スケジューリングシステムは、PAI-TensorFlow ジョブを異なるマシンに動的に割り当てます。事前に物理 GPU ホストをリクエストする必要はありません。GPU リソースは、ジョブの開始時に割り当てられ、ジョブの終了時に解放されます。
-
グローバルコンピューティングスケジューリング
MaxCompute 計算エンジンを使用すると、同じプロジェクト内で SQL ジョブと PAI-TensorFlow ジョブの両方を送信できます。グローバルコンピューティングスケジューリングサービスは、PAI-TensorFlow ジョブを適切な GPU クラスターに自動的にルーティングし、CPU クラスター上のデータ前処理ジョブと GPU クラスター上のモデルトレーニングジョブを接続します。
-
GPU マッピング
PAI-TensorFlow は、異なるオペレーターを特定の CPU または GPU に割り当てることをサポートします。GPU マッピングを使用すると、ホストの物理 GPU 構造を知る必要はありません。PAI-TensorFlow は、リクエストされた GPU をジョブのプロセス空間に自動的にマッピングし、
gpu:0、gpu:1などとして表示します。 -
オンラインモデル予測
Platform for AI (PAI) は、Elastic Algorithm Service (EAS) を提供します。PAI-TensorFlow でトレーニングされたモデルを、ワンクリックで EAS にデプロイできます。EAS は、動的スケーリング、ローリングアップデート、A/B テスト、高スループット、および低レイテンシーをサポートします。
サポートされている Python ライブラリ
PAI-TensorFlow には、NumPy や Six などの一般的なサードパーティ Python ライブラリがプリインストールされています。これらのライブラリは、TensorFlow ジョブ内で直接インポートできます。