ゼファーネットのロゴ

CCC Intelligent Solutions が Amazon SageMaker を使用して複雑な AI モデルをホストするためのカスタム アプローチを作成した方法

日付:

この投稿は CCC Intelligent Solutions の Christopher Diaz、Sam Kinard、Jaime Hidalgo、Daniel Suarez の共著です。

この投稿では、その方法について説明します CCC インテリジェント ソリューション (CCC) 結合 アマゾンセージメーカー AWS の他のサービスと組み合わせて、想定される複雑な人工知能 (AI) モデルのタイプをホストできるカスタム ソリューションを作成します。 CCC は、保険会社、修理業者、自動車メーカー、部品供給業者、貸し手などの業務を強化する、数兆ドル規模の損害保険経済向けの主要なサービスとしてのソフトウェア (SaaS) プラットフォームです。 CCC クラウド テクノロジーは、ミッション クリティカルなワークフロー、コマース、カスタマー エクスペリエンスをデジタル化する 30,000 を超える企業を結び付けています。 AI、モノのインターネット (IoT)、カスタマー エクスペリエンス、ネットワークおよびワークフロー管理の信頼できるリーダーである CCC は、最も重要なときに人々の生活を前進させ続けるイノベーションを提供します。

課題

CCC は、年間 1 兆ドルを超える請求取引を処理しています。 同社は AI を既存および新しい製品カタログに統合するために進化を続けており、これには、複雑なビジネス ニーズを解決するためのマルチモーダル機械学習 (ML) アンサンブル モデルをトレーニングおよび展開するための高度なアプローチが必要です。 これらは、CCC が長年にわたって磨き上げてきた独自のアルゴリズムと対象分野の専門知識をカプセル化したモデルのクラスです。 これらのモデルは、微妙なデータと顧客ルールの新しいレイヤーを取り込み、単一の予測結果を作成できる必要があります。 このブログ投稿では、CCC が Amazon SageMaker ホスティングやその他の AWS サービスを活用して、複数のマルチモーダル モデルをアンサンブル推論パイプラインにデプロイまたはホストする方法を学びます。

次の図に示すように、アンサンブルは、XNUMX つの予測を生成するために線形または非線形の方法で実行するように編成された XNUMX つ以上のモデルのコレクションです。 線形に積み重ねると、アンサンブルの個々のモデルを直接呼び出して予測し、後で統合して統合することができます。 場合によっては、アンサンブル モデルをシリアル推論パイプラインとして実装することもできます。

このユース ケースでは、次の図に示すように、アンサンブル パイプラインは厳密に非線形です。 非線形アンサンブル パイプラインは、理論的には直接非巡回グラフ (DAG) です。 このユースケースでは、この DAG パイプラインには、並行して実行される独立したモデル (サービス B、C) と、前のステップからの予測を使用する他のモデル (サービス D) の両方がありました。

CCC の研究主導型の文化から生まれた実践は、お客様により多くの価値をもたらすために活用できるテクノロジの継続的な見直しです。 CCC がこのアンサンブルの課題に直面したとき、リーダーシップは概念実証 (POC) イニシアチブを立ち上げ、AWS からの提供物を徹底的に評価して、具体的には、Amazon SageMaker やその他の AWS ツールが個々の AI モデルのホスティングを複雑で非線形に管理できるかどうかを発見しました。アンサンブル。

アンサンブルは次のように説明しました。 このコンテキストでは、アンサンブルとは、連携して 2 つの全体的な予測を生成する 1 つ以上の AI モデルのグループです。

研究を推進する疑問

Amazon SageMaker を使用して、連携して XNUMX つの全体的な予測を提供する AI モデルの複雑なアンサンブルをホストできますか? もしそうなら、SageMaker は、自動化、信頼性、監視、自動スケーリング、コスト削減対策の向上など、すぐに使用できる他の利点を提供できますか?

クラウド プロバイダーの技術的進歩を利用して CCC の AI モデルを展開する別の方法を見つけることで、CCC は競合他社よりも早く AI ソリューションを市場に投入できるようになります。 さらに、複数の展開アーキテクチャを使用すると、ビジネスの優先順位に基づいてコストとパフォーマンスのバランスを見つける際の柔軟性が得られます。

