PyTorch はオープンソースの深層学習フレームワークであり、機械学習モデルの開発や本番環境へのデプロイを容易にします。AWS が Facebook と提携して構築および保守している PyTorch のモデルサービングライブラリである TorchServe を使用すると、PyTorch デベロッパーはモデルを本番環境に迅速かつ簡単にデプロイできます。また、PyTorch は、分散トレーニング用の動的計算グラフとライブラリも提供します。これらは、AWS でのパフォーマンスを高めるように調整されています。
Amazon SageMaker を使用して AWS で PyTorch の使用を開始できます。このサービスは、フルマネージド型の機械学習サービスで、PyTorch モデルを簡単かつコスト効率よく、そして大規模に構築、トレーニング、デプロイできます。インフラストラクチャを自分で管理する場合は、AWS 深層学習 AMI または AWS Deep Learning Containers を使用できます。この 2 つはソースから構築され、最新バージョンの PyTorch でパフォーマンスが最適化されており、カスタムの機械学習環境をすばやくデプロイできます。
利点
使いやすい
AWS 上の PyTorch は、Amazon EC2 インスタンス、Elastic Fabric Adapter、およびその他のストレージ、ネットワーク、インフラストラクチャテクノロジーを利用するように設計されています。Facebook と提携して AWS が構築および保守しているオープンソースの PyTorch モデルサービングライブラリである TorchServe を使用すると、モデルを本番環境に簡単にデプロイできます。TorchScript を使用して、一括モード (反復モデル開発に使用) とグラフモード (モデルの構築後に効率的なトレーニングに使用) を簡単に切り替えることができます。
高いパフォーマンスを発揮するように構築
強力な GPU インスタンスのクラスター、耐障害性と伸縮性を備えた TorchElastic などのライブラリを利用する分散型のトレーニングバックエンドを使用してモデルをすばやくトレーニングすることで、迅速に反復し、モデルを市場に投入するまでの時間を短縮できます。
充実したエコシステム
torchvision、torchaudio、torchtext、torchelastic、torch_xla などのツールとモデルで構成される充実したエコシステムによって PyTorch を拡張し、コンピュータビジョン、自然言語処理、プライバシーを保護した ML、モデルの解釈可能性などでの開発をサポートします。
仕組み

AWS では PyTorch 向けのオープンソースを提供
TorchServe
TorchServe は、PyTorch 向けのオープンソースのモデル提供フレームワークで、カスタムコードを記述しなくても、トレーニング済みの PyTorch モデルを簡単かつ効率的に、大規模にデプロイできます。TorchServe は軽量かつ低レイテンシーであるため、モデルをデプロイしてパフォーマンスの高い推論を実現できます。オブジェクト検出、テキスト分類など、最も一般的なアプリケーション向けのデフォルトのハンドラーが用意されているため、モデルをデプロイするときにカスタムコードを記述する必要がありません。TorchServe には、マルチモデル配信、A/B テスト用のモデルのバージョン管理、モニタリング用のメトリクス、アプリケーション統合用の RESTful エンドポイントなどの強力な機能が備わっているため、研究段階から本番にモデルを一気に進めることができます。TorchServe では、Amazon SageMaker、Kubernetes、Amazon EKS、Amazon EC2 などのさまざまな機械学習環境をサポートしています。TorchServe の使用を開始するには、ドキュメントやブログの投稿をご覧ください。
TorchElastic Controller for Kubernetes
TorchElastic は、可用性に基づいてコンピューティングリソースを動的にスケールすることが重要な大規模な深層学習モデルをトレーニングするためのライブラリです。TorchElastic では、伸縮自在かつ耐障害性の高い方法でトレーニングできるため、アーキテクチャのサイズが大きくなったり、複雑さが増したりしても、機械学習モデルを本番環境にすばやくデプロイしたり、モデルの探索に最新のアプローチを利用したりできます。Kubernetes 向け TorchElastic Controller は、TorchElastic のトレーニングに必要なポッドとサービスのライフサイクルを自動的に管理する TorchElastic 向けのネイティブ Kubernetes 実装です。必要なコンピューティングリソースの一部を使用してトレーニングジョブを開始し、後で他のリソースが利用できるようになったら、ジョブをいったん停止して再開しなくても、動的にスケールできます。また、ノードの障害やリクラメーションが原因で交換されたノードからジョブを回復することができます。Kubernetes 向け TorchElastic Controller を使用すると、アイドル状態のクラスターリソースとトレーニングを Amazon EC2 スポットインスタンスに制限することで、分散トレーニングの時間とコストを削減できます。Kubernetes クラスターで TorchElastic Controller の使用を開始するには、チュートリアルをご覧ください。
お客様の声

Toyota Research Institute Advanced Development, Inc.(TRI-AD) では人工知能を応用して、将来、より安全で利用しやすく、より環境に優しい車を Toyota で製造することを目指しています。TRI-AD では Amazon EC2 P3 インスタンスで PyTorch を使用することで、ML モデルのトレーニング時間を数日から数時間に短縮しました。「当社では、コンピュータビジョンモデルを絶えず最適化し、改善しています。このモデルは、自動運転によってすべての人に安全な移動を実現するという TRI-AD の使命にとって不可欠なものです。当社のモデルは AWS で PyTorch を使用してトレーニングしていますが、今まで、PyTorch にはモデル提供フレームワークがありませんでした。このため、PyTorch モデルを当社の車両やクラウドサーバーにデプロイするためのソフトウェアを作成したり、維持したりするために大量のエンジニアリング作業が必要でした。TorchServe が提供されるようになったことで、AWS と PyTorch コミュニティによって正式にサポートされ、維持される高性能の軽量モデルサーバーを利用できるようになりました」と TRI-AD の機械学習ツールリードである Yusuke Yachide 氏は述べています。

Matroid は、動画映像の物体やイベントを検出するコンピュータビジョンソフトウェアを開発している会社で、AWS とオンプレミスの環境で PyTorch を使用して機械学習モデルを開発しており、その数は急速に増えています。モデルは、モデルを異なる形式に変換する必要があるカスタムのモデルサーバーを使用してデプロイされており、時間と手間がかかっています。TorchServe により、Matroid では、信頼できる唯一の情報源の役割も果たし、簡単に共有および管理できる 1 つの提供可能ファイルを使用してモデルのデプロイを簡素化できます。

Pinterest には、30 億個の画像と、それらの画像を関連付ける 180 億件の関連付けがあります。同社では、これらの画像をコンテキスト化し、パーソナライズされたユーザーエクスペリエンスを実現するために PyTorch の深層学習モデルを開発しました。Pinterest では Amazon EC2 P3 インスタンスを使用して、モデルのトレーニング速度を上げ、低レイテンシーの推論によってインタラクティブなユーザーエクスペリエンスを提供しています。続きをお読みください。
ブログと記事
ブログ: Serving PyTorch Models in Production with Amazon SageMaker’s Native TorchServe Integration
2020 年 8 月
Todd Escalona 著
ブログ: Running TorchServe on Amazon Elastic Kubernetes Service
2020 年 8 月
Josiah Davis、Charles Frenzel、Chen Wu 共著
ブログ: Cinnamon AI saves 70% on ML model training costs with Amazon SageMaker Managed Spot Training
2020 年 1 月
Sundar Ranganathan 氏、Yoshitaka Haribara 氏
記事: ディズニーは深層学習を使用して、コンテンツ世界を分類
2019 年 12 月
The Wired