ByteDance は、AWS Inferentia PlatoBlockchain Data Intelligence を使用してレイテンシーを削減し、スループットを向上させながら、推論コストを最大 60% 節約します。垂直検索。あい。

ByteDance は、AWS Inferentia を使用してレイテンシーを削減し、スループットを向上させながら、推論コストを最大 60% 節約します

これは、Bytedance の Minghui Yu と Jianzhe Xiao が共同執筆したゲスト ブログ投稿です。

ByteDance は、さまざまな言語、文化、地域の人々に情報を提供し、教育し、楽しませ、刺激を与えるためのさまざまなコンテンツ プラットフォームを運営するテクノロジー企業です。 ユーザーは、コンテンツ プラットフォームが提供する豊富で直感的で安全なエクスペリエンスを信頼して楽しんでいます。 これらのエクスペリエンスは、コンテンツのモデレート、検索、レコメンデーション、広告、および斬新な視覚効果のために構築された機械学習 (ML) バックエンド エンジンによって可能になります。

ByteDance AML (Applied Machine Learning) チームは、高性能で信頼性が高く、スケーラブルな ML システムとエンドツーエンドの ML サービスを会社のビジネスに提供しています。 私たちは、ML 推論システムを最適化して、応答時間を増やすことなくコストを削減する方法を研究していました。 AWS が開始されたとき AWSインフェレンティアAWS 専用の高性能 ML 推論チップである . いくつかの概念実証を実行した結果、T60 GPU ベースの EC4 G2dn インスタンスと比較して最大 4% の推論コストの削減と、最大 25% の推論レイテンシーの削減が実現しました。 これらのコスト削減とパフォーマンスの向上を実現するために、モデルを AWS Inferentia ベースにデプロイすることにしました。 アマゾン エラスティック コンピューティング クラウド (Amazon EC2) 本番環境の Inf1 インスタンス。

次のグラフは、以前 Tensor RT を使用して GPU にデプロイされた顔検出モデルの 20 つのレイテンシの改善を示しています。 平均レイテンシーは 50% (40 ミリ秒から 99 ミリ秒) 減少し、p25 レイテンシーは 200% (150 ミリ秒から XNUMX ミリ秒) 減少しました。

この投稿では、AWS Inferentia を使用してレイテンシーを削減し、スループットを向上させながら、推論コストを節約した方法を共有します。

高性能で費用対効果の高いコンピューティングを求めて

ByteDance AML チームは、最先端の ML システムと、それらが必要とする異種コンピューティング リソースの研究と実装に重点を置いています。 さまざまなレコメンダー、自然言語処理 (NLP)、およびコンピューター ビジョン (CV) モデル用の大規模なトレーニングおよび推論システムを作成します。 これらのモデルは非常に複雑で、ByteDance が運営する多くのコンテンツ プラットフォームからの膨大な量のデータを処理します。 これらのモデルをデプロイするには、クラウドでもオンプレミスでも、大量の GPU リソースが必要です。 したがって、これらの推論システムの計算コストは​​非常に高くなります。

スループットやレイテンシーに影響を与えることなく、これらのコストを削減することを目指していました。 私たちは、クラウドの柔軟性と、オンプレミスのセットアップに必要なサイクルよりもはるかに短いデリバリー サイクルの高速化を望んでいました。 また、高速化された ML の新しいオプションを模索することにもオープンでしたが、シームレスな開発者エクスペリエンスも求めていました。

AWS チームから、AWS Inferentia ベースの EC2 Inf1 インスタンスが、クラウドで最も低い推論あたりのコストで高性能 ML 推論を提供することがわかりました。 私たちはそれらを調査することに興味があり、大量の画像、オブジェクト、音声、およびテキスト データに対して実質的な機械学習を実行しているため、それらが私たちのユース ケースに適していることがわかりました。 モデルの複雑さと毎日の予測量を考えると、大幅なコスト削減を実現できたので、それらは間違いなく私たちの目標にぴったりでした。 さらに、AWS Inferentia は大容量のオンチップ メモリを備えており、大規模なモデルをオフチップに保存する代わりにキャッシュに使用できます。 AWS Inferentia の処理コア (NeuronCores と呼ばれる) は、オンチップ メモリに保存され、オフチップ メモリによって制限されないモデルへの高速アクセスを備えているため、これが推論レイテンシーの削減に大きな影響を与える可能性があることを認識しました。帯域幅。