私たちの要件に基づいて、次の機能のリストを運用グレードの展開アーキテクチャのチェックリストとして完成させました。

  • 複雑なアンサンブルのサポート
  • すべてのコンポーネントのアップタイムを保証
  • デプロイされた AI モデルのカスタマイズ可能な自動スケーリング
  • AI モデルの入出力の保存
  • すべてのコンポーネントの使用状況の指標とログ
  • コスト削減メカニズム

CCC の AI ソリューションの大部分がコンピューター ビジョン モデルに依存しているため、解像度が上がり続ける画像および動画ファイルをサポートするには、新しいアーキテクチャが必要でした。 このアーキテクチャを非同期モデルとして設計および実装する必要性が強くありました。

調査と最初のベンチマーク作業を繰り返した後、CCC は、SageMaker が本番要件の大部分を満たすのに最適であると判断しました。特に、SageMaker がほとんどの推論コンポーネントに提供する保証された稼働時間です。 Amazon S3 で入出力を保存する Amazon SageMaker 非同期推論エンドポイントのデフォルト機能により、複雑なアンサンブルから生成されたデータを保持するタスクが簡素化されます。 さらに、各 AI モデルが独自のエンドポイントによってホストされるため、モデルまたはエンドポイント レベルでの自動スケーリング ポリシーの管理が容易になります。 管理を簡素化することで、開発チームがスケーリング ポリシーの微調整により多くの時間を割り当て、コンピューティング リソースの過剰なプロビジョニングを最小限に抑えることができるため、コストを節約できる可能性があります。

SageMaker をアーキテクチャの重要なコンポーネントとして使用することを決定したことで、SageMaker がさらに大きなアーキテクチャの一部になり、他の多くのサーバーレス AWS マネージド サービスで補完できることにも気付きました。 この選択は、この複雑なアーキテクチャの高次のオーケストレーションと可観測性のニーズを促進するために必要でした。

まず、トラフィックの多いシナリオでペイロード サイズの制限を取り除き、タイムアウトのリスクを大幅に軽減するために、CCC は、 SageMaker 非同期推論エンドポイント コアビルディングブロックとして、AWS が管理する他のサービスと組み合わせます。 さらに、システムのユーザー インターフェイスは、ファイア アンド フォーゲット デザイン パターンに従います。 つまり、ユーザーが入力をシステムにアップロードしたら、それ以上何もする必要はありません。 予測が利用可能になると通知されます。 以下の図は、非同期イベント駆動型アーキテクチャの概要を示しています。 次のセクションでは、設計されたアーキテクチャの実行フローについて詳しく説明します。

ステップバイステップのソリューション

ステップ 1

クライアントは、 AWS APIゲートウェイ 終点。 リクエストの内容には、予測が必要な AI サービスの名前と、希望する通知方法が含まれています。

このリクエストは ラムダ 呼び出された関数 新しい予測、 主なタスクは次のとおりです。

  • クライアントが要求したサービスが利用可能かどうかを確認します。
  • リクエストに一意の予測 ID を割り当てます。 ユーザーは、この予測 ID を使用して、プロセス全体で予測のステータスを確認できます。
  • 生成する アマゾンS3 ユーザーが予測リクエストの入力コンテンツをアップロードするために次のステップで使用する必要がある署名付き URL。
  • にエントリを作成します Amazon DynamoDB 受信したリクエストの情報とともに。

次に、Lambda 関数は、API Gateway エンドポイントを介して、リクエストに割り当てられた予測 ID と Amazon S3 署名付き URL を含むメッセージを含むレスポンスを返します。

ステップ 2

クライアントは、前のステップで生成された署名付き URL を使用して、予測入力コンテンツを S3 バケットに安全にアップロードします。 入力コンテンツは AI サービスに依存し、画像、表形式データ、またはその両方の組み合わせで構成できます。

ステップ 3

S3 バケットは、ユーザーが入力コンテンツをアップロードしたときにイベントをトリガーするように構成されています。 この通知は Amazon SQS キューに送信され、呼び出された Lambda 関数によって処理されます。 プロセス入力を選択します。 プロセス入力 Lambda はその予測 ID に関連する情報を DynamoDB から取得して、リクエスト先のサービスの名前を取得します。

