AWS Neuron は、コンパイラ、ランタイム、プロファイリングツールを備えた SDK で、高性能で費用対効果の高い深層学習 (DL) アクセラレーションを可能にするものです。AWS Trainium ベースの Amazon Elastic Compute Cloud (Amazon EC2) Trn1 インスタンスでの高パフォーマンストレーニングをサポートします。モデルのデプロイでは、AWS Inferentia ベースの Amazon EC2 Inf1 インスタンスとAWS Inferentia2 ベースの Amazon EC2 Inf2 インスタンスでのハイパフォーマンスかつ低レイテンシーの推論をサポートしています。Neuronを使用すると、TensorFlow や PyTorch などの一般的なフレームワークを使用して、Amazon EC2 の Trn1、Inf1、Inf2 インスタンス上で機械学習 (ML) モデルを最適にトレーニングおよびデプロイすることができ、Neuron はコードの変更およびベンダー固有のソリューションとの連携を最小限に抑えるように設計されています。
メリット
機械学習フレームワークとライブラリのネイティブサポートによる構築
Inferentia と Trainium アクセラレーターをサポートする AWS Neuron SDK は、PyTorch および TensorFlow とネイティブに統合されています。このインテグレーションにより、これらの一般的なフレームワークで既存のワークフローを継続して使用することができ、わずか数行のコード変更で使い始めることができます。分散モデルトレーニングのために、Neuron SDK は Megatron-LM や PyTorch Fully Sharded Data Parallel (FSDP) などのライブラリをサポートしています。
トレーニングと推論のパフォーマンスを最適化
AWS Neuron SDK は、効率的なプログラミングと、Trainium と Inferentia のアクセラレーターへのランタイムアクセスを可能にします。幅広いデータ型、新しい丸め処理モード、制御フロー、カスタム演算子をサポートし、DL のワークロードに最適な設定を選択できるようにします。分散トレーニングでは、Neuron は、Elastic Fabric Adapter (EFA) ネットワーキング上の集合的コンピューティングオペレーションの、緊密に結合したサポートにより、Trn1 UltraClusters を効率的に使用することができます。
デバッグとモニタリングの強化
Neuron は、デベロッパーのワークフローを高速化するジャストインタイム (JIT) コンパイルを提供します。また、TensorBoard プラグインのサポートにより、デバッグおよびプロファイリングツールを提供します。Neuron は、イーガーデバッグモードをサポートしており、これを使用して、コードを簡単にステップ実行し、演算子を 1 つずつ評価することができます。Neuron ヘルパーツールを使用すると、モデルのオンボーディングとパフォーマンスの最適化に関するベストプラクティスに従うことができます。Neuron には、パフォーマンスと利用状況に関するインサイトを提供するツールも含まれています。
他の AWS のサービスと簡単に統合
AWS Deep Learning AMIs と AWS Deep Learning Containers には、AWS Neuron が事前に設定されています。コンテナ化されたアプリケーションを使用している場合、Amazon Elastic Container Service (ECS)、Amazon Elastic Kubernetes Service (EKS)、またはお好みのネイティブコンテナエンジンを使用して、Neuron をデプロイすることができます。Neuron は、データ科学者やデベロッパーが機械学習モデルの構築、トレーニング、およびデプロイに使用できる Amazon SageMaker もサポートしています。
特徴
スマートパーティショニング
AWS Neuron は、全体のパフォーマンスを上げるために、ニューラルネットコンピューティングを自動的に最適化し、大量演算のタスクは Trainium と Inferentia アクセラレーターで、その他のタスクは CPU で実行するようにします。
幅広い機械学習データ型
AWS Neuron は FP32、TF32、BF16、FP16、INT8 そして新たに設定可能になった FP8 をサポートしています。ワークロードに適したデータ型を使用することで、精度の目標を達成しながらパフォーマンスを最適化することができます。
FP32 自動キャスティング
AWS Neuron では、精度とパフォーマンスを最適化しながら、高精度の FP32 モデルを取得して、低精度のデータ型に自動キャストします。オートキャストは、低精度の再トレーニングの必要性を排除することで、市場投入までの時間を短縮します。
確率的な丸め処理のネイティブサポート
AWS Neuron は、ハードウェア加速型の確率的な丸め処理をサポートしています。確率的な丸め処理は、FP32 から BF16 への自動キャスティング時に、FP32 に近い精度で BF16 の速度でトレーニングすることが可能です。
NeuronCore Pipeline
NeuronCore Pipeline は、自然言語処理などのレイテンシーに敏感なアプリケーションのために、高スループットのモデル並列処理を可能にします。パイプラインはこれを、コンピューティンググラフを複数の NeuronCore にシャードし、モデルパラメータを各コアのオンチップメモリにキャッシュします。そして、学習と推論のワークロードをパイプライン方式で各コアにストリーミングします。
集合的通信オペレーション
AWS Neuron では、専用のハードウェア上で様々な集団通信や計算処理の並列実行をサポートしています。これにより、分散処理されたワークロードのレイテンシーを低減し、全体的なパフォーマンスを向上させることができます。
カスタム演算子
AWS Neuron は、カスタム演算子をサポートしています。C++ で新しいカスタム演算子を書くことができ、Neuron はそれらを Trainium と Inferentia2 のインライン SIMD (Single Instruction, Multiple Data) コアで実行することができます。
イーガーデバッグモード
AWS Neuron は、イーガーデバッグモードをサポートしています。このモードを使用すると、コードを簡単にステップ実行し、演算子を 1 つずつ評価することができます。
仕組み
画像の説明を拡大して読むAWS 機械学習アクセラレーター
AWS Trainium アクセラレーター
AWS Trainium は、AWS がハイパフォーマンスかつ低コストな DL トレーニングのために専用に構築した ML トレーニングアクセラレーターです。各 AWS Trainium アクセラレーターは、2 つの第 2 世代 NeuronCore を搭載し、FP32、TF32、BF16、FP16、INT8 データ型、さらに、範囲と精度の適切なバランスを実現する設定可能な FP8 (cFP8) をサポートしています。効率的なデータとモデルの並列処理をサポートするために、各 Trainium アクセラレーターには 32 GB の高帯域幅メモリが搭載されており、最大 210 TFLOPS の FP16/BF16 のコンピューティング能力を備えています。インスタンス内の超高速ノンブロッキング相互接続技術である NeuronLink も装備されています。
AWS Inferentia アクセラレーター
AWS Inferentia と AWS Inferentia2 は、AWS が高性能かつ低コストで推論を実現するために設計、構築した機械学習推論アクセラレーターです。それぞれの AWS Inferentia アクセラレーターには 4 つの 第 1 世代 NeuronCore があり、FP16、BF16、および INT8 データ型をサポートします。各 AWS Inferentia2 アクセラレータには、2 つの第 2 世代 NeuronCore が搭載されており、さらに FP32、TF32、新しい configurable FP8 (cFP8) データタイプのサポートが追加されています。
Amazon EC2 機械学習インスタンス
Amazon EC2 Trn1 インスタンス
AWS Trainium アクセラレーターを搭載した Amazon EC2 Trn1 インスタンスは、ハイパフォーマンスな DL のトレーニング専用に構築されています。同等の Amazon EC2 のインスタンスと比較して、トレーニングにかかるコストを最大 50% 削減します。Trn1 インスタンスは最大 16 の AWS Trainium アクセラレータを搭載し、最大 1600 Gbps (Trn1n) の第 2 世代 Elastic Fabric Adapter (EFA) ネットワーク帯域幅をサポートします。
Amazon EC2 Inf2 インスタンス
Amazon EC2 Inf2 インスタンスには、最大 12 個の AWS Inferentia2 アクセラレーターが搭載されており、Inf1 インスタンスと比較して最大 4 倍のスループットと最大 10 倍のレイテンシーを実現します。Inf2 インスタンスはアクセラレーター間の超高速接続を備えた、スケールアウト分散推論をサポートする、Amazon EC2 で最初の推論最適化インスタンスです。
Amazon EC2 Inf1 インスタンス
Amazon EC2 Inf1 インスタンスには、最大 16 の AWS Inferentia アクセラレーターが搭載されています。これらのインスタンスでは、同等の Amazon EC2 インスタンスと比較して、スループットが最大 2.3 倍高く、推論あたりのコストが最大 70% 低くなっています。
開始方法
さらなる支援は、AWS マネジメントコンソールからも利用可能なデベロッパーフォーラムをご覧ください。