Veriff が Amazon SageMaker マルチモデル エンドポイントを使用してデプロイ時間を 80% 短縮した方法 | アマゾン ウェブ サービス

Veriff が Amazon SageMaker マルチモデル エンドポイントを使用してデプロイ時間を 80% 短縮した方法 | アマゾン ウェブ サービス

ベリフ は、金融サービス、フィンテック、仮想通貨、ゲーム、モビリティ、オンライン マーケットプレイスのパイオニアを含む、革新的な成長主導の組織のための本人確認プラットフォーム パートナーです。 AI を活用した自動化と人間のフィードバック、深い洞察、専門知識を組み合わせた高度なテクノロジーを提供します。

Veriff が Amazon SageMaker マルチモデル エンドポイントを使用してデプロイ時間を 80% 短縮した方法 |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。

Veriff は、顧客がカスタマー ジャーニーの関連するすべての瞬間にわたってユーザーのアイデンティティと個人的属性を信頼できるようにする実証済みのインフラストラクチャを提供します。 Veriff は、Bolt、Deel、Monese、Starship、Super Awesome、Trustpilot、Wise などの顧客から信頼されています。

AI を活用したソリューションとして、Veriff はコスト効率の高い方法で数十の機械学習 (ML) モデルを作成して実行する必要があります。 これらのモデルは、軽量のツリーベース モデルからディープ ラーニング コンピューター ビジョン モデルまで多岐にわたります。これらは、低遅延を実現し、ユーザー エクスペリエンスを向上させるために GPU で実行する必要があります。 Veriff は現在、顧客向けに非常にパーソナライズされたソリューションを目指して、より多くの製品を製品に追加しています。 さまざまな顧客にさまざまなモデルを提供すると、スケーラブルなモデル提供ソリューションの必要性が高まります。

この投稿では、Veriff がどのようにしてモデル展開ワークフローを標準化したかを説明します。 アマゾンセージメーカーコストと開発時間を削減します。

インフラストラクチャと開発の課題

Veriff のバックエンド アーキテクチャはマイクロサービス パターンに基づいており、AWS インフラストラクチャでホストされているさまざまな Kubernetes クラスター上でサービスが実行されます。 このアプローチは当初、高価なコンピューター ビジョン ML モデルを実行するマイクロサービスを含む、すべての企業サービスに使用されていました。

これらのモデルの一部では、GPU インスタンスへのデプロイが必要でした。 GPU ベースのインスタンス タイプのコストが比較的高いことを考慮して、Veriff は カスタムソリューション Kubernetes 上で、異なるサービス レプリカ間で特定の GPU のリソースを共有します。 通常、単一の GPU には、複数の Veriff のコンピューター ビジョン モデルをメモリ内に保持するのに十分な VRAM があります。

このソリューションにより GPU コストは軽減されましたが、データ サイエンティストはモデルに必要な GPU メモリの量を事前に指定する必要があるという制約もありました。 さらに、DevOps は、需要パターンに応じて GPU インスタンスを手動でプロビジョニングするという負担がかかりました。 これにより、運用上のオーバーヘッドとインスタンスの過剰プロビジョニングが発生し、コスト プロファイルが最適化されませんでした。

このセットアップでは、GPU プロビジョニングとは別に、データ サイエンティストがモデルごとに REST API ラッパーを構築する必要もありました。これは、他の企業のサービスが利用できる汎用インターフェイスを提供し、モデル データの前処理と後処理をカプセル化するために必要でした。 これらの API には実稼働グレードのコードが必要であったため、データ サイエンティストがモデルを実稼働化することが困難でした。

Veriff のデータ サイエンス プラットフォーム チームは、このアプローチに代わる方法を探しました。 主な目的は、よりシンプルな導入パイプラインを提供することで、同社のデータ サイエンティストが研究から本番環境へより適切に移行できるようにサポートすることでした。 XNUMX 番目の目的は、GPU インスタンスのプロビジョニングにかかる​​運用コストを削減することでした。

ソリューションの概要

Veriff は、次の XNUMX つの問題を解決する新しいソリューションを必要としていました。

  • ML モデルの周囲に REST API ラッパーを簡単に構築できるようにする
  • プロビジョニングされた GPU インスタンス容量を最適に、可能であれば自動的に管理できるようにします

最終的に、ML プラットフォーム チームは、 Sagemaker マルチモデル エンドポイント (MME)。 この決定は、MME による NVIDIA のサポートによって推進されました。 Triton推論サーバー (モデルを REST API としてラップすることを容易にする ML に重点を置いたサーバー。Veriff はすでに Triton の実験も行っていました)、また、単純な自動スケーリング ポリシーを介して GPU インスタンスの自動スケーリングをネイティブに管理する機能も備えています。

Veriff では、ステージング用と本番用の XNUMX つの MME が作成されました。 このアプローチにより、運用モデルに影響を与えることなく、ステージング環境でテスト手順を実行できます。