最終的に、いくつかのオプションを評価した後、オンプレミスの G2dn インスタンスや NVIDIA T1 と比較して、パフォーマンスと価格の比率が優れている EC4 Inf4 インスタンスを選択しました。 Inf1 の価格とパフォーマンスの利点を解き放つために、AWS チームと継続的なイテレーションのサイクルに取り組みました。

AWS Inferentia に推論ワークロードをデプロイする

AWS Neuron SDK を使用して AWS Inferentia を開始するには、モデルコードのコンパイルと Inf1 インスタンスへのデプロイという XNUMX つのフェーズが必要でした。 ML モデルを新しいインフラストラクチャに移行する場合によくあることですが、直面した課題がいくつかありました。 AWS チームの勤勉さとサポートにより、これらの課題を克服することができました。 以下のセクションでは、AWS Inferentia に推論ワークロードをデプロイした経験に基づいて、いくつかの役立つヒントと所見を共有します。

OCR のコンフォーマー モデル

当社の光学式文字認識 (OCR) コンフォマー モデルは、画像内のテキストを検出して読み取ります。 レイテンシを低く保ちながら、さまざまなバッチ サイズで高いパフォーマンス (QPS) を得るために、いくつかの最適化に取り組みました。 主な最適化の一部を以下に示します。

  • コンパイラの最適化 – デフォルトでは、Inferentia は固定シーケンス長の入力で最高のパフォーマンスを発揮しますが、テキスト データの長さが固定されていないため、課題がありました。 これを克服するために、モデルをエンコーダとデコーダの XNUMX つの部分に分割します。 これら XNUMX つのサブモデルを別々にコンパイルし、TorchScript を介して単一のモデルにマージしました。 CPU で for ループ制御フローを実行することにより、このアプローチは Inferentia での可変シーケンス長のサポートを可能にしました。
  • 深さ方向の畳み込みパフォーマンス – 深さ方向の畳み込み演算で DMA のボトルネックが発生しました。これは、コンフォマー モデルで頻繁に使用されます。 AWS Neuron チームと緊密に連携して、DMA アクセスパフォーマンスのボトルネックを特定して解決したことで、この操作のパフォーマンスが向上し、OCR モデルの全体的なパフォーマンスが向上しました。

ByteDance は、AWS Inferentia PlatoBlockchain Data Intelligence を使用してレイテンシーを削減し、スループットを向上させながら、推論コストを最大 60% 節約します。垂直検索。あい。

Inferentia での展開を最適化するために、XNUMX つの新しいモデル バリアントを作成しました。

  • 結合およびアンロールされたエンコーダー/デコーダー – 個別にコンパイルされたエンコーダーとデコーダーを使用する代わりに、エンコーダーと完全に展開されたデコーダーを単一のモデルに結合し、このモデルを単一の NEFF としてコンパイルしました。 デコーダーをアンロールすると、CPU 操作を使用せずに、Inferentia ですべてのデコーダー制御フローを実行できるようになります。 このアプローチでは、デコーダーの各反復は、そのトークンに必要な量の計算を正確に使用します。 このアプローチは、パディング入力によって以前に導入された余分な計算を大幅に削減するため、パフォーマンスを向上させます。 さらに、デコーダーの反復間で Inferentia から CPU へのデータ転送が不要なため、I/O 時間が大幅に短縮されます。 このバージョンのモデルは早期停止をサポートしていません。
  • 分割アンロールデコーダー – 結合された完全に展開されたモデルと同様に、モデルのこのバリアントは、デコーダーの複数の反復を展開し、それらを 75 回の実行としてコンパイルします (ただし、エンコーダーは含まれません)。 たとえば、シーケンスの最大長が 3 の場合、トークン 1 ~ 25、26 ~ 50、および 51 ~ 75 を計算する XNUMX つのパーティションにデコーダを展開できます。 I/O に関しても、反復ごとにエンコーダ出力を転送する必要がないため、これは大幅に高速です。 代わりに、出力は各デコーダ パーティションごとに XNUMX 回だけ転送されます。 このバージョンのモデルは早期停止をサポートしていますが、パーティションの境界でのみサポートしています。 特定のアプリケーションごとにパーティションの境界を調整して、リクエストの大部分が XNUMX つのパーティションのみを実行するようにすることができます。

