(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-18
(45)【発行日】2022-10-26
(54)【発明の名称】人工知能開発プラットフォームの管理方法及び装置、媒体
(51)【国際特許分類】
G06F 9/50 20060101AFI20221019BHJP
G06F 11/07 20060101ALI20221019BHJP
G06F 11/34 20060101ALI20221019BHJP
【FI】
G06F9/50 150Z
G06F11/07 157
G06F11/34 176
【外国語出願】
(21)【出願番号】P 2021045551
(22)【出願日】2021-03-19
【審査請求日】2021-03-19
(31)【優先権主張番号】202010624194.8
(32)【優先日】2020-06-30
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】Beijing Baidu Netcom Science Technology Co., Ltd.
【住所又は居所原語表記】2/F Baidu Campus, No.10, Shangdi 10th Street, Haidian District, Beijing 100085, China
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100138759
【氏名又は名称】大房 直樹
(72)【発明者】
【氏名】ゼングクスイオング・ユアン
(72)【発明者】
【氏名】エン・シイ
(72)【発明者】
【氏名】ヨンカン・シエ
(72)【発明者】
【氏名】ミンレン・フウ
(72)【発明者】
【氏名】ゼンユウ・チェン
(72)【発明者】
【氏名】ゼンファン・チュウ
【審査官】坂東 博司
(56)【参考文献】
【文献】米国特許出願公開第2019/0102206(US,A1)
【文献】米国特許出願公開第2019/0156244(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
G06F 11/07
G06F 11/34
(57)【特許請求の範囲】
【請求項1】
人工知能
(AI)開発プラットフォームの管理方法であって、
前記
AI開発プラットフォームには、複数の
AIモデルサービスのインスタンスが展開され、且つ各
AIモデルサービスは、1つまたは複数のインスタンスを有し、前記管理方法は、
少なくとも1つの
AIモデルサービス
の全てのインスタンスの呼び出し情報を取得することと、
前記呼び出し情報に基づき、前記少なくとも1つの
AIモデルサービスの
呼び出しアクティブレベルを決定することと、
決定された
呼び出しアクティブレベルが第1条件を満たすことにレスポンスし、
前記AI開発プラットフォームのアクセス層における前記少なくとも1つのAIモデルサービスのルーティング構成を削除することなく、少なくとも前記少なくとも1つの
AIモデルサービスの全てのインスタンスを削除することとを含む、ことを特徴とする管理方法。
【請求項2】
インスタンスが削除された前記少なくとも1つの
AIモデルサービスが所定の時間内に呼び出されていないと決定されたことにレスポンスし、
前記AI開発プラットフォームのアクセス層における前記少なくとも1つの
AIモデルサービス
のルーティング構成を削除することを更に含む、ことを特徴とする請求項1に記載の管理方法。
【請求項3】
少なくとも前記少なくとも1つの
AIモデルサービスの全てのインスタンスを削除することは、
前記少なくとも1つの
AIモデルサービスが前記人工知能開発プラットフォームのクラスタ内に存在しているかを決定することと、
前記少なくとも1つの
AIモデルサービスが前記クラスタ内に存在すると決定したことにレスポンスし、前記少なくとも1つの
AIモデルサービスのバックエンドをトラフィック引受モジュールに切り替えることとを含み、
前記トラフィック引受モジュールは、インスタンスが削除された
AIモデルサービスのモデル推論トラフィックを受信する、ことを特徴とする
請求項2に記載の管理方法。
【請求項4】
少なくとも前記少なくとも1つの
AIモデルサービスの全てのインスタンスを削除することは、更に、
前記少なくとも1つの
AIモデルサービスの生データ情報を前記クラスタ内に格納し続けることを含み、
前記生データ情報は、インスタンスが削除される前に、前記少なくとも1つの
AIモデルサービスが前記人工知能開発プラットフォームに展開したインスタンスの第1数を含むことを特徴とする請求項3に記載の管理方法。
【請求項5】
前記トラフィック引受モジュールが、インスタンスが削除された前記少なくとも1つの
AIモデルサービスのモデル推論トラフィックを受信したことにレスポンスし、前記少なくとも1つの
AIモデルサービスのウェイクアップ操作をトリガーし、前記ウェイクアップ操作は、
前記第1数のインスタンスの全部の起動を完成するまでに、前記人工知能開発プラットフォームにおいて前記少なくとも1つの
AIモデルサービスの前記第1数のインスタンスを復元し、且つ復元されたインスタンスの状態をポーリングすることと、
前記少なくとも1つの
AIモデルサービスのバックエンドを復元された第1数のインスタンスに切り替え戻すこととを更に含む、ことを特徴とする請求項4に記載の管理方法。
【請求項6】
前記AI開発プラットフォームのアクセス層における前記少なくとも1つの
AIモデルサービス
のルーティング構成が削除された場合、前記ウェイクアップ操作は、更に、
前記少なくとも1つの
AIモデルサービスに対応するルーティングルールを再構成することを含む、ことを特徴とする請求項5に記載の管理方法。
【請求項7】
前記トラフィック引受モジュールは、複数のインスタンスを有し、
前記トラフィック引受モジュールの複数のインスタンス中の第1インスタンスが先ずインスタンスが削除された前記少なくとも1つの
AIモデルサービスのモデル推論トラフィックを受信した時に、前記第1インスタンスは分散ロックリソースを取得して前記ウェイクアップ操作をトリガーし、
前記第1インスタンスが前記分散ロックリソースを保持している時に、前記トラフィック引受モジュールの複数のインスタンス中の他のインスタンスが前記ウェイクアップ操作をトリガーすることを防止することができる、ことを特徴とする請求項5又は6に記載の管理方法。
【請求項8】
前記少なくとも1つの
AIモデルサービスの呼び出し情報を取得することは、
前記少なくとも1つの
AIモデルサービスの作成時間を取得することと、
前記少なくとも1つの
AIモデルサービスの全てのインスタンスに関連するトラフィックログを分析することで、前記少なくとも1つの
AIモデルサービスにおける最近の呼び出し時間、所定の時間窓内の呼び出しの回数、所定の時間窓内の呼び出し時点の分布のうちの少なくとも1つの情報を取得することとを含む、ことを特徴とする請求項1に記載の管理方法。
【請求項9】
前記人工知能開発プラットフォームは、単一クラスタである、ことを特徴とする請求項1の管理方法。
【請求項10】
人工知能(AI)開発プラットフォームシステムであって、
1つ又は複数のインスタンスを有する複数の
AIモデルサービスのインスタンスが展開されているように構成されるクラウドサーバーと、
少なくとも1つの
AIモデルサービス
の全てのインスタンスの呼び出し情報を取得するように構成される呼び出し情報収集モジュールと、
前記呼び出し情報に基づき、前記少なくとも1つの
AIモデルサービスの
呼び出しアクティブレベルを決定するように構成される検出モジュールと、
決定された
呼び出しアクティブレベルが第1条件を満たすことにレスポンスし、
前記AI開発プラットフォームのアクセス層における前記少なくとも1つのAIモデルサービスのルーティング構成を削除することなく、少なくとも前記少なくとも1つの
AIモデルサービスの全てのインスタンスを削除するように構成される実行モジュールとを含む、ことを特徴とする人工知能開発プラットフォームシステム。
【請求項11】
前記実行モジュールは、更に、インスタンスが削除された前記少なくとも1つの
AIモデルサービスが所定の時間内に呼び出されていないと決定されたことにレスポンスし、
前記AI開発プラットフォームのアクセス層における前記少なくとも1つの
AIモデルサービス
のルーティング構成を削除するように構成される、ことを特徴とする請求項10に記載の人工知能開発プラットフォームシステム。
【請求項12】
前記人工知能開発プラットフォームシステムは、更に、トラフィック引受モジュールを含み、且つ、
決定されたアクティブレベルが第1条件を満たすことにレスポンスし、前記実行モジュールは、更に、
前記少なくとも1つの
AIモデルサービスが前記人工知能開発プラットフォームシステムのクラスタ内に存在するかを決定し、
前記少なくとも1つの
AIモデルサービスが前記クラスタ内に存在すると決定されたことにレスポンスし、前記少なくとも1つの
AIモデルサービスのバックエンドを前記トラフィック引受モジュールに切り替えるように構成され、
前記トラフィック引受モジュールは、インスタンスが削除された
AIモデルサービスのモデル推論トラフィックを受信する、ことを特徴と
請求項11に記載の人工知能開発プラットフォームシステム。
【請求項13】
前記実行モジュールは、更に、
前記少なくとも1つの
AIモデルサービスの生データ情報を前記クラスタ内に格納し続けるように構成され、
前記生データ情報は、
前記少なくとも1つのAIモデルサービスのインスタンスが削除される前に
前記クラウドサーバーに展開したインスタンスの第1数を少なくとも含む、ことを特徴とする請求項12に記載の人工知能開発プラットフォームシステム。
【請求項14】
前記人工知能開発プラットフォームシステムは、更に、サービスウェイクアップモジュールを含み、
前記サービスウェイクアップモジュールは、
前記トラフィック引受モジュールがインスタンスが削除された前記少なくとも1つの
AIモデルサービスのモデル推論トラフィックを受信したことにレスポンスし、前記第1数のインスタンスの全部の起動を完成するまでに、前記クラウドサーバーにおいて前記少なくとも1つの
AIモデルサービスの前記第1数のインスタンスを復元し、且つ復元されたインスタンスの状態をポーリングし、
前記少なくとも1つの
AIモデルサービスのバックエンドを復元された第1数のインスタンスに切り替え戻すように構成される、ことを特徴とする請求項13に記載の人工知能開発プラットフォームシステム。
【請求項15】
前記AI開発プラットフォームのアクセス層における前記少なくとも1つの
AIモデルサービス
のルーティング構成が削除された場合、前記サービスウェイクアップモジュールは、更に、前記少なくとも1つの
AIモデルサービスに対応するルーティングルールを再構成するように構成される、ことを特徴とする請求項14に記載の人工知能開発プラットフォームシステム。
【請求項16】
前記トラフィック引受モジュールは、複数のインスタンスを有し、
前記トラフィック引受モジュールの複数のインスタンス中の第1インスタンスが先ずインスタンスが削除された前記少なくとも1つの
AIモデルサービスのモデル推論トラフィックを受信した時に、前記第1インスタンスは分散ロックリソースを取得し
てウェイクアップ操作をトリガーし、
前記第1インスタンスが前記分散ロックリソースを保持している時に、前記トラフィック引受モジュールの複数のインスタンス中の他のインスタンスが前記ウェイクアップ操作をトリガーすることを防止することができる、ことを特徴とする請求項14又は15に記載の人工知能開発プラットフォームシステム。
【請求項17】
前記呼び出し情報収集モジュールは、前記少なくとも1つの
AIモデルサービスの作成時間を取得し、前記少なくとも1つの
AIモデルサービスの全てのインスタンスに関連するトラフィックログを分析することで、前記少なくとも1つの
AIモデルサービスにおける最近の呼び出し時間、所定の時間窓内の呼び出しの回数、所定の時間窓内の呼び出し時点の分布のうちの少なくとも1つの情報を取得するように構成される、ことを特徴とする請求項10に記載の人工知能開発プラットフォームシステム。
【請求項18】
プロセッサと、プログラムを格納するメモリとを備え、
前記プログラムは、命令を含み、前記命令は、前記プロセッサにより実行される時に、前記プロセッサに請求項1~9のいずれか1項に記載の管理方法を実行させる、ことを特徴とする電子装置。
【請求項19】
プログラムが格納されるコンピュータ可読記憶媒体であって、前記プログラムが、命令を含み、
前記命令は、電子装置のプロセッサにより実行される時に、前記電子装置に、請求項1~9のいずれか1項に記載の管理方法を実行させる、ことを特徴とするコンピュータ可読記憶媒体。
【請求項20】
コンピュータ可読記憶媒体に格納されるコンピュータプログラムであって、前記コンピュータプログラムが命令を含み、
前記命令は、少なくとも一つのプロセッサにより実行される時に、請求項1~9のいずれか1項に記載の管理方法を実現させる、ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、人工知能技術分野に関し、特に人工知能開発プラットフォームの管理方法及び装置、媒体に関する。
【背景技術】
【0002】
様々な業界で人工知能(artificial intelligence、略称は「AI」である)技術が用いられる中、AI技術能力を有する企業は、AI開発プラットフォームによりユーザにカスタマイズモデルの自動展開やサービスソリューションを提供している。大規模のAIモデルサービスは、AI開発プラットフォームのモデル展開とオンライン推論に課題をもたらしている。
【発明の概要】
【0003】
本開示の一態様によれば、人工知能開発プラットフォームの管理方法であって、前記人工知能開発プラットフォームには、複数のモデルサービスのインスタンスが展開され、且つ各モデルサービスは、1つまたは複数のインスタンスを有し、前記管理方法は、少なくとも1つのモデルサービスの呼び出し情報を取得することと、前記呼び出し情報に基づき、前記少なくとも1つのモデルサービスのアクティブレベルを決定することと、決定されたアクティブレベルが第1条件を満たすことにレスポンスし、少なくとも前記少なくとも1つのモデルサービスの全てのインスタンスを削除することとを含むことを特徴とする管理方法を提供する。
【0004】
本開示の他の態様によれば、1つ又は複数のインスタンスを有する複数のモデルサービスのインスタンスが展開されているように構成されるクラウドサーバーと、少なくとも1つのモデルサービスの呼び出し情報を取得するように構成される呼び出し情報収集モジュールと、前記呼び出し情報に基づき、前記少なくとも1つのモデルサービスのアクティブレベルを決定するように構成される検出モジュールと、決定されたアクティブレベルが第1条件を満たすことにレスポンスし、少なくとも前記少なくとも1つのモデルサービスの全てのインスタンスを削除するように構成される実行モジュールとを含むことを特徴とする人工知能開発プラットフォームシステムを提供する。
【0005】
本開示の他の態様によれば、プロセッサと、プログラムを格納するメモリとを備え、前記プログラムは、命令を含み、前記命令は、前記プロセッサにより実行される時に、前記プロセッサに上記の管理方法を実行させることを特徴とする電子装置を提供する。
【0006】
本開示の他の態様によれば、プログラムが格納されるコンピュータ可読記憶媒体であって、前記プログラムが命令を含み、前記命令は、電子装置のプロセッサにより実行される時に、前記電子装置に上記の管理方法を実行させることを特徴とするコンピュータ可読記憶媒体を提供する。
【0007】
本開示の他の態様によれば、コンピュータ可読記憶媒体に格納されるコンピュータプログラムであって、前記コンピュータプログラムが命令を含み、前記命令は、少なくとも一つのプロセッサにより実行される時に、上記の管理方法を実現させるコンピュータプログラムを提供する。
【図面の簡単な説明】
【0008】
図面は、実施例を例示的に示し、明細書の一部を構成し、明細書の文字記述とともに実施例の例示的実施例を説明するために使用される。示された実施例は、例示のみを目的としており、請求項の範囲を限定するものではない。全ての図面において、同様の符号は、類似しているが必ずしも同様ではない要素を示す。
【
図1】例示的実施例に係る人工知能開発プラットフォームの管理方法を示すフローチャートである。
【
図2】例示的実施例に係る少なくともモデルサービスの全てのインスタンスを削除することを示すフローチャートである。
【
図3】例示的実施例に係る人工知能開発プラットフォームの管理方法を示すフローチャートである。
【
図4】例示的実施例に係る人工知能開発プラットフォームシステムを示す概略構成ブロック図である。
【
図5】例示的実施例に利用可能な例示的コンピューティング装置を示す構成ブロック図である。
【発明を実施するための形態】
【0009】
本開示において、別段の記載がない限り、様々な要素を説明するための「第1」、「第2」等の用語は、これらの要素の位置関係、時系列関係、または重要性の関係を修飾することを意図するものではなく、1つの要素を別の要素から区別するために使用される。いくつかの例では、第1の要素および第2の要素は、当該要素の同じインスタンスを意味し得、場合によっては、文脈の記述に基づいて、それらは異なるインスタンスを意味し得る。
【0010】
本開示の様々な前記例の説明で使用される用語は、特定の例を説明することのみを目的としており、限定することを意図していない。 文脈が明示的に示さない限り、要素の数が意図的に制限されていなければ、当該要素は1つまたは複数であってもよい。 さらに、本開示で使用される「および/または」という用語は、記載された項目のいずれか1つおよびすべての可能な組み合わせを包含する。
【0011】
AI開発プラットフォームについて、AIモデル、特に深層学習モデルのネットワーク構造は非常に複雑であり、1つのモデルサービスインスタンスを展開するのに必要なメモリ容量は膨大(GBレベル)である。AI開発プラットフォームは、非常に多い数のモデルサービスをサポートしなければならず、大量のメモリリソースを提供する必要があり、装置にかかるコストが高く、且つ長時間大量のモデルサービスを呼び出せない場合があり、リソースの利用率が低い。そして、大量のサービスアクセスは、AI開発プラットフォームのアクセス層に負担をかけ、例えば、大量のトラフィックルーティングのルール配置、頻繁的なルーティングルールの変更は、アクセス層の機能問題を引き起こしやすく、それにより、オンライン推論サービスの全体的な機能低下をもたらす。
【0012】
関連技術において、大規模のAIモデルサービスに起因する上記の問題を解決するために、以下のような2種類の手段がある。
【0013】
1種目:マルチクラスタ方法に基づいて、1つの大規模クラスタを複数の中規模クラスタに分割し、階層的なルーティングルールを作成することで、個々のクラスタのルーティング負荷を軽減する。
【0014】
2種目:Serverless(サーバーレス)方法に基づいて、トラフィックの特性に応じてサービスインスタンスの数を自動的に調整する。
【0015】
しかし、1種目の方法では、大規模のモデルがメモリリソースを占有するという問題を根本的に解決することはできず、拡張には依然として大量のマシンリソースを必要とする。そして、クラスタ間連携の問題をもたらし、ネットワークトポロジーが複雑であり、ネットワークの問題で複数のクラスタ間で状態がずれやすくなる。2種目の方法では、AI開発プラットフォーム上に任意のモデルサービスインスタンスを展開せず、トラフィック特性に応じてサービスインスタンスの数を自動的に調整するが、AIモデルサービスの初期化にかかる時間が長く、複雑なモデルでは分単位のレベルになることもある。そのため、Serverless方法では、トラフィックを保持して転送することによる自動ウェイクアップのメカニズムが機能せず、オンライン推論要求がタイムアウトになりやすい。Serverless方法では、サービスグリッドフレームワークも導入する必要があり、ストックサービスの移行作業は煩雑であり、プラットフォームの改造コストが増加する。そのため、AIモデルサービスに起因する上記の問題点を解決するための効果的な技術が必要となる。
【0016】
そこで、本開示は、人工知能開発プラットフォームの管理方法を提供し、モデルサービスの呼び出し情報を取得し、呼び出し情報に基づいてモデルサービスのアクティブレベルを決定する。決定されたモデルサービスのアクティブレベルが第1条件を満たすことにレスポンスし、モデルサービスが開発プラットフォームに展開した全てのインスタンスを削除し、機器CPU及びメモリ等のリソースを解放するポリシールールを設定することができる。これによって、リソース利用率を向上させ、AI開発プラットフォームに対するマシンリソース要件を減らすことができる。そして、モデルサービスの呼び出しアクティブレベルに基づいてモデルサービスインスタンスを削除することで、Serverless自動ウェイクアップのメカニズムではオンライン推論要求のタイムアウトが発生しやすいという問題を克服でき、サービスグリッドのフレームワークを導入する必要がなく、AI開発プラットフォームの低コストでの改造が可能となる。
【0017】
本開示において、モデルサービスのモデル推論トラフィックを受信することにレスポンスして、モデルサービスの1つのインスタンスによりオンライン推論を実行する。モデルサービスの呼び出し情報は、実際にはモデルサービスの全てのインスタンスの呼び出し情報である。
【0018】
以下、図面を参照しながら本開示の人工知能開発プラットフォームの管理方法を更に説明する。
【0019】
AI開発プラットフォームは、ユーザに自動化展開(Automationdeployment)やサービスソリューションを提供する。AI開発プラットフォームには、複数のモデルサービスのインスタンスが展開されていてもよい。モデルサービスインスタンスは、モデルサービスのモデル推論トラフィックを受信することにレスポンスしてオンライン推論を実行し、特定の功能、例えば、画像分類、物体検出、テキスト認識、音声認識、自然言語処理等を実現する。各モデルサービスは、1つ又は複数のインスタンスを有していてもよく、各インスタンスは、当該モデルサービスのコピーであり、前記1つ又は複数のインスタンスは、オンライン推論を実行して同じ機能を実現することができる。ユーザは、各々の実際の需要に応じてモデルサービスインスタンスの展開数を選択することができる。
【0020】
なお、別段の記載がない限り、本開示におけるモデルサービスは、ともにユーザがAI開発プラットフォームにインスタンスのモデルを展開して特定の機能を実現可能なものを指す。ユーザは、自分がAI開発プラットフォームに展開したモデルサービスインスタンスを呼び出してもよく、他のユーザがAI開発プラットフォームに展開したモデルサービスインスタンスを呼び出してもよい。
【0021】
図1は、例示的実施例に係る人工知能開発プラットフォームの管理方法を示すフローチャートである。
図1に示すように、前記管理方法は、少なくとも1つのモデルサービスの呼び出し情報を取得するステップS101、前記呼び出し情報に基づき、前記少なくとも1つのモデルサービスのアクティブレベルを決定するステップS102、及び決定されたアクティブレベルが第1条件を満たすことにレスポンスし、少なくとも前記少なくとも1つのモデルサービスの全てのインスタンスステップを削除するS103を含むことができる。これによってマシンリソースの利用率を向上させる。
【0022】
いくつかの実施例によれば、AIプラットフォームに展開された全てのストックモデルサービスのアクティブレベルを決定し、アクティブレベルが前記第1条件を満たす少なくとも1つのモデルサービスに対してその全てのインスタンスの削除を実行することができる。
【0023】
前記呼び出し情報は、例えばモデルサービスの作成時間と、最近の呼び出し時間、所定の時間窓内の呼び出しの回数、所定の時間窓内の呼び出し時間の分布のうちの少なくとも1つの情報と、を含むことができる。これによって、前記呼び出し情報に基づいてモデルサービスのアクティブレベル(即ち、呼び出しアクティブレベル)を決定することができる。
【0024】
いくつかの実施例によれば、モデルサービスのアクティブレベルをアクティブ及びローアクティブの2つのレベルに分けることができるが、これに限定されない。この場合、決定されたアクティブレベルがローアクティブレベルであることにレスポンスして、少なくとも前記少なくとも1つのモデルサービスの全てのインスタンスを削除する。
【0025】
いくつかの例示的実施例において、モデルサービスの呼び出し情報に基づき、当該モデルサービスが最近安定した呼び出しを有すると決定された場合、当該モデルサービスが第1条件を満たしていないと決定し、当該モデルサービスのインスタンスが削除されないことで、当該モデルサービスのオンライン推論要求の適時性を保証することができる。当該モデルサービスが最近呼び出されていないが、長期的な時間スケール(例えば、モデルサービスの作成時間から現在の時間までの時間スケール)において安定した呼び出しを有すると決定された場合、当該モデルサービスが第1条件を満たしていると決定し、当該モデルサービスの全てのインスタンスを削除する。
【0026】
いくつかの実施例によれば、インスタンスが削除された少なくとも1つのモデルサービスについて、インスタンスが削除された前記少なくとも1つのモデルサービスが所定の時間内に呼び出されていないと決定されたことにレスポンスして、前記少なくとも1つのモデルサービスの前記プラットフォームアクセス層におけるルーティング構成を削除することができる。即ち、インスタンスが削除されたモデルサービスついて、所定の時間窓内に呼び出されているかどうかをさらに判断し、呼び出されている場合には、インスタンスが削除されたモデルサービスについて、対応するルーティングルールを更に削除する。これによって、トラフィックルーティングルールの構成及び頻繁なルーティングルールの変更によるプラットフォームアクセス層への負担を軽減することができ、オンライン推論サービスの機能を向上させる。
【0027】
上記のポリシールールでは、呼び出し情報に基づいてモデルサービスが最近呼び出されているか、且つ安定した呼び出しを有するかを決定することにより、モデルサービスをアクティブサービスとローアクティブサービスに分ける。モデルサービスのアクティブレベルがローアクティブレベル(即ち、第1条件を満たす)であると決定されたことにレスポンスし、モデルサービスの全てのインスタンスを削除する。その後、インスタンスが削除されたモデルサービスが所定の時間窓内に呼び出されているかを決定し、呼び出されている場合、インスタンスが削除されたモデルサービスに対応するルーティングルールを継続して削除する。これによって、リソース利用率を向上させるができるとともに、過剰のルーティングルールが業務サービスにもたらす機能低下を軽減する。
【0028】
なお、他のポリシールールに従って上記の第1条件とは異なるものを設定し、モデルサービスのアクティブレベルが設定された第1条件を満たすと決定したことにレスポンスし、少なくともモデルサービスの全てのインスタンスを削除することもできる。例えば、呼び出し情報に基づいてモデルサービスをアクティブサービス、ローアクティブサービス及び非アクティブサービスに分けることができる。モデルサービスのアクティブレベルがアクティブであると決定したことにレスポンスし、モデルサービスのインスタンスの削除を実行しない。モデルサービスのアクティブレベルがローアクティブであると決定したことにレスポンスし、モデルサービスの全てのインスタンスのみを削除する。モデルサービスのアクティブレベルが非アクティブであると決定したことにレスポンスし、モデルサービスの全てのインスタンス及びルーティングルールを削除する。即ち、前記第1条件は、更に異なるサブ条件を含んでもよく、異なるサブ条件に基づいて少なくともモデルサービスの全ての実施例の削除を実行する。本例示的実施例において、アクティブサービスは、例えばモデルサービスの作成時間から現在の時間までの時間スケールにおいていずれも安定した呼び出しを有するサービスであってもよく、ローアクティブサービスは、例えば最近呼び出されていないが、比較的長い時間窓内に安定した呼び出しを有するサービスであってもよく、非アクティブサービスは、例えば比較的長い時間窓内に呼び出しされていないサービスであってもよい。
【0029】
いくつかの実施例によれば、
図2に示すように、前記少なくとも前記少なくとも1つのモデルサービスの全てのインスタンスを削除するステップS103は、前記少なくとも1つのモデルサービスが前記人工知能開発プラットフォームのクラスタ内に存在するかどうかを決定するステップS1031、及び前記少なくとも1つのモデルサービスが前記クラスタ内に存在すると決定したことにレスポンスし、前記少なくとも1つのモデルサービスのバックエンドをトラフィック引受モジュールに切り替えるステップS1032を含むことができる。ここで、前記トラフィック引受モジュールは、インスタンスが削除されたモデルサービスのモデル推論トラフィックを受信するために用いられる。これによって、モデルサービスがAI開発プラットフォームに展開した全てのインスタンス(即ち、全てのコピー)のみを削除することができ、モデルサービス自体を削除することなく、後続にモデルサービスのインスタンスの展開の復元を容易にする。
【0030】
ユーザがAI開発プラットフォームモデルサービスを作成した後、モデルサービスを独自のストレージシステム(例えばクラウドストレージシステム)に格納することができ、且つオンライン推論を実行するためにユーザのニーズに応じて一定数のインスタンスを展開することができる。
【0031】
いくつかの実施例によれば、ステップS103は、更に、前記少なくとも1つのモデルサービスの生データ情報を前記クラスタ内に格納し続けるステップS1033を含むステップS1033を含むことができる。ここで、前記生データ情報は、少なくとも前記少なくとも1つのモデルサービスが、インスタンスが削除される前に前記開発プラットフォームに展開したインスタンスの第1数を含む。これによって、インスタンスが削除されたモデルサービスが呼び出される時に、モデルサービスの全てのインスタンスを復元することができ、ユーザのオンライン推論要求に影響を与えない。
【0032】
前記生データ情報は、例えば、更に、インスタンスが削除されたモデルサービスが必要とするコンピューティングリソース(例えば、プロセッサの種類とモデル)を含むことができ、これによって削除されたモデルサービスの全てのインスタンスを復元した後に、モデルサービスのオンライン推論機能を保証することができる。
【0033】
前記人工知能開発プラットフォームは、単一クラスタであってもよいが、これに限定されない。これによって、後続にモデルサービスのインスタンスの展開を復元できるように、モデルサービスのインスタンスが削除された後にも、モデルサービスの生データ情報が前記クラスタに存在し、且つ前記クラスタに格納され続けることを保証することができる。
【0034】
AI開発プラットフォームが単一クラスタである場合、モデルサービスの全てのインスタンスが削除されたことにレスポンスし、インスタンスが削除されたモデルサービスのバックエンドをトラフィック引受モジュールに切り替えることを直接実行することができ、前記トラフィック引受モジュールは、インスタンスが削除されたモデルサービスのモデル推論トラフィックを受信することに用いられる。
【0035】
いくつかの実施例によれば、
図3に示すように、前記管理方法は、更に、前記トラフィック引受モジュールがインスタンスが削除された前記少なくとも1つのモデルサービスのモデル推論トラフィックを受信したことにレスポンスし、前記少なくとも1つのモデルサービスに対するウェイクアップ操作をトリガーするステップS104を含むことができる。前記ウェイクアップ操作は、前記第1数のインスタンスが全部の起動が完成されるまでに、前記人工知能開発プラットフォームにおいて前記少なくとも1つのモデルサービスの前記第1数のインスタンスを復元し、且つ復元されたインスタンスの状態をポーリングすること、及び前記少なくとも1つのモデルサービスのバックエンドを復元された第1数のインスタンスに切り替え戻すこととを含むことができる。これによって、ユーザがインスタンスが削除されたモデルサービスを呼び出す時に、AI開発プラットフォームにおいてモデルサービスの全てのインスタンスを復元し、オンライン推論を実行する。そして、後続の当該モデルサービスの呼び出しを容易にし、当該モデルサービスのオンライン推論要求が遅延する問題を回避するように、削除されたモデルサービスの全てのインスタンスを復元した後に、モデルサービスのバックエンドをモデルサービスのインスタンスに切り替え戻す。
【0036】
前記少なくとも1つのモデルサービスの前記プラットフォームアクセス層におけるルーティング構成が削除された場合、前記ウェイクアップ操作は、更に、前記少なくとも1つのモデルサービスに対応するルーティングルールを再構成することを含むことができる。これによって、アクセス層がインスタンスが復元された前記少なくとも1つのモデルサービスのモデル推論トラフィックを受信した時に、ルーティングルールに基づいてユーザとモデルサービスインスタンスとの接続を確立することができる。
【0037】
1つの例示的実施例において、前記トラフィック引受モジュールは、複数のインスタンスを有することができ、且つ前記トラフィック引受モジュールの複数のインスタンス中の第1インスタンスが先ずインスタンスが削除された前記少なくとも1つのモデルサービスのモデル推論トラフィックを受信した時に、前記第1インスタンスが分散ロックリソースを取得して前記ウェイクアップ操作をトリガーする。前記第1インスタンスが前記分散ロックリソースを保持している時に、前記トラフィック引受モジュールの複数のインスタンス中の他のインスタンスが前記ウェイクアップ操作をトリガーすることを防止することができる。このように、分散ロックリソースを設けることで、インスタンスが削除されたモデルサービスを重複してウェイクアップすることを回避し、マシンリソースの無駄な使用を回避することができる。
【0038】
本開示の技術手段は、モデルサービスの呼び出し情報に基づいてモデルサービスの呼び出しのアクティブレベルを決定し、ポリシールールを設定することにより、モデルサービスのアクティブレベルが所定の第1条件を満たすことにレスポンスし、少なくともモデルサービスの全てのインスタンスを削除することで、マシンリソースの利用効率を向上させ、プラットフォームに対するマシンリソース要件を減らすことができ、オンライン推論の機能を向上させることもできる。
【0039】
上記のように、モデルサービスが呼び出されるアクティブレベルを表現できる呼び出し情報は、モデルサービスの作成時間と、モデルサービスにおける最近の呼び出し時間、所定の時間窓内の呼び出しの回数、所定の時間窓内の呼び出し時点の分布のうちの少なくとも1つの情報とを含むことができる。これによって、前記呼び出し情報に基づいてモデルサービスの呼び出しのアクティブレベルを決定することができる。
【0040】
即ち、前記少なくとも1つのモデルサービスの呼び出し情報を取得するステップS101は、前記少なくとも1つのモデルサービスの作成時間を取得することと、前記少なくとも1つのモデルサービスにおける最近の呼び出し時間、所定の時間窓内の呼び出しの回数、所定の時間窓内の呼び出し時点の分布のうちの少なくとも1つの情報を取得することとを含むことができる。
【0041】
いくつかの実施例によれば、前記少なくとも1つのモデルサービスの全てのインスタンスに関連するトラフィックログを分析することで、前記少なくとも1つのモデルサービスにおける最近の呼び出し時間、所定の時間窓内の呼び出しの回数及び所定の時間窓内の呼び出し時点の分布のうちの少なくとも1つの情報を取得する。例えば、プラットフォームアクセス層により前記少なくとも1つのモデルサービスの全てのインスタンスに関連するトラフィックログを取得し、トラフィックログを分析することにより前記少なくとも1つのモデルサービスの前記情報を取得することができる。前記少なくとも1つのモデルサービスの全てのインスタンスに関連するトラフィックログを取得することを定期的に実行することができ、例えば、当日に前日の前記少なくとも1つのモデルサービスの全てのインスタンスに関連するトラフィックログを取得する。プラットフォームアクセス層の全てのインスタンスのトラフィックログを集約し、ログ中の各推論トラフィック要求を解析し、各モデルサービスの呼び出し情報を取得することができる。プラットフォームアクセス層のトラフィックログによりAI開発プラットフォームの全てのストックモデルサービスの全てのインスタンスの呼び出し情報を取得することができ、トラフィックログを解析することにより各ストックモデルサービスの呼び出し情報を取得し、呼び出し情報に基づいて各ストックモデルサービスの呼び出しアクティブレベルを決定することができる。
【0042】
本開示の他の態様によれば、更に、人工知能開発プラットフォームシステムを提供する。
図4に示すように、人工知能開発プラットフォームシステム100は、複数のモデルサービスのインスタンスが展開され、且つ各モデルサービスが1つ又は複数のインスタンスを有するように構成されるクラウドサーバー1001と、少なくとも1つのモデルサービスの呼び出し情報を取得するように構成される呼び出し情報収集モジュール101と、前記呼び出し情報に基づき、前記少なくとも1つのモデルサービスのアクティブレベルを確定するように構成される検出モジュール102と、決定されたアクティブレベルが第1条件を満たすことにレスポンスし、少なくとも前記少なくとも1つのモデルサービスの全てのインスタンスを削除するように構成される実行モジュール103とを含むことができる。これによって、マシンリソースの利用率を向上させる。
【0043】
いくつかの実施例によれば、呼び出し情報収集モジュール101は、前記少なくとも1つのモデルサービスの作成時間を取得することと、前記少なくとも1つのモデルサービスの全てのインスタンスに関連するトラフィックログを分析することで、前記少なくとも1つのモデルサービスにおける最近の呼び出し時間、所定の時間窓内の呼び出しの回数及び所定の時間窓内の呼び出し時点の分布のうちの少なくとも1つの情報を取得することとを行うように構成することができる。なお、前記呼び出し情報は、更に、前記少なくとも1つのモデルサービスの呼び出しのアクティブレベルを表現できれば、その他の情報を含んでもよく、これに限定されない。
【0044】
いくつかの実施例によれば、実行モジュール103は、更に、インスタンスが削除された前記少なくとも1つのモデルサービスが所定の時間内に呼び出されていると決定したことにレスポンスし、前記少なくとも1つのモデルサービスのプラットフォームアクセス層105におけるルーティング構成を削除するように構成されてもよい。これによって、トラフィックルーティングルール構成及び頻繁的なルーティングルールの変更によるプラットフォームアクセス層への負担を軽減することができ、オンライン推論サービスの機能を向上させる。
【0045】
いくつかの実施例によれば、人工知能開発プラットフォームシステム100は、更に、トラフィック引受モジュール104を含んでもよく、且つ決定されたアクティブレベルが第1条件を満たすことにレスポンスし、モジュール103は、更に、前記少なくとも1つのモデルサービスが前記人工知能開発プラットフォームシステムのクラスタ内に存在するかを決定することと、前記少なくとも1つのモデルサービスが前記クラスタ内に存在すると決定したことにレスポンスし、前記少なくとも1つのモデルサービスのバックエンドをトラフィック引受モジュール104に切り替えることとを行うように構成されてもよく、トラフィック引受モジュール104は、インスタンスが削除されたモデルサービスのモデル推論トラフィックを受信する。
【0046】
いくつかの実施例によれば、実行モジュール103は、更に、前記少なくとも1つのモデルサービスの生データ情報を前記クラスタ内に格納し続けるように構成されてもよく、前記生データ情報は、インスタンスが削除された前に、前記少なくとも1つのモデルサービスがクラウドサーバー1001に展開したインスタンスの第1数を少なくとも含む。これによって、インスタンスが削除されたモデルサービスが呼び出される時に、モデルサービスの全てのインスタンスを復元することができ、ユーザのオンライン推論要求に影響を与えない。
【0047】
前記人工知能開発プラットフォームシステムは、単一クラスタであってもよいが、これに限定されない。これによって、モデルサービスのインスタンスを削除した後に、後続にモデルサービスのインスタンスの展開の復元を容易にするように、モデルサービスの生データ情報が前記クラスタ内に存在し、且つ継続して前記クラスタ内に格納され続けることを保証することができる。
【0048】
いくつかの実施例によれば、人工知能開発プラットフォームシステム100は、更に、サービスウェイクアップモジュール106を含んでもよく、サービスウェイクアップモジュール106は、トラフィック引受モジュール104がインスタンスが削除された前記少なくとも1つのモデルサービスのモデル推論トラフィックを受信したことにレスポンスし、前記第1数のインスタンスが全部の起動を完成するまでに、クラウドサーバー1001において前記少なくとも1つのモデルサービスの前記第1数のインスタンスを復元し、且つ復元されたインスタンスの状態をポーリングすることと、前記少なくとも1つのモデルサービスのバックエンドを復元された第1数のインスタンスに切り替え戻すこととを行うように構成することができる。これによって、ユーザがインスタンスが削除されたモデルサービスを呼び出す時に、AI開発プラットフォームシステムのクラウドサーバーにおいてモデルサービスの全てのインスタンスを復元し、オンライン推論を実行する。そして、削除されたモデルサービスの全てのインスタンスを復元した後に、後続の当該モデルサービスの呼び出しを容易にするために、モデルサービスのバックエンドをモデルサービスのインスタンスに切り替え戻し、当該モデルサービスのオンライン推論要求が遅延する問題の発生を回避する。
【0049】
前記少なくとも1つのモデルサービスの前記プラットフォームアクセス層におけるルーティング構成が削除された場合、サービスウェイクアップモジュール106は、更に、前記少なくとも1つのモデルサービスに対応するルーティングルールを再構成するように構成されてもよい。これによって、アクセス層が前記少なくとも1つのモデルサービスのモデル推論トラフィックを受信した時に、ルーティングルールに基づいてユーザとモデルサービスインスタンスとの接続を確立することができる。
【0050】
1つの例示的実施例において、トラフィック引受モジュール104は、複数のインスタンスを含んでもよく、且つトラフィック引受モジュール104の複数のインスタンス中の第1インスタンスが先ずインスタンスが削除された前記少なくとも1つのモデルサービスのモデル推論トラフィックを受信した時に、前記第1インスタンス分散ロックリソースを取得して前記ウェイクアップ操作をトリガーし、前記第1インスタンスが前記分散ロックリソースを保持いている時に、前記トラフィック引受モジュールの複数のインスタンス中の他のインスタンスが前記ウェイクアップ操作をトリガーすることを防止することができる。これによって、分散ロックリソースを設けることで、インスタンスが削除されたモデルサービスを重複してウェイクアップすることを回避し、マシンリソースの無駄な使用を回避することができる。
【0051】
本開示の他の態様によれば、更に、プロセッサ、プログラムを格納するメモリを備え、前記プログラムは、命令を含み、前記命令は、前記プロセッサにより実行される時に、前記プロセッサに上記の管理方法を実行させる電子装置を提供する。
【0052】
本開示の他の態様によれば、更に、プログラムを格納するコンピュータ読み取り可能な記憶媒体を提供し、前記プログラムは、命令を含み、前記命令は、電子装置のプロセッサによって実行される時に、前記電子装置に上記の管理方法を実行させる。
【0053】
図5に示すように、コンピューティング装置2000は、本開示の各態様に利用可能なハードウェア装置(電子装置)の例である。コンピューティング装置2000は、処理及び/又はコンピューティングを実行するように構成されたいずれの機械であってもよく、ワークステーション、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、パーソナルデジタルアシスタント、ロボット、スマートフォン、車載コンピュータ又はこれらのいずれの組み合わせであってもよいが、これらに限定されない。上記の管理方法の全部又は少なくとも一部は、コンピューティング装置2000又はそれに類似する装置又はシステムにより実行することができる。
【0054】
コンピューティング装置2000は、(1つ又は複数のインターフェースを介して)バス2002に接続され又はバス2002と通信する素子を含んでもよい。例えば、コンピューティング装置2000は、バス2002、1つ又は複数のプロセッサ2004、1つ又は複数の入力装置2006及び1つ又は複数の出力装置2008を含んでもよい。1つ又は複数のプロセッサ2004は、いずれのタイプのプロセッサであってもよく、且つ1つ又は複数の汎用プロセッサ及び/又は1つ又は複数の専用プロセッサ(例えば特殊処理チップ)を含んでもよいが、これに限定されない。入力装置2006は、コンピューティング装置2000に情報を入力可能ないずれのタイプの装置であってもよく、且つマウス、キーボード、タッチスクリーン、マイクロフォン及び/又はリモコンを含んでもよいが、これらに限定されない。出力装置2008は、情報を提示可能ないずれのタイプの装置であってもよく、且つディスプレイ、スピーカー、ビデオ/オーディオ出力端末、バイブレータ及び/又はプリンタを含んでもよいが、これらに限定されない。コンピューティング装置2000は、更に、非一時的メモリ装置2010を含んでもよく、又は非一時的メモリ装置2010に接続されてもよく、非一時的メモリ装置は、非一時的あってもよく、且つデータの格納を実現するいずれのメモリ装置であってもよく、且つディスクドライブ、光学メモリ装置、ソリッドステートメモリ、フロッピィディスク、フレキシブルディスク、ハードディスク、テープ又はその他のいずれの磁気媒体、光ディスク又はその他のいずれの光学媒体、ROM(読み出し専用メモリ)、RAM(ランダムアクセスメモリ)、キャッシュメモリ及び/又はその他のいずれのメモリチップ又はカートリッジ、及び/又はコンピュータがデータ、命令及び/又はコードを読み取り可能なその他のいずれの媒体を含んでもよいが、これらに限定されない。非一時的メモリ装置2010は、インターフェースから取り外し可能であってもよい。非一時的メモリ装置2010は、上記の方法及びステップを実現するためのデータ/プログラム(命令を含む)/コードを有していてもよい。コンピューティング装置2000は、更に、通信装置2012を含んでもよい。通信装置2012は、外部装置及び/又はネットワークと通信可能ないずれのタイプの装置又はシステムであってもよく、且つモデム、ネットワークカード、赤外線通信装置、無線通信装置及び/又はチップセットを含んでもよく、例えばブルートゥース(登録商標)装置、1302.11装置、WiFi装置、WiMax装置、セルラー通信装置及び/又は類似物であるが、これらに限定されない。
【0055】
コンピューティング装置2000は、更に、ワーキングメモリ2014を含んでもよく、当該プワーキングメモリ2014は、プロセッサ2004の動作に有用なプログラム(命令を含む)及び/又はデータを格納可能ないずれのタイプのワーキングメモリでもよく、且つランダムアクセスメモリ及び/又は読み出し専用メモリを含むが、これらに限定されない。
【0056】
ソフトウェア要素(プログラム)は、ワーキングメモリ2014に配置されてもよく、オペレーティングシステム2016、1つ又は複数のアプリケーションプログラム2018、ドライバープログラム及び/又はその他のデータ及びコードを含んでもよいが、これらに限定されない。上記の方法及びステップを実行するための命令は、1つ又は複数のアプリケーションプログラム2018に含まれていてもよく、且つ上記の管理方法は、プロセッサ2004が1つ又は複数のアプリケーションプログラム2018の命令を読み取りして実行することによって実現することができる。より具体的に、上記の管理方法において、ステップS101~ステップS103は、例えば、プロセッサ2004に、ステップS101~ステップS103の命令を有するアプリケーションプログラム2018を実行させることによって実現することができる。更に、上記の管理方法のその他のステップは、例えば、プロセッサ2004に、対応するステップを実行するための命令を有するアプリケーションプログラム2018を実行させることによって実現することができる。ソフトウェア要素(プログラム)の命令の実行可能コードまたはソースコードは、非一時的なコンピュータ可読媒体(例えば、上記のメモリ装置2010)に格納されてもよく、且つ実行時にワーキングメモリ2014に(コンパイル及び/又はインストールされる可能性がある)格納されてもよい。ソフトウェア要素(プログラム)の命令の実行可能コードまたはソースコードは、リモートでダウンロードすることができる。
【0057】
なお、具体的な要件に応じて様々な変更をすることができる。 例えば、カスタムハードウェア、及び/又はハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語又はこれらのいずれの組み合わせを用いることで特定の素子を実現することができる。例えば、開示された方法及び装置の一部又は全部は、本開示の論理及びアルゴリズムを利用して、アセンブリ言語又はハードウェアアプログラミング言語(例えば、VERILOG、VHDL、C++)でハードウェア(例えば、フィールドプログラマブルゲートアレイ(FPGA)及び/又はプログラマブルロジックアレイ(PLA)を含むプログラマブル論理回路)をプログラミングすることによって実現することができる。
【0058】
なお、前記方法は、サーバ-クライアントモードにより実現することができる。例えば、クライアントは、ユーザが入力したデータを受信して前記データをサーバに送信することができる。クライアントは、ユーザが入力したデータを受信し、前記方法の一部の処理を行い、処理によって得られたデータをサーバに送信してもよい。サーバは、クライアントからのデータを受信し、前記方法又は前記方法の別の部分を実行し、実行結果をクライアントにフィードバックするようにしてもよい。クライアントは、サーバから方法の実行結果を受信し、例えば出力装置によりユーザに表示してもよい。
【0059】
なお、コンピューティング装置2000の構成要素は、ネットワークに分散されていてもよい。 例えば、1つのプロセッサを用いていくつかの処理を実行し、同時に当該1つのプロセッサから離れた他のプロセッサにより他の処理を実行してもよい。コンピューティング装置2000の他の構成要素も同じように分散されていてもよい。このように、コンピューティング装置2000は、複数の場所で処理を実行する分散コンピューティングシステムと解釈してもよい。
【0060】
本開示の実施例または例を添付の図面を参照して説明したが、上記の方法、システム、およびデバイスは、単なる例示的な実施例または例であり、本発明の範囲は、これらの実施例または例によって限定されるものではなく、登録された請求項及びそれに相当する範囲によって限定されるものである。実施例または例における様々な要素は、省略または同等の要素によって置き換え可能である。さらに、各ステップは、本開示に記載されている順序とは異なる順序で実行されてもよい。さらに、実施例または例における様々な要素は、様々な方法で組み合わせることができる。技術が進化するにつれて、本明細書に記載されている多くの要素を本開示の後に現れる同等の要素に置き換え可能である。