SageMaker MME

SageMaker は、開発者やデータ サイエンティストに ML モデルを迅速に構築、トレーニング、デプロイする機能を提供するフルマネージド サービスです。 SageMaker MME は、リアルタイム推論用に多数のモデルをデプロイするためのスケーラブルでコスト効率の高いソリューションを提供します。 MME は、共有サービス コンテナーと、GPU などの高速化されたインスタンスを使用してすべてのモデルをホストできるリソース フリートを使用します。 これにより、単一モデルのエンドポイントを使用する場合と比較して、エンドポイントの使用率が最大化され、ホスティング コストが削減されます。 また、SageMaker がメモリ内でモデルのロードとアンロードを管理し、エンドポイントのトラフィック パターンに基づいてモデルをスケーリングするため、デプロイメントのオーバーヘッドも削減されます。 さらに、すべての SageMaker リアルタイム エンドポイントは、モデルを管理および監視するための組み込み機能の恩恵を受けます。 影の亜種, 自動スケーリング、およびネイティブ統合 アマゾンクラウドウォッチ (詳細については、 マルチモデル エンドポイント デプロイの CloudWatch メトリクス).

カスタム Triton アンサンブル モデル

Veriff が Triton Inference Server の使用を決定した理由はいくつかありますが、主な理由は次のとおりです。

  • データ サイエンティストは、モデル アーティファクト ファイルを標準ディレクトリ形式 (コードなしのソリューション) に配置することで、モデルから REST API を構築できます。
  • すべての主要な AI フレームワーク (PyTorch、Tensorflow、XGBoost など) と互換性があります。
  • 次のような ML 固有の低レベルのサーバー最適化を提供します。 動的バッチ処理 リクエストの数

Triton を使用すると、データ サイエンティストは REST API を構築するためのコードを記述するのではなく、フォーマットされたモデル リポジトリを構築するだけで済むため、モデルを簡単にデプロイできます (Triton はまた、 Python モデル カスタム推論ロジックが必要な場合)。 これにより、モデルのデプロイ時間が短縮され、データ サイエンティストはモデルのデプロイではなく構築に集中できる時間が増えます。

Triton のもう XNUMX つの重要な機能は、 モデルアンサンブル、これらは互いにチェーンされたモデルのグループです。 これらのアンサンブルは、単一の Triton モデルであるかのように実行できます。 Veriff は現在、この機能を使用して、(前述したように) Python モデルを使用して各 ML モデルで前処理および後処理ロジックをデプロイし、モデルが運用環境で使用されるときに入力データまたはモデル出力に不一致がないことを保証します。

このワークロードの典型的な Triton モデル リポジトリは次のようになります。

Veriff が Amazon SageMaker マルチモデル エンドポイントを使用してデプロイ時間を 80% 短縮した方法 |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。

  model.py ファイルには前処理コードと後処理コードが含まれています。 トレーニングされたモデルの重みは次のとおりです。 screen_detection_inferencer ディレクトリ、モデルバージョンの下 1 (この例ではモデルは ONNX 形式ですが、TensorFlow、PyTorch 形式などの形式にすることもできます)。 アンサンブル モデルの定義は、 screen_detection_pipeline このディレクトリでは、ステップ間の入力と出力が構成ファイルにマップされます。

Python モデルを実行するために必要な追加の依存関係については、「 requirements.txt ファイルを作成し、Conda 環境を構築するには conda パックする必要があります (python_env.tar.gz)。 詳細については、を参照してください。 Python ランタイムとライブラリの管理。 また、Python ステップの構成ファイルは以下を指す必要があります。 python_env.tar.gz 実行_ENV_パス 指令。

次に、モデル フォルダーを TAR 圧縮し、次を使用して名前を変更する必要があります。 model_version.txt。 最終的に、結果として、 <model_name>_<model_version>.tar.gz ファイルはにコピーされます Amazon シンプル ストレージ サービス (Amazon S3) バケットが MME に接続されているため、SageMaker がモデルを検出して提供できるようになります。

モデルのバージョン管理と継続的デプロイメント

前のセクションで明らかになったように、Triton モデル リポジトリの構築は簡単です。 ただし、手動で実行すると、展開に必要なすべての手順を実行するのは面倒でエラーが発生しやすくなります。 これを克服するために、Veriff は MME にデプロイされるすべてのモデルを含むモノリポジトリを構築しました。MME では、データ サイエンティストが Gitflow のようなアプローチで連携します。 このモノリポジトリには次の機能があります。

  • を使用して管理されています パンツ.
  • Black や MyPy などのコード品質ツールは、Pants を使用して適用されます。
  • 単体テストはモデルごとに定義され、モデル出力が特定のモデル入力に対して期待される出力であることを確認します。
  • モデルの重みはモデル リポジトリと一緒に保存されます。 これらの重みは大きなバイナリ ファイルになる可能性があるため、 DVC は、バージョン管理された方法で Git と同期するために使用されます。