パフォーマンスをさらに向上させるために、次の最適化を行い、メモリ使用量を削減するか、アクセス効率を向上させました。

  • Tensor の重複排除と削減されたコピー – これは、テンソルを再利用してスペース効率を改善することにより、展開されたモデルのサイズと命令/メモリ アクセスの数を大幅に削減するコンパイラの最適化です。
  • 命令の削減 – これは、命令の総数を大幅に削減するために、パディングされていないバージョンのデコーダーで使用されるコンパイラーの最適化です。
  • マルチコア重複排除 – これは、テンソル重複排除に代わるランタイム最適化です。 このオプションを使用すると、すべてのマルチコア モデルでスペース効率が大幅に向上します。

画像分類のための ResNet50 モデル

ResNet-50 は、画像分類用の事前トレーニング済みディープ ラーニング モデルです。 これは、視覚画像の分析に最も一般的に適用される畳み込みニューラル ネットワーク (CNN または ConvNet) です。 Inferentia でのこのモデルのパフォーマンスを向上させるために、次の手法を使用しました。

  • モデル変換 – ByteDance のモデルの多くは、現在 Inferentia がネイティブにサポートしていない ONNX 形式でエクスポートされます。 これらの ONNX モデルを処理するために、AWS Neuron チームは、モデルを ONNX 形式から PyTorch モデルに変換するスクリプトを提供しました。これは、torch-neuron を使用して Inferentia 用に直接コンパイルできます。
  • パフォーマンスの最適化 – 私たちは、 AWS ニューロン チームはコンパイラのスケジューリング ヒューリスティックを調整して、ResNet-50 モデルのパフォーマンスを最適化しました。

コンテンツ管理のためのマルチモーダル モデル

当社のマルチモーダル ディープ ラーニング モデルは、複数の個別のモデルを組み合わせたものです。 このモデルのサイズは比較的大きいため、Inferentia でモデルの読み込みに失敗しました。 AWS Neuron チームは、重みの共有を使用してデバイスのメモリ使用量を削減することで、この問題を解決することに成功しました。 Neuron チームは、Neuron libnrt ライブラリでこの重みの重複排除機能をリリースし、Neuron ツールを改善してより正確なメトリックを実現しました。 実行時の重みの重複排除機能は、推論を実行する前に次の環境変数を設定することで有効にできます。

NEURON_RT_MULTI_INSTANCE_SHARED_WEIGHTS=1

更新された Neuron SDK により、複製されたモデルの全体的なメモリ消費量が削減され、マルチコア推論用のマルチモーダル モデルを展開できるようになりました。

より多くのモデルを AWS Inferentia に移行する

ByteDance では、毎月約 2 億人のアクティブ ユーザーに快適なユーザー エクスペリエンスを提供するために、革新的なディープ ラーニング モデルを展開し続けています。 私たちは大規模な事業を行っているため、コストを削減し、パフォーマンスを最適化する方法を常に模索しています。 モデルを引き続き AWS Inferentia に移行し、その高いパフォーマンスと費用対効果の恩恵を受けます。 また、前処理タスク用により多くの vCPU を備えたものなど、AWS がより多くの AWS Inferentia ベースのインスタンス タイプを起動することも望んでいます。 今後、ByteDance は、AWS からのシリコン イノベーションがさらに増え、ML アプリケーションに最高の価格パフォーマンスを提供することを期待しています。