このサービスは、単一の AI モデルにすることができます。 プロセス入力 Lambda は、そのモデルをホストする SageMaker エンドポイントにリクエストを送信します (ステップ 3-A)。または、アンサンブル AI サービスである可能性があります。 プロセス入力 Lambda は、アンサンブル ロジックをホストするステップ関数のステート マシンにリクエストを送信します (ステップ 3-B)。

どちらのオプション (単一の AI モデルまたはアンサンブル AI サービス) でも、最終的な予測の準備が整うと、適切な S3 バケットに保存され、ステップ 1 で指定された方法で発信者に通知されます (通知の詳細については、ステップ4)。

ステップ3-A

予測 ID が単一の AI モデルに関連付けられている場合、 プロセス入力 Lambda は、モデルを提供する SageMaker エンドポイントにリクエストを送信します。 このシステムでは、XNUMX 種類の SageMaker エンドポイントがサポートされています。

  • 非同期プロセス入力 Lambda は SageMaker 非同期エンドポイントにリクエストを送信します。 即時応答には、SageMaker が予測出力を保存する S3 の場所が含まれます。 このリクエストは、ファイア アンド フォーゲット パターンに従って非同期であり、Lambda 関数の実行フローをブロックしません。
  • 同期プロセス入力 Lambda は SageMaker 同期エンドポイントにリクエストを送信します。 これは同期リクエストであるため、Process Input はレスポンスを待ち、取得すると、SageMaker 非同期エンドポイントと同様の方法で S3 に保存します。

どちらの場合 (同期エンドポイントまたは非同期エンドポイント) でも、予測は同等の方法で処理され、出力が S3 バケットに保存されます。 非同期 SageMaker エンドポイントが予測を完了すると、Amazon SNS イベントがトリガーされます。 この動作は、Lambda 関数の追加ロジックを使用して同期エンドポイントにも複製されます。

ステップ3-B

予測 ID が AI アンサンブルに関連付けられている場合、 プロセス入力 Lambda は、その AI Ensemble に関連付けられたステップ関数にリクエストを送信します。 前述のように、AI アンサンブルは、XNUMX つの全体的な予測を生成するために連携して動作する AI モデルのグループに基づくアーキテクチャです。 AI アンサンブルのオーケストレーションは、ステップ関数によって行われます。

ステップ関数には、アンサンブルを構成する AI サービスごとに XNUMX つのステップがあります。 各ステップは、前のステップの以前の AI サービス呼び出しからの出力コンテンツのさまざまな組み合わせを使用して、対応する AI サービスの入力を準備する Lambda 関数を呼び出します。 次に、このコンテキストでは、単一の AI モデルまたは別の AI アンサンブルである可能性がある各 AI サービスを呼び出します。

と呼ばれる同じ Lambda 関数 GetTransformCall AI アンサンブルの中間予測を処理するために使用されますが、ステップ関数全体で使用されますが、ステップごとに異なる入力パラメーターが使用されます。 この入力には、呼び出される AI サービスの名前が含まれます。 また、指定された AI サービスの入力を構築するためのマッピング定義も含まれています。 これは、Lambda がデコードできるカスタム構文を使用して行われます。要約すると、JSON ディクショナリであり、値を以前の AI 予測のコンテンツに置き換える必要があります。 Lambda は、Amazon S3 からこれらの以前の予測をダウンロードします。

各ステップでは、 GetTransformCall Lambda は、指定された AI サービスの入力を構築するために必要な以前の出力を Amazon S3 から読み取ります。 次に、 新しい予測 前にステップ 1 で使用した Lambda コードで、サービス名、コールバック メソッド (「ステップ関数」)、およびリクエスト ペイロードのコールバックに必要なトークンを提供します。これは新しい予測レコードとして DynamoDB に保存されます。 Lambda は、そのステージの作成された入力も S3 バケットに保存します。 そのステージが単一の AI モデルであるか AI アンサンブルであるかに応じて、Lambda は SageMaker エンドポイント、または親アンサンブルの依存関係である AI アンサンブルを管理する別のステップ関数にリクエストを送信します。

