(57)【要約】  プロダクション推論のための自動スケーリングホスト型機械学習モデルの技術が説明される。機械学習モデルは、性能が影響を受けないように、機械学習モデルをサポートしているインフラストラクチャが需要によって動的に比例するように、ホスト環境において配備することができる。モデルは、反応技術または予測技術を用いて自動スケーリングすることができる。【選択図】図１
2021504801.tif 000002
【特許請求の範囲】
【請求項１】
機械学習モデルを実装するプロバイダネットワークで実行している１つ以上のモデルインスタンスのフリートと関連した１つ以上の動作メトリックのセットをモニタすることと、
前記モニタすることに基づいて、前記フリートと関連したメトリック条件が満たされていると判定することと、
前記メトリック条件が満たされていると前記判定することに応答して、前記フリートにモデルインスタンスを追加すること、または前記フリートからモデルインスタンスの前記フリートの１つを削除することと
を含む、コンピュータによる実施方法。
【請求項２】
前記メトリック条件が動作特性のセットの１つ以上の動作メトリックに基づいており、前記１つ以上の動作メトリックは、
前記機械学習モデルのために受信される要求の量もしくは一定期間にわたって前記機械学習モデルによって送信される応答の量を示す、入力もしくは出力メトリック、
前記一定期間にわたって前記機械学習モデルのために受信される要求当たりの処理時間の量を示す待ち時間メトリック、
前記一定期間にわたるモデルインスタンスの前記フリートと関連した成功率もしくは失敗率を示す信頼性メトリック、または、
モデルインスタンスの前記フリートの１つ以上によって利用される物理的もしくは仮想的計算リソースの利用率を示す利用率メトリック
のうち少なくとも１つを含む、請求項１に記載のコンピュータによる実施方法。
【請求項３】
前記メトリック条件が前記プロバイダネットワークのユーザによって指定された、請求項１または２に記載のコンピュータによる実施方法。
【請求項４】
前記ユーザの電子デバイスに、前記ユーザに示されるユーザインタフェースのためのデータを送信することであって、前記ユーザインタフェースは１つ以上の動作メトリックの前記セットの複数の値を図示するチャートを含む、前記送信すること
をさらに含む、請求項３に記載のコンピュータによる実施方法。
【請求項５】
前記ユーザインタフェースが経時的にモデルインスタンスの前記フリートのモデルインスタンスの数をさらに示す、請求項４に記載のコンピュータによる実施方法。
【請求項６】
前記フリートと関連した１つ以上の履歴動作メトリックに基づいてモデルを生成することと、
前記モデルに基づいて、前記機械学習モデルの利用率の予測された増加はある時間以後に発生すると判定することと、
前記時間の前に、前記フリートに少なくとも１つのモデルインスタンスを追加すること、または、前記利用率の前記予測された増加が発生すると前記判定することに応答して１つ以上のウォームプールインスタンスを作成することと
をさらに含む、請求項１〜５のいずれか一項に記載のコンピュータによる実施方法。
【請求項７】
前記１つ以上のウォームプールインスタンスが、前記利用率の前記予測された増加が発生すると前記判定することに応答して作成され、前記フリートに前記１つ以上のウォームプールインスタンスを追加することをさらに含む、請求項６に記載のコンピュータによる実施方法。
【請求項８】
前記フリートにモデルインスタンスを追加することまたは前記フリートからモデルインスタンスの前記フリートの１つを削除することが、アプリケーションプログラミングインタフェース（ＡＰＩ）要求メッセージを前記プロバイダネットワークのエンドポイントに送信することを含む、請求項１〜７のいずれか一項に記載のコンピュータによる実施方法。
【請求項９】
１つ以上のモデルインスタンスの前記フリートの少なくとも１つのモデルインスタンスがモデルコードを含むコンテナを含み、前記コンテナは仮想マシン上で実行される、請求項１〜８のいずれか一項に記載のコンピュータによる実施方法。
【請求項１０】
第１の１つ以上の電子デバイスによって実行される１つ以上のモデルインスタンスのフリートと、
第２の１つ以上の電子デバイスによって実装される自動スケーリングシステムであって、前記自動スケーリングシステムは、前記第２の１つ以上の電子デバイスによって実行されると、前記自動スケーリングシステムに、
機械学習モデルを実装するプロバイダネットワークで実行している１つ以上のモデルインスタンスのフリートと関連した１つ以上の動作メトリックのセットをモニタし、
前記モニタすることに基づいて、前記フリートと関連したメトリック条件が満たされていると判定し、
前記フリートにモデルインスタンスを追加するかまたは、前記メトリック条件が満たされていると前記判定することに応答してモデルインスタンスの前記フリートの１つを前記フリートから削除する
ようにさせる命令を含む、前記自動スケーリングシステムと
を含むシステム。
【請求項１１】
前記メトリック条件が動作特性のセットの１つ以上の動作メトリックに基づいており、前記１つ以上の動作メトリックは、
前記機械学習モデルのために受信される要求の量もしくは一定期間にわたって前記機械学習モデルによって送信される応答の量を示す、入力もしくは出力メトリック、
前記一定期間にわたって前記機械学習モデルのために受信される要求当たりの処理時間の量を示す待ち時間メトリック、
前記一定期間にわたるモデルインスタンスの前記フリートと関連した成功率もしくは失敗率を示す信頼性メトリック、または、
モデルインスタンスの前記フリートの１つ以上によって利用される物理的もしくは仮想的計算リソースの利用率を示す利用率メトリック
のうち少なくとも１つを含む、請求項１０に記載のシステム。
【請求項１２】
前記メトリック条件が前記プロバイダネットワークのユーザによって指定された、請求項１０または１１に記載のシステム。
【請求項１３】
前記ユーザの電子デバイスに、前記ユーザに示されるユーザインタフェースのためのデータを送信し、前記ユーザインタフェースは１つ以上の動作メトリックの前記セットの複数の値を図示するチャートを含む、
第３の１つ以上の電子デバイスによって実装されるコンソールをさらに含む、請求項１２に記載のシステム。
【請求項１４】
前記ユーザインタフェースが経時的にモデルインスタンスの前記フリートのモデルインスタンスの数をさらに示す、請求項１３に記載のシステム。
【請求項１５】
前記命令が、前記第２の１つ以上の電子デバイスによって実行されると、前記自動スケーリングシステムにさらに、
前記フリートと関連した１つ以上の履歴動作メトリックに基づいてモデルを生成し、
前記モデルに基づいて、前記機械学習モデルの利用率の予測された増加はある時間以後に発生すると判定し、
前記時間の前に、前記フリートに少なくとも１つのモデルインスタンスを追加し、または、前記利用率の前記予測された増加が発生するとの前記判定に応答して１つ以上のウォームプールインスタンスを作成する
ようにさせる、請求項１０〜１４のいずれか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は２０１７年１１月２４日に出願の米国非仮出願第１５／８２２,０６１号の利益を主張し、それは本明細書に参照により援用される。
【背景技術】
【０００２】
機械学習の分野は、技術の将来の有望な重要ドライバとして広く認知されている。組織は現在至る所で、機械学習技術を使用して、製品、プロセス、カスタマ体験などの態様を最適化するなどの多種多様な問題に対処しようとしている。機械学習は上位レベルで見ると、例えば、訓練データをコンピュータに提供して、コンピュータが訓練データから自動的に学習して他のデータの予測をすることができるモデルを生成可能にするというように、単純に思われるが、実際に機械学習技術を実現することは途方もなく困難であり得る。
【０００３】
この難点は、部分的には、通常当分野の最前線でアカデミックな研究者または個人によって開発される機械学習アルゴリズムの根本的なアルゴリズム的、数学的複雑さによるものである。加えて、有用なモデルを生成して、更新して、配備することもまた困難であり、それは極めて時間及びリソースを消耗し、複雑さに満ちたものであり得る。さらに、機械学習モデルは特定の使用事例及び動作環境に極めて焦点が置かれる傾向があり、したがって、根本的な環境または使用事例に対するいかなる変化も新たなモデルの完全な再生成を必要とし得る。さらに、機械学習技術を造って、展開することは、従来のソフトウェアエンジニアリングと全く異なり、従来のソフトウェアエンジニアリング開発チームが精通しているものと異なる実行法及びアーキテクチャを必要とする。
【０００４】
本開示に従った様々な実施形態を、図面を参照して説明する。
【図面の簡単な説明】
【０００５】
【図１】いくつかの実施形態による、プロダクション推論のための自動スケーリングホスト型機械学習モデルの自動スケーリングシステムを示しているブロック図である。
【図２】いくつかの実施形態による、プロダクション推論のための自動スケーリングホスト型機械学習モデルのモデルインスタンスのウォームプールの使用を示しているブロック図である。
【図３】いくつかの実施形態による、プロダクション推論のための自動スケーリングホスト型機械学習モデルの一部として利用することができる例示的な動作メトリック値を示している図である。
【図４】いくつかの実施形態による、自動スケーリングイベントを表しているメトリック値チャート及びホスティングされた機械学習モデルの自動スケーリングを構成するためのユーザインタフェースを示している図である。
【図５】いくつかの実施形態による、プロダクション推論のための自動スケーリングホスト型の機械学習モデルのための予測自動スケーリングポリシーを生成するために用いることができる予測自動スケーリングモデルの視覚表現を示している図である。
【図６】いくつかの実施形態による、プロダクション推論のためのホスティングされた機械学習モデルの反応性自動スケーリングのための例示的な動作を示しているフローチャートである。
【図７】いくつかの実施形態による、プロダクション推論のためのホスティングされた機械学習モデルの予測自動スケーリングのための例示的な動作を示しているフローチャートである。
【図８】いくつかの実施形態による、例示的プロバイダネットワーク環境を示す。
【図９】いくつかの実施形態による、ストレージ仮想化サービス及びハードウェア仮想化サービスをカスタマに提供する例示のプロバイダネットワークのブロック図である。
【図１０】いくつかの実施形態で用いることができる例示のコンピュータシステムを示しているブロック図である。
【発明を実施するための形態】
【０００６】
プロダクション推論のための自動スケーリングホスト型機械学習モデルのための方法、装置、システム及び非一時的コンピュータ可読記憶媒体の種々の実施形態が記載される。いくつかの実施形態によれば、機械学習モデルは、性能が影響を受けないように、機械学習モデルをサポートしているインフラストラクチャが需要によって動的に比例するように、ホスト環境において配備することができる。
【０００７】
機械学習モデルは、テキストまたは画像を分類することから回帰などを実行することまでの範囲にわたるタスクを実行することができて、連続またはバッチ訓練プロセスを用いて共通に訓練されて、結果としてモデルを得る。モデルは、結果として出力を得るための入力データポイントであることができる関数として見ることができる。例えば、画像データに作用するモデルは、クラス（例えば、画像に顔があるか１つも顔が存在しないかどうか）または値（例えば、画像において検出された人物の識別子）を出力することができる。例えば、テキストに作用するモデルは、類似のタイプの出力、例えば対話の主題、対話のムードなどを出力することができる
【０００８】
機械学習モデルを利用するいくつかのシナリオにおいて、ユーザは、ユーザが注釈をつけることを望むデータのセット（またはコーパス）を有することができ、モデルはデータのセットを使用してバッチで実行することができる。したがって、モデル（または関数）をデータのセット全体に適用してデータのセットのための注釈を生成するオペレーティングシステムプロセスが開始されることができ、次にそれをユーザは使用することができる。
【０００９】
しかしながら、多くの現代のシナリオ、例えばプロバイダネットワークからのクラウドサービスの利用では、ユーザがまず初めに、データの初期のテストセットを有しないことは非常に一般的になっており、これらのユーザはデータを集計するのを待つのを望まない。その代わりに、特定のデータポイント（例えば、画像、テキスト、オーディオクリップなど）を取得すると、ユーザは要求をライブサービスのエンドポイントに送信することを望むことができ、それは直ちにデータポイントにスコア付け／ラベル付けして、結果を戻す。この方法が主な方法となってきており、したがって、個々のタスクのための「オンデマンド」またはリアルタイム機械学習モデル処理は、モノのインターネット（ＩｏＴ）システム、スマートスピーカ、画像認識アプリケーション、オンライン広告などを含むがこれに限らない様々な分野で重要になっている。
【００１０】
しかしながら、このようなリアルタイム機械学習モデルサービスについては、これらのサービスのためのトラフィックが、極めて「バースト的」で大きな変動を有する傾向がある。例えば、特定モデルに対する要求の数は、しばしば急に、一日または一年のうちのある時間の特定の周期的なイベント、人気が出てきたまたは話題になっているアプリケーションなどのため著しく増減することがあり得て、それは結果として活動の巨大なサージになる場合がある。したがって、通常１分または１時間につき２、３回実行することができるモデルは、１分に数千または数十万回（またはより多く）実行することが急に必要となる可能性がある。
【００１１】
したがって、サービスは、過剰供給などのためにリソースを浪費することなく、需要のこのようなサージ及び／または小康状態に適応することが可能なことを必要とするが、浪費は結果として電子リソースの無駄、エネルギーの増加、費用の増加などになるであろう。例えば、モデルが大きなトラフィックスパイクに対応するために大量の計算リソースが確保されることができるかまたは設けられることができる一方で、例えば多くのユーザが眠っているためトラフィックが低い可能性のある朝３時のトラフィックの小康状態の間、同一量の資源を確保し続けることは効率的でない。
【００１２】
したがって、本明細書において開示される実施形態は、ホスト型機械学習モデルのための自動スケーリング技術を提供して、非常にバースト性または予測不可能な環境においてさえモデルのスケーラビリティ及び安定性を確保しながら、リソースの過剰供給の無駄を回避する。
【００１３】
図１は、いくつかの実施形態による、プロダクション推論のための自動スケーリングホスト型機械学習モデルの自動スケーリングシステム１００を示しているブロック図である。図示するように、自動スケーリングシステム１０６（例えば、プロバイダネットワーク１０２の１つ以上のコンピューティング装置によって実行されるソフトウェア）は、機械学習モデル１２０をホスティングするモデルインスタンス１１８Ａ〜１１８Ｎのフリート１１６のリソースを「自動スケール」することができ、モデルの性能を低下させることなく、モデルにかけられた要求とモデル１２０をホスティングするためのリソースの量を動的に適合させることができる。
【００１４】
プロバイダネットワーク１０２は、例えば、計算リソース（例えば、仮想マシン（ＶＭ）インスタンス及び／またはコンテナの実行、バッチジョブの実行、プロビジョニングサーバなしでのコードの実行）、データ／ストレージリソース（例えば、オブジェクトストレージ、ブロックレベルストレージ、データアーカイブストレージ）、ネットワーク関連のリソース（例えば、計算リソース、コンテンツ配信ネットワーク（ＣＤＮ）、ドメイン名サービス（ＤＮＳ）のグループを含む仮想ネットワークの構成）、アプリケーションリソース（例えば、データベース、アプリケーションビルド／配備サービス）、機械学習訓練及び／またはホスティングなどの、様々なタイプのコンピュータ関連のリソースの１つ以上を利用する能力を、ユーザに提供する。これら及び他の計算リソースは、計算インスタンスを実行することができるハードウェア仮想化サービス１２８、データオブジェクトを記憶することができるストレージ仮想化サービス、機械学習モデルを訓練及び／またはホスティングする機械学習サービス１０３、などのサービスとして提供することができる。プロバイダネットワーク１０２のユーザ１３２（または「カスタマ」）は、カスタマアカウントと関係している１つ以上のユーザアカウントを利用することができるが、これらの用語は使用の環境に依存して、ある程度互換的に用いることができる。ユーザは電子デバイス１３０のクライアント１２６Ａアプリケーションを用いてプロバイダネットワーク１０２と対話して、例えば、ウェブサイトまたはアプリケーションなどとして実装されるコンソール１２２を介して、アプリケーションプログラミングインタフェース（ＡＰＩ）１２４呼び出しを用いることにより、１つ以上のインタフェースを経て１つ以上の中間ネットワーク１２５（例えば、インターネット）全体に通信することができる。インタフェース（複数可）は、より直接的にカスタマに提供されることができるサービスをサポートして対応している「バックエンド」サービスを含むプロバイダネットワーク１０２の制御プレーンの一部でもよいか、またはそのフロントエンドとして役割を果たしてもよい。
【００１５】
これら及び他の計算リソースサービスを提供するために、プロバイダネットワーク１０２は、仮想化技術を利用することができる。例えば、仮想化技術を用いて、ユーザに計算インスタンス（例えば、基礎をなすホストＯ／Ｓの上で作動しても作動しなくてもよいハイパーバイザを用いて作動するゲストオペレーティングシステム（Ｏ／Ｓ）を用いたＶＭ、ＶＭで作動しても作動しなくてもよいコンテナ、基礎をなすハイパーバイザのない「ベアメタル」ハードウェアで実行することができるインスタンス）を制御するかまたは利用する能力を提供することができ、そこで、１つまたは複数の計算インスタンスは単一の電子デバイスを用いて実施することができる。したがって、ユーザ１３２は様々なコンピューティングタスク（例えば、クライアント１２６Ｂを実行する）を実行するサービスプロバイダシステムによってホスティングされる計算インスタンスを直接利用することができるか、またはサービスプロバイダシステムによって実行されるコードを投入することによって計算インスタンスを間接的に利用することができ、これにより計算インスタンスを利用してコードを（通常は、ユーザは関係する基礎となる計算インスタンスのいかなる制御またはそれについての知識も有することなく）実行する。
【００１６】
いくつかの実施形態では、プロバイダネットワーク１０２は、ユーザが機械学習モデル１２０を訓練及び／またはホスティングすることを可能とする機械学習サービス１０３を含む。モデルは、種々の実施形態で様々な方法で実施することができる。１つの例として、モデル１２０は１つ以上のモデルインスタンス１１８Ａ〜１１８Ｎによって実施することができて、そこで、モデルインスタンス１１８Ａはモデル１２０用のコード／ロジックを含むコンテナを実行する仮想マシンを含むことができる。コンテナはユーザによって作成されていてもまたは作成されていなくてもよく、コードはいかなる数のプログラミング言語で書かれていてもよい。コンテナは、いくつかの実施形態では、ユーザがリソース（例えば、サーバ、ネットワーキング環境）の設定及び／または構成に関わる必要なしに、機械学習サービス１０３が、モデル１２０を訓練及び／またはホスティングすることができる、機械学習サービス１０３の仕様に適合するように作成される。例えば、コンテナは、特定ポート上でそれに出される特定の要求に応じること、特定のデータを特定のファイルシステムまたはネットワーク位置へ書き込むこと、特定のファイルシステムまたはネットワーク位置から特定のタイプのデータを読み込むことなどを必要とする場合がある。しかしながら、他の実施形態では、モデルインスタンス１１８Ａは、コンテナなしでモデル１２０を実行する仮想マシン、モデル１２０を実行しているかまたは実施しているソフトウェアアプリケーションまたはモデル１２０を（例えば、仮想マシン及び／またはコンテナなしで）実行する物理ホストデバイスさえ含むことができる。
【００１７】
いくつかの実施形態では、（例えば、モデルホスティングシステム１０４で）ホスティングされたモデル１２０は、モデルインスタンス１１８Ａ〜１１８Ｎのフリート１１６を用いてより大きいかより少ない量のトラフィックに適合するためにスケーリングすることができる。したがって、例えば、クライアント１２６Ａ〜１２６Ｂは、モデル１２０に（円『Ｂ』の）要求１３４を（円『Ａ１』及び／または円『Ａ２』で）出すことができ、これらの要求は目にみえて、または、透過的にフリート１１６のモデルインスタンス１１８Ａによって処理されることができて、したがって、それは呼び出しクライアントへ（円『Ｃ』の）応答１３６を出す。したがって、フリート１１６がより多くのモデルインスタンス１１８Ａ〜１１８Ｎを有するときに、それはリソースに関して均一かまたは不均一であり得るが、フリート１１６は通常、単一のモデルインスタンス１１８Ａまたはフリート１１６のサブセットより多くの要求１３４をある時間にわたって処理することができる。
【００１８】
フリート１１６のモデルインスタンス１１８Ａ〜１１８Ｎの数及び／またはタイプは、いくつかの実施形態では、自動スケーリングシステム１０６によって管理される。自動スケーリングシステム１０６は、モデルのフリート１１６を管理して最適性能をモデル１２０に提供するための様々な技術の１つ以上を使用することができる。
【００１９】
例えば、いくつかの実施形態では、自動スケーリングシステム１０６は、フリートの動作条件と関連した動作メトリック値１１０をモニタする（または取得する）ことに基づいて自動スケーリング、例えば、自動スケーリングエンジン１１４によるフリート１１６からのモデルインスタンスの追加及び／または削除を起動させることができる自動スケーリングモニタ１０８を含む。自動スケーリングモニタ１０８はフリートの直接観測／問合せ、ロギングサービスとの対話、フリートからのレポートデータ受信などによってこれらのメトリック値を取得することができる。自動スケーリングホスト型機械学習モデルの一部として利用することができる例示的なメトリック値１１０は、図３に示される。この図において、様々な動作メトリック値１１０が示されており、これはモニタすることができて、潜在的に、それを用いて、モデル１２０について動作しているモデルインスタンス１１８Ａ〜１１８Ｎの現在のフリート１１６が過剰、または過小供給されているかどうか、したがって、フリートの能力を追加すべきか削除すべきかどうかを決定することができる。例えば、モニタされた動作メトリック値１１０は、入出力メトリック３０２（例えば、モデル３０４によって処理されるために到達する要求の数、モデル３０６から発生する応答の数）、待ち時間メトリック３０８（例えば、要求当たりの平均処理時間３１０、要求のための最大処理時間３１２、要求のための最小処理時間３１４などの要求処理時間）、信頼性メトリック３１６（例えば、要求が実際に処理されているかどうか指し示す、故障率３１８など）、仮想マシン及び／または基礎をなすホストデバイスの利用率メトリック３２０（例えば、中央演算処理装置（ＣＰＵ）がどれほどビジーであるかすなわち「ＣＰＵ利用率」３２２、グラフィック処理装置（ＧＰＵ）がどれほどビジーであるかすなわち「ＧＰＵ利用率」３２４、現在または最近のメモリ使用状況３２６など）を含むことができるが、これらに限定するものではない。
【００２０】
特に、異なるタイプの動作メトリックは異なるタイプの条件を検出することができ、それは異なる方法で扱うことができる。１つの例として、モデルの異なる適用が、毎回、同じ「重み」を必ずしも有することができるというわけではない。例えば、ビデオセグメンテーションまたは注釈モデルは、第１の要求については、１０秒のビデオクリップに作用することができる一方で、第２の要求は３０分のビデオクリップを含むことができ、各クリップは非常に異なる方法でモデルによって処理されることができて、異なる量の実行時間または他のリソース（例えば、ＧＰＵ時間、メモリなど）を必要とし得る。したがって、動作メトリック（例えば待ち時間メトリック３０８または他のメトリック値）を用いて、実施形態は、潜在的に異なるタイプの要求に基づいて、正しくモデルをスケーリングするためにシステムをモニタすることができる。
【００２１】
いくつかの実施形態では、自動スケーリングモニタ１０８は、これらの動作メトリック値１１０の１つ以上を取得することができて、それらを分析して、フリートが過剰または、過小供給されているかどうか判定するために、モデル１２０に対する作業負荷を特徴づけることができる。この結果によって、自動スケーリングモニタ１０８は、フリートへマシンを追加するべきかそこから削除するべきかどうか決定することができ、自動スケーリングエンジン１１４に要求（例えば、ＡＰＩ要求、関数呼び出しなど）を送信してスケーリングを実行することができる。自動スケーリングエンジン１１４は、当業者によって周知であるか直ちに導き出せる特定の実装に特化して作られることができる様々な異なるタイプの技術を用いて、スケーリングを実行することができる。
【００２２】
いくつかの実施形態では、ＡＰＩコールは自動スケーリングモニタ１０８及び／または予測自動スケーリング分析エンジン１１２（本明細書において後述する）により行うことができ、いくつかの実施形態では、類似のＡＰＩコールは、（例えば、モデルインスタンス１１８のフリートのサイズを直接管理するために）ＡＰＩ１２４を介してクライアント１２６Ａ〜１２６により行うことができる。一例として、「機械学習モデル能力更新」などの名称を有するＡＰＩコールを使用することができ、それはモデル及び／またはフリートの一意の識別子、追加されるかまたは削除されるマシンの数などの引数を含むことができる。
【００２３】
動作メトリック値１１０のモニタリング及びフリート１１６の自動スケーリングを実行するべきかどうかに関する判定は、モデルホスティングシステム１０４にモデル１２０を配備したユーザ１３２によって構成されることができる。例えば、図４に進むと、メトリック値チャート４０４を提供しているユーザインタフェース４０２Ａ及びホスティングされた機械学習モデルの自動スケーリングを構成するためのユーザインタフェース４０２Ｂが例示されている。これらのユーザインタフェース４０２Ａ〜４０２Ｂの一方または両方は、プロバイダネットワーク１０２のコンソール１２２によって設けられることができ、それはユーザ１３２により用いられるウェブアプリケーションまたはＯ／Ｓに特有のアプリケーションを駆動するウェブサーバを含むことができる。
【００２４】
いくつかの実施形態では、コンソール１２２は、ユーザが「反応性」自動スケーリングを（例えば、チェックボックス、ボタンなどのユーザインタフェース入力要素を介して）使用可能または使用不可にすることができるユーザインタフェース４０２Ｂを提供する。ユーザインタフェース４０２Ｂは、ユーザが１つ以上のメトリック条件４５０を指定することを可能にする機能性を提供することもできる。図示するように、２つのタイプのメトリック条件４５０が利用され、追加フリートリソースの「スケールアップ」が生じるもの及びフリートリソースの「スケールダウン」が生じるものである。しかしながら、他の実施形態はユーザ設定可能な「スケールアップ」タイプのメトリック条件を単に許容するだけでもよく、その代わりに、自動スケーリングモニタ１０８が独自に「スケールダウン」の判定を実行してもよい。この逆も、いくつかの実施形態では正しいことであり得て、したがって、ユーザは「スケールダウン」条件を指定することができる一方で、自動スケーリングモニタ１０８が単独で「スケールアップ」の判定を実行してもよい。
【００２５】
図４に示すように、追加リソース（例えば、モデルインスタンス１１８Ａ〜１１８Ｎ）をフリートに追加するユーザの希望を示す２つのメトリック条件が満たされている。第１のメトリック条件は、要求当たりの待ち時間が２つの期間（例えば、各期間が異なる環境において異なって定められてもよい場合で、期間サイズはメトリック収集と収集との間の時間によって定義されてもよい場合）に対する２００ミリ秒より長いときに、フリートがスケールアップされるべきであることを示す。第２のメトリック条件は、ＣＰＵ利用率が９０％より大きいとしてこれまでに検出されているときに、フリートがスケールアップされるべきであることを示す。
【００２６】
この図示の例において、ユーザインタフェース４０２Ｂは、ＣＰＵ利用率が２連続期間に対して３％未満である場合、１つ以上のモデルインスタンス１１８Ａ〜１１８Ｎがフリートから削除されるべきである「スケールダウン」条件も示す。
【００２７】
いくつかの実施形態では、メトリック条件４５０は、満たされている対応するメトリックの１つか複数の条件についてフリートがどれだけスケーリングされるべきであるか（例えば、パーセンテージまたは倍数、固定量など）について示している（図示していない）スケーリングファクタとさらに関連していてもよい。しかしながら、いくつかの実施形態では、自動スケーリングモニタ１０８は単に一度に１つのモデルインスタンスによってフリートをスケールアップまたはスケールダウンすることができるか、または異なる量だけフリートをスケールアップまたはスケールダウンすることができ、それはいくつかの他の情報またはイベントに基づいて静的に構成することができるかまたは動的であり得る。
【００２８】
メトリック条件を組み立てる際、さもなければ、フリートを管理及びモニタする際に支援するために、いくつかの実施形態では、コンソール１２２は、経時的に最近の動作メトリック値及び／またはフリート内のモデルインスタンス１１８Ａ〜１１８Ｎの数を記述しているデータ（例えば、チャート４０４）を、ユーザインタフェース４０２Ａに提供することができる。示すように、「要求当たりの平均処理時間」動作メトリック値４０８は、チャート４０４のドットとして示される。いくつかの実施形態では、複数の種類の動作メトリック値４０８を一回につき１種類かまたは一度に複数種示すことができ、おそらく他の視覚化タイプまたは表現（例えば、表計算ソフトまたは値リスト）を使用して示すことができる。
【００２９】
例示的なチャート４０４は破線を使用して経時的にフリートのモデルインスタンス１１８Ａ〜１１８Ｎの数（すなわち、インスタンスカウント４１０）も表して、そこで、左側の破線の第１の部分は１０個のインスタンスがフリートにあることを示し、それから、右側の破線の第２の部分は２０個のインスタンスがフリートにあることを示す。この場合、表されたチャート４０４は、自動スケーリングイベント４０６を含む。自動スケーリングイベント４０６は、要求当たりの平均処理時間が２つの期間の間の２００ミリ秒（２００ｍｓ）より長かったという点で、ユーザインタフェース４０２Ｂに示される第１のメトリック条件４５０に対応し、その結果、モデルインスタンス１１８Ａ〜１１８Ｎのフリートは１０個のインスタンスから２０個のインスタンスまでスケールアップされた。
【００３０】
図１に戻ると、電子デバイス１３０を経たユーザ１３２は円『１』でコンソール１２２を利用してモデルインスタンスのフリート用の自動スケーリングを（例えば、１つ以上のユーザインタフェース４０２Ａ〜４０２Ｂを用いて）構成することができ、それによってユーザの電子デバイス１３０に円『２Ａ』で１つ以上のＡＰＩコールを発行させ、これは円『２Ｂ』で自動スケーリングシステム１０６用のユーザの優先度に従って自動スケーリングを構成するメッセージに変換されて、それは円『３』で開始することができる。
【００３１】
このようなメトリック条件ベースの機構は、有益に現在の条件に反応して、フリートの動作性能を改善する。しかしながら、このような機構は「反応型」のため、システムは、基本的にいくつかの潜在的に問題となる条件が進展するのを待つことを必要とする場合がある。したがって、フリートがおそらく過小供給であるために、短い時間の間にモデルに対するいくらかの処理遅延／問題が発生し得る可能性がある。多くのアプリケーションが、メトリック条件を慎重に組み立ててフリートのリソースを制御することによって重大な問題を回避することができる一方で、他のアプリケーションでは、このような条件は容易に組み立てることができず、及び／または、いかなる処理遅延も許容できない可能性がある。
【００３２】
したがって、いくつかの実施形態は、予測自動スケーリングを代わりに、または追加的に実施することができる。履歴上の傾向で（例えば、予測または機械学習技術を用いて）分析することによって、実施形態は、トラフィック量の急上昇または急激な低下をそれらが発生する前に予測することができて、能力を事前に追加するかまたは削除して来るべきスパイク（または小康状態）に非常により滑らかな移行を提供する。
【００３３】
１つの例として、ビデオアプリケーションは１日の夕方の早い時間ごろ大きなトラフィックスパイクを有することがあり得て、それは人々が就寝時刻の前に夜にビデオを見るかまたはビデオアプリケーションを使用することを望むため、一週間または勤務日（例えば、月曜〜金曜）の間、毎晩起こり得る。したがって、実施形態は、アプリケーションに対するトラフィックの履歴の記録を分析して、（例えば、午後８時に）繰り返されているトラフィックスパイクを検出して、それに応じて、例えば、予測されたトラフィックスパイクの前に（例えば、午後７時５５分に）、追加能力／リソースでフリート（及び／または本明細書において後述するように、ウォームプール）を拡大することによって、反応することができる。
【００３４】
この目的で、図１では、自動スケーリングシステム１０６の予測自動スケーリング分析エンジン（「ＰＡＡＥ」）１１２は、モデルフリート１１６の動作メトリック／特性に基づいて予測自動スケーリング（「ＰＡ」）モデル１１３を造ることができて、ＰＡモデル１１３を使用して、トラフィック／ロードの急上昇及び／または急激な低下を予測することができる。その結果、ＰＡＡＥ１１２は、自動スケーリングエンジン１１４にそれに応じてフリートをスケールアップまたはスケールダウンさせることができる。
【００３５】
例えば、図５を参照すると、これは、いくつかの実施形態による、プロダクション推論のための自動スケーリングホスト型機械学習モデルのための予測自動スケーリングポリシー５１０を生成するために用いることができるＰＡモデル１１３に組み込むことができる動作メトリック値の視覚表現５００を示している図である。ＰＡモデル１１３は、予測モデルまたは機械学習モデルなどの様々な形態をとることができる。
【００３６】
動作メトリックの図示表現５００は、一定期間にわたる秒当たりの要求の数を示しているグラフである。このグラフの中で、複数の周期的なバースト５０５、例えば、毎晩午後６時３０分と午後１１時１５分の終了の間のモデル使用の反復スパイクが存在するものとして例示する。このようなバーストは検出されてモデル１１３に組み込まれることができ、それは自動スケーリングがどのように実行されるべきかについて制御するために用いることができる。
【００３７】
１つの例として、ＰＡモデル１１３を用いて、周期的なトラフィックバースト５０５を識別することができ、その結果、自動スケーリングは、予測されたトラフィックバースト５０５が発生する前に実行してモデルが容易にバーストに適応することができるようにすることができる。したがって、１つの場合では、いくつかの代表的な自動スケーリングアクション５１０、例えば毎日午後６時１５分（これは午後６時３０分の予測されたバーストの前の時間５１５である）にモデルフリートインスタンスカウントを２倍にすること、及び／または毎日午後１１時３０分（これは午後１１時１５分の予測されたバーストの終了の後の時間５２０である）に以前のモデルフリートインスタンスカウントに戻すことを、実行することができる。
【００３８】
このような予測技術によって、実施形態は、トラフィックのバーストが到達する前に、フリートの動作を平滑化することができる。しかしながら、それでも予想外のバーストまたは小康状態が発生し得る可能性があり、したがって、いくつかの実施形態は（ＰＡＡＥ１１２の）予測技術及び（自動スケーリングモニタ１０８の）反応技術の両方を使用していかなる予想外のバーストまたは小康状態にも反応して、結果としてフリートのための極めて効率的な動作になる。
【００３９】
図２に戻ると、実施形態は、ウォームプールを使用してフリートへの追加的モデルインスタンスの追加をさらに容易にすることができる。図２は、いくつかの実施形態による、プロダクション推論のための自動スケーリングホスト型機械学習モデルのインスタンス２０４Ａ〜２０４Ｍのウォームプール２０２の使用を示しているブロック図である。いくつかの実施形態では、予測されたバーストの前にフリート１１６に追加モデルインスタンスを追加することの代わりに（または、それに加えて）、自動スケーリングエンジン１１４は、インスタンス２０４Ａ〜２０４Ｍのウォームプール２０２を作成することができる。これは仮想マシンをインスタンス化すること、これらの仮想マシンに適切なソフトウェア（及びおそらくモデル１０２）をロードすること、仮想マシンのためのアーキテクチャ上のサポート構造（例えば、ネットワーキング）を構成することなどを含むことができ、そのため、これらのウォームプールインスタンス２０４Ａは、可能性がある性能の問題が存在する一方で、これらの「ウォーミング」タスクを高速で実行することを必要とすることとは対照的に、極めて短時間で既存のフリート１１６に追加されるために利用でき、したがって、フリートがバーストシナリオの間に見舞われ得る面倒なことまたは困難を減らす。
【００４０】
したがって、いくつかの実施形態では、ＰＡＡＥ１１２はバーストを予測することができて、インスタンス２０４Ａ〜２０４Ｍのウォームプール２０２を作成することができ、その後で、自動スケーリングモニタ１０８がその構成されたメトリック条件を使用して問題を検出すると、それは１つ以上のウォームプールインスタンス２０４Ａ〜２０４Ｍを短時間でモデルフリート１１６の中のアクティブなサービスに移動してバーストについて支援することができる。
【００４１】
さらなる詳細のために、図６は、いくつかの実施形態による、プロダクション推論のためのホスティングされた機械学習モデルの反応性自動スケーリングのための例示的な動作６００を示しているフローチャートである。動作６００（または本明細書において記載されている他のプロセス、または変形物、及び／またはそれらの組み合わせ）の一部もしくは全部は、ハードウェアまたはそれらの組み合わせによって、実行可能命令によって設定される１つ以上のコンピュータシステムのコントロールの下で実行されて、１つ以上のプロセッサに集合的に実行しているコード（例えば、実行可能命令、１つ以上のコンピュータプログラムまたは１つ以上のアプリケーション）として実行される。コードは、例えば、１つ以上のプロセッサによって実行できる命令を含むコンピュータプログラムの形でコンピュータ可読記憶媒体に記憶されている。コンピュータ可読記憶媒体は、非一時的である。いくつかの実施形態では、動作６００の１つ以上（またはすべて）は、他の図の自動スケーリングシステム１０６によって実行される。
【００４２】
動作６００は、ブロック６０５で、機械学習モデルをホスティングする１つ以上のモデルインスタンスのフリートと関連した１つ以上の動作メトリック値のセットを取得することを含む。機械学習モデルは、線形回帰、ロジスティック回帰、決定木、サポートベクトルマシン（ＳＶＭ）、ナイーブベイズ、Ｋ近傍法、Ｋ平均法、ランダムフォレスト、次元縮退アルゴリズム、勾配ブースティングアルゴリズム、リカレントニューラルネットワーク（ＲＮＮ）または畳込みニューラルネットワーク（ＣＮＮ）などのニューラルネットワークなどを含むがこれに限らず、様々なタイプの機械学習アルゴリズムのいずれかに基づくことができる。１つ以上のモデルインスタンスは、ユーザによって作成されるロジックを含むコンテナを含むことができ、コンテナを実行する仮想マシンをさらに含むことができる。モデルインスタンスのフリートは１つ以上のエンドポイントの背後で作動することができ、したがって、ＡＰＩコールはそれらのエンドポイントへのものであって入力データに対してモデルを実行する（または適用する）ことができ、応答はモデルからの結果を含んでそこに送られてもよい。１つ以上の動作メトリック値は、入出力メトリック、待ち時間メトリック、信頼性メトリック及び／または利用率メトリックのいずれかを含むことができる。
【００４３】
動作６００はまた、ブロック６１０で、カスタマ指定のメトリック条件が動作メトリック値のセットに基づいて満たされているかどうかについて判定することを含む。カスタマ（またはユーザ）は、コンソールを用いてメトリック条件を指定することができる。条件は、少なくとも１つの動作メトリックを示すことができて、閾値及び比較演算子（例えば、より大きい、より小さい、等しい）をさらに示すことができる。条件は、ブロック６０５においてモニタされる現在または最近の動作メトリック値を用いることにより評価することができる。ブロック６１０は、周期的に（例えば、スケジュール通りに）実行することができるか、または、条件の動作メトリック値が（ブロック６０５を経て）変化したと検出されるときに実行することができる。
【００４４】
動作６００は、ブロック６１５で、モデルインスタンスのフリートに対して能力を追加するか削除することを含む。いくつかの実施形態では、能力を追加することは、ウォームプールからフリートにインスタンスを移動することを含む。いくつかの実施形態では、能力を追加することは、別の１つ以上のモデルインスタンスをインスタンス化すること、例えば、１つ以上のＶＭを起動すること、ＶＭを構成すること、モデルをＶＭにプロビジョニングすることなど含む。能力を削除することは、いくつかの実施形態では、１つ以上のモデルインスタンスをシャットダウンすること（または終了させること）を含む。追加されるかまたは削除される能力の量は、カスタマ指定されたメトリック条件の指標に基づいて決定されることができるか、または、静的に構成されたインクリメント量に基づくことなどがあり得る。
【００４５】
図７は、いくつかの実施形態による、プロダクション推論のためのホスティングされた機械学習モデルの予測自動スケーリングのための例示的な動作を示しているフローチャートである。いくつかの実施形態では、動作７００の１つ以上（またはすべて）は、他の図の自動スケーリングシステム１０６によって実行される。
【００４６】
動作７００は、ブロック７０５で、機械学習モデルをホスティングする１つ以上のモデルインスタンスのフリートと関連した１つ以上の動作メトリック値を取得すること（またはモニタすること）を含む。機械学習モデルは、線形回帰、ロジスティック回帰、決定木、サポートベクトルマシン（ＳＶＭ）、ナイーブベイズ、Ｋ近傍法、Ｋ平均法、ランダムフォレスト、次元縮退アルゴリズム、勾配ブースティングアルゴリズム、リカレントニューラルネットワーク（ＲＮＮ）または畳込みニューラルネットワーク（ＣＮＮ）などのニューラルネットワークなどを含むがこれに限らず、様々なタイプの機械学習アルゴリズムのいずれかに基づくことができる。１つ以上のモデルインスタンスは、ユーザによって作成されるロジックを含むコンテナを含むことができ、コンテナを実行する仮想マシンをさらに含むことができる。モデルインスタンスのフリートは１つ以上のエンドポイントの背後で作動することができ、したがって、ＡＰＩコールはそれらのエンドポイントへのものであって入力データに対してモデルを実行する（または適用する）ことができ、応答はモデルからの結果を含んでそこに送られてもよい。１つ以上の動作メトリック値は、入出力メトリック、待ち時間メトリック、信頼性メトリック及び／または利用率メトリックのいずれかを含むことができる。
【００４７】
ブロック７１０で、動作７００は、モニタされた動作メトリック値に基づいてモデルを生成することを含む。生成は、モデルインスタンスのフリートと関連した履歴動作メトリックデータのセットに予測または機械学習技術を適用してモデルを生成することを含むことができる。いくつかの実施形態では、モデルは、例えば、現在の動作メトリックデータ（または現在の日付及び／または時間）を履歴動作メトリックデータの検出パターンと比較することによって、トラフィックの急上昇または急激な低下を予測することができる。
【００４８】
動作７００はまた、ブロック７１５で、モデルを用いて、機械学習モデルに対する使用の量のバーストは第１の時間に発生すると予測されるということを判定することを含む。判定は、最近または現在の動作メトリックデータをモデルに入力して、結果を分析することを含むことができる。結果は数値であってもよく、それは予想されるトラフィック、処理時間、リソース利用率などのレベルを示すことができ、将来の時間のフリートが関係する。
【００４９】
動作７００はまた、ブロック７２０で、第１の時間が発生する前に、モデルインスタンスのフリートに、または、ウォームプールに追加能力を追加することを含む。いくつかの実施形態では、フリートに能力を追加することは、ウォームプールからフリートにインスタンスを移動することを含む。いくつかの実施形態では、能力を追加することは、別の１つ以上のモデルインスタンスをウォームプールに、または、フリートにインスタンス化すること、例えば、１つ以上のＶＭを起動すること、ＶＭを構成すること、そしておそらくモデルをＶＭにプロビジョニングすることなど含む。
【００５０】
図８は、いくつかの実施形態による、例示的プロバイダネットワーク（または「サービスプロバイダシステム」）環境を示す。プロバイダネットワーク８００は、カスタマが、プロバイダネットワークまたは１つ以上のデータセンターのネットワークの中のデバイスに実装される計算及び記憶資源を含むがこれに限らず仮想化されたリソースのインスタンス８１２を、購入するか、賃借するかまたは、取得することを可能にする１つ以上の仮想化サービス８１０を経てリソース仮想化をカスタマに提供することができる。ローカルインターネットプロトコル（ＩＰ）アドレス８１６は、リソースインスタンス８１２と関連付けられてもよく、ローカルＩＰアドレスは、プロバイダネットワーク８００上のリソースインスタンス８１２の内部ネットワークアドレスである。いくつかの実施形態では、プロバイダネットワーク８００はまた、カスタマがプロバイダ８００から取得することができるパブリックＩＰアドレス８１４及び／またはパブリックＩＰアドレス範囲（例えば、インターネットプロトコルバージョン４（ＩＰｖ４）またはインターネットプロトコルバージョン６（ＩＰｖ６）アドレス）を提供することができる。
【００５１】
従来は、プロバイダネットワーク８００は、仮想化サービス８１０を介して、サービスプロバイダのカスタマ（例えば、１つ以上のカスタマデバイス８５２を含む１つ以上のクライアントネットワーク８５０Ａ〜８５０Ｃを操作するカスタマ）が動的に、カスタマに割り当てられるかまたは割り付けられる少なくともいくつかのパブリックＩＰアドレス８１４をカスタマに割り当てられる特定リソースインスタンス８１２と関連付けることを可能にしてもよい。プロバイダネットワーク８００はまた、カスタマが（以前、カスタマに割り付けられた１つの仮想化された計算リソースインスタンス８１２にマップされた）パブリックＩＰアドレス８１４を、カスタマにも割り付けられる別の仮想化された計算リソースインスタンス８１２にリマップすることを可能にしてもよい。仮想化された計算リソースインスタンス８１２及びサービスプロバイダにより提供されるパブリックＩＰアドレス８１４を用いて、カスタマネットワーク（複数可）８５０Ａ〜８５０Ｃの運営者などのサービスプロバイダのカスタマは、例えば、カスタマに特有のアプリケーションを実装することができて、インターネットなどの中間ネットワーク８４０上にカスタマのアプリケーションを提示することができる。それから、中間ネットワーク８４０上の他のネットワークエンティティ８２０は、カスタマネットワーク（複数可）８５０Ａ〜８５０Ｃによって発行される目的パブリックＩＰアドレス８１４にトラフィックを生成することができ、トラフィックは、サービスプロバイダデータセンターに経路指定されて、データセンターでネットワーク基板を経て、現在目的パブリックＩＰアドレス８１４にマップされている仮想化された計算リソースインスタンス８１２のローカルＩＰアドレス８１６まで、経路指定される。同様に、仮想化された計算リソースインスタンス８１２からの応答トラフィックは、ネットワーク基板を経由して中間ネットワーク８４０へ戻って、ソースエンティティ８２０に経路指定することができる。
【００５２】
本明細書で用いられる場合、ローカルＩＰアドレスは、例えば、プロバイダネットワークのリソースインスタンスの、内部であるか「私設の」ネットワークアドレスを指す。ローカルＩＰアドレスは、インターネット技術特別調査委員会（ＩＥＴＦ）Ｒｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔｓ（ＲＦＣ）１９１８によって確保されている、及び／またはＩＥＴＦ  ＲＦＣ４１９３で指定されたアドレス形式の、アドレスブロックの中にあることができて、プロバイダネットワークの中で変更可能でもよい。プロバイダネットワークの外側から生じているネットワークトラフィックは、ローカルＩＰアドレスまで直接経路指定はされず、その代わりに、トラフィックは、リソースインスタンスのローカルＩＰアドレスにマップされたパブリックＩＰアドレスを使用する。プロバイダネットワークは、ネットワークアドレス変換（ＮＡＴ）または類似の機能性を提供してパブリックＩＰアドレスからローカルＩＰアドレスへの、及びその逆のマッピングを実行するネットワークデバイスまたは機器を含むことができる。
【００５３】
パブリックＩＰアドレスは、サービスプロバイダによって、または、カスタマによってリソースインスタンスに割り当てられる、インターネット変更可能ネットワークアドレスである。パブリックＩＰアドレスに経路指定されたトラフィックは、例えば１：１のＮＡＴを介して変換されて、リソースインスタンスのそれぞれのローカルＩＰアドレスに転送される。
【００５４】
いくつかのパブリックＩＰアドレスは、プロバイダネットワークインフラによって特定リソースインスタンスに割り当てられることができ、これらのパブリックＩＰアドレスは、標準パブリックＩＰアドレスまたは単に標準ＩＰアドレスと呼ばれてもよい。いくつかの実施形態では、リソースインスタンスのローカルＩＰアドレスに対する標準ＩＰアドレスのマッピングは、すべてのリソースインスタンスタイプに対するデフォルト起動構成である。
【００５５】
少なくともいくつかのパブリックＩＰアドレスは、プロバイダネットワーク８００のカスタマに割り付けることができるかまたはカスタマによって取得されることができ、それから、カスタマは、カスタマに割り当てられる特定リソースインスタンスに、それらの割付けパブリックＩＰアドレスを割り当てることができる。これらのパブリックＩＰアドレスは、カスタマパブリックＩＰアドレスまたは単にカスタマＩＰアドレスと呼ばれてもよい。標準ＩＰアドレスの場合の様にプロバイダネットワーク８００によってリソースインスタンスに割り当てられる代わりに、カスタマＩＰアドレスは、例えばサービスプロバイダにより提供されるＡＰＩを介して、カスタマによってリソースインスタンスに割り当てられてもよい。標準ＩＰアドレスとは異なり、カスタマＩＰアドレスは、カスタマアカウントに割り付けられて、必要または要求に応じてそれぞれのカスタマによって他のリソースインスタンスにリマップされてもよい。カスタマＩＰアドレスは特定リソースインスタンスでなくカスタマのアカウントと関連付けられており、カスタマはそのＩＰアドレスを、カスタマがそれを解放することを選択するまで制御する。従来の静的ＩＰアドレスとは異なり、カスタマＩＰアドレスは、カスタマがカスタマのパブリックＩＰアドレスをカスタマのアカウントと関連した任意のリソースインスタンスにリマップすることによってリソースインスタンスまたは可用性ゾーン障害をマスキングすることを可能にする。カスタマＩＰアドレスは、例えば、カスタマが、カスタマＩＰアドレスを交換リソースインスタンスに再マッピングすることによって、カスタマのリソースインスタンスまたはソフトウェアに関する問題を避けて技術作業をするのを可能にする。
【００５６】
図９は、いくつかの実施形態による、ストレージ仮想化サービス及びハードウェア仮想化サービスをカスタマに提供する例示のプロバイダネットワークのブロック図である。ハードウェア仮想化サービス９２０は、複数の計算リソース９２４（例えば、ＶＭ）をカスタマに提供する。計算リソース９２４は、例えば、プロバイダネットワーク９００のカスタマに（例えば、カスタマネットワーク９５０を実装するカスタマに）賃貸またはリースされてもよい。各計算リソース９２４は、１つ以上のローカルＩＰアドレスを備えていてもよい。プロバイダネットワーク９００は、計算リソース９２４のローカルＩＰアドレスからパブリックインターネット行き先まで、及び、パブリックインターネットソースから計算リソース９２４のローカルＩＰアドレスまでパケットを経路指定するように構成されてもよい。
【００５７】
プロバイダネットワーク９００は、例えば、ローカルネットワーク９５６を介して中間ネットワーク９４０に連結されたカスタマネットワーク９５０と、中間ネットワーク９４０にそしてプロバイダネットワーク９００に結合された、ハードウェア仮想化サービス９２０を経て仮想計算システム９９２を実装する能力を提供することができる。いくつかの実施形態では、ハードウェア仮想化サービス９２０は１つ以上のＡＰＩ９０２（例えばウェブサービスインタフェース）を提供することができ、それを介して、カスタマネットワーク９５０はハードウェア仮想化サービス９２０によって提供される機能性に、例えばコンソール９９４（例えば、ウェブベースのアプリケーション、独立型アプリケーション、モバイルアプリケーションなど）を介してアクセスすることができる。いくつかの実施形態では、プロバイダネットワーク９００で、カスタマネットワーク９５０の各仮想計算システム９９２は、リースされるか、賃貸されるか、または、カスタマネットワーク９５０に提供される計算リソース９２４に対応することができる。
【００５８】
仮想計算システム９９２及び／または別のカスタマデバイス９９０のインスタンスから（例えば、コンソール９９４を介して）、カスタマは、例えば１つ以上のＡＰＩ９０２によって、ストレージ仮想化サービス９１０の機能性にアクセスすることができ、プロバイダネットワーク９００により提供される仮想データストア９１６のストレージ資源９１８Ａ〜９１８Ｎからのデータにアクセスしそしてそれにデータを記憶する。いくつかの実施形態では、仮想化されたデータストアゲートウェイ（図示せず）は、少なくともいくつかのデータ（例えば頻繁にアクセスされたか重要なデータ）をローカルにキャッシュに登録することができ、またデータの一次記憶（仮想化データストア９１６）が維持されるように、１つ以上の通信チャネルを介して仮想化されたデータストアサービス９１０と通信してローカルキャッシュから新規か修正されたデータをアップロードすることができる、カスタマネットワーク９５０に設けられてもよい。いくつかの実施形態では、ユーザは、仮想計算システム９９２を介して及び／または別のカスタマデバイス９９０上に、仮想データストア９１６ボリュームをマウントしてアクセスすることができ、それはユーザにとってはローカルの仮想化記憶装置９９８として見える。
【００５９】
図９に示されていないが、仮想化サービス（複数可）は、ＡＰＩ（複数可）９０２を介してプロバイダネットワーク９００の中のリソースインスタンスからアクセスされることもできる。例えば、カスタマ、機器サービスプロバイダまたは他のエンティティは、ＡＰＩ９０２を介してプロバイダネットワーク９００上のそれぞれの仮想ネットワーク内から仮想化サービスにアクセスして、仮想ネットワークの中の、または、別の仮想ネットワークの中の１つ以上のリソースインスタンスの割付けを要求することができる。
【００６０】
実例となるシステム
【００６１】
いくつかの実施形態では、本明細書において記載されているプロダクション推論のための自動スケーリングホスト型機械学習モデルの技術のすべてまたは一部を実装するシステムは、１つ以上のコンピュータアクセス可能な媒体、例えば図１０に図示されるコンピュータシステム１０００を含むかまたはそれにアクセスするように構成される汎用コンピュータシステムを含むことができる。図示された実施形態において、コンピュータシステム１０００は、入出力（Ｉ／Ｏ）インタフェース１０３０を介してシステムメモリ１０２０に結合された１つ以上のプロセッサ１０１０を含む。コンピュータシステム１０００は、Ｉ／Ｏインタフェース１０３０に結合されたネットワークインタフェース１０４０をさらに含む。図１０が単一のコンピューティング装置としてコンピュータシステム１０００を示す一方で、種々の実施形態では、コンピュータシステム１０００は１つのコンピューティング装置または単一のコンピュータシステム１０００として連携するように構成される任意の数のコンピューティング装置を含むことができる。
【００６２】
種々の実施形態において、コンピュータシステム１０００は、１つのプロセッサ１０１０を含んでいるユニプロセッサシステムまたはいくつか（例えば、２、４、８または別の適切な数）のプロセッサ１０１０を含んでいるマルチプロセッサシステムでもよい。プロセッサ１０１０は、命令を実行することができるいかなる適切なプロセッサでもあってもよい。例えば、種々の実施形態で、プロセッサ１０１０は、様々な命令セットアーキテクチャ（ＩＳＡ）、例えばｘ８６、ＡＲＭ、ＰｏｗｅｒＰＣ、ＳＰＡＲＣまたはＭＩＰＳ  ＩＳＡまたは他のあらゆる適切なＩＳＡのいずれかを実装している汎用または埋込み型プロセッサでもよい。マルチプロセッサシステムで、プロセッサ１０１０のそれぞれは、一般に、しかし、必然的にでなく、同じＩＳＡを実装することができる。
【００６３】
システムメモリ１０２０は、プロセッサ（複数可）１０１０がアクセス可能な命令及びデータを記憶することができる。種々の実施形態において、システムメモリ１０２０は、あらゆる適切なメモリ技術、例えばランダムアクセスメモリ（ＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、同期型ダイナミックＲＡＭ（ＳＤＲＡＭ）、不揮発性／フラッシュタイプメモリまたは任意の他のタイプのメモリを用いて実装することができる。図示された実施形態において、１つ以上の望ましい機能（例えばプロバイダネットワーク環境の仮想ネットワークの大きさを変更するための上述の方法、技術及びデータ）を実装しているプログラム命令及びデータは、示すようにコード１０２５及びデータ１０２６としてシステムメモリ１０２０の中に記憶されている。
【００６４】
一実施形態において、Ｉ／Ｏインタフェース１０３０は、プロセッサ１０１０、システムメモリ１０２０と、ネットワークインタフェース１０４０または他の周辺インタフェースを含む、デバイスのあらゆる周辺デバイスの間の、Ｉ／Ｏのトラフィックを調整するように構成することができる。いくつかの実施形態では、Ｉ／Ｏインタフェース１０３０は、あらゆる必要なプロトコル、タイミングまたは他のデータ変換を実行して、１つのコンポーネント（例えば、システムメモリ１０２０）から、別のコンポーネント（例えば、プロセッサ１０１０）による使用に適しているフォーマットに、データ信号を変換することができる。いくつかの実施形態では、Ｉ／Ｏインタフェース１０３０は、例えば、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バス標準またはＵｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（ＵＳＢ）標準の異型などの種々のタイプの周辺バスを通して接続されるデバイスのためのサポートを含むことができる。いくつかの実施形態では、Ｉ／Ｏインタフェース１０３０の機能は、ノースブリッジ及びサウスブリッジなどの２つ以上の別のコンポーネントに分割されてもよい。また、いくつかの実施形態では、Ｉ／Ｏインタフェース１０３０の機能性の一部またはすべて、例えばシステムメモリ１０２０に対するインタフェースは、プロセッサ１０１０に直接組み込まれていてもよい。
【００６５】
ネットワークインタフェース１０４０は、データが、コンピュータシステム１０００と、例えば１つまたは複数のネットワーク１０５０に接続される図１にて図示したような他のコンピュータシステムまたはデバイスなどの他のデバイス１０６０との間で交換されることができるように構成されてもよい。種々の実施形態において、ネットワークインタフェース１０４０は、任意の適切な優先であるか無線の一般のデータネットワーク、例えばイーサネット（登録商標）ネットワークのタイプを介して、通信をサポートすることができる。加えて、ネットワークインタフェース１０４０は、アナログ音声ネットワークまたはデジタルファイバ通信ネットワークなどの電気通信／電話ネットワークを介して、ファイバチャネルＳＡＮなどのストレージエリアネットワーク（ＳＡＮ）を介して、または、任意の他の適切なタイプのネットワーク及び／またはプロトコルのＩ／Ｏを介して通信をサポートすることができる。
【００６６】
いくつかの実施形態では、システムメモリ１０２０は、プロバイダネットワーク環境のカスタマホスト型エンドポイントを提供するための、図１について上記の通りのプログラム命令及びデータを記憶するように構成されている、コンピュータアクセス可能媒体の一実施形態でもよい。しかしながら、他の実施形態では、プログラム命令及び／またはデータは、異なる種類のコンピュータアクセス可能な媒体に受信されるか、送信されるかまたは、記憶されてもよい。一般的に言えば、コンピュータアクセス可能媒体は、非一時的記憶媒体または磁気であるか光学的媒体などのメモリ媒体、例えば、Ｉ／Ｏインタフェース１０３０を介してコンピュータシステム１０００に結合されたディスクまたはＤＶＤ／ＣＤを含むことができる。非一時的コンピュータアクセス可能記憶媒体はまた、ＲＡＭ（例えば、ＳＤＲＡＭ、二重データレート（ＤＤＲ）ＳＤＲＡＭ、ＳＲＡＭなど）、読出し専用メモリ（ＲＯＭ）などのいかなる揮発性または不揮発性媒体を含むことができ、これはシステムメモリ１０２０または別のタイプのメモリとしてコンピュータシステム１０００のいくつかの実施形態に含まれてもよい。さらに、コンピュータアクセス可能媒体は、ネットワークインタフェース１０４０を介して実装されることができるような、ネットワーク及び／または無線リンクなどの通信媒体を介して搬送される、伝送媒体または信号、例えば電気的か、電磁的か、デジタルの信号を含むことができる。
【００６７】
種々の実施形態は、コンピュータアクセス可能媒体に前述の説明に従って実装される命令及び／またはデータを、受信するか、送信するかまたは記憶することをさらに含むことができる。一般的に言えば、コンピュータアクセス可能媒体は、磁気であるか光学的媒体などの記憶媒体またはメモリ媒体、例えば、ディスクまたはＤＶＤ／ＣＤ−ＲＯＭ、そしてＲＡＭ（例えば、ＳＤＲＡＭ、ＤＤＲ、ＲＤＲＡＭ、ＳＲＡＭなど）、ＲＯＭなどのような揮発性または不揮発性媒体、ならびに、ネットワーク及び／または無線リンクなどの通信媒体を介して搬送される、電気的か、電磁的か、デジタルの信号などの伝送媒体または信号を含むことができる。
【００６８】
前述の説明において、種々の実施形態が記載されている。説明を目的として、実施形態の完全な理解を提供するために特定の構成及び詳細が示される。しかしながら、本実施形態が特定の詳細を伴うことなく実施され得ることも当業者に明らかであろう。また、周知の機能は、記述されている実施形態を不明瞭にしないために省略または簡略化し得る。
【００６９】
括弧でくくられたテキスト及び破線の境界（例えば、太線ダッシュ、細線ダッシュ、ドットダッシュ及びドット）を伴うブロックは、本明細書においていくつかの実施形態に追加的機能を追加する任意選択の動作を例示するために用いられている。しかしながら、このような表記は、これらが唯一のオプションまたは任意選択動作であるということ、及び／または、実線の境界を有するブロックが特定の実施形態で任意選択でないということを意味すると解釈されるべきではない。
【００７０】
添字文字付きの参照番号（例えば、１１８Ａ〜１１８Ｎ、２０４Ａ〜２０４Ｍ）は、種々の実施形態において参照される実体の１つまたは複数の例があり得ることを示すために用いることができ、複数の例があるときに、各々は同一である必要はなくて、その代わりにいくつかの全般的特徴を共有することができるかまたは共通的な方法で作用することができる。さらに、使われる特定の添字は、そうでないことが特に示されない限り、特定の量の実体が存在することを意味する意図ではない。したがって、同じであるか異なる添字文字を使用している２つの実体は、種々の実施形態において同じ数のインスタンスを有していても有していなくてもよい。
【００７１】
「一実施形態」、「実施形態」、「例示の実施形態」などの引用は、説明されている実施形態が特定の特徴、構造または特性を含むことができることを示すが、すべての実施形態が特定の特徴、構造または特性を必ずしも含むというわけではない。さらに、このようなフレーズが、必ずしも同じ実施形態を指しているというわけではない。さらに、特定の特徴、構造または特性が実施形態に関連して説明されるとき、明示的に記載されているか否かを問わず、他の実施形態に関連してこのような特徴、構造または特性に影響を及ぼすことが当業者の知識の範囲内であると言える。
【００７２】
開示された技術の少なくともいくつかの実施形態は、以下の条項を鑑みて説明することができる：
条項１
機械学習モデルをホスティングするプロバイダネットワークにおける１つ以上のモデルインスタンスのフリートの中のモデルインスタンスの量を自動的にスケーリングする要求を受信することであって、前記要求はメトリック条件を示し、前記メトリック条件は、前記フリートと関連した１つ以上の動作メトリックに基づいており、前記自動スケーリングがいつ発生するかについて示す、前記受信することと、
前記フリートと関連した前記１つ以上の動作メトリックをモニタすることと、
前記メトリック条件が満たされていることを判定することと、
前記メトリック条件が満たされていると前記判定することに応答して前記フリートにモデルインスタンスを追加することと
を含む、コンピュータによる実施方法。
【００７３】
条項２
１つ以上の動作メトリックのセットが、
前記機械学習モデルのために受信される要求の量もしくは一定期間にわたって前記機械学習モデルによって送信される応答の量を示す、入力もしくは出力メトリック、
前記一定期間にわたって前記機械学習モデルのために受信される要求当たりの処理時間の量を示す待ち時間メトリック、
前記一定期間にわたるモデルインスタンスの前記フリートと関連した成功率もしくは失敗率を示す信頼性メトリック、または、
モデルインスタンスの前記フリートの１つ以上によって利用される物理的もしくは仮想的計算リソースの利用率を示す利用率メトリック
のうち少なくとも１つを含む、条項１に記載のコンピュータによる実施方法。
【００７４】
条項３
前記フリートと関連した１つ以上の履歴動作メトリックに基づいてモデルを生成することと、
前記モデルに基づいて、前記機械学習モデルの利用率の予測された増加がある時間以後に発生すると判定することと、
前記時間の前に、前記フリートに少なくとも１つのモデルインスタンスを追加すること、または、前記利用率の前記予測された増加が発生すると前記判定することに応答して１つ以上のウォームプールインスタンスを作成することと
をさらに含む、条項１〜２のいずれか一項に記載のコンピュータによる実施方法。
【００７５】
条項４
機械学習モデルを実装するプロバイダネットワークで実行している１つ以上のモデルインスタンスのフリートと関連した１つ以上の動作メトリックのセットをモニタすることと、
前記モニタすることに基づいて、前記フリートと関連したメトリック条件が満たされていると判定することと、
前記メトリック条件が満たされていると前記判定することに応答して、前記フリートにモデルインスタンスを追加すること、または前記フリートからモデルインスタンスの前記フリートの１つを削除することと
を含む、コンピュータによる実施方法。
【００７６】
条項５
前記メトリック条件が動作特性のセットの１つ以上の動作メトリックに基づいており、前記１つ以上の動作メトリックは、
前記機械学習モデルのために受信される要求の量もしくは一定期間にわたって前記機械学習モデルによって送信される応答の量を示す、入力もしくは出力メトリック、
前記一定期間にわたって前記機械学習モデルのために受信される要求当たりの処理時間の量を示す待ち時間メトリック、
前記一定期間にわたるモデルインスタンスの前記フリートと関連した成功率もしくは失敗率を示す信頼性メトリック、または、
モデルインスタンスの前記フリートの１つ以上によって利用される物理的もしくは仮想的計算リソースの利用率を示す利用率メトリック
のうち少なくとも１つを含む、条項４に記載のコンピュータによる実施方法。
【００７７】
条項６
前記メトリック条件が前記プロバイダネットワークのユーザによって指定された、条項４〜５のいずれか一項に記載のコンピュータによる実施方法。
【００７８】
条項７
前記ユーザの電子デバイスに、前記ユーザに示されるユーザインタフェースのためのデータを送信することであって、前記ユーザインタフェースは１つ以上の動作メトリックの前記セットの複数の値を図示するチャートを含む、前記送信すること
をさらに含む、条項６に記載のコンピュータによる実施方法。
【００７９】
条項８
前記ユーザインタフェースが経時的にモデルインスタンスの前記フリートのモデルインスタンスの数をさらに示す、条項７に記載のコンピュータによる実施方法。
【００８０】
条項９
前記フリートと関連した１つ以上の履歴動作メトリックに基づいてモデルを生成することと、
前記モデルに基づいて、前記機械学習モデルの利用率の予測された増加はある時間以後に発生すると判定することと、
前記時間の前に、前記フリートに少なくとも１つのモデルインスタンスを追加すること、または、前記利用率の前記予測された増加が発生すると前記判定することに応答して１つ以上のウォームプールインスタンスを作成することと
をさらに含む、条項４〜８のいずれか一項に記載のコンピュータによる実施方法。
【００８１】
条項１０
前記１つ以上のウォームプールインスタンスが、前記利用率の前記予測された増加が発生すると前記判定することに応答して作成され、前記動作が前記フリートに前記１つ以上のウォームプールインスタンスを追加することをさらに含む、条項９に記載のコンピュータによる実施方法。
【００８２】
条項１１
前記フリートにモデルインスタンスを追加することまたは前記フリートからモデルインスタンスの前記フリートの１つを削除することが、アプリケーションプログラミングインタフェース（ＡＰＩ）要求メッセージを前記プロバイダネットワークのエンドポイントに送信することを含む、条項４〜１０のいずれか一項に記載のコンピュータによる実施方法。
【００８３】
条項１２
１つ以上のモデルインスタンスの前記フリートの少なくとも１つのモデルインスタンスがモデルコードを含むコンテナを含み、前記コンテナは仮想マシン上で実行される、条項４〜１１のいずれか一項に記載のコンピュータによる実施方法。
【００８４】
条項１３
第１の１つ以上の電子デバイスによって実行される１つ以上のモデルインスタンスのフリートと、
第２の１つ以上の電子デバイスによって実装される自動スケーリングシステムであって、前記自動スケーリングシステムは、前記第２の１つ以上の電子デバイスによって実行されると、前記自動スケーリングシステムに、
機械学習モデルを実装するプロバイダネットワークで実行している１つ以上のモデルインスタンスのフリートと関連した１つ以上の動作メトリックのセットをモニタし、
前記モニタすることに基づいて、前記フリートと関連したメトリック条件が満たされていると判定し、
前記フリートにモデルインスタンスを追加するかまたは、前記メトリック条件が満たされていると前記決定することに応答してモデルインスタンスの前記フリートの１つを前記フリートから削除する
ようにさせる命令を含む、前記自動スケーリングシステムと
を含むシステム。
【００８５】
条項１４
前記メトリック条件が動作特性のセットの１つ以上の動作メトリックに基づいており、前記１つ以上の動作メトリックは、
前記機械学習モデルのために受信される要求の量もしくは一定期間にわたって前記機械学習モデルによって送信される応答の量を示す、入力もしくは出力メトリック、
前記一定期間にわたって前記機械学習モデルのために受信される要求当たりの処理時間の量を示す待ち時間メトリック、
前記一定期間にわたるモデルインスタンスの前記フリートと関連した成功率もしくは失敗率を示す信頼性メトリック、または、
モデルインスタンスの前記フリートの１つ以上によって利用される物理的もしくは仮想的計算リソースの利用率を示す利用率メトリック
のうち少なくとも１つを含む、条項１３に記載のシステム。
【００８６】
条項１５
前記メトリック条件が前記プロバイダネットワークのユーザによって指定された、条項１３〜１４のいずれか一項に記載のシステム。
【００８７】
条項１６
前記ユーザの電子デバイスに、前記ユーザに示されるユーザインタフェースのためのデータを送信し、前記ユーザインタフェースは１つ以上の動作メトリックの前記セットの複数の値を図示するチャートを含む、
第３の１つ以上の電子デバイスによって実装されるコンソールをさらに含む、条項１５に記載のシステム。
【００８８】
条項１７
前記ユーザインタフェースが経時的にモデルインスタンスの前記フリートのモデルインスタンスの数をさらに示す、条項１６に記載のシステム。
【００８９】
条項１８
前記命令が、前記第２の１つ以上の電子デバイスによって実行されると、前記自動スケーリングシステムにさらに、
前記フリートと関連した１つ以上の履歴動作メトリックに基づいてモデルを生成し、
前記モデルに基づいて、前記機械学習モデルの利用率の予測された増加はある時間以後に発生すると判定し、
前記時間の前に、前記フリートに少なくとも１つのモデルインスタンスを追加し、または、前記利用率の前記予測された増加が発生するとの前記判定に応答して１つ以上のウォームプールインスタンスを作成する
ようにさせる、条項１３〜１７のいずれか一項に記載のシステム。
【００９０】
条項１９
前記１つ以上のウォームプールインスタンスが、前記利用率の前記予測された増加が発生すると前記判定することに応答して作成され、前記命令が、前記第２の１つ以上の電子デバイスによって実行されると、前記自動スケーリングシステムにさらに、前記フリートに前記１つ以上のウォームプールインスタンスを追加させる、条項１８に記載のシステム。
【００９１】
条項２０
１つ以上のモデルインスタンスの前記フリートの少なくとも１つのモデルインスタンスがモデルコードを含むコンテナを含み、前記コンテナは仮想マシン上で実行される、条項１３〜１９のいずれか一項に記載のシステム。
【００９２】
したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考えられるべきである。しかしながら、特許請求の範囲に示されるように、本開示のより広い精神及び範囲から逸脱することなく、それらに様々な修正及び変更が行われてもよいことが明白である。
【図１】
2021504801.tif 000003
【図２】
2021504801.tif 000004
【図３】
2021504801.tif 000005
【図４】
2021504801.tif 000006
【図５】
2021504801.tif 000007
【図６】
2021504801.tif 000008
【図７】
2021504801.tif 000009
【図８】
2021504801.tif 000010
【図９】
2021504801.tif 000011
【図１０】
2021504801.tif 000012
【国際調査報告】
2021504801.tif 000013
2021504801.tif 000014