このモノリポジトリは、継続的インテグレーション (CI) ツールと統合されています。 リポジトリまたは新しいモデルに新しいプッシュを行うたびに、次の手順が実行されます。

  1. コード品質チェックに合格します。
  2. モデルの重みをダウンロードします。
  3. Conda 環境を構築します。
  4. Conda 環境を使用して Triton サーバーをスピンアップし、それを使用して単体テストで定義されたリクエストを処理します。
  5. 最終モデルの TAR ファイルをビルドします (<model_name>_<model_version>.tar.gz).

これらの手順により、モデルがデプロイに必要な品質を備えていることが確認されるため、リポジトリ ブランチにプッシュされるたびに、結果の TAR ファイルが (別の CI ステップで) ステージング S3 バケットにコピーされます。 プッシュがメイン ブランチで行われると、モデル ファイルが本番環境の S3 バケットにコピーされます。 次の図は、この CI/CD システムを示しています。

Veriff が Amazon SageMaker マルチモデル エンドポイントを使用してデプロイ時間を 80% 短縮した方法 |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。

コストと導入速度のメリット

MME を使用すると、Veriff はモノリポジトリアプローチを使用してモデルを実稼働環境にデプロイできます。 要約すると、Veriff の新しいモデル導入ワークフローは次の手順で構成されます。

  1. 新しいモデルまたはモデル バージョンを使用してモノリポジトリにブランチを作成します。
  2. 開発マシンで単体テストを定義して実行します。
  3. モデルをステージング環境でテストする準備ができたら、ブランチをプッシュします。
  4. モデルを実稼働環境で使用する準備ができたら、ブランチを main にマージします。

この新しいソリューションを導入すると、Veriff でのモデルのデプロイは開発プロセスの簡単な部分になります。 新モデルの開発期間は 10 日から平均 2 日に短縮されました。

SageMaker のマネージド インフラストラクチャ プロビジョニングと自動スケーリング機能は、Veriff にさらなるメリットをもたらしました。 彼らが使用したのは、 インスタンスごとの呼び出し数 CloudWatch メトリクスはトラフィック パターンに応じて拡張し、信頼性を犠牲にすることなくコストを節約します。 メトリクスのしきい値を定義するために、ステージング エンドポイントで負荷テストを実行し、レイテンシとコストの間の最適なトレードオフを見つけました。

75 つの実稼働モデルを MME にデプロイして支出を分析した後、Veriff は、元の Kubernetes ベースのソリューションと比較して、GPU モデルのコストが XNUMX% 削減されたと報告しました。 同社の DevOps エンジニアがインスタンスを手動でプロビジョニングする負担が軽減されたため、運用コストも削減されました。

まとめ

この投稿では、Veriff が Kubernetes での自己管理型モデルのデプロイメントではなく Sagemaker MME を選択した理由を検討しました。 SageMaker は差別化されていない重労働を引き受けるため、Veriff はビジネス クリティカルな業務に必要なパフォーマンスを維持しながら、モデル開発時間を短縮し、エンジニアリング効率を向上させ、リアルタイム推論のコストを大幅に削減できます。 最後に、ソフトウェア開発のベスト プラクティスと SageMaker MME を組み合わせたリファレンス実装として使用できる、Veriff のシンプルかつ効果的なモデル デプロイメント CI/CD パイプラインとモデル バージョニング メカニズムを紹介しました。 SageMaker MME を使用して複数のモデルをホストするコード サンプルは、次のサイトで見つけることができます。 GitHubの.


著者について

Veriff が Amazon SageMaker マルチモデル エンドポイントを使用してデプロイ時間を 80% 短縮した方法 |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。リカール・ボラス 彼は Veriff のシニア機械学習であり、社内の MLOps の取り組みを主導しています。 彼は、社内にデータ サイエンス プラットフォームを構築し、いくつかのオープンソース ソリューションを AWS のサービスと組み合わせることで、データ サイエンティストがより迅速で優れた AI / ML 製品を構築できるよう支援しています。

Veriff が Amazon SageMaker マルチモデル エンドポイントを使用してデプロイ時間を 80% 短縮した方法 |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。ジョアンモウラ スペインを拠点とする AWS の AI/ML スペシャリスト ソリューション アーキテクトです。 彼は、ディープ ラーニング モデルの大規模なトレーニングと推論の最適化、およびより広範な AWS 上での大規模な ML プラットフォームの構築で顧客を支援しています。

Veriff が Amazon SageMaker マルチモデル エンドポイントを使用してデプロイ時間を 80% 短縮した方法 |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。ミゲル・フェレイラ フィンランドのヘルシンキを拠点とする AWS でシニア ソリューション アーキテクトとして働いています。 AI/ML は生涯にわたる関心であり、複数の顧客が Amazon SageMaker を ML ワークフローに統合するのを支援してきました。

タイムスタンプ:

より多くの AWS機械学習