(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-05
(45)【発行日】2024-07-16
(54)【発明の名称】サービスとしての合成データのフレームセットパッケージストアを伴う分散型コンピューティングシステム
(51)【国際特許分類】
G06F 16/73 20190101AFI20240708BHJP
G06N 20/00 20190101ALI20240708BHJP
【FI】
G06F16/73
G06N20/00
(21)【出願番号】P 2020566954
(86)(22)【出願日】2019-05-17
(86)【国際出願番号】 US2019032964
(87)【国際公開番号】W WO2019231722
(87)【国際公開日】2019-12-05
【審査請求日】2022-05-12
(32)【優先日】2018-05-31
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100162846
【氏名又は名称】大牧 綾子
(72)【発明者】
【氏名】ザルガヒ,カムラン
【審査官】酒井 恭信
(56)【参考文献】
【文献】特開2010-033528(JP,A)
【文献】特開2003-298981(JP,A)
【文献】特表2018-503198(JP,A)
【文献】特開平11-328439(JP,A)
【文献】米国特許出願公開第2018/0089203(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00 - 16/958
G06N 20/00 - 20/20
(57)【特許請求の範囲】
【請求項1】
分散型コンピューティングシステムであって、
1つまたは複数のコンピュータプロセッサと、
コンピュータ使用可能命令を記憶するコンピュータメモリと
を備え、前記コンピュータ使用可能命令は前記1つまたは複数のコンピュータプロセッサにより使用されると、前記1つ又は複数のプロセッサに、
フレームセットパッケージクエリインターフェースから、フレームセットパッケージのためのクエリを受け取ることであって、前記フレームセットパッケージクエリインターフェースは複数のフレームセットパッケージカテゴリを含み、フレームセットパッケージは、合成データシーンのフレームを含む、受け取ることと、
フレームセットパッケージプロファイルに基づいてクエリ結果フレームセットパッケージを識別することと、
前記クエリ結果フレームセットパッケージを提供することであって、前記クエリ結果フレームセットパッケージは、合成データシーンのフレームセットを備え、前記フレームセットは、シーン変動性パラメータの値に基づいて1つの合成データシーンを更新することによって得られた、第1の合成データシーンを含む第1のフレームと、少なくとも、前記第1の合成データシーンとは異なる合成データシーンを含む他のフレームとを有する、提供することと
を含む動作を実行させる、
システム。
【請求項2】
請求項1に記載のシステムであって、
前記合成データシーンは、サービスとしての合成データ(SDaaS)サービスのサービス指向アーキテクチャの一部であるSDaaS分散コンピューティングサービスの動作と、SDaaS機械学習トレーニングサービスの動作の両方に関連付けられた、サービスとしての合成データ(SDaaS)統合開発環境(IDE)に関連付けられ、
前記サービス指向アーキテクチャは、SDaaSサービスを介して管理される前記SDaaS分散コンピューティングサービスの下位の動作を、前記SDaaS機械学習トレーニングサービスの動作から抽象化することを特徴とする、
システム。
【請求項3】
請求項1に記載のシステムであって、前記クエリ結果フレームセットパッケージは、前記フレームセットの合成データシーンに関連付けられた対応するプレビューと共に表示するために通信される、システム。
【請求項4】
請求項1に記載のシステムであって、前記クエリ結果フレームセットパッケージは、前記分散型コンピューティングシステム上で動作する内部機械学習モデルトレーニングサービス、または外部機械学習モデルトレーニングサービスに通信される、システム。
【請求項5】
分散型コンピューティングシステムに含まれるコンピューティングデバイスが、フレームセットパッケージクエリインターフェースから、フレームセットパッケージのためのクエリを受け取るステップであって、前記フレームセットパッケージクエリインターフェースは複数のフレームセットパッケージカテゴリを含み、フレームセットパッケージは合成データシーンのフレームを含む、受け取るステップと、
前記コンピューティングデバイスが、フレームセットパッケージプロファイルに基づいてクエリ結果フレームセットパッケージを識別するステップと、
前記コンピューティングデバイスが、前記クエリ結果フレームセットパッケージを提供するステップであって、前記クエリ結果フレームセットパッケージは合成データシーンのフレームセットを含み、前記フレームセットは、シーン変動性パラメータの値に基づいて1つの合成データシーンを更新することによって得られた、第1の合成データシーンを含む第1のフレームと、少なくとも、前記第1の合成データシーンとは異なる合成データシーンを含む他のフレームとを有する、提供するステップと
を含む、コンピュータ実装方法。
【請求項6】
請求項
5に記載の方法であって、前記クエリ結果フレームセットパッケージは、前記フレームセットの合成データシーンに関連付けられた対応するプレビューと共に表示するために通信される、方法。
【請求項7】
請求項
5に記載の方法であって、前記クエリ結果フレームセットパッケージは、前記分散型コンピューティングシステム上で動作する内部機械学習モデルトレーニングサービス、または外部機械学習モデルトレーニングサービスに通信される、方法。
【発明の詳細な説明】
【背景技術】
【0001】
[0001]ユーザは、タスクを達成するために様々なタイプの技術システムに依拠する。技術システムは、明示的にプログラミングすることなく、データを用いて特定のタスクの性能を漸進的に向上させる能力をコンピュータに与える統計的技法を使用する機械学習に基づいて改善することができる。たとえば機械学習は、データセキュリティ、個人のセキュリティ、不正検出、ヘルスケア、自然言語処理、オンライン検索および提案、金融取引、およびスマートカーに使用することができる。これらの分野または領域の各々について、機械学習モデルは、学習タスクと機械学習アプリケーションとを合致させるためのフレームワークを作成するために使用される例示のデータのセットである、トレーニングデータセットを用いてトレーニングされる。たとえば顔認識システムは、人を正確に識別するために、人の顔の固有の特徴を顔の既知の特徴のセットと比較するようにトレーニングすることができる。様々な分野での機械学習の使用の絶え間ない増加、および機械学習モデルを正確にトレーニングすることの重要性のために、機械学習トレーニングシステムのコンピューティング動作の改善によって、機械学習タスクおよびアプリケーションのより効率的な性能を提供し、機械学習トレーニングシステムのグラフィカルユーザインターフェースのユーザナビゲーションを改善することになる。
【発明の概要】
【課題を解決するための手段】
【0002】
[0002]本発明の実施形態は、サービスとしての合成データをサポートする分散型コンピューティングシステムを提供するための、方法、システム、およびコンピュータ記憶媒体に関する。背景として、分散型コンピューティングシステムは、サービス指向アーキテクチャに基づいて動作することができ、サービスは様々なサービスモデルを使用して提供される。高レベルにおいて、サービスモデルは、対応するサービスを提供することに関連付けられた下位の動作からの抽象化を提供することができる。サービスモデルの例は、サービスとしてのインフラストラクチャ(Infrastructure as a Service)、サービスとしてのプラットフォーム(Platform as a Service)、サービスとしてのソフトウェア(Software as a Service)、およびサービスとしての機能(Function as a Service)を含む。これらのモデルのうちのいずれかを用いて、顧客は、サービス指向アーキテクチャを使用して抽象化される動作特徴を維持または展開させる必要なしに、サービスの態様を展開、実行、管理する。
【0003】
[0003]機械学習およびトレーニングデータセットを見ると、機械学習は、明示的にプログラミングすることなく、データを用いて特定のタスクの性能を漸進的に向上させる能力をコンピュータに与えるために、統計的技法を使用する。トレーニングデータセットは、機械学習の分野の不可欠部分である。高品質データセットは、機械学習アルゴリズムと、機械学習ハードウェアおよびソフトウェアに関連付けられたコンピューティング動作とを改善するのを助けることができる。高品質トレーニングデータセットの作成には、かなりの量の労力を要する可能性がある。たとえば、トレーニングデータセットのためのデータのラベリングは特に冗長であり、しばしばラベリングプロセスにおける不正確さにつながる可能性がある。
【0004】
[0004]トレーニングデータセットを見つけるための従来の方法は、トレーニングデータセットをいくつかの異なる領域にわたって平等化または普遍的に使用可能にするには、著しく不十分である。さらに、機械学習トレーニングデータセットを展開させるための理論上のソリューションは、こうしたソリューションを実施するためのインフラストラクチャが、トレーニングデータセットを展開させるための現行の技法の代替実施形態を実現することに着手するには手が届かないかまたはあまりにも費用がかかり過ぎるため、まだ十分に定義または説明されることは全くなかった。概して、機械学習トレーニングデータセットの展開にまつわる包括的機能は、従来の機械学習トレーニングサービスに限定される。
【0005】
[0005]本開示において説明する実施形態は、サービスとしての合成データ(「SDaaS」)を提供する分散型コンピューティングシステムを使用して、機械学習トレーニングデータセットへのアクセスを改善するための技術を対象としている。SDaaSは、SDaaSサービスを介して管理される下位の動作を抽象化しながら、機械学習トレーニングサービスを提供するためにサービス指向アーキテクチャを使用して実装される、分散型(クラウド)コンピューティングシステムサービスを指すことができる。たとえばSDaaSは、顧客が、機械学習のための合成データトレーニングデータセットを構成、生成、アクセス、管理、および処理できるようにする、機械学習トレーニングシステムを提供する。特に、SDaaSは、典型的にはトレーニングデータセットの手動展開に関連付けられた複雑さなしに動作する。SDaaSは、アセットアセンブリエンジン、シーンアセンブリエンジン、フレームセットアセンブリエンジン、フレームセットパッケージ生成器、フレームセットパッケージストア、フィードバックループエンジン、およびクラウドソーシングエンジンを含む、SDaaSのエンジン、マネージャ、モジュール、または構成要素に基づいたいくつかの方法で配信することができる。分散コンピューティングシステム上のサービスとしてSDaaSを実装することの注目すべき効果は、内的パラメータ変動および外的パラメータ変動に基づいてトレーニングデータセットの生成をサポートする、合成データアセットの大量生産および可用性であり、内的パラメータ変動および外的パラメータ変動は、アセットおよびシーンのプログラム可能機械学習データ表現を提供する。下記でより詳細に説明するように、SDaaSの構成要素を使用して追加の特定機能が提供される。
【0006】
[0006]したがって、本発明の例示の一実施形態は、分散型コンピューティングシステムのアセットアセンブリエンジンを提供する。アセットアセンブリエンジンは、第1の分散型のサービスとしての合成データ(SDaaS)アップロードインターフェースから、第1のソースアセットを受け取るように構成される。エンジンは、第2の分散型SDaaSアップロードインターフェースから第2のソースアセットを受け取るようにも構成される。エンジンは、第1のソースアセットおよび第2のソースアセットを取り込むようにも構成される。ソースアセットを取り込むことは、ソースアセットのアセット変動パラメータのための値を自動的に計算することを含む。アセット変動パラメータは、機械学習のためにプログラム可能である。エンジンは、アセット変動パラメータのための第1の値セットを含む、第1の合成データアセットを生成するようにも構成される。エンジンは、アセット変動パラメータのための第2の値セットを含む、第2の合成データアセットを生成するようにも構成される。エンジンは、第1の合成データアセットおよび第2の合成データアセットを合成データアセットストアに記憶するようにも構成される。
【0007】
[0007]したがって、本発明の例示の一実施形態は、分散型コンピューティングシステムのシーンアセンブリエンジンを提供する。シーンアセンブリエンジンは、分散型のサービスとしての合成データ(SDaaS)統合開発環境(IDE)から、第1の合成データアセットの選択および第2の合成データアセットの選択を受け取るように構成される。合成データアセットが、アセット変動パラメータおよびシーン変動パラメータに関連付けられる。アセット変動パラメータおよびシーン変動パラメータは、機械学習のためにプログラム可能である。エンジンは、合成データシーンを生成するための値を受け取るようにも構成される。値は、アセット変動パラメータまたはシーン変動パラメータに対応する。エンジンは、値に基づいて、第1の合成データアセットおよび第2の合成データアセットを使用して合成データシーンを生成するようにも構成される。
【0008】
[0008]したがって、本発明の例示の一実施形態は、分散型コンピューティングシステムのフレームセットアセンブリエンジンを提供する。フレームセットアセンブリエンジンは、合成データシーンにアクセスするように構成される。エンジンは、シーン変動パラメータのための第1の値セットを決定するようにも構成される。第1の値セットは、合成データシーンフレームセットを生成するために自動的に決定される。エンジンは、第1の値セットに基づいて合成データシーンフレームセットを生成するようにも構成される。合成データシーンフレームセットは、シーン変動パラメータのための値に基づいて更新された合成データシーンを含むフレームセット内に、少なくとも第1のフレームを含む。エンジンは、合成データシーンフレームセットを記憶するようにも構成される。
【0009】
[0009]したがって、本発明の例示の一実施形態は、分散型コンピューティングシステムのフレームセットパッケージ生成器を提供する。フレームセットパッケージ生成器は、フレームセットパッケージ生成器プロファイルにアクセスするように構成される。フレームセットパッケージ生成器プロファイルは、第1のイメージ生成デバイスに関連付けられる。フレームセットパッケージ生成器プロファイルは、第1のイメージ生成デバイスに関連付けられた既知のデバイス変動性パラメータを含む。エンジンは、フレームセットパッケージ生成器プロファイルに基づいてフレームセットパッケージを生成するようにも構成される。フレームセットパッケージ生成器プロファイルは、既知のデバイス変動性パラメータのための値を含む。エンジンは、フレームセットパッケージを記憶するようにも構成される。
【0010】
[0010]したがって、本発明の例示の一実施形態は、分散型コンピューティングシステムのフレームセットパッケージストアを提供する。フレームセットパッケージストアは、フレームセットパッケージクエリインターフェースからフレームセットパッケージのためのクエリを受け取るように構成される。フレームセットクエリインターフェースは、複数のフレームセットパッケージカテゴリを含む。エンジンは、フレームセットパッケージプロファイルに基づいてクエリ結果フレームセットパッケージを識別するようにも構成される。エンジンは、クエリ結果フレームセットパッケージを通信するようにも構成される。
【0011】
[0011]したがって、本発明の例示の一実施形態は、分散型コンピューティングシステムのフィードバックループエンジンを提供する。フィードバックループエンジンはトレーニングデータセットレポートにアクセスするように構成される。トレーニングデータセットレポートは、アセット変動パラメータのための値を有する合成データアセットを識別する。合成データアセットはフレームセットに関連付けられる。エンジンは、トレーニングデータセットレポートに基づき、合成データアセット変動を用いて合成データアセットを更新するようにも構成される。エンジンは、更新された合成データアセットを使用してフレームセットを更新するようにも構成される。
【0012】
[0012]したがって、本発明の例示の一実施形態は、分散型コンピューティングシステムのクラウドソーシングエンジンを提供する。クラウドソーシングエンジンは、分散型のサービスとしての合成データ(SDaaS)のクラウドソースインターフェースから、ソースアセットを受け取るように構成される。エンジンは、分散型SDaaSのクラウドソースインターフェースを介して、ソースアセットのためのクラウドソースタグを受け取るようにも構成される。エンジンは、部分的にクラウドソースタグに基づき、ソースアセットを取り込むようにも構成される。ソースアセットを取り込むことは、ソースのアセット変動パラメータのための値を自動的に計算することを含む。アセット変動パラメータは、機械学習のためにプログラム可能である。エンジンは、アセット変動パラメータのための値を含むクラウドソースの合成データアセットを生成するようにも構成される。
【0013】
[0013]したがって、本明細書で説明する実施形態は、分散型コンピューティングシステムを使用してサービスとしての合成データを提供することの実装に基づいて、トレーニングデータセットを生成するためのコンピューティング機能および動作を改善する。たとえば、合成データアセットを使用してトレーニングデータセットを自動的に展開し、機械学習トレーニングサービスにおける機械学習モデルを改善することになる追加の合成データアセットまたはシーンを示すトレーニングデータセットレポートに基づいてトレーニングデータセットを自動的に改良する、SDaaS動作に基づいて、トレーニングデータセットの手動展開(たとえば、ラベリングおよびタグ付け)および改良(たとえば、検索)に必要なコンピューティング動作を不要にする。この点で、SDaaSは、機械学習トレーニングデータセットの手動展開の特定の問題に対処し、分散型コンピューティングシステムにおける機械学習モデルをトレーニングするための既存のプロセスを改善する。
【0014】
[0014]本概要は、下記の発明を実施するための形態においてさらに説明する概念の選択を、簡略化された形で紹介するために提供される。本概要は、請求する主題の主要な特徴または不可欠な特徴を識別することも、また、請求する主題の範囲を決定する際の助けとして使用することも、意図していない。
【0015】
[0015]本技術は、添付の図面を参照しながら下記で詳細に説明する。
【図面の簡単な説明】
【0016】
【
図1A】[0016]本発明の実施形態に従った、サービスとしての合成データを提供するための例示の分散型コンピューティングを示すブロック図である。
【
図1B】[0016]本発明の実施形態に従った、サービスとしての合成データを提供するための例示の分散型コンピューティングを示すブロック図である。
【
図2A】[0017]本発明の実施形態に従った、分散型コンピューティングシステムのサービスとしての合成データの例示の実装を示すフロー図である。
【
図2B】[0017]本発明の実施形態に従った、分散型コンピューティングシステムのサービスとしての合成データの例示の実装を示すフロー図である。
【
図3】[0018]本発明の実施形態に従った、例示の分散型コンピューティングシステムのサービスとしての合成データのインターフェースを示す概略図である。
【
図4】[0019]本発明の実施形態に従った、例示の分散型コンピューティングシステムのサービスとしての合成データのワークフローを示す概略図である。
【
図5】[0020]本発明の実施形態に従った、例示の分散型コンピューティングシステムのサービスとしての合成データのインターフェースを示す概略図である。
【
図6】[0021]本発明の実施形態に従った、例示の分散型コンピューティングシステムのサービスとしての合成データの動作を示すフロー図である。
【
図7】[0022]本発明の実施形態に従った、例示の分散型コンピューティングシステムのサービスとしての合成データの動作を示すフロー図である。
【
図8】[0023]本発明の実施形態に従った、例示の分散型コンピューティングシステムのサービスとしての合成データの動作を示すフロー図である。
【
図9】[0024]本発明の実施形態に従った、例示の分散型コンピューティングシステムのサービスとしての合成データの動作を示すフロー図である。
【
図10】[0025]本発明の実施形態に従った、例示の分散型コンピューティングシステムのサービスとしての合成データの動作を示すフロー図である。
【
図11】[0026]本発明の実施形態に従った、例示の分散型コンピューティングシステムのサービスとしての合成データの動作を示すフロー図である。
【
図12】[0027]本発明の実施形態に従った、例示の分散型コンピューティングシステムのサービスとしての合成データの動作を示すフロー図である。
【
図13】[0028]本発明の実施形態を実装する際に使用するのに適した、例示の分散型コンピューティング環境を示すブロック図である。
【
図14】[0029]本発明の実施形態を実装する際に使用するのに適した、例示のコンピューティング環境を示すブロック図である。
【発明を実施するための形態】
【0017】
[0030]分散型コンピューティングシステムは、異なるタイプのサービス指向モデルを提供するために利用することができる。背景として、サービスモデルは、対応するサービスを提供することに関連付けられた下位の動作からの抽象化を提供することができる。サービスモデルの例は、サービスとしてのインフラストラクチャ、サービスとしてのプラットフォーム、サービスとしてのソフトウェア、およびサービスとしての機能を含む。これらのモデルのうちのいずれかを用いて、顧客は、サービス指向アーキテクチャを使用して抽象化される動作特徴を維持または展開させる必要なしに、サービスの態様を展開、実行、管理する。
【0018】
[0031]機械学習は、明示的にプログラミングすることなく、データを用いて特定のタスクの性能を漸進的に向上させる能力をコンピュータに与えるために、統計的技法を使用する。たとえば機械学習は、データセキュリティ、個人のセキュリティ、不正検出、ヘルスケア、自然言語処理、オンライン検索および提案、金融取引、およびスマートカーに使用することができる。これらの分野または領域の各々について、機械学習モデルは、学習タスクと機械学習アプリケーションとを合致させるためのフレームワークを作成するために使用される例示のデータのセットである、トレーニングデータセットを用いてトレーニングされる。トレーニングデータセットは、機械学習の分野の不可欠部分である。高品質データセットは、機械学習アルゴリズムと、機械学習ハードウェアおよびソフトウェアに関連付けられたコンピューティング動作とを改善するのを助けることができる。機械学習プラットフォームは、教師付きおよび半教師付きの機械学習アルゴリズムをサポートするトレーニングデータセットに基づいて動作するが、高品質トレーニングデータセットは、通常、データにラベリングするために多くの時間が必要であるため、生成が困難であり費用がかかる。モデルが様々なタイプの現象の予測、分類、および分析の際に信頼できる結果を提供できるようにするために、機械学習モデルは、教師付き学習のための高品質なラベル付きトレーニングデータセットに依存する。正しいタイプのトレーニングデータセットがなければ、信頼できる機械学習モデルを開発することは不可能な場合がある。トレーニングデータセットは、機械学習アルゴリズムを効果的にトレーニングするために、ラベル付き、タグ付き、および注釈付きエントリを含む。
【0019】
[0032]トレーニングデータセットを見つけるための従来の方法は、トレーニングデータセットをいくつかの異なる領域にわたって平等化し、または普遍的に使用可能にするには、著しく不十分である。現在、こうした制限されたソリューションは、ラベリング機能のアウトソーシング、既存のトレーニングデータおよびラベルの再利用、自由ソースからの自分専用のトレーニングデータおよびラベルの収集、ラベル付きデータに関して事前トレーニングされた第三者モデルへの依拠、および、クラウドソーシングラベリングサービスの活用を含む。これらのソリューションのほとんどは、時間がかかるか、費用がかかるか、繊細なプロジェクトに不向きであるか、または、大規模な機械学習プロジェクトに取り組むには十分にロバストでない。さらに、機械学習トレーニングデータセットを展開させるための理論上のソリューションは、こうしたソリューションを実施するためのインフラストラクチャが、トレーニングデータセットを展開させるための現行の技法の代替実施形態を実現することに着手するには手が届かないかまたはあまりにも費用がかかり過ぎるため、十分に定義されることも説明されることも全くなかった。概して、機械学習トレーニングデータセットの展開にまつわる包括的機能は、従来の機械学習トレーニングサービスに限定される。
【0020】
[0033]本明細書で説明する実施形態は、サービスとしての合成データ(「SDaaS」)を提供する分散型コンピューティングシステムを実装するための、シンプルで効率的な方法およびシステムを提供する。SDaaSは、SDaaSサービスを介して管理される下位の動作を抽象化しながら、機械学習トレーニングサービスを提供するためにサービス指向アーキテクチャを使用して実装される、分散型(クラウド)コンピューティングシステムサービスを指すことができる。たとえばSDaaSは、顧客が、機械学習のための合成データトレーニングデータセットを構成、生成、アクセス、管理、および処理できるようにする、機械学習トレーニングシステムを提供する。特に、SDaaSは、典型的にはトレーニングデータセットの手動展開に関連する複雑さなしに動作する。SDaaSは、アセットアセンブリエンジン、シーンアセンブリエンジン、フレームセットアセンブリエンジン、フレームセットパッケージ生成器、フレームセットパッケージストア、フィードバックループエンジン、およびクラウドソーシングエンジンを含む、SDaaSのエンジン、マネージャ、モジュール、または構成要素に基づいたいくつかの方法で配信することができる。分散コンピューティングシステム上のサービスとしてSDaaSを実装することの注目すべき効果は、内的パラメータ変動および外的パラメータ変動に基づいてトレーニングデータセットの生成をサポートする、合成データアセットの大量生産および可用性であり、内的パラメータ変動および外的パラメータ変動は、アセットおよびシーンのプログラム可能機械学習データ表現を提供する。下記でより詳細に説明するように、SDaaSの構成要素を使用して追加の特定の機能が提供される。
【0021】
[0034]本明細書では、ソースアセットが、当分野で知られた技法に基づいて計算上決定することができるいくつかの異なるパラメータを含むことができるものと考えられる。例を挙げると、ソースアセットは幾何データの3次元表現を指すことができる。ソースアセットは三角形で構成されるメッシュで表され、三角形が平らであるほど、およびモデルの表面がより詳細であるほど、ソースのサイズは大きくなる。この点で、ソースアセットは、多くの細部を伴う高多角形モデルから細部の少ない低多角形モデルまでのスペクトルにわたって表すことができる。細部のレベルが変動するソースアセットを表すプロセスは、デシメーションと呼ばれることがある。低多角形モデルは異なるタイプのプロセスで使用可能であり、そうでなければ、計算上、高モデルには高コストとなる。したがって、自動化デシメーションプロセスを実装して、異なるレベルの細部にソースアセットを記憶することができる。他のタイプのプログラム可能パラメータを決定し、合成アセットとして記憶されたソースアセットに関連付けることができる。
【0022】
[0035]本発明の実施形態は、2層プログラム可能パラメータシステム上で動作し、機械学習トレーニングサービスは、自動的に、または手動介入に基づき、トレーニングデータセットを改善するために必要な、第1の層(たとえば、アセットパラメータ)および/または第2の層(たとえば、シーンまたはフレームセットパラメータ)のパラメータへのアクセスおよび決定に基づいて、また拡張モデルトレーニングによって、モデルをトレーニングすることができる。機械学習トレーニングサービスは、ディープラーニングおよびディープラーニングネットワーク、ならびに他のタイプの機械学習アルゴリズムおよびネットワークをサポートすることができる。機械学習トレーニングサービスは、教師なしタイプの機械学習として、敵対的生成ネットワークを実装することもできる。SDaaSは、これらの下位層パラメータを様々な手法で活用することができる。たとえば、フレームセットにどのように課金するか、デバイスパラメータがわかっており、トレーニングデータセットの展開においてパラメータを操作することが可能な特定のデバイスについて、異なるタイプのフレームセットをどのように展開するかである。
【0023】
例示的動作環境および概略図
[0036]
図1Aおよび
図1Bを参照すると、分散型コンピューティングシステム100の構成要素は、本明細書で説明するSDaaSのための機能を提供するように共に動作することができる。分散型コンピューティングシステム100は、機械学習のためのトレーニングデータセットを生成および処理するための合成データアセットの処理をサポートする。高レベルでは、分散型コンピューティングはトレーニングデータセットの大量生産のための分散型フレームワークをサポートする。特に、分散型コンピューティングアーキテクチャの組み込み機能は、ファイル圧縮、GPU対応大規模ハードウェア、非構造化ストレージ、分散型バックボーンネットワークを含み、複数のユーザ(たとえば、アーティストまたはデータ管理者)が合成データアセット上での動作に同時にアクセスできるように、分散様式でSDaaS機能を提供するための能力を本質的にサポートしている。
【0024】
[0037]
図1Aは、クライアントデバイス130Aおよびインターフェース128Aならびにクライアントデバイス130Bおよびインターフェース128Bを含む。分散型コンピューティングシステムは、SDaaSの機能をサポートするいくつかの構成要素をさらに含み、構成要素は、アセットアセンブリエンジン110、シーンアセンブリエンジン112、フレームセットアセンブリエンジン114、フレームセットパッケージ発生器116、フレームセットパッケージストア118、フィードバックループエンジン120、クラウドソーシングエンジン122、機械学習トレーニングサービス124、およびSDaaSストア126を含む。
図1Bは、SDaaSストア126に記憶され、下記でより詳細に説明するように、アセット、シーン、およびフレームセットへの自動化アクセスのための機械学習トレーニングサービスと統合された、アセット126Aおよびフレームセット126Bを示す。
【0025】
[0038]アセットアセンブリエンジン110は、第1の分散型のサービスとしての合成データ(SDaaS)アップロードインターフェースから第1のソースアセットを受け取るように構成可能であり、第2の分散型SDaaSアップロードインターフェースから第2のソースアセットを受け取ることができる。ソースアセットを取り込むことが、ソースアセットのアセット変動パラメータのための値を自動的に計算することを含む場合、第1のソースアセットおよび第2のソースアセットを取り込むことができる。たとえば
図2Aは、アセットストア(すなわち、アセット220)に取り込まれるソースアセット210を含む。アセット変動パラメータは、機械学習のためにプログラム可能である。アセットアセンブリエンジンは、アセット変動パラメータのための第1の値セットを含む第1の合成データアセットを生成することができ、アセット変動パラメータのための第2の値セットを含む第2の合成データアセットを生成することができる。第1の合成データアセットおよび第2の合成データアセットは、合成データアセットストアに記憶される。
【0026】
[0039]分散型SDaaSアップロードインターフェース(たとえば、インターフェース128Aまたは128B)は、SDaaS統合開発環境(IDE)に関連付けられる。SDaaS IDEは、ソースアセットのアセット変動パラメータのための追加の値を識別することをサポートする。値は、内的パラメータ変動および外的パラメータ変動に基づいてトレーニングデータセットを生成することに関連付けられ、内的パラメータ変動および外的パラメータ変動は、アセットおよびシーンのプログラム可能機械学習データ表現を提供する。ソースアセットの取り込みは、ファイル形式およびデータセットトレーニングアーキテクチャを含む機械学習合成データ標準に基づく。ファイル形式はハード標準を指す場合ができ、データセットトレーニングアーキテクチャはソフト標準、たとえば自動介入または手動の人的介入を指すことができる。
【0027】
[0040]
図2Bを参照すると、ソースアセット(たとえば、ソースアセット202)を取り込むことは、ソースアセットのシーン変動パラメータのための値を自動的に計算することをさらに含み、シーン変動パラメータは機械学習のためにプログラム可能である。合成データアセットプロファイルが生成可能であり、合成データアセットプロファイルはアセット変動パラメータの値を含む。
図2Bは、境界ボックス208、サムネイル210、3D視覚化212、および最適化アセット214などの、追加のアーティファクトをさらに示す。
【0028】
[0041]シーンアセンブリエンジン112は、分散型のサービスとしての合成データ(SDaaS)の統合開発環境(IDE)から、第1の合成データアセットの選択および第2の合成データアセットの選択を受け取るように構成可能である。たとえば、
図4を参照すると、第1の層におけるアセットおよびパラメータ410は、第2の層におけるシーンおよびパラメータ420を生成するために使用可能であり、フレームセット430を定義するためにさらに使用可能である。合成データアセットは、アセット変動パラメータおよびシーン変動パラメータに関連付けられる。アセット変動パラメータおよびシーン変動パラメータは、機械学習のためにプログラム可能である。シーンアセンブリエンジンは合成データシーンを生成するための値を受け取ることが可能であり、値はアセット変動パラメータまたはシーン変動パラメータに対応する。値に基づいて、第1の合成データアセットおよび第2の合成データアセットを使用して合成データシーンを生成する。
【0029】
[0042]シーンアセンブリエンジンクライアント(たとえば、クライアントデバイス130B)は、合成データアセットについてのクエリを受け取るように構成可能であり、クエリはSDaaS IDEを介して受け取られ、クエリ結果合成データアセットを生成し、クエリ結果合成データに基づいて生成された合成データシーンを表示させる。合成データシーンを生成することは、少なくとも2つのアセンブリエンジンクライアントから受け取ったシーン生成のための値に基づくことができる。合成データシーンは、シーンプレビューおよびメタデータに関連付けられる。
【0030】
[0043]フレームセットアセンブリエンジン114は、合成データシーンにアクセスするように、およびシーン変動パラメータのための第1の値セットを決定するように構成可能であり、第1の値セットは合成データシーンフレームセットを生成するために自動的に決定される。フレームセットアセンブリエンジンは、第1の値セットに基づいて合成データシーンフレームセットを生成することも可能であり、合成データシーンフレームセットは、シーン変動パラメータのための値に基づいて更新された合成データシーンを含むフレームセット内に少なくとも第1のフレームを含み、合成データシーンフレームセットを記憶することも可能である。シーン変動パラメータのための第2の値セットは、合成データシーンフレームセットを生成するために手動で選択される。第2の値セットは、ファイル形式およびデータセットトレーニングアーキテクチャを含む機械学習合成データ標準をサポートするサービスとしての合成データ(SDaaS)の統合開発環境(IDE)を使用して、手動で選択される。合成データシーンフレームセットを生成することは、第1の値セットに基づいて合成データシーンを更新することに基づいて、合成データシーンフレームセットのためのフレームを繰り返し生成することを含む。
【0031】
[0044]フレームセットパッケージ生成器116は、フレームセットパッケージ生成器プロファイルにアクセスするように構成可能であり、フレームセットパッケージ生成器プロファイルは第1のイメージ生成デバイスに関連付けられ、フレームセットパッケージ生成器プロファイルは、第1のイメージ生成デバイスに関連付けられた既知のデバイス変動性パラメータを含む。フレームセットパッケージはフレームセットパッケージ生成器プロファイルに基づき、フレームセットパッケージ生成器プロファイルは既知のデバイス変動性パラメータのための値を含み、フレームセットパッケージを記憶する。フレームセットパッケージは、少なくとも2つの合成データシーンに基づくカテゴリを含む。フレームセットパッケージを生成することは、フレームセットパッケージを用いてトレーニングされることになる予期される機械学習アルゴリズムに基づき、予期される機械学習アルゴリズムはフレームセットパッケージ生成器プロファイル内で識別される。フレームセットパッケージは、値限定子をフレームセットパッケージに割り当てることを含む。フレームセットパッケージは、合成データアセットを含む合成データシーンに基づいて生成される。
【0032】
[0045]フレームセットパッケージストア118は、フレームセットパッケージクエリインターフェースからフレームセットパッケージのためのクエリを受け取るように構成可能であり、フレームセットクエリインターフェースは複数のフレームセットパッケージカテゴリを含み、フレームセットパッケージプロファイルに基づいてクエリ結果フレームセットパッケージを識別し、クエリ結果フレームセットパッケージを通信する。クエリの少なくとも一部が自動的に提案されたフレームセットパッケージを起動し、自動的に提案されたフレームセットはフレームセットの合成データシーンに関連付けられ、合成データシーンは合成データアセットを有する。フレームセットパッケージはイメージ生成デバイスに関連付けられ、イメージ生成デバイスは機械学習のためにプログラム可能な既知のデバイス変動性パラメータを含む。クエリ結果フレームセットパッケージは、分散型コンピューティングシステムまたは外部機械学習モデルトレーニングサービス上で動作する、内部機械学習モデルトレーニングサービス(たとえば、機械学習トレーニングサービス124)に通信される。
【0033】
[0046]フィードバックループエンジン120は、トレーニングデータセットレポートにアクセスするように構成可能であり、トレーニングデータセットレポートはアセット変動パラメータのための値を有する合成データアセットを識別し、合成データアセットはフレームセットに関連付けられる。トレーニングデータセットレポートに基づいて、合成データアセット変動を用いて合成データアセットを更新し、更新された合成データアセットを使用してフレームセットを更新する。値は、フレームセットを更新するためにトレーニングデータセットレポートにおいて手動で、または自動的に識別される。フレームセットを更新することは、値限定子(たとえば、更新を行うためのコスト)が割り当てられる。トレーニングデータセットレポートは、分散型システム上で動作する内部機械学習モデルトレーニングサービスまたは外部機械学習モデルトレーニングサービスに関連付けられる。
【0034】
[0047]クラウドソーシングエンジン122は、分散型のサービスとしての合成データ(SDaaS)のクラウドソースインターフェースからソースアセットを受け取り、分散型SDaaSのクラウドソースインターフェースを介してソースアセットのためのクラウドソースタグを受け取り、クラウドソースタグに部分的に基づいてソースアセットを取り込み、ソースアセットを取り込むことはソースアセットのアセット変動パラメータのための値を自動的に計算することを含み、アセット変動パラメータは機械学習のためにプログラム可能であり、アセット変動パラメータのための値を含むクラウドソースの合成データアセットを生成するよう構成可能である。クラウドソースの合成データアセットのための値限定子。アセット変動パラメータを含むクラウドソースの合成データアセットプロファイル。
図5を参照すると、クラウドソースのインターフェース500は、取り込みのためのソースアセットのアップロードおよびタグ付けをサポートすることができる。
【0035】
例示的フロー図
[0048]
図6から
図12を参照すると、分散型コンピューティングシステムのサービスとしての合成データを実装するための方法を示すフロー図が提供される。方法は、本明細書で説明する分散型コンピューティングシステムを使用して実行可能である。実施形態において、具体化されたコンピュータ実行可能命令を有する1つまたは複数のコンピュータ記憶媒体は、コンピュータ実行可能命令が1つまたは複数のプロセッサによって実行されたとき、分散型コンピューティングシステム100において、1つまたは複数のプロセッサに方法を実行させることができる。
【0036】
[0049]
図6は、実施形態に従って、分散型コンピューティングシステムのアセットアセンブリエンジンを実装するためのプロセス600を示すフロー図である。初めにブロック610において、第1の分散型のサービスとしての合成データ(SDaaS)のアップロードインターフェースから、第1のソースアセットを受け取る。ブロック620において、第2の分散型SDaaSのアップロードインターフェースから第2のソースアセットを受け取る。ブロック630において、第1のソースアセットおよび第2のソースアセットを取り込む。ソースアセットを取り込むことは、ソースアセットのアセット変動パラメータのための値を自動的に計算することを含み、アセット変動パラメータは機械学習のためにプログラム可能である。ブロック640において、アセット変動パラメータのための第1の値セットを含む第1の合成データアセットを生成する。ブロック650において、アセット変動パラメータのための第2の値セットを含む第2の合成データアセットを生成する。ブロック660において、第1の合成データアセットおよび第2の合成データアセットを合成データアセットストアに記憶する。
【0037】
[0050]
図7は、実施形態に従った、分散型コンピューティングシステムのシーンアセンブリエンジンを実装するためのプロセス700を示すフロー図である。初めにブロック710において、第1の合成データアセットの選択および第2の合成データアセットの選択を、分散型のサービスとしての合成データ(SDaaS)の統合開発環境(IDE)から受け取る。合成データアセットはアセット変動パラメータおよびシーン変動パラメータに関連付けられ、アセット変動パラメータおよびシーン変動パラメータは機械学習のためにプログラム可能である。ブロック720において、合成データシーンを生成するための値を受け取る。値はアセット変動パラメータまたはシーン変動パラメータに対応する。ブロック730において、値に基づいて、第1の合成データアセットおよび第2の合成データアセットを使用して合成データシーンを生成する。
【0038】
[0051]
図8は、実施形態に従った、分散型コンピューティングシステムのフレームセットアセンブリエンジンを実装するためのプロセス800を示すフロー図である。初めにブロック810において、合成データシーンにアクセスする。ブロック820において、シーン変動パラメータのための第1の値セットを決定する。第1の値セットは、合成データシーンフレームセットを生成するために自動的に決定される。ブロック830において、第1の値セットに基づいて合成データシーンフレームセットを生成する。合成データシーンフレームセットは、シーン変動パラメータのための値に基づいて更新された合成データシーンを含むフレームセット内に少なくとも第1のフレームを含む。ブロック840において、合成データシーンフレームセットを記憶する。
【0039】
[0052]
図9は、実施形態に従った、分散型コンピューティングのフレームセットパッケージ生成器を実装するためのプロセス900を示すフロー図である。ブロック910において、フレームセットパッケージ生成器プロファイルにアクセスする。フレームセットパッケージ生成器プロファイルは、第1のイメージ生成デバイスに関連付けられる。フレームセットパッケージ生成器プロファイルは、第1のイメージ生成デバイスに関連付けられた既知のデバイス変動性パラメータを含む。ブロック920において、フレームセットパッケージ生成器プロファイルに基づいてフレームセットパッケージを生成する。フレームセットパッケージ生成器プロファイルは、既知のデバイス変動性パラメータのための値を含む。ブロック930において、フレームセットパッケージを記憶する。
【0040】
[0053]
図10は、実施形態に従った、分散型コンピューティングシステムのフレームセットパッケージストアを実装するためのプロセス1000を示すフロー図である。ブロック1010において、フレームセットパッケージのためのクエリをフレームセットパッケージクエリインターフェースから受け取る。フレームセットクエリインターフェースは、複数のフレームセットパッケージカテゴリを含む。ブロック1020において、クエリ結果フレームセットパッケージをフレームセットパッケージプロファイルに基づいて識別する。ブロック1030において、クエリ結果フレームセットパッケージを通信する。
【0041】
[0054]
図11は、実施形態に従った、分散型コンピューティングシステムのフィードバックループエンジンを実装するためのプロセス1100を示すフロー図である。ブロック1110において、トレーニングデータセットレポートにアクセスする。トレーニングデータセットレポートは、アセット変動パラメータのための値を有する合成データアセットを識別する。合成データアセットはフレームセットに関連付けられる。ブロック1120において、トレーニングデータセットレポートに基づいて、合成データアセット変動を用いて合成データアセットを更新する。ブロック1130において、更新された合成データアセットを使用してフレームセットを更新する。
【0042】
[0055]
図12は、実施形態に従った、分散型コンピューティングシステムのクラウドソーシングエンジンを実装するためのプロセス1200を示すフロー図である。ブロック1210において、分散型のサービスとしての合成データ(SDaaS)のクラウドソースインターフェースからソースアセットを受け取る。ブロック1220において、分散型SDaaSクラウドソースインターフェースを介してソースアセットのためのクラウドソースタグを受け取る。ブロック1230において、部分的にクラウドソースタグに基づいて、ソースアセットを取り込む。ソースアセットを取り込むことは、ソースアセットのアセット変動パラメータのための値を自動的に計算することを含む。アセット変動パラメータは、機械学習のためにプログラム可能である。ブロック1240において、アセット変動パラメータのための値を含むクラウドソースの合成データアセットを生成する。
【0043】
[0056]有利なことに、本明細書で説明する実施形態は、分散型コンピューティングシステムを使用してサービスとしての合成データを提供する実装に基づいて、トレーニングデータセットを生成するためのコンピューティング機能および動作を改善する。特に、コンピューティング機能および動作の改善は、SDaaS動作に基づいたトレーニングデータセットの大量生産のための分散型インフラストラクチャに関連付けられる。たとえば、合成データアセットを使用してトレーニングデータセットを自動的に展開し、機械学習トレーニングサービスにおける機械学習モデルを改善することになる追加の合成データアセットまたはシーンを示すトレーニングデータセットレポートに基づいてトレーニングデータセットを自動的に改良する、SDaaS動作に基づいて、トレーニングデータセットの手動展開(たとえば、ラベリングおよびタグ付け)および改良(たとえば、検索)に必要なコンピューティング動作を不要にする。
【0044】
[0057]さらに、トレーニングデータセットの記憶および取り出しは、同じ分散型コンピューティングシステム内で動作する内部機械学習トレーニングサービスを使用して改善され、したがって計算オーバーヘッドを軽減する。SDaaS動作は、エンジンの従来的でない配置およびSDaaSシステムのステップの順序付けられた組み合わせのための定義された従来的でない規則のセットに基づいて、実装される。この点で、SDaaSは、機械学習トレーニングデータセットの手動展開の特定の問題に対処し、分散型コンピューティングシステムにおける機械学習モデルをトレーニングするための既存のプロセスを改善する。概して、これらの改善は結果としてCPUの計算を減少させ、メモリ要件を少なくし、機械学習トレーニングデータセットを生成および利用する際の柔軟性も向上させる。
【0045】
例示的分散型コンピューティング環境
[0058]次に
図13を参照すると、
図13は、本開示の実装が採用可能な例示の分散型コンピューティング環境1300を示す。特に
図13は、クラウドコンピューティングプラットフォーム1310における、分散型コンピューティングシステムのサービスとしての合成データの高レベルアーキテクチャを示し、システムは、ソフトウェア構成要素のシームレスな修正をサポートする。本明細書で説明するこの配置および他の配置は、単なる例として示されることを理解されたい。たとえば前述のように、本明細書で説明する要素の多くは、離散または分散構成要素として、あるいは他の構成要素と関連して、および任意の適した組み合わせおよびロケーションにおいて実装可能である。図示される配置および要素に加えて、またはそれらの代わりに、他の配置および要素(たとえば、機械、インターフェース、機能、命令、および機能のグループ化など)を使用することができる。
【0046】
[0059]データセンターは、クラウドコンピューティングプラットフォーム1310、ラック1320、およびラック1320内のノード1330(たとえば、コンピューティングデバイス、処理ユニット、またはブレード)を含む、分散型コンピューティング環境1300をサポートすることができる。システムは、異なるデータセンターおよび地理的領域にわたってクラウドサービスを実行する、クラウドコンピューティングプラットフォーム1310を用いて実装可能である。クラウドコンピューティングプラットフォーム1310は、クラウドサービスのリソース割り振り、展開、アップグレード、および管理を供給および管理するためのファブリックコントローラ1340構成要素を実装することができる。典型的には、クラウドコンピューティングプラットフォーム1310は、分散様式でデータを記憶するかまたはサービスアプリケーションを実行するように作用する。データセンター内のクラウドコンピューティングインフラストラクチャ1310は、特定のサービスアプリケーションのエンドポイントの動作をホストおよびサポートするように構成可能である。クラウドコンピューティングインフラストラクチャ1310は、パブリッククラウド、プライベートクラウド、または専用クラウドとすることができる。
【0047】
[0060]ノード1330には、ノード1330上で定義されたソフトウェアスタックを実行するホスト1350(たとえば、オペレーティングシステムまたはランタイム環境)を供給することができる。ノード1330は、クラウドコンピューティングプラットフォーム1310内で特殊な機能を実行する(たとえば、計算ノードまたは記憶ノード)ようにも構成可能である。ノード1330は、テナントのサービスアプリケーションのうちの1つまたは複数の部分を実行するために割り振られる。テナントは、クラウドコンピューティングプラットフォーム1310のリソースを利用する顧客を指すことができる。特定のテナントをサポートするクラウドコンピューティングプラットフォーム1310のサービスアプリケーション構成要素は、テナントインフラストラクチャまたはテナンシーと呼ぶことができる。サービスアプリケーション、アプリケーション、またはサービスという用語は、本明細書では交換可能に使用され、広義には、データセンター上で実行されるか、またはデータセンター内のストレージにアクセスしてデバイスロケーションを計算する、任意のソフトウェアまたはソフトウェアの一部を指す。
【0048】
[0061]複数の別々のサービスアプリケーションがノード1330によってサポートされているとき、ノード1330は仮想機械(たとえば、仮想機械1352および仮想機械1354)に区分することができる。物理機械は、別々のサービスアプリケーションを同時に実行することもできる。仮想機械または物理機械は、クラウドコンピューティングプラットフォーム1310内のリソース1360(たとえば、ハードウェアリソースおよびソフトウェアリソース)によってサポートされる、個別化されたコンピューティング環境として構成可能である。リソースは、特定のサービスアプリケーションのために構成可能であることが考えられる。さらに、各機能部分が別々の仮想機械上で実行できるように、各サービスアプリケーションを機能部分に分割することができる。クラウドコンピューティングプラットフォーム1310では、複数のサーバを使用してサービスアプリケーションを実行し、クラスタ内へのデータ記憶動作を実行することができる。特にサーバは、独立に、ただしクラスタと呼ばれる単一のデバイスとして見えるように、データ動作を実行することができる。クラスタ内の各サーバは、ノードとして実装可能である。
【0049】
[0062]クライアントデバイス1380は、クラウドコンピューティングプラットフォーム1310内のサービスアプリケーションにリンクすることができる。クライアントデバイス1380は、たとえば
図13を参照しながら説明するコンピューティングデバイス1300に対応することが可能な、任意のタイプのコンピューティングデバイスとすることができる。クライアントデバイス1380は、クラウドコンピューティングプラットフォーム1310にコマンドを発行するように構成可能である。実施形態において、クライアントデバイス1380は、仮想インターネットプロトコル(IP)およびロードバランサ、または、クラウドコンピューティングプラットフォーム1310内の指定されたエンドポイントに通信要求を誘導する他の手段を介して、サービスアプリケーションと通信することができる。クラウドコンピューティングプラットフォーム1310の構成要素は、1つまたは複数のローカルエリアネットワーク(LAN)および/またはワイドエリアネットワーク(WAN)を含むことができるが限定されない、ネットワーク(図示せず)を介して、相互に通信することができる。
【0050】
例示的コンピューティング環境
[0063]本発明の実施形態の概要を簡単に説明してきたが、本発明の様々な態様についての一般的状況を提供するために、本発明の実施形態を実装できる例示的なオペレーティング環境を下記で説明する。初めに特に
図14を参照すると、本発明の実施形態を実装するための例示的オペレーティング環境が、コンピューティングデバイス1400として概括的に図示および指定される。コンピューティングデバイス1400は、好適なコンピューティング環境の単なる一例であり、本発明の使用または機能の範囲に対するいかなる制限も示唆することは意図していない。さらにコンピューティングデバイス1400は、図示した構成要素のいずれか1つまたは組み合わせに関して、いかなる依存性または要件を有するものとも解釈すべきではない。
【0051】
[0064]本発明は、プログラムモジュールなどのコンピュータ実行可能命令を含み、コンピュータ、あるいは携帯情報端末または他のハンドヘルドデバイスなどの他の機械によって実行される、コンピュータコードまたは機械使用可能命令との一般的な関連において説明することができる。一般に、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含むプログラムモジュールは、特定のタスクを実行するかまたは特定の抽象データ型を実装するコードを指す。本発明は、ハンドヘルドデバイス、家庭用電子機器、汎用コンピュータ、より専門的なコンピューティングデバイスなどを含む、様々なシステム構成で実施可能である。本発明は、タスクが通信ネットワークを介してリンクされたリモート処理デバイスによって実行される、分散型コンピューティング環境においても実施可能である。
【0052】
[0065]
図14を参照すると、コンピューティングデバイス1400はバス1410を含み、バス1410は、メモリ1412、1つまたは複数のプロセッサ1414、1つまたは複数の提示構成要素1416、入力/出力ポート1418、入力/出力構成要素1420、および例示の電源1422、というデバイスを、直接または間接的に結合する。バス1410は、(アドレスバス、データバス、またはそれらの組み合わせなどの)1つまたは複数のバスとすることができる。
図14の様々なブロックは、概念的に明確にするために線で示されており、説明する構成要素および/または構成要素機能の他の配置も考えられる。たとえば、ディスプレイデバイスなどの提示構成要素はI/O構成要素であるものとみなすことができる。また、プロセッサはメモリを有する。これは当分野の本質であるものと理解し、
図14の図は、本発明の1つまたは複数の実施形態に関連して使用可能な例示的コンピューティングデバイスの単なる例であることをあらためて述べる。「ワークステーション」、「サーバ」、「ラップトップ」、「ハンドヘルドデバイス」などのカテゴリ間には区別がなく、すべては
図14の範囲内にあり、「コンピューティングデバイス」を指すものと考えられる。
【0053】
[0066]コンピューティングデバイス1400は、典型的には様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピューティングデバイス1400がアクセス可能な任意の使用可能媒体とすることができ、揮発性および不揮発性、取り外し可能および取り外し不可の、両方の媒体を含む。例を挙げると、コンピュータ可読媒体はコンピュータ記憶媒体および通信媒体を含むことができるが、限定はしない。
【0054】
[0067]コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの、情報の記憶のための任意の方法または技術で実装される、揮発性および不揮発性、取り外し可能および取り外し不可の、媒体を含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶デバイス、あるいは、所望の情報を記憶するために使用可能でありコンピューティングデバイス1400によってアクセス可能な任意の他の媒体を含むが、限定されない。コンピュータ記憶媒体は、信号自体は含まない。
【0055】
[0068]通信媒体は、典型的にはコンピュータ可読命令、データ構造、プログラムモジュール、あるいは、搬送波または他の移送機構などの変調データ信号内の他のデータを具備し、任意の情報送達媒体を含む。「変調データ信号」という用語は、信号内の情報を符号化するような方法で設定または変更されたその特徴のうちの1つまたは複数を有する信号を意味する。例を挙げると、通信媒体は、ワイヤードネットワークまたは直接ワイヤード接続などのワイヤード媒体、および音波、RF、赤外線、および他のワイヤレス媒体などのワイヤレス媒体を含むが、限定はしない。上記のいずれの組み合わせも、コンピュータ可読媒体の範囲内に含まれるものとする。
【0056】
[0069]メモリ1412は、揮発性および/または不揮発性のメモリの形のコンピュータ記憶媒体を含む。メモリは、取り外し可能、取り外し不可、またはそれらの組み合わせとすることができる。例示的ハードウェアデバイスは、固体メモリ、ハードドライブ、光ディスクドライブなどを含む。コンピューティングデバイス1400は、メモリ1412またはI/O構成要素1420などの様々なエンティティからデータを読み取る、1つまたは複数のプロセッサを含む。提示構成要素1416は、ユーザまたは他のデバイスにデータ指示を提示する。例示的提示構成要素は、ディスプレイデバイス、スピーカ、印刷構成要素、振動構成要素などを含む。
【0057】
[0070]I/Oポート1418は、コンピューティングデバイス1400を、一部は組み込み可能なI/O構成要素1420を含む他のデバイスに論理的に結合できるようにする。例示的構成要素は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送用アンテナ、スキャナ、プリンタ、ワイヤレスデバイスなどを含む。
【0058】
[0071]分散型コンピューティングシステムのサービスとしての合成データを参照すると、分散型コンピューティングシステムのサービスとしての合成データ構成要素は、サービスとしての合成データを提供するための統合構成要素を指す。統合構成要素は、システム内の機能をサポートする、ハードウェアアーキテクチャおよびソフトウェアフレームワークを指す。ハードウェアアーキテクチャは、物理構成要素およびそれらの間の関係を指し、ソフトウェアフレームワークは、デバイス上に具体化されたハードウェアを用いて実装可能な機能を提供するソフトウェアを指す。
【0059】
[0072]エンドツーエンドのソフトウェアベースシステムは、システム機能を提供するためにコンピュータハードウェアを動作させるように、システム構成要素内で動作することができる。低レベルでは、ハードウェアプロセッサは、所与のプロセッサのための機械言語(機械コードまたはネイティブとも呼ばれる)命令セットから選択された命令を実行する。プロセッサはネイティブ命令を理解し、たとえば論理、制御、およびメモリ動作に関係する、対応する低レベル機能を実行する。機械コードで作成された低レベルソフトウェアは、より高レベルのソフトウェアにより複雑な機能を提供することができる。本明細書で使用する場合、コンピュータ実行可能命令は、機械コードで作成された低レベルソフトウェア、アプリケーションソフトウェアなどのより高レベルのソフトウェア、およびそれらの任意の組み合わせを含む、任意のソフトウェアを含む。この点で、システム構成要素は、リソースを管理し、システム機能のためのサービスを提供することができる。本発明の実施形態を用いた任意の他の変形およびそれらの組み合わせが考えられる。
【0060】
[0073]例を挙げると、分散型コンピューティングシステムのサービスとしての合成データは、デバイスのハードウェアアーキテクチャと、分散型コンピューティングシステムのサービスとしての合成データのソフトウェアフレームワークとの間の対話をサポートすることができる、ルーチン、データ構造、オブジェクトクラス、および変数についての指定を含む、APIライブラリを含むことが可能である。これらのAPIは、本明細書で説明するように、様々な構成要素が分散型コンピューティングシステムのサービスとしての合成データ内で相互に通信できるように、分散型コンピューティングシステムのサービスとしての合成データについての構成指定を含む。
【0061】
[0074]本明細書で利用される様々な構成要素を識別してきたが、本開示の範囲内で所望の機能を達成するために任意の数の構成要素および配置が採用可能であることを理解されたい。たとえば、図面内に示された実施形態における構成要素は、概念上明確にするために線で示されている。これらおよび他の構成要素の他の配置も実装可能である。たとえば、いくつかの構成要素は単一の構成要素として示しているが、本明細書で説明する要素の多くは、離散または分散型構成要素として、または他の構成要素に関連して、および任意の好適な組み合わせおよびロケーションにおいて、実装可能である。いくつかの要素は完全に省くことができる。さらに、本明細書では1つまたは複数のエンティティによって実行されるものとして説明する様々な機能は、下記で説明するように、ハードウェア、ファームウェア、および/またはソフトウェアによって実施可能である。たとえば様々な機能は、メモリ内に記憶されたプロセッサ実行命令によって実施可能である。したがって、他の配置および要素(たとえば、機械、インターフェース、機能、命令、および機能のグループ化など)を、図に示された配置および要素に加えて、またはそれらの代わりに使用することが可能である。
【0062】
[0075]下記の段落で説明する実施形態は、具体的に説明する代替実施形態のうちの1つまたは複数と組み合わせることができる。特に、請求する実施形態は、代替実施形態における、複数の他の実施形態への参照を含むことができる。請求する実施形態は、請求する主題のさらなる制限を指定することができる。
【0063】
[0076]本発明の実施形態の主題は、法定要件を満たすように本明細書において具体的に説明している。しかしながら説明自体は、本特許の範囲を限定することを意図していない。むしろ発明者らは、請求する主題が、他の現在または将来の技術に関連して、本明細書に記載するステップとは異なるステップまたは同様のステップの組み合わせを含むように、他の方法でも具体化可能であることを企図した。さらに、「ステップ」および/または「ブロック」という用語は、採用される方法の異なる要素を含意するために本明細書で使用可能であるが、これらの用語は、個々のステップの順序が明示的に記載されていない限り、および記載されている場合を除き、本明細書で開示された様々なステップ中またはステップ間の任意の特定の順序を示唆するものとして解釈するべきではない。
【0064】
[0077]本開示において、「含む(including)」という用語は、「備える(comprising)」という用語と同じ広義の意味を有し、「アクセスする(accessing)」という用語は「受け取る(receiving)」、「参照する(referencing)」、または「取り出す(retrieving)」を含む。さらに「通信する(communicating)」という用語は、本明細書で説明する通信媒体を使用してソフトウェアまたはハードウェアベースのバス、受信器、または送信器によって容易になる、「受信する(receiving)」または「送信する(transmitting)」という用語と同じ広義の意味を有する。加えて、それとは反対に別段に示されていない限り、「a」および「an」などの用語は、複数形および単数形を含む。したがって、たとえば「1つの特徴(a feature)」の制約は、1つまたは複数の特徴が存在する場合に満たされる。また、「または」という用語は、接続詞、離接語、および両方を含む(したがって、aまたはbは、aまたはbならびにaおよびbのいずれかを含む)。
【0065】
[0078]上記の詳細な考察において、本発明の実施形態は分散型コンピューティング環境を参照しながら説明しているが、本明細書に示される分散型コンピューティング環境は単なる例示である。構成要素は実施形態の新規の態様を実行するために構成可能であり、「ために構成される(configured for)」という用語は、特定のタスクを実行する、またはコードを使用して特定の抽象データ型を実装する「ためにプログラムされる(programmed to)」ことを指すことができる。さらに、本発明の実施形態は一般に、本明細書で説明する、分散型コンピューティングシステムのサービスとしての合成データおよび概要を指すことができるが、説明する技法は他の実装状況に拡張できることを理解されよう。
【0066】
[0079]本発明の実施形態を、すべての点において制限的ではなく例示的であることを意図する特定の実施形態に関して説明してきた。当業者であれば、本発明がその範囲を逸脱することなく関連する代替の実施形態が明らかとなろう。
【0067】
[0080]前述の内容から、本発明は、明白であり構造に固有な他の利点と共に上記で示したすべての目標および目的を達成するために良好に適合するものであることがわかるであろう。
【0068】
[0081]一定の特徴および下位組み合わせは実用的であり、他の特徴または下位組み合わせとは無関係に採用可能であることを理解されよう。これは、特許請求の範囲によって企図され、特許請求の範囲内である。