深層学習モデルを大規模に展開する場合、基盤となるハードウェアを効果的に利用してパフォーマンスとコストのメリットを最大化することが重要です。 高スループットと低遅延を必要とする実稼働ワークロードの場合、 アマゾン エラスティック コンピューティング クラウド (EC2) インスタンス、モデル サービング スタック、およびデプロイメント アーキテクチャは非常に重要です。 非効率的なアーキテクチャでは、アクセラレータの利用が最適化されず、生産コストが不必要に高くなる可能性があります。
この投稿では、AWS Inferentia デバイス (Amazon EC2 にあります) に FastAPI モデルサーバーをデプロイするプロセスについて説明します。 Inf1 そしてアマゾンEC Inf2 インスタンス)。 また、ハードウェア使用率を最大化するために、すべての NeuronCore に並行してデプロイされるサンプル モデルをホストする方法も示します。
ソリューションの概要
FastAPI は、Flask や Django などの従来のフレームワークよりもはるかに高速な、Python アプリケーションを提供するためのオープンソース Web フレームワークです。 それは、 非同期サーバーゲートウェイインターフェイス 広く使用されている (ASGI) の代わりに Webサーバーゲートウェイインターフェース (WSGI)。 リクエストを順次処理する WSGI とは対照的に、ASGI は受信リクエストを非同期的に処理します。 このため、FastAPI はレイテンシの影響を受けやすいリクエストを処理するための理想的な選択肢となります。 FastAPI を使用して、指定されたポートを介してクライアント要求をリッスンする Inferentia (Inf1/Inf2) インスタンス上のエンドポイントをホストするサーバーをデプロイできます。
私たちの目標は、ハードウェアを最大限に活用することで、最低のコストで最高のパフォーマンスを達成することです。 これにより、より少ないアクセラレータでより多くの推論リクエストを処理できるようになります。 各 AWS Inferentia1 デバイスには 1 つの NeuronCores-v2 が含まれており、各 AWS Inferentia2 デバイスには XNUMX つの NeuronCores-vXNUMX が含まれています。 の AWS ニューロン SDK を使用すると、各 NeuronCore を並行して利用できるため、スループットを犠牲にすることなく、XNUMX つ以上のモデルを並行してロードおよび推論する際の制御を強化できます。
FastAPI を使用すると、Python Web サーバーを選択できます (ユニコーン, ウビコーン, ハイパーコーン, ダフネ)。 これらの Web サーバーは、基礎となる機械学習 (ML) モデルの上に抽象化レイヤーを提供します。 要求元のクライアントには、ホストされたモデルを意識しないという利点があります。 クライアントは、サーバーにデプロイされているモデルの名前やバージョンを知る必要はありません。 エンドポイント名は、モデルをロードして実行する関数への単なるプロキシになりました。 対照的に、TensorFlow Serving などのフレームワーク固有のサービス提供ツールでは、モデルの名前とバージョンがエンドポイント名の一部になります。 サーバー側でモデルが変更された場合、クライアントはそれを認識し、それに応じて新しいエンドポイントへの API 呼び出しを変更する必要があります。 したがって、A/B テストの場合など、バージョン モデルを継続的に進化させる場合は、エンドポイント名が静的であるため、FastAPI を備えた汎用 Python Web サーバーを使用することがモデルを提供する便利な方法です。
ASGI サーバーの役割は、クライアントのリクエストをリッスンして推論コードを実行する、指定された数のワーカーを生成することです。 サーバーの重要な機能は、要求された数のワーカーが利用可能でアクティブであることを確認することです。 ワーカーが強制終了された場合、サーバーは新しいワーカーを起動する必要があります。 このコンテキストでは、サーバーとワーカーは Unix プロセス ID (PID) によって識別される場合があります。 この投稿では、 ハイパーコーン これは、Python Web サーバーの一般的な選択肢です。
この投稿では、AWS Inferentia NeuronCores 上の FastAPI を使用してディープラーニング モデルをデプロイするためのベストプラクティスを共有します。 同時に呼び出すことができる個別の NeuronCore に複数のモデルをデプロイできることを示します。 この設定では、複数のモデルを同時に推論でき、NeuronCore の使用率が完全に最適化されるため、スループットが向上します。 コードは次の場所にあります。 GitHubレポ。 次の図は、EC2 Inf2 インスタンスでソリューションをセットアップする方法のアーキテクチャを示しています。
コアが 2 つあることを除き、同じアーキテクチャが EC1 InfXNUMX インスタンス タイプに適用されます。 したがって、アーキテクチャ図が少し変わります。
AWS Inferentia NeuronCore
NeuronCore を利用するために AWS Neuron が提供するツールについてもう少し詳しく見てみましょう。 次の表は、Inf1 および Inf2 の各インスタンス タイプの NeuronCore の数を示しています。 ホスト vCPU とシステム メモリは、使用可能なすべての NeuronCore 間で共有されます。
インスタンスサイズ | # インフェレンティアアクセラレーター | # NeuronCores-v1 | vCPU | メモリ(GiB) |
Inf1.xlarge | 1 | 4 | 4 | 8 |
Inf1.2xlarge | 1 | 4 | 8 | 16 |
Inf1.6xlarge | 4 | 16 | 24 | 48 |
Inf1.24xlarge | 16 | 64 | 96 | 192 |
インスタンスサイズ | # インフェレンティアアクセラレーター | # NeuronCores-v2 | vCPU | メモリ(GiB) |
Inf2.xlarge | 1 | 2 | 4 | 32 |
Inf2.8xlarge | 1 | 2 | 32 | 32 |
Inf2.24xlarge | 6 | 12 | 96 | 192 |
Inf2.48xlarge | 12 | 24 | 192 | 384 |
Inf2 インスタンスの NeuronCore-v2 と比較して、Inf1 インスタンスには新しい NeuronCores-v1 が含まれています。 コアの数が少ないにもかかわらず、Inf4 インスタンスと比べて 10 倍高いスループットと 1 倍低いレイテンシを提供できます。 Inf2 インスタンスは、生成 AI、OPT/GPT ファミリの大規模言語モデル (LLM)、安定拡散などのビジョン トランスフォーマーなどの深層学習ワークロードに最適です。
Neuron ランタイムは、Neuron デバイス上でモデルを実行する役割を果たします。 Neuron Runtime は、どの NeuronCore がどのモデルを実行するか、およびその実行方法を決定します。 Neuron ランタイムの構成は、以下を使用して制御されます。 環境変数 プロセスレベルで。 デフォルトでは、Neuron フレームワーク拡張機能がユーザーに代わって Neuron ランタイム構成を処理します。 ただし、より最適化された動作を実現するために明示的な構成を行うことも可能です。
よく使用される XNUMX つの環境変数は次のとおりです。 NEURON_RT_NUM_CORES
および NEURON_RT_VISIBLE_CORES
。 これらの環境変数を使用すると、Python プロセスを NeuronCore に結び付けることができます。 と NEURON_RT_NUM_CORES
、指定した数のコアをプロセス用に予約できます。 NEURON_RT_VISIBLE_CORES
、一連の NeuronCore を予約できます。 例えば、 NEURON_RT_NUM_CORES=2 myapp.py
XNUMX つのコアを予約し、 NEURON_RT_VISIBLE_CORES=’0-2’ myapp.py
XNUMX、XNUMX、および XNUMX つのコアを予約します myapp.py
。 デバイス (AWS Inferentia チップ) 間で NeuronCore を予約することもできます。 それで、 NEURON_RT_VISIBLE_CORES=’0-5’ myapp.py
最初の XNUMX つのコアを予約します device1
そして XNUMX つのコア device2
Ec2 Inf1 インスタンス タイプ。 同様に、EC2 Inf2 インスタンス タイプでは、この構成は全体で XNUMX つのコアを予約します。 device1
および device2
そして XNUMX つのコア device3
。 次の表は、これらの変数の構成をまとめたものです。
名前 | 説明 | タイプ | 期待値 | デフォルト値 | RTバージョン |
NEURON_RT_VISIBLE_CORES |
プロセスに必要な特定の NeuronCore の範囲 | 整数の範囲 (1 ~ 3 など) | システム内の 0 から最大 NeuronCore までの任意の値または範囲 | なし | 2.0+ |
NEURON_RT_NUM_CORES |
プロセスに必要な NeuronCore の数 | 整数 | 1 からシステム内の最大 NeuronCore までの値 | 0、「すべて」として解釈されます | 2.0+ |
すべての環境変数のリストについては、を参照してください。 Neuron ランタイム構成.
デフォルトでは、モデルをロードするとき、前述の環境変数で明示的に指定されていない限り、モデルは NeuronCore 0 にロードされ、次に NeuronCore 1 にロードされます。 前に指定したように、NeuronCore は利用可能なホスト vCPU とシステム メモリを共有します。 したがって、各 NeuronCore にデプロイされたモデルは、利用可能なリソースをめぐって競合します。 モデルが NeuronCore を大幅に利用している場合、これは問題になりません。 ただし、モデルの一部のみが NeuronCore で実行され、残りはホスト vCPU で実行されている場合は、NeuronCore ごとの CPU 可用性を考慮することが重要になります。 これはインスタンスの選択にも影響します。
次の表は、XNUMX つのモデルが各 NeuronCore にデプロイされた場合に、モデルごとに利用可能なホスト vCPU とシステム メモリの数を示しています。 アプリケーションの NeuronCore 使用量、vCPU、メモリ使用量に応じて、テストを実行して、アプリケーションにとってどの構成が最もパフォーマンスが高いかを確認することをお勧めします。 の ニューロントップツール コア使用率、デバイスおよびホストのメモリ使用率を視覚化するのに役立ちます。 これらの指標に基づいて、情報に基づいた意思決定を行うことができます。 このブログの最後では、Neuron Top の使用方法を示します。
インスタンスサイズ | # インフェレンティアアクセラレーター | # モデル | vCPU/モデル | メモリ/モデル (GiB) |
Inf1.xlarge | 1 | 4 | 1 | 2 |
Inf1.2xlarge | 1 | 4 | 2 | 4 |
Inf1.6xlarge | 4 | 16 | 1.5 | 3 |
Inf1.24xlarge | 16 | 64 | 1.5 | 3 |
インスタンスサイズ | # インフェレンティアアクセラレーター | # モデル | vCPU/モデル | メモリ/モデル (GiB) |
Inf2.xlarge | 1 | 2 | 2 | 8 |
Inf2.8xlarge | 1 | 2 | 16 | 64 |
Inf2.24xlarge | 6 | 12 | 8 | 32 |
Inf2.48xlarge | 12 | 24 | 8 | 32 |
Neuron SDK の機能を自分でテストするには、最新の SDK をチェックしてください。 PyTorch のニューロン機能.
システムセットアップ
このソリューションに使用されるシステム設定は次のとおりです。
ソリューションをセットアップする
ソリューションをセットアップするには、いくつかのことを行う必要があります。 まず、EC2 インスタンスがプッシュおよびプルできるようにする IAM ロールを作成します。 Amazon エラスティック コンテナ レジストリ.
ステップ 1: IAM ロールをセットアップする
- まず、コンソールにログインし、「IAM」>「ロール」>「ロールの作成」にアクセスします。
- 信頼できるエンティティ タイプを選択します
AWS Service
- ユースケースでサービスとして EC2 を選択します
- クリック Next 利用可能なすべてのポリシーを確認できるようになります
- このソリューションの目的のために、EC2 インスタンスに ECR へのフルアクセスを付与します。 フィルター AmazonEC2ContainerRegistryFullAccess それを選択します。
- 次へを押してロールに名前を付けます
inf-ecr-access
注: アタッチしたポリシーにより、EC2 インスタンスに Amazon ECR へのフルアクセスが付与されます。 以下に従うことを強くお勧めします。 最小特権のプリンシパル 実稼働ワークロード向け。
ステップ 2: AWS CLI をセットアップする
上記の所定の Deep Learning AMI を使用している場合は、AWS CLI がインストールされています。 別の AMI (Amazon Linux 2023、Base Ubuntu など) を使用している場合は、次の手順で CLI ツールをインストールします。 このガイド.
CLI ツールをインストールしたら、次のコマンドを使用して CLI を設定します。 aws configure
。 アクセスキーをお持ちの場合は、ここで追加できますが、AWS サービスと対話するために必ずしもアクセスキーが必要であるわけではありません。 これを行うには IAM ロールに依存しています。
Note: デフォルトのプロファイルを作成するには、少なくとも XNUMX つの値 (デフォルトの地域またはデフォルトの形式) を入力する必要があります。 この例では、次のようにします us-east-2
地域として、そして json
デフォルトの出力として。
Github リポジトリのクローンを作成する
GitHubレポ は、AWS Inferentia インスタンスの NeuronCore で FastAPI を使用してモデルをデプロイするために必要なすべてのスクリプトを提供します。 この例では、Docker コンテナを使用して、再利用可能なソリューションを作成できるようにします。 この例には次のものが含まれます config.properties ユーザーが入力を行うためのファイル。
構成ファイルには、Docker イメージと Docker コンテナー用のユーザー定義の名前プレフィックスが必要です。 の build.sh
のスクリプト fastapi
および trace-model
フォルダーはこれを使用して Docker イメージを作成します。
AWS Inferentia でモデルをコンパイルする
まずモデルをトレースし、PyTorch トーチスクリプト .pt ファイルを作成します。 まずはアクセスしてみましょう trace-model
ディレクトリを編集し、.env ファイルを変更します。 選択したインスタンスのタイプに応じて、 CHIP_TYPE
中で .env
ファイル。 例として、Inf2 をガイドとして選択します。 同じ手順が Inf1 の展開プロセスに適用されます。
次に、同じファイルにデフォルトのリージョンを設定します。 このリージョンは ECR リポジトリの作成に使用され、Docker イメージがこのリポジトリにプッシュされます。 また、このフォルダーには、トレースに必要なすべてのスクリプトが提供されます。 bert-base-uncased
AWS Inferentia のモデル。 このスクリプトは、で入手可能なほとんどのモデルに使用できます。 ハグ顔を選択します。 ドッカーファイル Neuron でモデルを実行するためのすべての依存関係があり、 トレースモデル.py コードをエントリポイントとして使用します。
ニューロンコンパイルの説明
Neuron SDK の API は、PyTorch Python API によく似ています。 の torch.jit.trace()
from PyTorch はモデルとサンプル入力テンソルを引数として受け取ります。 サンプル入力がモデルに供給され、その入力がモデルのレイヤーを通過するときに呼び出される操作が次のように記録されます。 トーチスクリプト。 PyTorch の JIT トレースの詳細については、次を参照してください。 ドキュメント.
と同じように torch.jit.trace()
、inf1 インスタンスの次のコードを使用して、モデルが AWS Inferentia でコンパイルできるかどうかを確認できます。
inf2 の場合、ライブラリは次のように呼ばれます。 torch_neuronx
。 inf2 インスタンスに対してモデルのコンパイルをテストする方法は次のとおりです。
トレース インスタンスを作成した後、次のようにサンプル テンソル入力を渡すことができます。
最後に、結果として得られた TorchScript 出力をローカル ディスクに保存します。
前のコードに示すように、次を使用できます。 compiler_args
および optimizations
導入を最適化します。 の引数の詳細なリストについては、 torch.neuron.trace
API、参照 PyTorch-Neuron トレース Python API.
次の重要な点に留意してください。
- この記事の執筆時点では、Neuron SDK は動的テンソル シェイプをサポートしていません。 したがって、モデルはさまざまな入力形状に対して個別にコンパイルする必要があります。 バケットを使用した変数入力形状での推論の実行の詳細については、を参照してください。 バケットを使用した変数入力形状に対する推論の実行.
- モデルのコンパイル時にメモリ不足の問題が発生した場合は、より多くの vCPU またはメモリを備えた AWS Inferentia インスタンスでモデルをコンパイルしてみてください。コンパイルには CPU のみが使用されるため、大規模な c6i または r6i インスタンスでもコンパイルしてみてください。 コンパイルが完了すると、トレースされたモデルはおそらく、より小さい AWS Inferentia インスタンス サイズで実行できるようになります。
ビルド手順の説明
次に、次のコマンドを実行してこのコンテナを構築します。 build.sh。 ビルド スクリプト ファイルは、ベースのディープ ラーニング コンテナ イメージを取得し、HuggingFace をインストールすることで、Docker イメージを作成するだけです。 transformers
パッケージ。 に基づく CHIP_TYPE
で指定 .env
ファイル、 docker.properties
ファイルが適切なものを決定します BASE_IMAGE
。 この BASE_IMAGE
AWS が提供する Neuron ランタイムの Deep Learning Container Image を指します。
プライベート ECR リポジトリを通じて利用できます。 イメージをプルする前に、ログインして一時的な AWS 認証情報を取得する必要があります。
Note: リージョン フラグで指定されたコマンド内およびリポジトリ URI 内にリストされているリージョンを、 .env ファイルにソフトウェアを指定する必要があります。
このプロセスを簡単にするために、 fetch-credentials.sh
ファイル。 リージョンは .env ファイルから自動的に取得されます。
次に、スクリプトを使用して画像をプッシュします。 プッシュ.sh。 プッシュスクリプトは、Amazon ECR にリポジトリを作成し、コンテナイメージをプッシュします。
最後に、イメージが構築されてプッシュされたら、次のコマンドを実行してコンテナとして実行できます。 run.sh 実行ログを末尾に記録します ログ.sh。 コンパイラ ログ (次のスクリーンショットを参照) には、Neuron でコンパイルされた算術演算子の割合と、Neuron で正常にコンパイルされたモデルのサブグラフの割合が表示されます。 スクリーンショットは、 bert-base-uncased-squad2
モデル。 ログには、算術演算子の 95.64% がコンパイルされたことが示されており、Neuron でコンパイルされた演算子とサポートされていない演算子のリストも表示されます。
ここにリストです 最新の PyTorch Neuron パッケージでサポートされているすべての演算子のリストです。 同様に、 ここにリストがあります 最新の PyTorch Neuronx パッケージでサポートされているすべての演算子のリスト。
FastAPI を使用してモデルをデプロイする
モデルがコンパイルされると、トレースされたモデルは trace-model
フォルダ。 この例では、バッチ サイズ 1 のトレースされたモデルを配置しました。ここでは、より大きなバッチ サイズが実現不可能または必要でないユースケースを考慮して、バッチ サイズ 1 を考慮します。 より大きなバッチサイズが必要なユースケースでは、 torch.neuron.DataParallel (Inf1 の場合) または torch.neuronx.DataParallel (Inf2 の場合) API も役立つ場合があります。
高速API フォルダーには、FastAPI を使用してモデルをデプロイするために必要なすべてのスクリプトが含まれています。 変更を加えずにモデルをデプロイするには、単に次のコマンドを実行します。 デプロイ.sh スクリプトを実行すると、FastAPI コンテナー イメージが構築され、指定された数のコアでコンテナーが実行され、各 FastAPI モデル サーバーにサーバーごとに指定された数のモデルがデプロイされます。 このフォルダーには、 .env
ファイルを修正して、正しい内容を反映するようにします CHIP_TYPE
および AWS_DEFAULT_REGION
.
Note: FastAPI スクリプトは、イメージをコンテナとして構築、プッシュ、実行するために使用されるのと同じ環境変数に依存します。 FastAPI デプロイメント スクリプトは、これらの変数の最後の既知の値を使用します。 したがって、Inf1 インスタンス タイプのモデルを最後にトレースした場合、そのモデルはこれらのスクリプトを通じてデプロイされます。
fastapi-server.py サーバーをホストし、リクエストをモデルに送信する役割を担うファイルは、次のことを行います。
- サーバーごとのモデルの数とコンパイルされたモデルの場所をプロパティ ファイルから読み取ります。
- 表示されている NeuronCore を環境変数として Docker コンテナに設定し、環境変数を読み取ってどの NeuronCore を使用するかを指定します
- の推論 API を提供します。
bert-base-uncased-squad2
-
jit.load()
、構成で指定されているようにサーバーあたりのモデルの数をロードし、モデルと必要なトークナイザーをグローバル辞書に保存します。
このセットアップを使用すると、各 NeuronCore にどのモデルがいくつ保存されているかをリストする API をセットアップするのが比較的簡単になります。 同様に、特定の NeuronCore からモデルを削除する API を作成することもできます。
ドッカーファイル FastAPI コンテナを構築するための は、モデルをトレースするために構築した Docker イメージに基づいて構築されます。 このため、 docker.properties ファイルは、モデルをトレースするための Docker イメージへの ECR パスを指定します。 私たちのセットアップでは、すべての NeuronCore の Docker コンテナーは類似しているため、XNUMX つのイメージを構築し、XNUMX つのイメージから複数のコンテナーを実行できます。 エントリーポイントのエラーを避けるために、次のように指定します。 ENTRYPOINT ["/usr/bin/env"]
を実行する前に Dockerfile 内で startup.sh
次のようなスクリプト hypercorn fastapi-server:app -b 0.0.0.0:8080
。 この起動スクリプトはすべてのコンテナで同じです。 トレース モデルと同じベース イメージを使用している場合は、build.sh スクリプトを実行するだけでこのコンテナを構築できます。 の push.sh
モデルをトレースする場合のスクリプトは以前と同じままです。 変更された Docker イメージとコンテナー名は、 docker.properties
ファイルにソフトウェアを指定する必要があります。
run.sh file
次のことを行います:
- Docker イメージとコンテナー名を プロパティ ファイルが読み取られます。
config.properties
ファイルには、num_cores
ユーザー設定 - 0からループを開始します
num_cores
そして各コアについて:- ポート番号とデバイス番号を設定します
- 設定します
NEURON_RT_VISIBLE_CORES
環境変数 - ボリュームマウントを指定します
- Dockerコンテナを実行します
わかりやすくするために、Inf0 の NeuronCore 1 にデプロイするための Docker run コマンドは次のコードのようになります。
NeuronCore 5 にデプロイするための実行コマンドは次のコードのようになります。
コンテナーがデプロイされた後、 run_apis.py スクリプトは、並列スレッドで API を呼び出します。 このコードは、各 NeuronCore に XNUMX つずつ、デプロイされた XNUMX つのモデルを呼び出すように設定されていますが、別の設定に簡単に変更できます。 次のようにクライアント側から API を呼び出します。
モニターニューロンコア
モデル サーバーがデプロイされた後、NeuronCore の使用率を監視するために、次のコマンドを使用できます。 neuron-top
各 NeuronCore の使用率をリアルタイムで観察します。 ニューロントップ Neuron SDK の CLI ツールで、NeuronCore、vCPU、メモリ使用率などの情報を提供します。 別のターミナルで、次のコマンドを入力します。
出力は次の図のようになります。 このシナリオでは、Inf2.xlarge インスタンス上のサーバーごとに 287.8 つの NeuronCore と 4 つのモデルを使用するように指定しました。 次のスクリーンショットは、それぞれサイズ 1.3MB の XNUMX つのモデルが XNUMX つの NeuronCore にロードされていることを示しています。 合計 XNUMX つのモデルがロードされているため、使用されているデバイス メモリが XNUMX GB であることがわかります。 矢印キーを使用して、さまざまなデバイス上の NeuronCore 間を移動します。
同様に、Inf1.16xlarge インスタンス タイプでは、合計 12 のモデル (2 コアのコアあたり 6 モデル) がロードされていることがわかります。 合計 2.1GB のメモリが消費され、各モデルのサイズは 177.2MB になります。
を実行した後、 run_apis.py スクリプトを実行すると、XNUMX つの各 NeuronCore の使用率を確認できます (次のスクリーンショットを参照)。 システム vCPU 使用率とランタイム vCPU 使用率も確認できます。
次のスクリーンショットは、Inf2 インスタンスのコア使用率を示しています。
同様に、このスクリーンショットは、inf1.6xlarge インスタンス タイプでのコア使用率を示しています。
クリーンアップ
作成したすべての Docker コンテナをクリーンアップするために、 クリーンアップ.sh 実行中のコンテナと停止したコンテナをすべて削除するスクリプト。 このスクリプトはすべてのコンテナを削除するため、一部のコンテナを実行し続けたい場合は使用しないでください。
まとめ
実稼働ワークロードには、多くの場合、高スループット、低遅延、およびコスト要件があります。 アクセラレータを最適に利用していない非効率的なアーキテクチャは、不必要に高い生産コストにつながる可能性があります。 この投稿では、FastAPI で NeuronCore を最適に利用して、最小のレイテンシーでスループットを最大化する方法を示しました。 手順書を公開しました GitHubレポ。 このソリューション アーキテクチャを使用すると、パフォーマンスを損なうことなく、各 NeuronCore に複数のモデルをデプロイし、異なる NeuronCore 上で複数のモデルを並行して動作させることができます。 次のようなサービスを使用してモデルを大規模にデプロイする方法の詳細については、 Amazon Elastic Kubernetesサービス (Amazon EKS)、を参照してください。 AWS Inferentia を使用して Amazon EKS 上の 3,000 のディープラーニング モデルを 50 時間あたり XNUMX ドル未満で提供します.
著者について
アンクル・スリバスタヴァ ML フレームワーク チームのシニア ソリューション アーキテクトです。 彼は、AWS での大規模な自己管理型の分散トレーニングと推論で顧客を支援することに重点を置いています。 彼の経験には、産業用予知保全、デジタル ツイン、確率論的設計の最適化が含まれ、ライス大学で機械工学の博士号を取得し、マサチューセッツ工科大学でポスドク研究を完了しています。
KC トゥン AWS Annapurna Labs のシニア ソリューション アーキテクトです。 彼は、クラウドでの大規模なディープ ラーニング モデルのトレーニングと展開を専門としています。 彼は博士号を持っています。 ダラスのテキサス大学サウスウェスタン医療センターで分子生物物理学の博士号を取得しています。 彼は AWS Summits と AWS Reinvent で講演しました。 現在、彼はお客様が AWS クラウドで大規模な PyTorch および TensorFlow モデルをトレーニングおよびデプロイするのを支援しています。 彼は次の XNUMX 冊の本の著者です。 TensorFlow Enterprise を学ぶ および TensorFlow 2 ポケット リファレンス.
プロノイ・チョプラ AWS の Startups Generative AI チームのシニア ソリューション アーキテクトです。 彼は IoT および機械学習ソリューションの設計と開発を専門としています。 彼は過去に XNUMX つのスタートアップを共同設立しており、IoT、AI/ML、サーバーレス ドメインのプロジェクトに実際に取り組むことを楽しんでいます。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- PlatoData.Network 垂直生成 Ai。 自分自身に力を与えましょう。 こちらからアクセスしてください。
- プラトアイストリーム。 Web3 インテリジェンス。 知識増幅。 こちらからアクセスしてください。
- プラトンESG。 自動車/EV、 カーボン、 クリーンテック、 エネルギー、 環境、 太陽、 廃棄物管理。 こちらからアクセスしてください。
- ブロックオフセット。 環境オフセット所有権の近代化。 こちらからアクセスしてください。
- 情報源: https://aws.amazon.com/blogs/machine-learning/optimize-aws-inferentia-utilization-with-fastapi-and-pytorch-models-on-amazon-ec2-inf1-inf2-instances/
- :持っている
- :は
- :not
- :どこ
- $UP
- 000
- 1
- 1.3
- 10
- 100
- 12
- 13
- 視聴者の38%が
- 2023
- 7
- 8
- 91
- a
- できる
- 私たちについて
- 上記の.
- 抽象化
- 加速器
- アクセス
- アクセス
- それに応じて
- 達成する
- 越えて
- アクティブ
- 加えます
- に対して
- AI
- AI / ML
- すべて
- 許す
- ことができます
- また
- Amazon
- Amazon EC2
- Amazon Webサービス
- an
- および
- どれか
- API
- API
- アプリ
- 申し込み
- 申し込む
- 適切な
- 建築
- です
- 引数
- AS
- 引き受けます
- At
- 著者
- 自動的に
- 賃貸条件の詳細・契約費用のお見積り等について
- 利用できます
- 避ける
- AWS
- AWSインフェレンティア
- ベース
- ベース
- BE
- なぜなら
- になる
- き
- 代わって
- 行動
- さ
- 恩恵
- 利点
- BEST
- ベストプラクティス
- の間に
- 生物物理学
- ビット
- ブログ
- 本
- ビルド
- 建物
- 内蔵
- 焙煎が極度に未発達や過発達のコーヒーにて、クロロゲン酸の味わいへの影響は強くなり、金属を思わせる味わいと乾いたマウスフィールを感じさせます。
- by
- コール
- 呼ばれます
- コール
- 缶
- 機能
- 機能
- これ
- 場合
- 例
- センター
- 変化する
- 変更
- 変更
- チェック
- チップ
- 選択
- 選択する
- 選んだ
- 明瞭
- クライアント
- 密接に
- クラウド
- コード
- comes
- 比較
- 競争する
- 記入済みの
- 計算
- 検討
- 考えると
- 領事
- 消費
- 含む
- コンテナ
- コンテナ
- 含まれています
- コンテキスト
- 連続的に
- コントラスト
- コントロール
- 制御
- 便利
- 基本
- 正しい
- 費用
- コスト
- 可能性
- カップル
- 作ります
- 作成した
- 作成します。
- 作成
- Credentials
- 重大な
- Customers
- ダラス
- 決定
- 深いです
- 深い学習
- より深い
- デフォルト
- 実証します
- によっては
- 展開します
- 展開
- 展開する
- 展開
- 設計
- 指定された
- にもかかわらず
- 詳細な
- 決定する
- 開発
- デバイス
- Devices
- 異なります
- DIG
- デジタル
- デジタルツイン
- 配布
- 分散トレーニング
- ジャンゴ
- do
- デッカー
- ありません
- そうではありません
- ドメイン
- ドント
- ダイナミック
- 各
- 前
- 容易
- 簡単に
- 簡単に
- EC
- 効果的に
- end
- エンドポイント
- 従事する
- エンジニアリング
- 確保
- 入力します
- エンティティ
- エントリ
- 環境
- エラー
- 等
- さらに
- あらゆる
- 進化
- 例
- 除く
- 体験
- エクステンション
- 顔
- 家族
- 速いです
- 実行可能な
- 特徴
- FRBは
- より少ない
- フィギュア
- File
- filter
- 最後に
- もう完成させ、ワークスペースに掲示しましたか?
- 名
- 焦点を当てて
- フォロー中
- 次
- 形式でアーカイブしたプロジェクトを保存します.
- 発見
- 4
- フレームワーク
- フレームワーク
- から
- フル
- 完全に
- function
- ゲートウェイ
- 生々しい
- 生成AI
- 取得する
- GitHubの
- 与える
- 与える
- グローバル
- 行く
- ガイド
- ハンドル
- 実践的な
- Hardware
- 持ってる
- he
- 助けます
- 助け
- ことができます
- こちら
- ハイ
- より高い
- 最高
- 彼の
- host
- 主催
- ホスティング
- ホスト
- 認定条件
- How To
- しかしながら
- HTML
- HTTP
- HTTPS
- 抱き合う顔
- ID
- 理想
- 特定され
- if
- 画像
- 画像
- import
- 重要
- in
- 含まれました
- 含ま
- 入ってくる
- 増加
- インダストリアル
- 非効率的な
- 情報
- 情報に基づく
- 入力
- install
- インストール
- インストールする
- を取得する必要がある者
- 機関
- 説明書
- 対話
- に
- 呼び出された
- IOT
- 問題
- 問題
- IT
- ITS
- JIT
- JPG
- ただ
- キープ
- キー
- 知っている
- 既知の
- ラボ
- 言語
- 大
- 姓
- レイテンシ
- 最新の
- 起動する
- 層
- 層
- つながる
- LEARN
- 学習
- レベル
- 図書館
- ような
- linuxの
- リスト
- リストされた
- 少し
- 少し深く
- LLM
- ローディング
- 負荷
- ローカル
- 場所
- ロギング
- ログイン
- 見て
- のように見える
- LOOKS
- 負け
- ロー
- 下側
- 最低
- 機械
- 機械学習
- 製
- メンテナンス
- make
- 作る
- 作成
- 多くの
- マサチューセッツ州
- マサチューセッツ工科大学
- マックス
- 最大化します
- 五月..
- 機械的な
- 医療の
- メモリ
- メトリック
- マインド
- 最小
- ML
- モデル
- 修正されました
- 修正する
- 分子の
- モニター
- 他には?
- 最も
- ずっと
- の試合に
- しなければなりません
- 名
- 必ずしも
- 必要
- 必要
- 必要とされる
- ニーズ
- 新作
- 次の
- 今
- 数
- 客観
- 観察する
- of
- 提供
- 頻繁に
- on
- かつて
- ONE
- の
- 〜に
- オープンソース
- 操作する
- 業務執行統括
- 演算子
- 反対した
- 最適化
- 最適化
- 最適化
- or
- 私たちの
- でる
- 出力
- が
- パッケージ
- 並列シミュレーションの設定
- 部
- パス
- 過去
- path
- 以下のために
- 割合
- パフォーマンス
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- ポイント
- ポイント
- ポリシー
- 方針
- 人気
- 可能
- ポスト
- プラクティス
- 現在
- プライベート
- 多分
- プロセス
- ラボレーション
- 作成
- 生産
- プロフィール
- プロジェクト(実績作品)
- プロパティ
- 提供します
- 提供
- は、大阪で
- 代理
- 公表
- 引き
- 目的
- プッシュ
- プッシュ
- プッシュ
- 置きます
- Python
- パイトーチ
- 範囲
- リアル
- への
- 推奨する
- 推奨される
- 記録された
- 反映する
- 地域
- 相対的に
- 頼る
- 信頼
- 残っている
- 削除します
- replace
- 倉庫
- リクエスト
- の提出が必要です
- 要件
- 研究
- 似てる
- ご予約
- 予約済み
- リソース
- 応答
- 責任
- REST
- 結果として
- 再利用可能な
- 米
- 職種
- 役割
- ラン
- ランニング
- runs
- 犠牲にする
- 同じ
- Save
- 規模
- シナリオ
- スクリプト
- SDDK
- 選択
- 送信
- シニア
- 敏感な
- 別
- サーバレス
- サーバー
- サービス
- サービス
- サービング
- セッションに
- 設定
- シェイプ
- シェアする
- shared
- すべき
- 表示する
- 示されました
- 示す
- 作品
- 側
- 同様の
- 同様に
- 単に
- SIX
- サイズ
- サイズ
- より小さい
- So
- 溶液
- ソリューション
- 一部
- 専門にする
- 特定の
- 指定の
- 話
- 安定した
- スタック
- start
- スタートアップ
- スタートアップ
- 明記
- ステップ
- 停止
- 保存され
- 店舗
- 強く
- 研究
- 首尾よく
- そのような
- サミット
- サポート
- サポート
- 確か
- テーブル
- 取る
- 撮影
- 取り
- チーム
- テクノロジー
- 一時的
- テンソルフロー
- ターミナル
- test
- テスト
- テスト
- テキサス州
- より
- それ
- アプリ環境に合わせて
- それら
- その後
- したがって、
- ボーマン
- 彼ら
- 物事
- この
- それらの
- 介して
- スループット
- タイド
- 時間
- 〜へ
- 今日
- ツール
- 豊富なツール群
- top
- トーチ
- トータル
- トレース
- トレーシング
- 伝統的な
- トレーニング
- トレーニング
- トランスフォーマー
- 信頼されている
- 試します
- 順番
- 双子
- 2
- type
- Ubuntu
- 下
- 根本的な
- 大学
- UNIX
- 不必要に
- に
- us
- 使用法
- つかいます
- 中古
- ユーザー
- users
- 使用されます
- 活用する
- 利用
- 活用
- 値
- 価値観
- バージョン
- 非常に
- 目に見える
- ビジョン
- ボリューム
- 欲しいです
- ました
- 仕方..
- we
- ウェブ
- ウェブサーバー
- Webサービス
- WELL
- した
- いつ
- which
- なぜ
- 広く
- 意志
- 以内
- 無し
- ワーカー
- 労働者
- でしょう
- 書き込み
- 書かれた
- You
- あなたの
- あなた自身
- ゼファーネット
- ゼロ