Amazon SageMaker Neo を使用すると、デベロッパーは、クラウド内の SageMaker とエッジでサポートされているデバイスで推論するために機械学習 (ML) モデルを最適化できます。
ML 推論は、トレーニングされた機械学習モデルを使用して予測を行うプロセスです。モデルをトレーニングして精度を高めた後、デベロッパーは、高パフォーマンスを実現するために、多くの時間と労力を費やしてモデルを調整することがよくあります。クラウドでの推論については、デベロッパーは多くの場合、より良いスループットを達成するために、より高い費用をかけて大量のメモリと強力な処理機能を備えた大規模なインスタンスに目を向けます。コンピューティングとメモリが制限されているエッジデバイスでの推論については、デベロッパーは、デバイスのハードウェアの制約内で許容可能なパフォーマンスを達成するために、モデルを手動で調整するのに数か月を費やすことがよくあります。
Amazon SageMaker Neo は、クラウドインスタンスとエッジデバイスでの推論のために機械学習モデルを自動的に最適化して、精度を損なうことなくより高速に実行します。まず、DarkNet、Keras、MXNet、PyTorch、TensorFlow、TensorFlow-Lite、ONNX、または XGBoost で既に構築され、Amazon SageMaker またはその他の場所でトレーニングされた機械学習モデルから始めます。 SageMakerのホスティングインスタンスや、Ambarella、Apple、ARM、Intel、MediaTek、Nvidia、NXP、Qualcomm、RockChip、Texas Instrumentsのプロセッサを搭載したエッジデバイスなど、対象となるハードウェアプラットフォームを選択することができます。SageMaker Neo は、シングルクリックでトレーニングされたモデルを最適化し、実行可能ファイルにコンパイルします。コンパイラは、機械学習モデルを使用して、クラウドインスタンスまたはエッジデバイス上のモデルの可能な限り最高のパフォーマンスを引き出すパフォーマンス最適化を適用します。その後、モデルを SageMaker エンドポイントとして、またはサポートされているエッジデバイスにデプロイし、予測を開始します。
クラウドでの推論については、SageMaker Neo は、SageMaker ホスティングで推論に最適化されたコンテナを作成することにより、推論を高速化し、費用を節約します。エッジでの推論については、SageMaker Neo は、選択したオペレーティングシステムとプロセッサハードウェアのモデルを自動的に調整することで、デベロッパーが手動調整に費やしていた数か月間の時間を節約します。
Amazon SageMaker Neo は、Apache TVM とパートナーが提供するコンパイラおよびアクセラレーションライブラリを使用して、特定のモデルとハードウェアターゲットについて、可能な限り最高のパフォーマンスを提供します。AWS は、プロセッサベンダーとデバイスメーカーが共通のコンパクトなランタイムで迅速にイノベーションを実現できるようにするため、Apache ソフトウェアライセンスに基づいて、コンパイラコードを Apache TVM プロジェクトに、ランタイムコードを Neo-AI オープンソースプロジェクトにそれぞれ提供しています。
仕組み
![Amazon SageMaker Neo の仕組み Amazon SageMaker Neo の仕組み](https://d1.awsstatic.com/SageMaker/Product-Page-Diagram_SageMaker-Neo-How-it-Works_DARK%402x.708e12cf87a91b754261a7fa113ad18d0bdf98d3.png)
ベネフィット
パフォーマンスを最大 25 倍向上させる
Amazon SageMaker Neo は、機械学習モデルを自動的に最適化し、精度を損なうことなく、最大 25 倍の速度で実行します。SageMaker Neo は、モデルとターゲットハードウェアプラットフォームに最適なツールチェーンを使用するとともに、モデルコンパイル用のシンプルな標準 API を提供します。
ランタイムフットプリントの 1/10 未満
Amazon SageMaker Neo ランタイムが消費するフットプリントは、TensorFlow や PyTorch などの深層学習フレームワークのフットプリントのわずか 1/10 です。ターゲットハードウェアにフレームワークをインストールする代わりに、コンパクトな Neo ランタイムライブラリを ML アプリケーションにロードします。また、TensorFlow-Lite のようなコンパクトなフレームワークとは異なり、Neo ランタイムは、Neo コンパイラでサポートされている任意のフレームワークでトレーニングされたモデルを実行できます。
本稼働までの時間の短縮
Amazon SageMaker Neo を使用すると、Amazon SageMaker コンソールで数回クリックするだけで、事実上あらゆるハードウェアプラットフォームにデプロイするためのモデルを簡単に準備できます。手間をかけずに手動調整のすべてのメリットを享受できます。
主な特徴
精度を損なうことなく推論を最適化
Amazon SageMaker Neo は、機械学習コンパイラで研究成果に基づく手法を使用して、ターゲットハードウェア用にモデルを最適化します。これらの体系的な最適化手法を自動的に適用することで、SageMaker Neo は精度を損なうことなくモデルを高速化します。
一般的な機械学習フレームワークをサポート
Amazon SageMaker Neo は、モデルを DarkNet、Keras、MXNet、PyTorch、TensorFlow、TensorFlow-Lite、ONNX、または XGBoost のフレームワーク固有の形式から一般的な表現に変換し、計算を最適化し、ターゲットの SageMaker ホスティングインスタンスまたはエッジデバイス用にハードウェア固有の実行可能ファイルを生成します。
標準 API を備えたコンパクトなランタイムを提供
Amazon SageMaker Neo ランタイムは、フレームワークのストレージとメモリフットプリントに比べて数分の 1 である 1MB のストレージと 2MB のメモリを占有しつつ、任意のフレームワークで作成されたコンパイル済みモデルを実行するためのシンプルで一般的な API を提供します。
一般的なターゲットプラットフォームをサポート
Amazon SageMaker Neoランタイムは、Android、Linux、Windowsオペレーティングシステム、およびAmbarella、ARM、Intel、Nvidia、NXP、Qualcomm、Texas Instrumentsのプロセッサでサポートされています。また、SageMaker Neo は、Apple デバイスの macOS、iOS、iPadOS、watchOS、および tvOS にデプロイするために、PyTorch モデルと TensorFlow モデルを Core ML 形式に変換します。
Amazon SageMaker ホスティングインスタンス用の推論最適化コンテナ
クラウドでの推論のために、Amazon SageMaker Neo は、Neo ランタイムと統合された MXNet、PyTorch、TensorFlow を含む推論最適化コンテナを提供します。これまで、SageMaker Neo は、サポートされていない演算子を使用するモデルをコンパイルできませんでした。今後、SageMaker Neo は、コンパイラがモデル内の演算子をサポートしており、かつ、フレームワークを使用してコンパイルされていないモデルの残りを実行する限りにおいて、すべてのモデルを最適化します。そのため、MXNet、PyTorch、または TensorFlow モデルを推論最適化コンテナで実行しながら、コンパイル可能なモデルのパフォーマンスを向上させることができます。
異種ハードウェアのモデルのパーティション化
Amazon SageMaker Neo は、パートナーが提供するアクセラレータライブラリを利用して、ハードウェアアクセラレータと CPU を備えた異種ハードウェアプラットフォームでの深層学習モデルのために、可能な限り最高のパフォーマンスを提供します。Ambarella CV Tools、Nvidia Tensor RT、Texas Instruments TIDL などのアクセラレーションライブラリは、それぞれ特定の関数と演算子のセットをサポートしています。SageMaker Neo はモデルを自動的にパーティション化して、アクセラレーターでサポートされている演算子のある部分をアクセラレーターで実行し、モデルの残りの部分を CPU で実行できるようにします。このように、SageMaker Neo はハードウェアアクセラレーターを最大限に活用し、ハードウェアで実行できるモデルのタイプを増やしながら、演算子がアクセラレーターによってサポートされる限りにおいて、モデルのパフォーマンスを向上させます。
Amazon SageMaker INF1 インスタンスのサポート
Amazon SageMaker Neo は、Amazon SageMaker INF1 インスタンスターゲットのモデルをコンパイルするようになりました。SageMaker ホスティングは、AWS Inferentia チップに基づく INF1 インスタンスで推論するためのマネージドサービスを提供します。SageMaker Neo は、内部で Inferentia プロセッサに固有の Neuron コンパイラを使用しながら、標準のモデルコンパイル API を提供し、SageMaker INF1 インスタンスにデプロイするためのモデルを準備するタスクを簡素化すると同時に、INF 1 インスタンスの可能な限り最高のパフォーマンスと費用削減を実現します。
ブログ
Amazon SageMaker を使用して Bayer のデジタル農業ユニットを強化して成功を収める
Marisa Messina | 2019 年 8 月 5 日
Amazon SageMaker Neo が Pioneer の自動車における機械学習を可能に
Satadal Bhattacharjee | 2019 年 6 月 11 日
Amazon SageMaker Neo がエッジデバイス上のオブジェクトの検出と画像の分類を支援
Satadal Bhattacharjee | 2019 年 6 月 12 日
AWS がオープンソースの Neo-AI プロジェクトを立ち上げ、エッジデバイスでの ML のデプロイを加速
Sukwon Kim および Vin Sharma | 2019 年 1 月 23 日