要求が行われると、次のステージに移動できることを示すコールバック トークンを受け取るまで、ステップ関数は保留状態に入ります。 コールバック トークンを送信するアクションは、呼び出された Lambda 関数によって実行されます。 通知 (詳細はステップ 4 で) 中間予測の準備ができたとき。 このプロセスは、最終予測の準備が整うまで、ステップ関数で定義されたステージごとに繰り返されます。

ステップ 4

予測の準備ができて S3 バケットに保存されると、SNS 通知がトリガーされます。 このイベントは、フローに応じてさまざまな方法でトリガーできます。

  1. SageMaker 非同期エンドポイントが予測を完了すると自動的に。
  2. ステップ関数の最後のステップとして。
  3. By プロセス入力 or GetTransformCall 同期 SageMaker エンドポイントが予測を返したときの Lambda。

B と C には、A が自動的に送信するものと同様の SNS メッセージを作成します。

notifications と呼ばれる Lambda 関数が、この SNS トピックにサブスクライブされます。 通知 Lambda は DynamoDB から予測 ID に関連する情報を取得し、ステータス値でエントリを「完了」または「エラー」に更新し、データベース レコードに保存されたコールバック モードに応じて必要なアクションを実行します。

ステップ 3-B で説明したように、この予測が AI アンサンブルの中間予測である場合、この予測に関連付けられたコールバック モードは「ステップ関数」になり、データベース レコードには、特定のステップに関連付けられたコールバック トークンが含まれます。ステップ関数。 通知 Lambda は、メソッド「SendTaskSuccess」または「SendTaskFailure」を使用して AWS Step Functions API を呼び出します。 これにより、ステップ関数は次のステップまたは終了に進むことができます。

予測がステップ関数の最終出力であり、コールバック モードが「Webhook」[または電子メール、メッセージ ブローカー (Kafka) など] である場合、通知 Lambda は指定された方法でクライアントに通知します。 ユーザーはいつでも予測のステータスをリクエストできます。 リクエストには、ステップ 1 で割り当てられた予測 ID を含め、API Gateway 内の正しい URL を指して、呼び出された Lambda 関数にリクエストをルーティングする必要があります。 結果.

結果 Lambda は DynamoDB にリクエストを送信し、リクエストのステータスを取得して、ユーザーに情報を返します。 予測のステータスが エラー、失敗に関する関連する詳細が応答に含まれます。 予測ステータスが 成功、ユーザーが予測コンテンツをダウンロードするための S3 署名付き URL が返されます。

成果

予備的なパフォーマンス テストの結果は有望であり、CCC がこの新しい展開アーキテクチャの実装を拡張するケースをサポートしています。

注目すべき所見:

  • テストでは、トラフィックの多いシナリオで、高いスループットと 0% の失敗率でバッチまたは同時要求を処理する際の強度が明らかになりました。
  • メッセージ キューは、スケーリング トリガーが追加のコンピューティング リソースをプロビジョニングできるようになるまで、突然のリクエストの流入時にシステム内の安定性を提供します。 トラフィックを 3 倍に増やしても、平均リクエスト レイテンシは 5% しか増加しませんでした。
  • 安定性の代償は、さまざまなシステム コンポーネント間の通信オーバーヘッドによる遅延の増加です。 ユーザー トラフィックがベースラインのしきい値を超えている場合、パフォーマンスがコストよりも優先される場合は、より多くのコンピューティング リソースを提供することで、追加の待機時間を部分的に軽減できます。
  • SageMaker の非同期推論エンドポイントを使用すると、リクエストを受信するためにエンドポイントをアクティブに保ちながら、インスタンス数をゼロにスケーリングできます。 この機能により、コンピューティング コストを発生させずにデプロイを実行し続けることができ、XNUMX つのシナリオで必要に応じてゼロからスケールアップできます。下位のテスト環境で使用されるサービス デプロイと、即時の処理を必要とせずに最小限のトラフィックしか持たないサービス デプロイです。

まとめ