推論アプリケーションのパフォーマンスを最適化しながらコストを削減するために AWS Inferentia がどのように役立つかについて詳しく知りたい場合は、次の URL にアクセスしてください。 Amazon EC2 Inf1インスタンス 製品ページを参照してください。


著者について

ByteDance は、AWS Inferentia PlatoBlockchain Data Intelligence を使用してレイテンシーを削減し、スループットを向上させながら、推論コストを最大 60% 節約します。垂直検索。あい。ミンギユウ ByteDance で推論を担当するシニア機械学習チーム リーダーです。 彼の重点分野は、AI コンピューティング アクセラレーションと機械学習システムです。 彼は、ポスト・ムーア時代のヘテロジニアス・コンピューティングとコンピューター・アーキテクチャーに非常に興味を持っています。 余暇には、バスケットボールとアーチェリーが好きです。

ByteDance は、AWS Inferentia PlatoBlockchain Data Intelligence を使用してレイテンシーを削減し、スループットを向上させながら、推論コストを最大 60% 節約します。垂直検索。あい。ジャンゼ・シャオ ByteDance の AML チームのシニア ソフトウェア エンジニア チーム リーダーです。 彼の現在の仕事は、ビジネス チームがモデルのデプロイ プロセスをスピードアップし、モデルの推論パフォーマンスを向上させるのを支援することに重点を置いています。 仕事以外では、彼はピアノを弾くのが好きです。

ByteDance は、AWS Inferentia PlatoBlockchain Data Intelligence を使用してレイテンシーを削減し、スループットを向上させながら、推論コストを最大 60% 節約します。垂直検索。あい。天師 AWS のシニア ソリューション アーキテクトです。 彼の重点分野は、データ分析、機械学習、サーバーレスです。 彼は、顧客がクラウド上で信頼性が高くスケーラブルなソリューションを設計および構築するのを支援することに情熱を注いでいます。 余暇には、水泳と読書を楽しんでいます。

ByteDance は、AWS Inferentia PlatoBlockchain Data Intelligence を使用してレイテンシーを削減し、スループットを向上させながら、推論コストを最大 60% 節約します。垂直検索。あい。ジア・ドン AWS のカスタマー ソリューション マネージャーです。 彼女は、AWS AI/ML サービスについて学び、顧客向けのソリューションを構築することで、顧客がビジネスの成果を達成できるよう支援することを楽しんでいます。 仕事以外では、旅行、ヨガ、映画を楽しんでいます。

ByteDance は、AWS Inferentia PlatoBlockchain Data Intelligence を使用してレイテンシーを削減し、スループットを向上させながら、推論コストを最大 60% 節約します。垂直検索。あい。ジョナサン・ラント Amazon のソフトウェア エンジニアであり、ML フレームワークの開発に重点を置いています。 キャリアを通じて、モデル開発、インフラストラクチャの展開、ハードウェア固有の最適化など、幅広いデータ サイエンスの役割に取り組んできました。

ByteDance は、AWS Inferentia PlatoBlockchain Data Intelligence を使用してレイテンシーを削減し、スループットを向上させながら、推論コストを最大 60% 節約します。垂直検索。あい。ジョシュア・ハナン は、Amazon の機械学習エンジニアです。 彼は、大規模なコンピューター ビジョンおよび自然言語処理アプリケーション向けのディープ ラーニング モデルの最適化に取り組んでいます。

ByteDance は、AWS Inferentia PlatoBlockchain Data Intelligence を使用してレイテンシーを削減し、スループットを向上させながら、推論コストを最大 60% 節約します。垂直検索。あい。シュルティ・コパーカー AWS のシニア プロダクト マーケティング マネージャーです。 彼女は、顧客が機械学習のニーズに合わせて EC2 アクセラレーテッド コンピューティング インフラストラクチャを調査、評価、採用するのを支援しています。

タイムスタンプ:

より多くの AWS機械学習