AWS Inferentia を使用した推論
始める前に
このセクションの環境を準備してください:
~$prepare-environment aiml/inferentia
これにより、お使いのラボ環境に次の変更が加えられます:
- Amazon EKSクラスターにKarpenterをインストールします
- 結果を保存するためのS3バケットを作成します
- ポッドが使用するIAMロールを作成します
- AWS Neuronデバイスプラグインをインストールします
これらの変更を適用するTerraformはこちらで確認できます。
AWS TrainiumとInferentiaは、クラウドコンピューティング環境でのAIモデルのトレーニングと推論タスクをそれぞれ高速化および最適化するために、Amazonによって設計されたカスタムビルドの機械学習アクセラレーターです。
AWS Neuronは、開発者がTrainiumとInferentiaチップの両方で機械学習モデ ルを最適化して実行できるようにするソフトウェア開発キット(SDK)およびランタイムです。Neuronは、これらのカスタムAIアクセラレーターのための統一されたソフトウェアインターフェイスを提供し、開発者が特定のチップアーキテクチャごとにコードを書き直すことなく、そのパフォーマンス上の利点を活用できるようにします。
Neuronデバイスプラグインは、NeuronコアとデバイスをKubernetesのリソースとして公開します。ワークロードがNeuronコアを必要とする場合、Kubernetesスケジューラはワークロードに適切なノードを割り当てることができます。Karpenterを使用して自動的にノードをプロビジョニングすることもできます。
このラボでは、InferentiaをEKS上で深層学習推論ワークロードを高速化するために使用する方法のチュートリアルを提供します。 このラボでは次のことを行います:
- InferentiaとTrainium EC2インスタンスをプロビジョニングするためのKarpenterノードプールを作成します
- TrainiumインスタンスでAWS Inferentia用にResNet-50事前トレーニング済みモデルをコンパイルします
- このモデルを後で使用するためにS3バケットにアップロードします
- 以前のモデルを使用して推論を実行する推論ポッドを起動します
始めましょう。