POC プロセス中に観察されたように、CCC と AWS が共同で作成した革新的な設計は、Amazon SageMaker を他の AWS マネージド サービスと共に使用して、複雑なマルチモーダル AI アンサンブルをホストし、推論パイプラインを効果的かつシームレスに調整するための強固な基盤を提供します。 非同期推論などの Amazon SageMaker のすぐに使用できる機能を活用することで、CCC は専門的なビジネスクリティカルなタスクに集中する機会が増えます。 CCC の研究主導型の文化の精神に則り、CCC が AWS と並んでクライアント向けの強力な新しい AI ソリューションを解き放つ道を先導するにつれて、この新しいアーキテクチャは進化し続けます。

非同期推論エンドポイントを作成、呼び出し、および監視する方法の詳細な手順については、 ドキュメントも含まれています サンプルノート あなたが始めるのを助けるために。 価格情報については、次の Web サイトをご覧ください。 Amazon SageMakerの価格.

コンピューター ビジョンや自然言語処理 (NLP) などの非構造化データで非同期推論を使用する例については、次を参照してください。 AmazonSageMaker非同期エンドポイントを使用して大きなビデオでコンピュータービジョン推論を実行します & HuggingFaceとAmazonSageMakerの非同期推論エンドポイントで価値の高い研究を改善するそれぞれ。


著者について

クリストファー・ディアス CCC Intelligent Solutions のリード R&D エンジニアです。 R&D チームのメンバーとして、ETL ツール、バックエンド Web 開発、研究者との協力による分散システムでの AI モデルのトレーニング、研究チームと運用チーム間の新しい AI サービスの提供の促進など、さまざまなプロジェクトに取り組んできました。 最近は、同社の AI モデル開発ライフサイクルのさまざまな側面を強化するためのクラウド ツール ソリューションの研究に注力しています。 余暇には、故郷のシカゴで新しいレストランを試したり、自宅に収まる数のレゴ セットを集めたりすることを楽しんでいます。 Christopher は、ノースイースタン イリノイ大学でコンピューター サイエンスの理学士号を取得しています。

エミー賞受賞者 サム・キナード は、CCC Intelligent Solutions のソフトウェア エンジニアリングのシニア マネージャーです。 テキサス州オースティンに拠点を置く彼は、CCC の AI 製品を高可用性および大規模に提供する責任を負う AI ランタイム チームを統括しています。 暇なとき、Sam は XNUMX 人の素晴らしい子供たちのために睡眠不足を楽しんでいます。 Sam は、テキサス大学オースティン校でコンピューター サイエンスの理学士号と数学の理学士号を取得しています。

ハイメ・イダルゴ CCC Intelligent Solutions のシニア システム エンジニアです。 AI 研究チームに参加する前は、同社のマイクロサービス アーキテクチャへのグローバルな移行を主導し、AWS でインフラストラクチャを設計、構築、自動化して、クラウド製品とサービスの展開をサポートしていました。 現在、彼は AI トレーニング用に構築されたオンプレミス データセンター クラスターの構築とサポートを行っており、同社の将来の AI 研究と展開のためのクラウド ソリューションの設計と構築も行っています。

ダニエル·スアレス CCC Intelligent Solutions のデータ サイエンス エンジニアです。 AI エンジニアリング チームのメンバーとして、ML オペレーションのその他の側面やメトリクスの生成、評価、監視における AI モデルの自動化と準備に取り組んでいます。 ダニエルは、イリノイ工科大学でコンピュータ サイエンスの修士号を取得し、マドリッド工科大学で電気通信工学の修士号と学士号を取得しています。

アルンプラサト・シャンカール は、AW​​S のシニア AI/ML スペシャリスト ソリューション アーキテクトであり、グローバルな顧客が AI ソリューションをクラウドで効果的かつ効率的にスケーリングするのを支援しています。 余暇には、アルンは SF 映画を見たり、クラシック音楽を聴いたりしています。

ジャスティン・マクワーター AWS のソリューション アーキテクト マネージャーです。 彼は、AWS プラットフォームを採用する際に顧客が前向きな経験をするのを支援する素晴らしいソリューションアーキテクトのチームと協力しています。 仕事をしていないとき、ジャスティンは XNUMX 人の息子とビデオ ゲームをしたり、アイスホッケーをしたり、ジープでオフロードを楽しんだりしています。

スポット画像

最新のインテリジェンス

スポット画像