Amazon Web Services ブログ

Category: PyTorch on AWS

新機能 – Amazon SageMaker Debugger を使用した機械学習トレーニングジョブのプロファイリング

今日は、皆さんに Amazon SageMaker Debugger が機械学習モデルのプロファイリングを実行できるようになったことをお知らせしたいと思います。これにより、ハードウェアリソースの使用率が原因で生じるトレーニング問題の特定と修正が極めて容易になります。 幅広いビジネス問題に対応する目覚ましいパフォーマンスにもかかわらず、機械学習 (ML) は今も謎めいたところがあるトピックです。物事の的確な実行は、サイエンス、職人技 (魔法と言う人もいます)、そして時には運を組み合わせた錬金術です。特に、モデルトレーニングは、結果がデータセット、アルゴリズムとそのパラメータ、そしてトレーニングを実行するインフラストラクチャの品質に応じて変化する複雑なプロセスです。 ML モデルがかつてない規模に増大し、ますます複雑になるにつれて (深層学習さん、あなたのことです) 拡大している問題のひとつに、モデルをトレーニングするために必要なインフラストラクチャの量があります。たとえば、一般公開されている COCO データセットでの BERT のトレーニングは、単一の p3dn.24xlarge インスタンスで実行すると、それに 8 個の NVIDIA V100 GPU が搭載されているにもかかわらず、6 時間を優に超える時間がかかります。自律走行車企業などのお客様には、はるかに大きなデータセットを扱い、オブジェクト検出モデルのトレーニングに数日間かけるお客様もおられます。 複雑なトレーニングジョブにこれだけの時間がかかると、何らかの不具合が生じてトレーニングが失敗に終わる可能性が非常に高くなり、時間を無駄にするだけでなく、大きないら立ちを感じる原因にもなります。調査を行い、根本的な原因をつきとめて修正を試み、それからトレーニングジョブを再度実行する間、重要な作業は後回しにしなくてはなりません。たいていの場合は、問題を突き止めるために、この手順をかなりの回数繰り返すことになります。 使用している ML フレームワーク、そして時にはそのバージョンによっては、既存のフレームワーク固有のツールを使用できるかどうかもわからず、多くの場合は、独自の特注ツールを構築して維持しなくてはならなくなります。これは、経験豊かなプラクティショナーでさえも大いに苦労する作業で、私のような普通のデベロッパーにとっては、気が遠くなるようなタスクでしかありません。 Amazon SageMaker Debugger のモデルプロファイリングのご紹介 去年の AWS re:Invent でローンチされた Amazon SageMaker Debugger は、ML トレーニングジョブで生じている複雑な問題を自動的に識別する Amazon SageMaker の機能です。これらの問題には、減少しない損失、および勾配爆発などが含まれます。 SageMaker Debugger がハードウェアリソースの使用率も監視できるようになった今、これからはトレーニングジョブをプロファイリングして、リソースの使用率とトレーニングスクリプトの ML オペレーションとの関連付けに役立てることができます。そうすることで、はるかに迅速にパフォーマンス問題を解決し、はるかに高速にトレーニングジョブを反復することができるようになります。 自動運転および運転者支援システムを構築する Intel 企業、Mobileye の […]

Read More

新機能 – Amazon SageMaker の管理されたデータ並列化による大規模なデータセットを使用したトレーニングのシンプル化

今日は、数百から数千ギガバイトにおよぶデータセットでのモデルのトレーニングを容易にする、新しいデータ並列化ライブラリの Amazon SageMaker によるサポートが開始されたことをお知らせしたいと思います。 データセットとモデルがますます大きくなり、高度化するにつれて、大規模な分散型トレーニングジョブを扱う機械学習 (ML) プラクティショナーは、Amazon Elastic Compute Cloud (EC2) p3 および p4 インスタンスなどの強力なインスタンスを使用している場合でさえも、長くなる一方のトレーニング時間に対応しなければなりません。たとえば、8 個の NVIDIA V100 GPU を搭載した ml.p3dn.24xlarge インスタンスを使用しても、一般公開されている COCO データセットでの Mask RCNN および Faster RCNN などの高度なオブジェクト検出モデルのトレーニングには 6 時間以上かかります。これと同じく、最先端の自然言語処理モデルである BERT のトレーニングにも、同一のインスタンスで 100 時間以上かかります。自律走行車企業などのお客様には、大規模な GPU クラスターで何日もかけて実行される、さらに大きなトレーニングジョブを定期的に処理するお客様もおられます。 ご想像どおり、これらの長いトレーニング時間は ML プロジェクトの深刻なボトルネックであり、生産性を損なうと共に、イノベーションを遅らせています。お客様から助けを求められた AWS は、この問題の解決に乗り出しました。 Amazon SageMaker のデータ並列化のご紹介 SageMaker Data Parallelism (SDP) ライブラリのおかげで、Amazon SageMaker を使って ML チームによる分散型トレーニングの時間とコストの削減を実現することが可能になりました。TensorFlow […]

Read More

TorchServe を使用した大規模な推論のための PyTorch モデルをデプロイする

今日ご紹介するサービスの多くは機械学習 (ML) を必要とするものです。オンライン検索や製品のレコメンデーションから音声認識や翻訳まで、これらのサービスには予測を提供するための ML モデルが必要です。ML がさらに多くのサービスで採用されるにつれて、苦労して結果を得て、モデルを迅速かつ確実に本番環境にデプロイすることが困難になります。そして、これらのサービスを利用する人の数が増えるにつれて、モデルが数百万のユーザーに同時に、そして、安全かつ確実に、低レイテンシーで予測を提供できるようにすることには、より大きな困難が伴います。 開発者は、モデル開発にさまざまなオープンソースフレームワークを使用します。ここ数年、PyTorch は、ML を利用したアプリケーションを開発する多くの研究者、開発者、およびデータサイエンティストが選択する深層学習のフレームワークとなっています。PyTorch は、そのシンプルさに加えて、Python 的な方法でモデルを実装およびトレーニングでき、Eager モードと Graph モードをシームレスに切り替える機能があることから好まれています。しかしながら、これまで、PyTorch モデルを本番環境で大規模に提供することについて、簡単かつネイティブにサポートされた方法はありませんでした。 AWS は、PyTorch のオープンソースモデルサービスライブラリである TorchServe の実験的リリースを共有できることを嬉しく思います。 AWS は、Facebook と連携して TorchServe を開発しました。AWS と Facebook は、より広範な PyTorch コミュニティと共に、TorchServe に注力し続けます。クラウドベースの PyTorch プロジェクトが 83% を超えて AWS で行われていることから、PyTorch モデルのデプロイの困難に対処するために TorchServe を立ち上げることができることを幸いに思います。TorchServe を使用すると、PyTorch モデルを TorchScript を使用して Eager モードまたは Graph モードでデプロイし、複数のモデルを同時に提供し、A/B テスト用に本番モデルをバージョン管理し、モデルを動的にロードおよびアンロードし、詳細なログとカスタマイズ可能なメトリクスを監視できます。 TorchServe は使いやすいです。ローカルにデプロイするのに便利な CLI が付属しており、コンテナにパッケージ化して Amazon SageMaker […]

Read More