翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SageMaker Neo によるモデルパフォーマンスの最適化
Neo は Amazon SageMaker AI の一機能であり、機械学習モデルを一度トレーニングしてクラウド内やエッジのどこでも実行できます。
SageMaker Neo を初めて使用する場合は、「エッジデバイスの開始方法」セクションを参照して、エッジデバイスへのコンパイルとデプロイの手順を確認する step-by-stepことをお勧めします。
SageMaker Neo とは
通常、複数のプラットフォームで推論を実行する機械学習モデルの最適化は難しいものです。これは、各プラットフォームに固有のハードウェア/ソフトウェア構成に合わせてモデルを手動でチューニングする必要があるためです。特定のワークロードに対して最適なパフォーマンスを得るには、ハードウェアアーキテクチャ、命令セット、メモリアクセスパターン、入力データの形状を特に知っておく必要があります。従来のソフトウェア開発では、コンパイラやプロファイラなどのツールを使用するとプロセスが簡単になります。Machine Learning の場合、ほとんどのツールはフレームワークまたはハードウェアに固有のものです。これにより、信頼性が低く、非生産的な手動 trial-and-errorプロセスに強制されます。
Neo は、Ambarella、、Intel、Nvidia、、、NXPQualcomm、Texas Instruments、Xilinx のプロセッサに基づいて、Android、Linux、Windows マシンでの推論ONNX用に Gluon、Keras、、ARM、、-MXNet PyTorch TensorFlow TensorFlowLite、モデルを自動的に最適化します。Neo は、フレームワーク全体でモデルズーで利用可能なコンピュータビジョンモデルでテストされています。 SageMaker Neo は、クラウドインスタンス (Inferentia を含む) とエッジデバイスの 2 つの主要なプラットフォームのコンパイルとデプロイをサポートしています。
デプロイ先としてサポートされているフレームワークとクラウドインスタンスタイプの詳細については、クラウドインスタンスの「サポートされるインスタンスタイプとフレームワーク」を参照してください。
サポートされているフレームワーク、エッジデバイス、オペレーティングシステム、チップアーキテクチャ、およびエッジデバイス用に SageMaker AI Neo によってテストされた一般的な機械学習モデルの詳細については、エッジデバイスサポートされているフレームワーク、デバイス、システム、アーキテクチャについては「」を参照してください。
仕組み
Neo は、コンパイラとランタイムで構成されています。まず、Neo コンパイルはさまざまなフレームワークからエクスポートされたモデルをAPI読み取ります。フレームワーク固有の機能とオペレーションをフレームワークにとらわれない中間表現に変換します。次に、一連の最適化を実行します。次に、最適化されたオペレーション用のバイナリコードを生成して、それらを共有オブジェクトライブラリに記述し、モデル定義とパラメータを別々のファイルに保存します。Neo は、コンパイルされたモデルをロードして実行する各ターゲットプラットフォーム用のランタイムも提供します。
Neo コンパイルジョブは、 SageMaker AI コンソール、 AWS Command Line Interface (AWS CLI)、Python ノートブック、または SageMaker AI から作成できますSDK。モデルのコンパイル方法については、「」を参照してくださいNeo によるモデルコンパイル。いくつかのCLIコマンド、API呼び出し、または数回のクリックで、選択したプラットフォームのモデルを変換できます。モデルは SageMaker AI エンドポイントまたは AWS IoT Greengrass デバイスにすばやくデプロイできます。
Neo は、 または で、 FP32 または INT8FP16ビット幅に量子化されたパラメータを使用してモデルを最適化できます。