(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023160701
(43)【公開日】2023-11-02
(54)【発明の名称】汎用モデルによって生成された訓練データを使用したタスク固有の機械学習動作
(51)【国際特許分類】
G06N 20/00 20190101AFI20231026BHJP
G06F 16/906 20190101ALI20231026BHJP
【FI】
G06N20/00 130
G06F16/906
【審査請求】未請求
【請求項の数】21
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022102332
(22)【出願日】2022-06-27
(31)【優先権主張番号】17/727,332
(32)【優先日】2022-04-22
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
2.TENSORFLOW
(71)【出願人】
【識別番号】501450960
【氏名又は名称】エヌビディア コーポレーション
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】ライアン リアリー
(72)【発明者】
【氏名】ジョナサン コーエン
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175FA03
(57)【要約】
【課題】異なる機械学習モデルからのクエリ/応答ペアを訓練データとして使用することによって機械学習モデルを開発及び展開するためのパイプラインを提供するシステム及び方法を提供する。
【解決手段】モデル・パラメータのセットが確立され、訓練済み機械学習モデルは、入力クエリへの応答を提供して、クエリ/応答ペアを開発する。これらのクエリ/応答ペアを使用して、異なる機械学習モデルを訓練することができる。そのモデルを元のモデルに照らしてテストして、それらが一致しているかどうかを判定することができ、モデルが一致している場合、異なる機械学習モデルをシステムの一次モデルとして展開することができる。
【選択図】
図6A
【特許請求の範囲】
【請求項1】
1つ又は複数のプロセッサを備えるシステムであって、前記1つ又は複数のプロセッサが、
第1のモデルに関連付けられた1つ又は複数のパラメータであって、1つ又は複数のクラスを含む1つ又は複数のパラメータを受け取り、
前記1つ又は複数のクラスに関連付けられたクエリに応答するように訓練された前記第1のモデルに対する1つ又は複数の第1のクエリを受け取り、
前記1つ又は複数の第1のクエリ及び前記第1のモデルからのそれぞれの応答を使用して第2のモデルを訓練し、
前記1つ又は複数のクラスに関連付けられた1つ又は複数の第2のクエリに応答する前記訓練済みの第2のモデルに対する前記1つ又は複数の第2のクエリを受け取り、
データ・ストアを使用して前記クエリ及びそれぞれの応答を格納する、
システム。
【請求項2】
前記第1のモデルが、ゼロ・ショット・モデルである、請求項1に記載のシステム。
【請求項3】
前記1つ又は複数のパラメータが、少なくとも部分的に前記1つ又は複数のクラスの自然言語記述を含む、請求項1に記載のシステム。
【請求項4】
前記第2のモデルが、少なくとも部分的に前記第1のモデルと並行して動作可能である、請求項1に記載のシステム。
【請求項5】
前記1つ又は複数のプロセッサがさらに、
前記第1のモデルの応答と前記第2のモデルの応答との間の整合性を判定し、
前記整合性が閾値を超えていると判定する、
請求項1に記載のシステム。
【請求項6】
前記閾値に達した後、前記第1のモデルが、前記1つ又は複数の第1のクエリを受け取ることを停止する、請求項5に記載のシステム。
【請求項7】
前記1つ又は複数のプロセッサがさらに、
前記データ・ストア内のクエリ及びそれぞれの応答の数が訓練閾値を超えていると判定する、請求項1に記載のシステム。
【請求項8】
前記第2のモデルが、少なくとも部分的に前記第1のモデルの動作と並行して訓練される、請求項1に記載のシステム。
【請求項9】
前記それぞれの応答が、前記1つ又は複数のクラスに対応するそれぞれのラベルを含む、請求項1に記載のシステム。
【請求項10】
第1の機械学習モデルのためのクラス・パラメータを受け取るステップと、
クエリを受け取るステップと、
前記クラス・パラメータに従って、前記第1の機械学習モデルを使用して前記クエリを処理するステップと、
前記クエリへの応答を提供するステップと、
前記クエリ及び前記応答をクエリ/応答ペアとして格納するステップと、
前記クエリ/応答ペアを第2の機械学習モデルに訓練データとして提供するステップと
を含む、方法。
【請求項11】
前記クラス・パラメータが、少なくとも、分類器のための1つ又は複数のクラスの自然言語記述を含む、請求項10に記載の方法。
【請求項12】
第2のクエリを受け取るステップと、
前記第1の機械学習モデルと前記第2の機械学習モデルとの両方を使用して前記第2のクエリを処理するステップと、
前記第1の機械学習モデルからの第1の応答を前記第2の機械学習モデルからの第2の応答と比較するステップと、
前記第1の応答と前記第2の応答との間の収束値を決定するステップと
をさらに含む、請求項10に記載の方法。
【請求項13】
前記収束値が閾値を超えていると判定するステップと、
前記第1の機械学習モデルの動作を終了するステップと
をさらに含む、請求項12に記載の方法。
【請求項14】
前記クエリへの前記応答がラベルに対応し、前記方法が、
前記ラベルに関連付けられたアクションを決定するステップと、
前記アクションを実行するステップと
をさらに含む、請求項10に記載の方法。
【請求項15】
前記第2の機械学習モデルを圧縮するステップと、
前記第2の機械学習モデルをエッジ・サーバ上で実行されるように展開するステップと
をさらに含む、請求項10に記載の方法。
【請求項16】
複数のクエリを受け取るステップと、
複数のクエリ/結果ペアを生成するステップと、
クエリ/結果ペアの数が閾値を超えていると判定するステップと、
前記第2の機械学習モデルのための訓練セッションをスケジュールするステップと
をさらに含む、請求項10に記載の方法。
【請求項17】
第1のモデルの1つ又は複数のパラメータを受け取るための入力プラットフォームと、
前記第1のモデルとは異なる第2のモデルであって、少なくとも前記1つ又は複数のパラメータを使用して1つ又は複数の推論探求への応答を生成するための第2のモデルと、
クエリを受け取るためのクエリ・インターフェースであって、クエリを前記第2のモデルへ方向付けるクエリ・インターフェースと、
前記クエリ及びそれぞれの応答の少なくとも一部分を前記第1のモデルに訓練データとして提供するための訓練プラットフォームと
を含む、システム。
【請求項18】
前記クエリ・インターフェースが、クエリを前記第1のモデルと前記第2のモデルとの両方へ方向付ける、請求項17に記載のシステム。
【請求項19】
前記第1のモデルからの応答を前記第2のモデルからの応答と比較するための評価プラットフォームをさらに含み、前記評価プラットフォームが、前記第1のモデルからの前記応答と前記第2のモデルからの前記応答との間の一致性を判定する、請求項18に記載のシステム。
【請求項20】
前記第2のモデルが、ゼロ・ショット・モデルである、請求項17に記載のシステム。
【請求項21】
前記システムが、
自律型若しくは半自律型マシンのための制御システム、
会話型AIシステム、
自律型若しくは半自律型マシンのための知覚システム、
シミュレーション動作を実行するためのシステム、
共同コンテンツ作成のためのシステム、
深層学習動作を実行するためのシステム、
エッジデバイスを使用して実装されたシステム、
ロボットを使用して実装されたシステム、
合成データを生成するためのシステム、
1つ若しくは複数の仮想マシン(VM)を組み込んだシステム、
少なくとも部分的にデータ・センタ内に実装されたシステム、又は
少なくとも部分的にクラウド・コンピューティング・リソースを使用して実装されたシステム
のうちの少なくとも1つに含まれる、請求項17に記載のシステム。
【発明の詳細な説明】
【背景技術】
【0001】
様々なシステムは、入力クエリと対話するために、機械学習モデルを展開する場合がある。通常、これらのモデルは、特定のタスク又は分野についての大規模なデータセット又は人間が注釈付けしたデータセット上で訓練される。十分に大規模なデータセット又は人間が注釈付けしたデータセットを取得することは、時間及び費用がかかる可能性があり、これによりモデルの展開が遅延する可能性がある。さらに、特定のアプリケーションに対して汎用モデルを使用することは、不十分な結果につながる可能性があり、予想されるユーザ・クエリが、モデルが十分に訓練されていない特定の分野に固有である場合、この不十分な結果は悪化する。
【発明の概要】
【課題を解決するための手段】
【0002】
図面を参照しながら、本開示による様々な実施例を説明する。
【図面の簡単な説明】
【0003】
【
図1】少なくとも一実施例による、例示的な自然言語処理環境を示す図である。
【
図2】少なくとも一実施例による、機械学習プラットフォームの実例を示す図である。
【
図3】少なくとも一実施例による、機械学習プラットフォーム訓練段階の実例を示す図である。
【
図4】少なくとも一実施例による、機械学習プラットフォーム検証段階の実例を示す図である。
【
図5】少なくとも一実施例による、機械学習プラットフォームの作成段階の実例を示す図である。
【
図6A】少なくとも一実施例による、訓練データを生成するためのプロセスの実例フローチャートである。
【
図6B】少なくとも一実施例による、機械学習モデルを検証するためのプロセスの実例フローチャートである。
【
図7】少なくとも一実施例による、例示的なデータ・センタ・システムを示す図である。
【
図8】少なくとも一実施例による、コンピュータ・システムを示す図である。
【
図9】少なくとも一実施例による、コンピュータ・システムを示す図である。
【
図10】少なくとも一実施例による、1つ又は複数の実施例による、グラフィックス・プロセッサの少なくとも一部分を示す図である。
【
図11】少なくとも一実施例による、1つ又は複数の実施例による、グラフィックス・プロセッサの少なくとも一部分を示す図である。
【発明を実施するための形態】
【0004】
様々な実施例による手法は、自動化されたモデル開発のためのシステム及び方法を提供する。少なくとも一実施例では、タスク固有モデルのための訓練データは、ゼロ・ショット・モデルなどの汎用モデルによって生成されてもよい。たとえば、タスク固有モデルのための訓練データを生成するために、初期環境は、ゼロ・ショット・モデルを使用して展開されてもよく、ゼロ・ショット・モデルからの応答は、関連する入力クエリとともに保存されてもよい。時間の経過とともに、タスク固有モデルとゼロ・ショット・モデルとの両方を展開して2者間の収束を決定することができ、収束の閾値レベルが、タスク固有モデルの排他的又は半排他的使用への移行を導くことができる。このように、より高度で計算量が多いモデルの利点を活用することによって、より軽量で計算量が少ないモデルを迅速に開発及び展開することができる。
【0005】
少なくとも一実施例では、ユーザ入力を受け取り、応答を提供するために、汎用モデルとともにゼロ・ショット手法が利用されてもよい。ゼロ・ショット手法は、たとえば聴覚入力などのユーザ入力に基づいてユーザの意図を認識するために利用されてもよい。様々な実施例は、聴覚ユーザ・クエリなどの入力を受け取り、クエリの意図に対応する関連する入力に対するラベルを決定する、1つ又は複数の訓練済みニューラル・ネットワーク・モデルを含んでもよい。ラベルは、意図に対応するラベルが閾値を超える確率に少なくとも部分的に基づいて決定されてもよい。少なくとも一実施例では、所定のラベルのセットが提供されてもよく、次いで、ユーザ入力をそれらのラベルに照らして評価して、どのラベルが入力に関連付けられる可能性が最も高いかを決定する。
【0006】
様々な実施例は、自然言語処理(NLP:natural language processing)及び/又は自然言語理解(NLU:natural language understanding)技術の展開に関連する問題を克服することができる。訓練データをモデルの訓練に適した形式にするために訓練データをキュレート、前処理、及びラベル付けするプロセスは、多大な労力を要し、時間及び費用がかかる可能性がある。従来のNPLモデルは、ブートストラップ(たとえば、構想からシステムの展開までの時間)に時間がかかりすぎる。ゼロ・ショット・モデルなどの汎用モデルは、展開時間を短縮することができるが、非常に大規模な推論ルーチンで高品質の結果を取得するのは困難である場合があり、たとえば教師あり方式で訓練されたタスク固有モデルと比較した場合、法外に費用がかかるか又は計算量が多すぎて実行できない場合がある。したがって、様々な実施例は、大規模な初期データセットを必要とするという欠点又はゼロ・ショット・モデルを連続的に動作するのに費用がかかるという欠点なしに迅速に展開できる言語モデルを開発するためのハイブリッド・モデルを可能にするステム及び方法を提供する。様々なシステムは、(たとえば、ユーザ入力に基づいて)関連する分野又はクラスを決定し、次いで、推論要求に対して汎用ゼロ・ショット・モデルを使用して分野に対応するモデルを展開する。次いで、汎用モデルに提供された要求及びその後の回答は、記録され、タスク固有モデルのためのグラウンド・トゥルース訓練データとして使用される。訓練が完了するか又は閾値レベルに達すると、両方のモデルからの回答を比較して一致性のレベルを評価することができ、十分な一致性に達した場合、クエリはタスク固有モデルへ方向付けられ、それによって大幅な計算の節約を実現する。さらに、タスク固有モデルのサイズが縮小されるため、モデルの展開を、他の選択肢のなかでもとりわけエッジ推論の有効化などの追加の若しくは以前は実行不可能だったアプリケーション又はコンピューティング環境に拡張することができる。
【0007】
様々な実施例はさらに、ユーザが新しいモデルの生成についての様々な仕様を入力することを可能にするための環境のダッシュボードを提供してもよい。たとえば、ユーザは特定のモデルについての分野を選択し、次いで、汎用ゼロ・ショット・モデルの確立を支援するために様々なラベル又は情報を提供してもよい。しかし、他の選択肢のなかでもとりわけ、検証及び/又は修正の対象となるモデルによってラベルも作成されてもよいことを認識すべきである。さらに、様々な実施例は、レビュー用の信頼性の低いラベルを作り出すための能動学習を容易することができ、これによりモデルに対する改善がさらに可能になる場合がある。少なくとも一実施例では、たとえば1つ又は複数の閾値が満たされた場合、手動による修正又は追加の推論の使用は新しいモデル訓練をトリガすることができる。新しいモデルが訓練されると、回帰がないことを保証するために、評価(手動で修正されたデータ又はゼロ・ショットで作成されたラベルを組み込む場合がある)が実行され、モデルのバージョンにわたって一貫した信頼スコアを保証するために、スコア較正が実行されてもよい。ダッシュボードにより、対象となる使用事例(たとえば、エッジ・サーバ、組み込みデバイスなどへの展開)に応じて蒸留及び/又は量子化のいずれかを介してモデルの圧縮をユーザがトリガできる場合があることを認識すべきである。
【0008】
図1に示すように、環境100は、モデルを開発するために1つ又は複数のNLP/NLUシステムとともに利用されてもよい。環境100がより多くの又はより少ない構成要素を含んでもよいこと、及び環境100の様々な構成要素が単一のシステムに組み込まれてもよいが、便宜上且つ明確にするために別個のモジュールとして示される場合があることを認識すべきである。この実例では、クライアント・デバイス102は、1つ又は複数のネットワーク106を介して、開発環境104に対して1つ又は複数の要求を行うことができる。ネットワーク106は、ユーザ・デバイス、サーバ構成要素、スイッチなどの1つ若しくは複数の中間システムを含む有線ネットワーク又は無線ネットワークであってもよい。
【0009】
この実例では、開発環境104は、他の選択肢のなかでもとりわけ、ユーザに1つ若しくは複数のホスティング・サービス又はコンピューティング・サービスを提供できるプラットフォームに関連付けられてもよい。たとえば、開発環境104は、ユーザが、自身の製品のうちの1つ又は複数と統合して使用するために、会話型人工知能(AI:artificial intelligence)システムなどの1つ又は複数の機械学習システムを活用することを可能にしてもよい。開発環境104は、ユーザが、自身の所望の目的のために独自のモデルを開発すること、既存のモデルを活用すること、又はそれらの組合せを可能にしてもよい。さらに、開発環境104は、モデル訓練、モデル検証などのサービスも提供してもよい。開発環境104が、様々なワンタイム又はサブスクリプションベースのサービスをユーザに提供できる大規模なサービス環境に統合されてもよいことを認識すべきである。さらに、開発環境104は、特定のプラットフォーム用のアプリケーションを構築するために、1つ又は複数のソフトウェア開発ツールキット(SDK:software development toolkit)に関連付けられてもよい。
【0010】
開発環境104内には、クライアント・デバイス102によって送出された1つ又は複数の要求を受け取ることができる管理者API108が図示されている。管理者API108は、新しい機械学習システムを求める要求を送出する、既存の機械学習システムのプロパティを編集又は調整する、診断を実行するなど、クライアント・デバイス102が対話するためのインターフェースを提供してもよい。少なくとも一実施例では、管理者API108は、他の選択肢のなかでもとりわけ、機械学習システムのホスティング及び/又は動作に関連するクライアント・デバイス102に提供されるサービスに関連付けられてもよい。
【0011】
少なくとも一実施例では、開発環境104に機械学習プラットフォーム110が関連付けられる。機械学習プラットフォーム110は、ユーザが様々なアプリケーションのために様々な機械学習システムを確立し、訓練し、且つ/又は動作させることを可能にするための1つ又は複数のツールを含んでもよい。たとえば、ユーザは、大規模なデータセット上で訓練された汎用モデルなどの既存のモデルを活用し、次いで、タスク固有の動作のためにモデルを微調整又は別の方法で訓練してもよい。要求マネージャ112は、モデルを選択するように調整することを求める管理者API108からの要求、又は確立されたモデルを使用して1つ若しくは複数の動作を実行することを求めるクライアント・デバイス102からの要求などを受け取ってもよい。要求マネージャ112は、モデル・データベース114から1つ又は複数のモデルを選択してもよい。モデル・データベース114は、汎用モデル及び/又はタスク固有モデルのセットを含んでもよい。少なくとも一実施例では、ユーザに関連付けられた以前に訓練及び開発されたモデルは、後のアクセス及び/又は変更のためにモデル・データベース114内に格納されてもよい。たとえば、ユーザは異なるアプリケーション用の多種多様なモデルを有してもよく、異なるモデルが異なる時間にアクセス及び使用されてもよい。
【0012】
機械学習プラットフォーム110はまた、新しいモデルを開発するために利用されてもよい。たとえば、モデル・データベース114からの汎用モデルなどの1つ又は複数のモデルは、訓練マネージャ116がモデルを訓練するためにデータ118を選択する訓練プロセスを経てもよい。たとえば、訓練マネージャ116は、タスク固有のアプリケーションに関連する1つ又は複数のデータセットを選択してもよい。さらに、少なくとも一実施例では、訓練マネージャ116は、行われる訓練パスの数、訓練に関連付けられるパラメータなどを選択してもよい。
【0013】
少なくとも一実施例では、ユーザは、訓練動作で使用するための訓練データを提供してもよく、訓練データは、データベース120内に格納されてもよい。たとえば、ユーザは独自のデータセットを持ち込んでもよく、又は1つ若しくは複数のモデルに関連付けられた様々な動作を保存することを通じて新しいデータセットを生成してもよい。データベース120は、1つ又は複数のモデルのタスク固有の訓練のために利用されてもよい。さらに、ユーザは、モデルを確立又は使用するときに訓練マネージャ116及び/又は要求マネージャ112によって格納並びに使用するためのパラメータ122を提供してもよい。パラメータ122は、モデル、所望の精度レベル、レイテンシなどに関連付けられた特定のクラスを含んでもよい。
【0014】
動作に際して、ユーザ要求は、干渉API124と対話し得る会話システムに対する質問などの入力クエリの形式をとってもよい。推論APIは、機械学習プラットフォーム110とインターフェースして、評価のための質問を提示し、次いで回答をユーザに提供するなどしてもよい。
【0015】
図2は、機械学習プラットフォーム202が推論API204を介して照会されて1つ又は複数の入力クエリ206への応答を提供することができる環境200を示す。この実例では、1つ若しくは複数のユーザ又はユーザ・デバイスは、1つ又は複数の機械学習モデルに関連付けられた入力クエリ206を生成してもよい。少なくとも一実施例では、モデルは、管理API210に提供される1つ又は複数のパラメータ208に従って生成及び開発されたモデルである。たとえば、開発者は、所望のクラスなどの異なるモデル・パラメータを、特定の機械学習モデル内に開発されることになる管理API210に提供してもよい。
【0016】
上記のように、タスク固有モデルは、十分な訓練データがないため、訓練及び展開するには困難を伴う場合がある。しかし、これらのタイプのモデルは、従来の教師あり訓練方法で訓練される可能性があり、その結果、計算量が少なくなり、さらにサイズも小さくなる可能性がある。対照的に、ゼロ・ショット・モデルなどの汎用モデルは、大規模なデータセット上で訓練される可能性があるが、タスク固有モデルに関連付けられた1つ又は複数の特定のタスクに関する十分な情報を有していない可能性がある。したがって、本開示の実施例は、1つ又は複数の汎用モデルの訓練で使用するための訓練データを開発するために、1つ又は複数の機械学習モデル212を利用してクエリ206への応答を生成し、次いで、クエリ206とともにそれらの応答を使用してもよい。このようにして、新しいモデルを迅速に展開することができ、次いで、時間の経過とともに、より大きく、より計算量が多い汎用モデルを、訓練済みのタスク固有モデルに置き換えることができる。
【0017】
この実例では、機械学習モデル212はゼロ・ショット分類器である。少なくとも一実施例では、ゼロ・ショット・モデルは、クラス(たとえば、意図)とそれらのクラスに対するラベル(たとえば、意図ラベル)とのユーザ定義されたセットを含む。例として、レストラン・アプリケーションの意図はハンバーガを購入することである場合があり、関連付けられるラベルはハンバーガを購入することに関連している。これらのクラスはそれぞれ、対応する質問又は後続のアクションを有してもよく、次いで、これらは、スロットを埋める値を選択するために使用されてもよい。例として、クラスはハンバーガを購入したいという要望に関連する場合があり、そのスロットを埋める(たとえば、後続のアクションを決定する)値は、ショッピング・カートにいくつかのハンバーガを追加して注文を完了することである可能性がある。
【0018】
機械学習モデル212は、ユーザに提供されることになる、機械学習プラットフォーム202に対するクエリ206への応答を生成してもよい。さらに、機械学習モデル212は、応答を、それらの応答に関連付けられたクエリ206とともに格納されるようにクエリ及び結果ストア214へ送信してもよい。すなわち、機械学習プラットフォーム202は、クエリをそれらのクエリへの応答とともに格納されるように送信することができ、それによって、クエリと応答との異なるセットに対する訓練データのセットを生成する。クエリ及び結果ストア214に格納された訓練データのセットは、特定のシステムの入力パラメータ208に関連付けられたクエリ及び応答であるため、アプリケーション固有となる。さらに、データのセットは、モデル212を使用することにより時間とともに増大する。
【0019】
動作に際して、ユーザ又はプロバイダに関連付けられた管理者は、他の選択肢のなかでもとりわけ会話型AIシステムなどの1つ又は複数の新しい機械学習システムの開発及び展開のための様々なパラメータ208を提供するために、管理API210と対話してもよい。少なくとも一実施例では、パラメータ208は、モデル212などの1つ又は複数のゼロ・ショット・モデルに関連付けられたユーザ定義されたクラスを含んでもよい。次いで、モデル212は、推論API204を介してクエリ206を受け取ることができる機械学習プラットフォーム202に関連付けられてもよい。上記のように汎用モデルであり得るモデル212は、クエリ206への応答を提供してもよく、それらの応答及びそれらに関連付けられたクエリは保存される。たとえば、推論要求(たとえば、クエリ206)が受け取られ、モデルに対してラベルが調べられ、ラベルは、パラメータ208の一部を形成してもよい。少なくとも一実施例では、要求に対する応答を生成するためにゼロ・ショット分類が実行される。本明細書で説明するように、閾値数の応答及びクエリがクエリ及び結果ストア214内に格納されるか又は閾値期間が経過すると、クエリ及び結果ストア214内の情報を少なくとも部分的に使用して、機械学習プラットフォーム202での使用のために、より小さく、より軽いタスク固有モデルを訓練することができる。
【0020】
図3は、トレーナ302が第2の機械学習モデル304のための訓練を開始又はスケジュールするようトリガされ得る学習段階において動作する環境300を示す。上記のように、様々な実施例は、推論API204を介して照会されて1つ又は複数の入力クエリ206への応答を提供するための機械学習プラットフォーム202を提供する。これらの入力クエリ206及びそれらに関連付けられた応答は、クエリ及び結果ストア214内に格納され、機械学習モデル212とは異なり得る1つ又は複数の第2の機械学習モデル304を訓練するための訓練データとして使用される。たとえば、第2の機械学習モデル304は、特定のパラメータ208のためなどの特定の目的のために訓練されたより軽量なモデルであってもよく、タスク固有モデルと呼ばれることもある。訓練後に第2の機械学習モデル304を利用することにより、環境について期待される機能性を提供することができ、一方で、計算コストを削減することもできる。さらに、より軽量なモデルを使用すると、計算能力がより低いデバイス上での展開及び動作が可能になり、それによりエッジ展開及び機能範囲の拡大が実現する。
【0021】
この実例では、クエリ206は、ある期間にわたって送出され、機械学習モデル212は、これらのクエリ206への応答を生成する。この間、クエリ及び結果ストア214は、訓練データセットを開発するためのクエリ206及びそれらのクエリへの関連付けられた応答を受け取ることができ、これらは、1つ又は複数の機械学習システムを訓練するためにグラウンド・トゥルース・データとして利用されてもよい。クエリによって提供された応答に対するユーザの反応に少なくとも部分的に基づいて、このデータセットが修正又は別の方法で調整されてもよいことを認識すべきである。単に例として、初期パラメータ208に関連付けられたクラス又はラベルのうちの一方は、エラーを報告することであってもよい。したがって、後にエラー報告が続くクエリ/応答ペアは、フラグ付けされるか又は別の方法でクエリ及び結果ストア214に提供されない場合がある。このようにして、フラグ付けされた応答は、訓練中により小さい重みを受け取るか、又は訓練から除外されてもよい。
【0022】
トレーナ302は、第2の機械学習モデル304を訓練するために利用されてもよく、又は訓練をいつ開始及び/若しくは開始するかを決定するためのスケジューラとして機能してもよい。少なくとも一実施例では、閾値数のクエリ/応答ペアがクエリ及び結果ストア214に格納されたときに訓練が開始される。さらに、実施例では、一定期間が経過した後に訓練が開始されてもよい。さらに、データの第1のセットに対して訓練が開始され、次いでデータの第2のセットが受け取られときにさらなる訓練が開始されるように、複数の訓練セッションが開始されてもよいことを認識すべきである。このようにして、第2の機械学習モデル304は、反復的に又は段階的に訓練されてもよい。第2の機械学習モデル304の訓練中に異なるデータセットが組み合わされてもよいことを認識すべきである。たとえば、第1の期間にわたって、クエリ及び結果ストア214は1,000個のクエリ/結果ペアを有してもよい。これらの1,000個について訓練が開始されてもよい。第2の期間にわたって、追加の500個のクエリ/結果ペアがクエリ及び結果ストア214に格納されてもよい。第2の訓練フレーズについては、1,500個すべてのクエリ/結果ペアが使用されるか、新しい500個のクエリ/結果ペアのみが使用されるか、又は第2の機械学習モデル304のさらなる訓練及び改良のためにそれらの任意の組合せが利用されてもよい。少なくとも一実施例では、訓練は、スケジュールされた方式で開始されるか、又は推論要求の間に予備の計算能力を使用して実行されてもよい。様々な実施例では、第2の機械学習モデル304は、パラメータ208に関連付けられたクラスについて特別に訓練された教師ありテキスト分類器モデルであってもよい。たとえば、1つ又は複数の実施例は、事前訓練済みBERTのようなモデルなどのエンコーダ・モジュールと多層パーセプトロン分類器などのデコーダ・モジュールとを含むモデルを含んでもよい。
【0023】
図4は、第2の機械学習モデル304が機械学習モデル212と一緒に動作する検証段階において動作する環境400を示す。この実例では、クエリ206は、第1の機械学習モデル212と第2の機械学習モデル304との両方に提供され、次いで、第1の機械学習モデル212及び第2の機械学習モデル304は、クエリ206への応答を生成し、その応答を、機械学習プラットフォーム202及び/又は機械学習プラットフォーム202に関連付けられた分析器若しくは決定構成要素402に提供してもよい。分類器402は、機械学習モデル212及び第2の機械学習モデル304によって生成されたそれぞれの応答間の一致性を検証する。たとえば、分析器402は、2つのモデル212、304間で一致性の閾値レベルが達成されたかどうかを判定してもよく、一致性の閾値レベルは、一致した応答のパーセンテージ、個々の応答間の相関、又は他のものに対応してもよい。単に例として、クエリ206が「私はバニラ・ミルクセーキが欲しい」であり、機械学習モデル212がこのラベル又は意図を「飲み物の購入に関連している」に対応するものと識別し、第2の機械学習モデル304もクエリの背後にあるラベル又は意図を「飲み物の購入に関連している」と識別した場合、一致性は高い又は満たされていると見なされてもよい。しかし、第2の機械学習モデル304がクエリの背後にあるラベル又は意図を「ハンバーガの購入に関連している」と識別した場合、閾値数の応答との一致性がないとき、追加の訓練が必要になる可能性があると決定されてもよい。
【0024】
少なくとも一実施例では、両方のモデルは、検証段階中に要求を処理して、機械学習モデル212と第2の機械学習モデル304との間の予測の一致性のレベルを評価する。検証段階は、いくつかの要求又はある一定の時間枠などの所与の期間中に動作してもよく、次いで、第2の機械学習モデル304を再訓練するかどうかの判定が行われてもよい。モデル間に十分な一致性が存在する場合、システムは、第2の機械学習モデル304に有利になるように、機械学習モデル212へのクエリ206の提供を方向転換するか(pivot)又は別の方法で停止してもよく、それによって大幅な計算の節約を実現することができる。さらに、複雑さが軽減し計算量が少なくなるので、第2の機械学習モデル304はエッジ推論にも好適である可能性がある。
【0025】
モデル212、304の両方が同時に又は実質的に同時に(たとえば、並列に又は少なくとも部分的に並列に)動作するシステム及び方法について説明する場合があるが、様々な実施例が必ずしもそのような手法を使用して動作するとは限らないことを認識すべきである。たとえば、機械学習モデル212は、クエリ及び結果ストア214に供給されるデータを捕捉するために展開されてもよい。次いで、後にオフラインで、第2の機械学習モデル214が訓練されてもよい。その後、第2の機械学習モデル214の展開前に、一致性(整合性)をオフラインで分析することもできる。例として、第2の機械学習モデル214を訓練した後、クエリ206のセットは、評価及び比較のために保存されてもよい。次いで、機械学習モデル212からのクエリ/結果ペアは、第2の機械学習モデル304からの後続のクエリ/結果ペアと比較されてもよい。十分な一致性(整合性)に達した場合、第2の機械学習モデル304が展開されてもよい。したがって、実施例はモデル212、304の並列動作又は半並列動作について説明する場合があるが、訓練及び/又は検証は第2の機械学習モデル304の完全な展開の前にいつでも実行されてもよいことを認識すべきである。
【0026】
図5は、第2の機械学習モデル304が推論要求への応答を提供し、クエリ206がもはや機械学習モデル212に提供されない作成段階において動作する環境500を示す。この実例では、第2の機械学習モデル304が、動作を開始するために十分に訓練されている(たとえば、機械学習モデル212との一致性の閾値レベルに到達している)と判定される。上記のように、少なくとも一実施例では、第2の機械学習モデル304は、作成段階に入る前に機械学習モデル212と並行して又は実質的に並行して動作してもよい。少なくとも一実施例では、第2の機械学習モデル304は、機械学習モデル212に合わせた動作なしで、展開前に事前訓練されテストされることになる。
【0027】
様々な実施例では、第2の機械学習モデル304からのクエリ/応答ペアは、クエリ及び結果ストア214内に格納される。この情報は、第2の機械学習モデル304及び/又は機械学習モデル212の継続的な訓練又は再訓練のために格納されてもよい。さらに、クエリ/応答ペアは、ドリフト又はエラーについて定期的にテストされてもよく、これは、第2の機械学習モデル304が調整されている間、機械学習モデル212の再訓練又は定期的な動作を促すことができる。
【0028】
本開示の様々な実施例は、オペレータが、管理者API210を介して、新しい機械学習モデルを迅速に定義及び展開することを可能にする。さらに、オペレータは、モデル214、304の動作を監視又は監督し続けることができる。たとえば、オペレータは、様々なものを手動で検証又は修正してもよい。さらに、能動学習を活用して、レビュー用の信頼性の低いラベルを作り出し、それによってモデルへのそのラベルの影響及びその後のモデルの改善を潜在的に高めてもよい。さらに、オペレータはまた、手動による修正を行うか又はさらなる推論API使用法を追加して新しいモデルの訓練をトリガしてもよい。
【0029】
少なくとも一実施例では、モデル訓練はまた、オペレータ又は1つ若しくは複数の確立された規則若しくは手順を介して評価及び監視されてもよい。たとえば、新しいモデルが訓練されるとき、回帰が発生していないことを保証するために、手動で修正されたデータを使用して評価することを含み得るモデルを評価するための1つ又は複数の動作がトリガされてもよい。モデルのバージョンにわたって一貫した信頼スコアを保証するために、スコア較正が実行されてもよい。
【0030】
前に示したように、少なくとも一実施例では、第2の機械学習モデル304は、エッジ・サーバ、組み込みデバイスなどの計算能力が低いシステム上で動作するように構成されてもよい。システム及び方法は、少なくとも部分的に使用事例に応じて、(たとえば、蒸留又は量子化を介して)圧縮を提供してもよい。したがって、デバイスのより大規模なアレイは、第2の機械学習モデル304から利益を得ることができる。
【0031】
図6Aは、第1の機械学習モデルを使用して訓練データを生成するための実例プロセス600を示す。本明細書で提示する上記のプロセス及び他のプロセスについて、同様の順番で、若しくは代替的な順番で、又は少なくとも一部が並行して実行される追加の、より少ない、又は代替的なステップが、別段の記載のない限り様々な実施例の範囲内で存在してもよいことが理解されるべきである。この実例では、第1のモデルに関連付けられた1つ又は複数のパラメータが受け取られる602。パラメータは、第1のモデルに関連付けられたクラス及び/又はラベルの所望のセットへ方向付けられてもよく、オペレータがとりわけ会話型AIモデルなどの新しい機械学習モデルを確立することを可能にするAPIを通じて提供されてもよい。パラメータは、上述したクラス、レイテンシ制限、サイズ制限などのモデルの様々な設定を含んでもよい。さらに、少なくとも一実施例では、パラメータは、展開する1つ又は複数のタイプのモデルを指定してもよい。
【0032】
様々な実施例は、第1のモデルが1つ又は複数の入力クエリを受け取ること604を可能にするためのインターフェースを提供する。第1のモデルは、汎用モデルなどの事前訓練済みモデルであってもよく、さらに汎用モデルはゼロ・ショット・モデルであってもよい。ゼロ・ショット・モデルはクエリを受け取ってもよく、クエリは、関連付けられたラベルを有する1つ又は複数のクラスへ方向付けられてもよい。第1のモデルはクラスについて特別に訓練されていない場合があるが、入力パラメータは、クエリを分類して適切なラベルを識別できるようにするためのいくつかのクラス/ラベル指定と、様々な実施例ではこれらのラベルに関連付けられた後続の応答又はアクションとを含む場合がある。次いで、応答は第1のクエリに提供されてもよい606。応答は、他の様々な選択肢のなかでもとりわけ、要求されたタスクを実行することなどのアクションであってもよく、又は質問に対する応答であってもよい。クエリ/応答ペアは、データベースに格納されてもよい608。たとえば、クラス、ラベル、アクション、応答などを含むクエリ/応答の1つ又は複数の部分が格納されてもよい。
【0033】
少なくとも一実施例では、データベースからの情報を使用して、タスク固有モデルであり得る第2のモデルを訓練する610。情報はクエリ/応答ペアを含んでもよく、クエリ/応答ペアは、データセットを手動で生成することなく第2のモデルにクラス固有レベルの訓練を提供することができる。第2のモデルが訓練された後、第2のモデルは、第1のモデルの代わりに展開されてもよい612。このようにして、訓練データは、より大きく、より複雑なモデルを使用して開発され、次いで、第1のモデルの動作中に取得された情報で訓練されるタスク固有モデルに置き換えられてもよい。
【0034】
図6Bは、タスク固有モデルを検証するための実例プロセス620を示す。この実例では、入力クエリが受け取られる622。たとえば、入力クエリは、1つ又は複数の機械学習プラットフォームと対話し得る干渉APIに提供されてもよい。第1の訓練済みモデルを使用して、入力クエリへの第1の応答を決定してもよい624。少なくとも一実施例では、第1の訓練済みモデルは、ゼロ・ショット・モデルなどの汎用モデルであってもよい。第2の訓練済みモデルを使用して、入力クエリへの第2の応答を決定してもよい626。少なくとも一実施例では、第2の訓練済みモデルは、タスク固有モデルである。第1の応答と第2の応答はどちらも、同じ又は類似の応答を提供しようとしている場合があり、たとえば、入力クエリのクラスに関連付けられたラベルを決定してもよい。
【0035】
様々な実施例は、第1の応答と第2の応答との間の一致性を判定することを含んでもよい628。一致性とは、第1の応答と第2の応答との間の類似性の量を指す場合がある。少なくとも一実施例では、一致性は、特定の応答、応答のセット、経時的な応答などの間の類似性のレベルなどの閾値に照らして評価される。少なくとも一実施例では、一致性は、同じ又は類似のラベルを識別することに対応してもよい。一致性が閾値を超えるかどうかが判定されてもよい630。閾値を超える場合、第2のモデルが検証されてもよく632、この検証は、第2のモデルの完全な展開及び第1のモデルの動作の停止につながる可能性がある。閾値を超えない場合、第2のモデルは再訓練されてもよい634。このようにして、計算量が少ない可能性のある第2のモデルを計算量の多い第1のモデルと比較して、第2のモデルが第1のモデルの動作に効果的に取って代わることができるかどうかを判定することができ、これにより、計算コストの低いモデルが利用されるため、運用コストが低下すると同時に、システム用のアプリケーションの数が増加する。
【0036】
本明細書に記載のシステム及び方法は、例として、限定されないが、機械制御、機械移動、機械駆動、合成データ生成、デジタル・ツイニング、モデル訓練、知覚、拡張現実、仮想現実、複合現実、ロボット工学、セキュリティ及び監視、自律型若しくは半自律型マシン・アプリケーション、深層学習、環境シミュレーション、データ・センタ処理、会話型AI、光輸送シミュレーション(たとえば、光線追跡、経路追跡など)、3Dアセット用の共同コンテンツ作成、クラウド・コンピューティング、並びに/又は任意の他の好適なアプリケーションためなど、様々な目的のために使用されてもよい。
【0037】
同様に、開示された実施例は、小売キオスク若しくは他の消費者対話型システム及びデバイス、自動車システム(たとえば、自律型若しくは半自律型マシンのための制御システム、自律型若しくは半自律型マシンのための知覚システム)、ロボットを使用して実装されたシステム、空中システム、内側システム(medial system)、ボーティング・システム、スマート・エリア監視システム、深層学習動作を実行するためのシステム、シミュレーション及びデジタル・ツイン動作を実行するためのシステム、エッジデバイスを使用して実装されたシステム、1つ若しくは複数の仮想マシン(VM:virtual machine)を組み込んだシステム、合成データ生成動作を実行するためのシステム、少なくとも部分的にデータ・センタ内に実装されたシステム、会話型AI動作を実行するためのシステム、光輸送シミュレーションを実行するためのシステム、3Dアセット用の共同コンテンツ作成を実行するためのシステム、少なくとも部分的にクラウド・コンピューティング・リソースを使用して実装されたシステム、並びに/又は他のタイプのシステムなどの多種多様なシステムに含まれてもよい。
【0038】
データ・センタ
図7は、少なくとも一実施例が使用されてもよい例示的なデータ・センタ700を示す。少なくとも一実施例では、データ・センタ700は、データ・センタ・インフラストラクチャ層710、フレームワーク層720、ソフトウェア層730、及びアプリケーション層740を含む。
【0039】
図7に示すように、少なくとも一実施例では、データ・センタ・インフラストラクチャ層710は、リソース・オーケストレータ712と、グループ化済みコンピューティング・リソース714と、ノード・コンピューティング・リソース(「ノードC.R.」)716(1)~716(N)とを含んでもよく、ここで「N」は任意の正の整数を表す。少なくとも一実施例では、ノードC.R.716(1)~716(N)は、任意の数の中央処理装置(「CPU」)又は(アクセラレータ、フィールド・プログラマブル・ゲート・アレイ(FPGA)、グラフィックス・プロセッサなどを含む)他のプロセッサ、メモリ・デバイス(たとえば、ダイナミック読取り専用メモリ)、ストレージ・デバイス(たとえば、半導体ドライブ又はディスク・ドライブ)、ネットワーク入力/出力(「NW I/O」:network input/output)デバイス、ネットワーク・スイッチ、仮想機械(「VM」:virtual machine)、電源モジュール、及び冷却モジュールを含んでもよいが、これらに限定されない。少なくとも一実施例では、ノードC.R.716(1)~716(N)のうち1つ又は複数のノードC.R.は、上述したコンピューティング・リソースのうちの1つ又は複数を有するサーバであってもよい。
【0040】
少なくとも一実施例では、グループ化済みコンピューティング・リソース714は、1つ若しくは複数のラック(図示せず)内に収容されたノードC.R.の別々のグループ、又は様々なグラフィカル・ロケーション(同じく図示せず)においてデータ・センタに収容された多数のラックを含んでもよい。グループ化済みコンピューティング・リソース714内のノードC.R.の別々のグループは、1つ若しくは複数のワークロードをサポートするように構成又は配分されてもよいグループ化済みのコンピュート・リソース、ネットワーク・リソース、メモリ・リソース、又はストレージ・リソースを含んでもよい。少なくとも一実施例では、CPU又はプロセッサを含むいくつかのノードC.R.は、1つ又は複数のラック内でグループ化されて、1つ又は複数のワークロードをサポートするためのコンピュート・リソースが提供されてもよい。少なくとも一実施例では、1つ又は複数のラックはまた、任意の数の電源モジュール、冷却モジュール、及びネットワーク・スイッチを任意の組合せで含んでもよい。
【0041】
少なくとも一実施例では、リソース・オーケストレータ712は、1つ又は複数のノードC.R.716(1)~716(N)及び/若しくはグループ化済みコンピューティング・リソース714を構成してもよく、又は他のやり方で制御してもよい。少なくとも一実施例では、リソース・オーケストレータ712は、データ・センタ700用のソフトウェア設計インフラストラクチャ(「SDI」:software design infrastructure)管理エンティティを含んでもよい。少なくとも一実施例では、リソース・オーケストレータは、ハードウェア、ソフトウェア、又はこれらの何らかの組合せを含んでもよい。
【0042】
図7に示す少なくとも一実施例では、フレームワーク層720は、ジョブ・スケジューラ722、構成マネージャ724、リソース・マネージャ726、及び分配ファイル・システム728を含む。少なくとも一実施例では、フレームワーク層720は、ソフトウェア層730のソフトウェア732、及び/又はアプリケーション層740の1つ若しくは複数のアプリケーション742をサポートするためのフレームワークを含んでもよい。少なくとも一実施例では、ソフトウェア732又はアプリケーション742はそれぞれ、アマゾン・ウェブ・サービス、グーグル・クラウド、及びマイクロソフト・アジュールによって提供されるものなど、ウェブ・ベースのサービス・ソフトウェア又はアプリケーションを含んでもよい。少なくとも一実施例では、フレームワーク層720は、大規模なデータ処理(たとえば「ビック・データ」)のために分配ファイル・システム728を使用することができるApache Spark(登録商標)(以下「Spark」)など、無料でオープン・ソースのソフトウェア・ウェブ・アプリケーション・フレームワークの一種であってもよいが、これに限定されない。少なくとも一実施例では、ジョブ・スケジューラ722は、データ・センタ700の様々な層によってサポートされるワークロードのスケジューリングを容易にするために、Sparkドライバを含んでもよい。少なくとも一実施例では、構成マネージャ724は、ソフトウェア層730、並びに大規模なデータ処理をサポートするためのSpark及び分配ファイル・システム728を含むフレームワーク層720などの異なる層を構成することが可能であってもよい。少なくとも一実施例では、リソース・マネージャ726は、分配ファイル・システム728及びジョブ・スケジューラ722をサポートするようにマッピング若しくは配分されたクラスタ化済み又はグループ化済みのコンピューティング・リソースを管理することが可能であってもよい。少なくとも一実施例では、クラスタ化済み又はグループ化済みのコンピューティング・リソースは、データ・センタ・インフラストラクチャ層710にあるグループ化済みコンピューティング・リソース714を含んでもよい。少なくとも一実施例では、リソース・マネージャ726は、リソース・オーケストレータ712と連携して、これらのマッピング又は配分されたコンピューティング・リソースを管理してもよい。
【0043】
少なくとも一実施例では、ソフトウェア層730に含まれるソフトウェア732は、ノードC.R.716(1)~716(N)、グループ化済みコンピューティング・リソース714、及び/又はフレームワーク層720の分配ファイル・システム728のうちの少なくとも一部分によって使用されるソフトウェアを含んでもよい。1つ又は複数のタイプのソフトウェアは、インターネット・ウェブ・ページ検索ソフトウェア、電子メール・ウイルス・スキャン・ソフトウェア、データベース・ソフトウェア、及びストリーミング・ビデオ・コンテンツ・ソフトウェアを含んでもよいが、これらに限定されない。
【0044】
少なくとも一実施例では、アプリケーション層740に含まれるアプリケーション742は、ノードC.R.716(1)~716(N)、グループ化済みコンピューティング・リソース714、及び/又はフレームワーク層720の分配ファイル・システム728のうちの少なくとも一部分によって使用される1つ若しくは複数のタイプのアプリケーションを含んでもよい。1つ若しくは複数のタイプのアプリケーションは、任意の数のゲノム学アプリケーション、認識コンピュート、並びに訓練若しくは推論のソフトウェア、機械学習フレームワーク・ソフトウェア(たとえば、PyTorch、TensorFlow、Caffeなど)を含む機械学習アプリケーション、又は1つ若しくは複数の実施例と併せて使用される他の機械学習アプリケーションを含んでもよいが、これらに限定されない。
【0045】
少なくとも一実施例では、構成マネージャ724、リソース・マネージャ726、及びリソース・オーケストレータ712のうちのいずれかは、任意の技術的に実行可能なやり方で取得された任意の量及びタイプのデータに基づき、任意の数及びタイプの自己修正措置を実装してもよい。少なくとも一実施例では、自己修正措置は、データ・センタ700のデータ・センタ演算子が、不良の恐れのある構成を決定しないようにし、十分に利用されていない且つ/又は性能の低いデータ・センタの部分をなくせるようにしてもよい。
【0046】
少なくとも一実施例では、データ・センタ700は、1つ若しくは複数の機械学習モデルを訓練し、又は本明細書に記載の1つ若しくは複数の実施例による1つ若しくは複数の機械学習モデルを使用して情報を予測若しくは推論するためのツール、サービス、ソフトウェア、又は他のリソースを含んでもよい。たとえば、少なくとも一実施例では、機械学習モデルは、データ・センタ700に関して上述したソフトウェア及びコンピューティング・リソースを使用して、ニューラル・ネットワーク・アーキテクチャに従って重みパラメータを計算することによって、訓練されてもよい。少なくとも一実施例では、1つ又は複数のニューラル・ネットワークに対応する訓練済み機械学習モデルは、本明細書に記載の1つ又は複数の技法によって計算された重みパラメータを使用することにより、データ・センタ700に関して上述したリソースを使用して、情報を推論又は予測するために使用されてもよい。
【0047】
少なくとも一実施例では、データ・センタは、上述したリソースを使用して訓練及び/又は推論を実行するために、CPU、特定用途向け集積回路(ASIC)、GPU、FPGA、又は他のハードウェアを使用してもよい。さらに、上述した1つ又は複数のソフトウェア及び/又はハードウェアのリソースは、画像認識、音声認識、又は他の人工知能サービスなどの情報の訓練又は推論の実行を、ユーザが行えるようにするためのサービスとして構成されてもよい。
【0048】
こうした構成要素を使用して、対話環境においてコマンドを実行することができる。
【0049】
コンピュータ・システム
図8は、例示的なコンピュータ・システムを示すブロック図であり、このコンピュータ・システムは、少なくとも一実施例による、命令を実行するための実行ユニットを含んでもよいプロセッサとともに形成された、相互接続されたデバイス及び構成要素、システム・オン・チップ(SoC)、又はこれら800の何らかの組合せを有するシステムであってもよい。少なくとも一実施例では、コンピュータ・システム800は、本明細書に記載の実施例などにおいて本開示に従ってデータを処理するためのアルゴリズムを実行する論理を含む実行ユニットを使用するための、プロセッサ802などの構成要素を、限定することなく含んでもよい。少なくとも一実施例では、コンピュータ・システム800は、カリフォルニア州サンタクララのインテルコーポレーションから入手可能なPENTIUM(登録商標)プロセッサ・ファミリー、XeonTM、Itanium(登録商標)、XScaleTM及び/又はStrongARMTM、Intel(登録商標)Core(商標)、又はIntel(登録商標)Nervana(商標)マイクロプロセッサなどのプロセッサを含んでもよいが、(他のマイクロプロセッサ、エンジニアリング・ワークステーション、セット・トップ・ボックスなどを有するPCを含め)他のシステムが使用されてもよい。少なくとも一実施例では、コンピュータ・システム800は、ワシントン州、レドモンドのマイクロソフトコーポレーションから入手可能なWINDOWS(登録商標)のオペレーティング・システムのあるバージョンを実行してもよいが、他のオペレーティング・システム(たとえば、UNIX(登録商標)及びLinux(登録商標))、組み込みソフトウェア、及び/又はグラフィカル・ユーザ・インターフェースが使用されてもよい。
【0050】
実施例は、携帯型デバイス及び組み込みアプリケーションなど、他のデバイスで使用されてもよい。携帯型デバイスのいくつかの例は、セルラー・フォン、インターネット・プロトコル・デバイス、デジタル・カメラ、パーソナル・デジタル・アシスタント(「PDA」:personal digital assistants)、及び携帯型PCを含む。少なくとも一実施例では、組み込みアプリケーションは、マイクロコントローラ、デジタル信号プロセッサ(「DSP」:digital signal processor)、システム・オン・チップ、ネットワーク・コンピュータ(「NetPC」:network computers)、エッジ・コンピューティング・デバイス、セット・トップ・ボックス、ネットワーク・ハブ、広域ネットワーク(「WAN」:wide area network)スイッチ、又は少なくとも一実施例による1つ又は複数の命令を実行することができる任意の他のシステムを含んでもよい。
【0051】
少なくとも一実施例では、コンピュータ・システム800は、限定することなくプロセッサ802を含んでもよく、このプロセッサ802は限定することなく、本明細書に記載の技法による機械学習モデルの訓練及び/又は推論を実行するための1つ又は複数の実行ユニット808を含んでもよい。少なくとも一実施例では、コンピュータ・システム800は、シングル・プロセッサのデスクトップ又はサーバ・システムであるが、別の実施例では、コンピュータ・システム800はマルチプロセッサ・システムであってもよい。少なくとも一実施例では、プロセッサ802は、限定することなく、複合命令セット・コンピュータ(「CISC」:complex instruction set computer)マイクロプロセッサ、縮小命令セット・コンピューティング(「RISC」)マイクロプロセッサ、超長命令語(「VLIW」)マイクロプロセッサ、命令セットの組合せを実装するプロセッサ、又は任意の他のプロセッサ・デバイス、たとえばデジタル信号プロセッサなどを含んでもよい。少なくとも一実施例では、プロセッサ802は、プロセッサ・バス810に結合されてもよく、このプロセッサ・バスは、プロセッサ802とコンピュータ・システム800内の他の構成要素との間でデータ信号を送信してもよい。
【0052】
少なくとも一実施例では、プロセッサ802は、限定することなく、レベル1(「L1」)の内部キャッシュ・メモリ(「キャッシュ」)804を含んでもよい。少なくとも一実施例では、プロセッサ802は、単一の内部キャッシュ又は複数レベルの内部キャッシュを有してもよい。少なくとも一実施例では、キャッシュ・メモリは、プロセッサ802の外部にあってもよい。他の実施例は、特定の実装形態及び必要性に応じて、内部キャッシュと外部キャッシュの両方の組合せも含んでよい。少なくとも一実施例では、レジスタ・ファイル806は、整数レジスタ、浮動小数点レジスタ、状態レジスタ、及び命令ポインタ・レジスタを限定することなく含む様々レジスタに、異なるタイプのデータを記憶してもよい。
【0053】
少なくとも一実施例では、整数及び浮動小数点の演算を実行するための論理を限定することなく含む実行ユニット808も、プロセッサ802にある。少なくとも一実施例では、プロセッサ802は、ある一定のマクロ命令のためのマイクロコードを記憶するマイクロコード(「uコード」)読取り専用メモリ(「ROM」:read only memory)も含んでよい。少なくとも一実施例では、実行ユニット808は、パック命令セット809に対処する論理を含んでもよい。少なくとも一実施例では、パック命令セット809を、命令を実行する関連回路とともに汎用プロセッサの命令セットに含めることにより、多くのマルチメディア・アプリケーションによって使用される演算を、汎用プロセッサ802のパック・データを使用して実行することができる。1つ又は複数の実施例では、プロセッサのデータ・バスの全幅を使用してパック・データの演算を実行することによって、多くのマルチメディア・アプリケーションを加速し、より効率的に実行することができ、これにより、1度に1つのデータ要素に対して1つ又は複数の演算を実行するためにプロセッサのデータ・バス間でより小さい単位のデータを転送する必要をなくすことができる。
【0054】
少なくとも一実施例では、実行ユニット808はまた、マイクロコントローラ、組み込みプロセッサ、グラフィックス・デバイス、DSP、及び他のタイプの論理回路において使用されてもよい。少なくとも一実施例では、コンピュータ・システム800は、限定することなくメモリ820を含んでもよい。少なくとも一実施例では、メモリ820は、ダイナミック・ランダム・アクセス・メモリ(「DRAM」)デバイス、スタティック・ランダム・アクセス・メモリ(「SRAM」)デバイス、フラッシュ・メモリ・デバイス、又は他のメモリ・デバイスとして実装されてもよい。少なくとも一実施例では、メモリ820は、プロセッサ802によって実行されてもよいデータ信号によって表される命令819、及び/又はデータ821を記憶してもよい。
【0055】
少なくとも一実施例では、システム論理チップが、プロセッサ・バス810及びメモリ820に結合されてもよい。少なくとも一実施例では、システム論理チップは、限定することなく、メモリ・コントローラ・ハブ(「MCH」:memory controller hub)816を含んでもよく、プロセッサ802は、プロセッサ・バス810を介してMCH816と通信してもよい。少なくとも一実施例では、MCH816は、命令及びデータを記憶するため、及びグラフィックス・コマンド、データ、及びテクスチャを記憶するために、高帯域幅メモリ経路818をメモリ820に提供してもよい。少なくとも一実施例では、MCH816は、プロセッサ802と、メモリ820と、コンピュータ・システム800の他の構成要素との間でデータ信号を導き、プロセッサ・バス810と、メモリ820と、システムI/Oインターフェース822との間でデータ信号をブリッジしてもよい。少なくとも一実施例では、システム論理チップは、グラフィックス・コントローラに結合するためのグラフィックス・ポートを提供してもよい。少なくとも一実施例では、MCH816は、高帯域幅メモリ経路818を介してメモリ820に結合されてもよく、グラフィックス/ビデオカード812は、アクセラレーテッド・グラフィックス・ポート(「AGP」:Accelerated Graphics Port)相互接続814を介してMCH816に結合されてもよい。
【0056】
少なくとも一実施例では、コンピュータ・システム800は、MCH816をI/Oコントローラ・ハブ(「ICH」:I/O controller hub)830に結合するためのプロプライエタリ・ハブ・インターフェース・バスであるシステムI/O822を使用してもよい。少なくとも一実施例では、ICH830は、ローカルのI/Oバスを介していくつかのI/Oデバイスに直接接続を提供してもよい。少なくとも一実施例では、ローカルI/Oバスは、周辺装置をメモリ820、チップセット、及びプロセッサ802に接続するための高速I/Oバスを、限定することなく含んでもよい。例としては、オーディオ・コントローラ829、ファームウェア・ハブ(「フラッシュBIOS」)828、ワイヤレス・トランシーバ826、データ・ストレージ824、ユーザ入力及びキーボードのインターフェース825を含むレガシーI/Oコントローラ823、ユニバーサル・シリアル・バス(「USB」:Universal Serial Bus)などのシリアル拡張ポート827、及びネットワーク・コントローラ834が、限定することなく含まれてもよい。データ・ストレージ824は、ハード・ディスク・ドライブ、フロッピー(登録商標)・ディスク・ドライブ、CD-ROMデバイス、フラッシュ・メモリ・デバイス、又は他の大容量ストレージ・デバイスを備えてもよい。
【0057】
少なくとも一実施例では、
図8は、相互接続されたハードウェア・デバイス又は「チップ」を含むシステムを示すが、一方他の実施例では、
図8は例示的なシステム・オン・チップ(「SoC」)を示してもよい。少なくとも一実施例では、デバイスは、プロプライエタリ相互接続、標準相互接続(たとえば、PCIe)、又はこれらの何らかの組合せで相互接続されてもよい。少なくとも一実施例では、コンピュータ・システム800の1つ又は複数の構成要素は、コンピュート・エクスプレス・リンク(CXL:compute express link)相互接続を使用して相互接続されてもよい。
【0058】
こうした構成要素を使用して、対話環境においてコマンドを実行することができる。
【0059】
図9は、少なくとも一実施例による、プロセッサ910を利用するための電子デバイス900を示すブロック図である。少なくとも一実施例では、電子デバイス900は、たとえば限定することなく、ノートブック、タワー・サーバ、ラック・サーバ、ブレード・サーバ、ラップトップ、デスクトップ、タブレット、モバイル・デバイス、電話、組み込みコンピュータ、又は任意の他の好適な電子デバイスであってもよい。
【0060】
少なくとも一実施例では、システム900は、任意の好適な数又は種類の構成要素、周辺装置、モジュール、若しくはデバイスに通信可能に結合されたプロセッサ910を、限定することなく含んでもよい。少なくとも一実施例では、プロセッサ910は、I°Cバス、システム・マネージメント・バス(「SMBus」:System Management Bus)、ロー・ピン・カウント(LPC:Low Pin Count)バス、シリアル・ペリフェラル・インターフェース(「SPI」:Serial Peripheral Interface)、ハイ・デフィニション・オーディオ(「HDA」:High Definition Audio)バス、シリアル・アドバンス・テクノロジー・アタッチメント(「SATA」:Serial Advance Technology Attachment)バス、ユニバーサル・シリアル・バス(「USB」)(バージョン1、2、3)、又はユニバーサル非同期レシーバ/トランスミッタ(「UART」:Universal Asynchronous Receiver/Transmitter)バスなどのバス若しくはインターフェースを使用して結合される。少なくとも一実施例では、
図9は、相互接続されたハードウェア・デバイス又は「チップ」を含むシステムを示すが、一方他の実施例では、
図9は例示的なシステム・オン・チップ(「SoC」)を示してもよい。少なくとも一実施例では、
図9に示すデバイスは、プロプライエタリ相互接続、標準相互接続(たとえば、PCIe)、又はこれらの何らかの組合せで相互接続されてもよい。少なくとも一実施例では、
図9の1つ又は複数の構成要素は、コンピュート・エクスプレス・リンク(CXL)相互接続を使用して相互接続されてもよい。
【0061】
少なくとも一実施例では、
図9は、ディスプレイ924、タッチ画面925、タッチ・パッド930、近距離無線通信ユニット(「NFC」:Near Field Communications unit)945、センサ・ハブ940、熱センサ946、エクスプレス・チップセット(「EC」:Express Chipset)935、トラステッド・プラットフォーム・モジュール(「TPM」:Trusted Platform Module)938、BIOS/ファームウェア/フラッシュ・メモリ(「BIOS、FWフラッシュ」:BIOS/firmware/flash memory)922、DSP960、ソリッド・ステート・ディスク(「SSD」:Solid State Disk)若しくはハード・ディスク・ドライブ(「HDD」:Hard Disk Drive)などのドライブ920、ワイヤレス・ローカル・エリア・ネットワーク・ユニット(「WLAN」:wireless local area network unit)950、Bluetoothユニット952、ワイヤレス広域ネットワーク・ユニット(「WWAN」:Wireless Wide Area Network unit)956、全地球測位システム(GPS:Global Positioning System)ユニット955、USB3.0カメラなどのカメラ(「USB3.0カメラ」)954、及び/又は、たとえばLPDDR3規格に実装された低電力ダブル・データ・レート(「LPDDR」:Low Power Double Data Rate)メモリ・ユニット(「LPDDR3」)915を含んでもよい。これらの構成要素は、それぞれ任意の好適なやり方で実装されてもよい。
【0062】
少なくとも一実施例では、上述した構成要素を介して、他の構成要素がプロセッサ910に通信可能に結合されてもよい。少なくとも一実施例では、加速度計941、周囲光センサ(「ALS」:Ambient Light Sensor)942、コンパス943、及びジャイロスコープ944が、センサ・ハブ940に通信可能に結合されてもよい。少なくとも一実施例では、熱センサ939、ファン937、キーボード946、及びタッチ・パッド930が、EC935に通信可能に結合されてもよい。少なくとも一実施例では、スピーカ963、ヘッドフォン964、及びマイクロフォン(「mic」)965が、オーディオ・ユニット(オーディオ・コーデック及びクラスdアンプ)962に通信可能に結合されてもよく、このオーディオ・ユニットが、DSP960に通信可能に結合されてもよい。少なくとも一実施例では、オーディオ・ユニット964は、たとえば限定することなく、オーディオ・コーダ/デコーダ(「コーデック」)及びクラスDアンプリファイアを含んでもよい。少なくとも一実施例では、SIMカード(「SIM」)957は、WWANユニット956に通信可能に結合されてもよい。少なくとも一実施例では、WLANユニット950及びBluetoothユニット952などの構成要素、並びにWWAN956は、次世代フォーム・ファクタ(「NGFF」:Next Generation Form Factor)に実装されてもよい。
【0063】
こうした構成要素を使用して、対話環境においてコマンドを実行することができる。
【0064】
図10は、少なくとも一実施例による処理システムのブロック図である。少なくとも一実施例では、システム1000は、1つ又は複数のプロセッサ1002、及び1つ又は複数のグラフィックス・プロセッサ1008を含み、単一プロセッサのデスクトップ・システム、マルチプロセッサのワークステーション・システム、又は多数の一括で若しくは別々に管理されるプロセッサ1002若しくはプロセッサ・コア1007を有するサーバ・システム若しくはデータ・センタであってもよい。少なくとも一実施例では、システム1000は、モバイル・デバイス、携帯型デバイス、又は組み込みデバイスで使用するためのシステム・オン・チップ(SoC)集積回路内に組み込まれた処理プラットフォームである。
【0065】
少なくとも一実施例では、システム1000は、サーバ・ベースのゲーミング・プラットフォーム、クラウド・コンピューティング・ホスト・プラットフォーム、仮想化コンピューティング・プラットフォーム、ゲーム及びメディアのコンソールを含むゲーム・コンソール、携帯型ゲーム・コンソール、ハンドヘルド・ゲーム・コンソール、若しくはオンライン・ゲーム・コンソールを含んでもよく、又はそれらに組み込まれてもよい。少なくとも一実施例では、システム1000は、モバイル・フォン、スマート・フォン、タブレット・コンピューティング・デバイス、又はモバイル・インターネット・デバイスである。少なくとも一実施例では、処理システム1000はまた、スマート・ウォッチ・ウェアラブル・デバイス、スマート・アイウェア・デバイス、拡張現実デバイス、エッジデバイス、モノのインターネット(「IoT:Internet of Things」)デバイス、若しくは仮想現実デバイスなどのウェアラブル・デバイスを含んでもよく、それらに結合されてもよく、又はそれらのなかに一体化されてもよい。少なくとも一実施例では、処理システム1000は、1つ又は複数のプロセッサ1002と、1つ又は複数のグラフィックス・プロセッサ1008によって生成されるグラフィカル・インターフェースとを有するテレビ又はセット・トップ・ボックス・デバイスである。
【0066】
少なくとも一実施例では、1つ又は複数のプロセッサ1002はそれぞれ、実行されたときにシステム及びユーザ・ソフトウェアのための動作を実行する命令を処理するための1つ又は複数のプロセッサ・コア1007を含む。少なくとも一実施例では、1つ又は複数のプロセッサ・コア1007のそれぞれは、特定の命令セット1009を処理するように構成される。少なくとも一実施例では、命令セット1009は、複合命令セット・コンピューティング(CISC)、縮小命令セット・コンピューティング(RISC)、又は超長命令語(VLIW)を介したコンピューティングを容易にしてもよい。少なくとも一実施例では、プロセッサ・コア1007はそれぞれ、異なる命令セット1009を処理してもよく、この命令セットは、他の命令セットのエミュレーションを容易にする命令を含んでもよい。少なくとも一実施例では、プロセッサ・コア1007はまた、デジタル信号プロセッサ(DSP)などの他の処理デバイスを含んでもよい。
【0067】
少なくとも一実施例では、プロセッサ1002はキャッシュ・メモリ1004を含む。少なくとも一実施例では、プロセッサ1002は、単一の内部キャッシュ又は複数レベルの内部キャッシュを有してもよい。少なくとも一実施例では、キャッシュ・メモリは、プロセッサ1002の様々な構成要素間で共有される。少なくとも一実施例では、プロセッサ1002はまた、外部キャッシュ(たとえば、レベル3(L3)キャッシュ又はラスト・レベル・キャッシュ(LLC))(図示せず)を使用し、このキャッシュは、知られているキャッシュ・コヒーレンス技法を使用して、プロセッサ・コア1007間で共有されてもよい。少なくとも一実施例では、さらにレジスタ・ファイル1006がプロセッサ1002に含まれ、このレジスタ・ファイルは、異なるタイプのデータを記憶するための異なるタイプのレジスタ(たとえば、整数レジスタ、浮動小数点レジスタ、状態レジスタ、及び命令ポインタ・レジスタ)を含んでもよい。少なくとも一実施例では、レジスタ・ファイル1006は、汎用レジスタ又は他のレジスタを含んでもよい。
【0068】
少なくとも一実施例では、1つ又は複数のプロセッサ1002は、1つ又は複数のインターフェース・バス1010に結合されて、アドレス、データ、又は制御信号などの通信信号を、プロセッサ1002とシステム1000内の他の構成要素との間で送信する。少なくとも一実施例では、インターフェース・バス1010は、一実施例では、ダイレクト・メディア・インターフェース(DMI)バスのバージョンなどのプロセッサ・バスとすることができる。少なくとも一実施例では、インターフェース1010は、DMIバスに限定されず、1つ又は複数のペリフェラル・コンポーネント・インターコネクト・バス(たとえば、PCI、PCIエクスプレス)、メモリ・バス、又は他のタイプのインターフェース・バスを含んでもよい。少なくとも一実施例では、プロセッサ1002は、統合メモリ・コントローラ1016、及びプラットフォーム・コントローラ・ハブ1030を含む。少なくとも一実施例では、メモリ・コントローラ1016は、メモリ・デバイスとシステム1000の他の構成要素との間の通信を容易にし、一方でプラットフォーム・コントローラ・ハブ(PCH)1030は、ローカルI/Oバスを介してI/Oデバイスへの接続を提供する。
【0069】
少なくとも一実施例では、メモリ・デバイス1020は、ダイナミック・ランダム・アクセス・メモリ(DRAM)デバイス、スタティック・ランダム・アクセス・メモリ(SRAM)デバイス、フラッシュ・メモリ・デバイス、相変化メモリ・デバイス、又はプロセス・メモリとしての役割を果たすのに好適な性能を有する何らかの他のメモリ・デバイスとすることができる。少なくとも一実施例では、メモリ・デバイス1020は、システム1000のためのシステム・メモリとして動作して、1つ又は複数のプロセッサ1002がアプリケーション若しくはプロセスを実行するときに使用するためのデータ1022及び命令1021を記憶することができる。少なくとも一実施例では、メモリ・コントローラ1016はまた、任意選択の外部グラフィックス・プロセッサ1012と結合しており、このグラフィックス・プロセッサは、プロセッサ1002内の1つ又は複数のグラフィックス・プロセッサ1008と通信して、グラフィックス及びメディアの動作を実行してもよい。少なくとも一実施例では、ディスプレイ・デバイス1011は、プロセッサ1002に接続することができる。少なくとも一実施例では、ディスプレイ・デバイス1011は、モバイル電子デバイス又はラップトップ・デバイスのような内部ディスプレイ・デバイス、又はディスプレイ・インターフェース(たとえば、ディスプレイ・ポートなど)を介して取り付けられる外部ディスプレイ・デバイスのうちの1つ又は複数を含むことができる。少なくとも一実施例では、ディスプレイ・デバイス1011は、仮想現実(VR)アプリケーション又は拡張現実(AR)アプリケーションで使用するための立体ディスプレイ・デバイスなどの頭部装着型ディスプレイ(HMD)を含むことができる。
【0070】
少なくとも一実施例では、プラットフォーム・コントローラ・ハブ1030は、周辺装置が高速I/Oバスを介してメモリ・デバイス1020及びプロセッサ1002に接続できるようにする。少なくとも一実施例では、I/O周辺装置は、オーディオ・コントローラ1046、ネットワーク・コントローラ1034、ファームウェア・インターフェース1028、ワイヤレス・トランシーバ1026、タッチ・センサ1025、データ・ストレージ・デバイス1024(たとえば、ハード・ディスク・ドライブ、フラッシュ・メモリなど)を含むが、これらに限定されない。少なくとも一実施例では、データ・ストレージ・デバイス1024は、ストレージ・インターフェース(たとえば、SATA)を介して、又はペリフェラル・コンポーネント・インターコネクト・バス(たとえば、PCI、PCIエクスプレス)などのペリフェラル・バスを介して、接続することができる。少なくとも一実施例では、タッチ・センサ1025は、タッチ画面センサ、圧力センサ、又は指紋センサを含むことができる。少なくとも一実施例では、ワイヤレス・トランシーバ1026は、WiFiトランシーバ、Bluetoothトランシーバ、又は3G、4G、若しくはLong Term Evolution(LTE)トランシーバなどのモバイル・ネットワーク・トランシーバとすることができる。少なくとも一実施例では、ファームウェア・インターフェース1028は、システム・ファームウェアとの通信を可能にし、たとえば、ユニファイド・エクステンシブル・ファームウェア・インターフェース(UEFI)とすることができる。少なくとも一実施例では、ネットワーク・コントローラ1034は、有線ネットワークへのネットワーク接続を可能にすることができる。少なくとも一実施例では、高性能ネットワーク・コントローラ(図示せず)は、インターフェース・バス1010と結合する。少なくとも一実施例では、オーディオ・コントローラ1046は、多チャネル・ハイ・デフィニション・オーディオ・コントローラである。少なくとも一実施例では、システム1000は、レガシー(たとえば、パーソナル・システム2(PS/2))デバイスをシステムに結合するための任意選択のレガシーI/Oコントローラ1040を含む。少なくとも一実施例では、プラットフォーム・コントローラ・ハブ1030は、キーボードとマウス1043の組合せ、カメラ1044、又は他のUSB入力デバイスなど、1つ又は複数のユニバーサル・シリアル・バス(USB)コントローラ1042の接続入力デバイスにも接続することができる。
【0071】
少なくとも一実施例では、メモリ・コントローラ1016及びプラットフォーム・コントローラ・ハブ1030のインスタンスは、外部グラフィックス・プロセッサ1012などの個別の外部グラフィックス・プロセッサに一体化されてもよい。少なくとも一実施例では、プラットフォーム・コントローラ・ハブ1030及び/又はメモリ・コントローラ1016は、1つ又は複数のプロセッサ1002の外部にあってもよい。たとえば、少なくとも一実施例では、システム1000は、外部のメモリ・コントローラ1016及びプラットフォーム・コントローラ・ハブ1030を含むことができ、これらは、プロセッサ1002と通信するシステム・チップセット内のメモリ・コントローラ・ハブ及び周辺装置コントローラ・ハブとして構成されてもよい。
【0072】
こうした構成要素を使用して、対話環境においてコマンドを実行することができる。
【0073】
図11は、少なくとも一実施例による、1つ又は複数のプロセッサ・コア1102A~1102N、統合メモリ・コントローラ1114、及び統合グラフィックス・プロセッサ1108を有するプロセッサ1100のブロック図である。少なくとも一実施例では、プロセッサ1100は、破線の四角によって表される追加コア1102Nを含むそれ以下の数の追加コアを含むことができる。少なくとも一実施例では、プロセッサ・コア1102A~1102Nのそれぞれは、1つ又は複数の内部キャッシュ・ユニット1104A~1104Nを含む。少なくとも一実施例では、各プロセッサ・コアはまた、1つ又は複数の共有キャッシュ・ユニット1106にアクセスできる。
【0074】
少なくとも一実施例では、内部キャッシュ・ユニット1104A~1104N、及び共有キャッシュ・ユニット1106は、プロセッサ1100内のキャッシュ・メモリ階層を表す。少なくとも一実施例では、キャッシュ・メモリ・ユニット1104A~1104Nは、各プロセッサ・コア内の命令及びデータのキャッシュの少なくとも1つのレベル、並びにレベル2(L2)、レベル3(L3)、レベル4(L4)などの共有中間レベル・キャッシュの1つ又は複数のレベル、又はキャッシュの他のレベルを含んでもよく、ここで外部メモリの前の最高レベルのキャッシュは、LLCとして分類される。少なくとも一実施例では、キャッシュ・コヒーレンス論理は、様々なキャッシュ・ユニット1106及び1104A~1104N間でコヒーレンスを維持する。
【0075】
少なくとも一実施例では、プロセッサ1100はまた、1つ又は複数のバス・コントローラ・ユニット1116とシステム・エージェント・コア1110のセットを含んでもよい。少なくとも一実施例では、1つ又は複数のバス・コントローラ・ユニット1116は、1つ又は複数のPCI若しくはPCIエクスプレス・バスなどのペリフェラル・バスのセットを管理する。少なくとも一実施例では、システム・エージェント・コア1110は、様々なプロセッサ構成要素のための管理機能を提供する。少なくとも一実施例では、システム・エージェント・コア1110は、様々な外部メモリ・デバイス(図示せず)へのアクセスを管理するための1つ又は複数の統合メモリ・コントローラ1114を含む。
【0076】
少なくとも一実施例では、プロセッサ・コア1102A~1102Nの1つ又は複数は、同時マルチスレッディングのサポートを含む。少なくとも一実施例では、システム・エージェント・コア1110は、マルチスレッドの処理中にコア1102A~1102Nを調整し動作させるための構成要素を含む。少なくとも一実施例では、システム・エージェント・コア1110はさらに、電力制御ユニット(PCU)を含んでもよく、このユニットは、プロセッサ・コア1102A~1102N及びグラフィックス・プロセッサ1108の1つ又は複数の電力状態を調整するための論理及び構成要素を含む。
【0077】
少なくとも一実施例では、プロセッサ1100はさらに、グラフィックス処理動作を実行するためのグラフィックス・プロセッサ1108を含む。少なくとも一実施例では、グラフィックス・プロセッサ1108は、共有キャッシュ・ユニット1106と、1つ又は複数の統合メモリ・コントローラ1114を含むシステム・エージェント・コア1110とに結合する。少なくとも一実施例では、システム・エージェント・コア1110はまた、1つ又は複数の結合されたディスプレイに対してグラフィックス・プロセッサの出力を行わせるためのディスプレイ・コントローラ1111を含む。少なくとも一実施例では、ディスプレイ・コントローラ1111はまた、少なくとも1つの相互接続を介してグラフィックス・プロセッサ1108に結合された別個のモジュールであってもよく、又はグラフィックス・プロセッサ1108内に一体化されていてもよい。
【0078】
少なくとも一実施例では、プロセッサ1100の内部構成要素を結合するために、リング・ベースの相互接続ユニット1112が使用される。少なくとも一実施例では、ポイントツーポイント相互接続、スイッチ相互接続、又は他の技法などの代替的な相互接続ユニットが使用されてもよい。少なくとも一実施例では、グラフィックス・プロセッサ1108は、I/Oリンク1113を介してリング相互接続1112と結合する。
【0079】
少なくとも一実施例では、I/Oリンク1113は、様々なプロセッサ構成要素と、eDRAMモジュールなどの高性能組み込みメモリ・モジュール1118との間の通信を容易にするオン・パッケージI/O相互接続を含む多様なI/O相互接続のうちの少なくとも1つを表す。少なくとも一実施例では、プロセッサ・コア1102A~1102Nのそれぞれ及びグラフィックス・プロセッサ1108は、共有ラスト・レベル・キャッシュとして組み込みメモリ・モジュール1118を使用する。
【0080】
少なくとも一実施例では、プロセッサ・コア1102A~1102Nは、共通の命令セット・アーキテクチャを実行する同種のコアである。少なくとも一実施例では、プロセッサ・コア1102A~1102Nは、命令セット・アーキテクチャ(ISA)の観点から見れば異種であり、ここでプロセッサ・コア1102A~1102Nのうちの1つ又は複数は、共通の命令セットを実行するが、プロセッサ・コア1102A~1102Nのうちの1つ又は複数の他のコアは、共通の命令セットのサブセット、又は異なる命令セットを実行する。少なくとも一実施例では、プロセッサ・コア1102A~1102Nは、マイクロ・アーキテクチャの観点から見れば異種であり、ここで電力消費量が相対的に高い1つ又は複数のコアは、電力消費量がより低い1つ又は複数のコアと結合する。少なくとも一実施例では、プロセッサ1100は、1つ又は複数のチップ上に、又はSoC集積回路として実装することができる。
【0081】
こうした構成要素を使用して、対話環境においてコマンドを実行することができる。
【0082】
他の変形形態は、本開示の範囲内にある。したがって、開示した技法は、様々な修正及び代替的な構成が可能であるが、それらのうち一定の例示的な実施例が図面に示され、上で詳細に説明されてきた。しかし、特定の1つ又は複数の開示された形に本開示を限定する意図はなく、その反対に、特許請求の範囲に定義される開示の趣旨及び範囲に入るすべての修正形態、代替的な構成、及び等価物を網羅することを意図している。
【0083】
開示される実施例を説明する文脈において(特に、以下の特許請求の範囲の文脈において)「a」及び「an」及び「the」という用語、並びに同様の指示語を使用することは、本明細書に別段の記載のない限り、又は文脈によって明らかに否定されない限り、単数と複数の両方を網羅すると解釈されるべきであり、用語の定義であると解釈されるべきではない。「備える(comprising)」、「有する(having)」、「含む(including)」、「収容する(containing)」という用語は、別段の記載のない限り、オープンエンドの用語(「含むが、これに限定されない」を意味する)と解釈される。「接続される」という用語は、修飾されずに物理的接続を指している場合には、何か介在するものがあったとしても、部分的に又は完全に中に収容される、取り付けられる、又は互いに接合されるものとして解釈される。本明細書において値の範囲を詳述することは、本明細書において別段の記載がない限り、またそれぞれ別々の値が、本明細書に個々に詳述されているかのように明細書に組み込まれていない限り、範囲内に含まれるそれぞれ別々の値を個々に参照する簡潔な方法として機能することを単に意図しているにすぎない。「セット」(たとえば、「アイテムのセット」)又は「サブセット」という用語の使用は、文脈によって別段の記載がない、又は否定されていない限り、1つ又は複数の部材を備える空ではない集合として解釈されるべきである。さらに、文脈によって別段の記載がない、又は否定されていない限り、対応するセットの「サブセット」という用語は、対応するセットの厳密なサブセットを必ずしも指すのではなく、サブセットと対応するセットは等しくてもよい。
【0084】
「A、B、及びCのうちの少なくとも1つ」又は「A、B、及びCのうちの少なくとも1つ」という形の言い回しなどの結合語は、別段の具体的な記載のない限り、又は文脈によって明確に否定されていない限り、項目、用語などが、AかBかCである、又はAとBとCのセットのいずれかの空でないサブセットであることを提示するために一般に使用される文脈で理解される。たとえば、3つの部材を有するセットの説明的な例では、「A、B、及びCのうちの少なくとも1つ」並びに「A、B、及びCのうちの少なくとも1つ」という結合句は、次のセットのうちのいずれかを指す:{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}。したがって、こうした結合語は、ある一定の実施例が、少なくとも1つのA、少なくとも1つのB、及び少なくとも1つのCのそれぞれの存在を必要とすることを全体的に暗示するものではない。さらに、別段の記載のない、又は文脈によって否定されていない限り、「複数」という用語は、複数である状態を示す(たとえば、「複数の項目(a plurality of items)」は複数の項目(multiple items)を示す)。複数とは、少なくとも2つの項目であるが、明示的に、又は文脈によって示されている場合にはそれより多くてもよい。さらに、別段の記載のない、又は文脈からそうでないことが明らかでない限り、「~に基づく」という言い回しは、「少なくとも部分的に~に基づく」を意味し、「~だけに基づく」を意味しない。
【0085】
本明細書に記載のプロセスの動作は、本明細書に別段の記載のない、又は文脈によって明確に否定されない限り、任意の好適な順序で実行することができる。少なくとも一実施例では、本明細書に記載のプロセス(又はその変形及び/又は組合せ)などのプロセスは、実行可能命令で構成された1つ又は複数のコンピュータ・システムの制御下で実行され、1つ又は複数のプロセッサ上で、ハードウェアによって、又はそれらの組合せによって集合的に実行されるコード(たとえば、実行可能な命令、1つ若しくは複数のコンピュータ・プログラム、又は1つ若しくは複数のアプリケーション)として実装される。少なくとも一実施例では、コードは、たとえば1つ又は複数のプロセッサによって実行可能な複数の命令を備えるコンピュータ・プログラムの形で、コンピュータ読取り可能ストレージ媒体に記憶される。少なくとも一実施例では、コンピュータ読取り可能ストレージ媒体は、一時的な信号(たとえば、伝播する一時的な電気若しくは電磁送信)を除外するが、一時的な信号のトランシーバ内の非一時的なデータ・ストレージ回路(たとえば、バッファ、キャッシュ、及びキュー)を含む非一時的なコンピュータ読取り可能ストレージ媒体である。少なくとも一実施例では、コード(たとえば、実行可能コード又はソース・コード)は、1つ又は複数の非一時的なコンピュータ読取り可能ストレージ媒体のセットに記憶され、このストレージ媒体には、コンピュータ・システムの1つ又は複数のプロセッサによって実行されたときに(すなわち、実行された結果として)、コンピュータ・システムに本明細書に記載の動作を実行させる実行可能命令が記憶されている(又は、実行可能命令を記憶するための他のメモリを有する)。非一時的なコンピュータ読取り可能ストレージ媒体のセットは、少なくとも一実施例では、複数の非一時的なコンピュータ読取り可能ストレージ媒体を備え、複数の非一時的なコンピュータ読取り可能ストレージ媒体の個々の非一時的なストレージ媒体のうちの1つ又は複数には、すべてのコードがないが、複数の非一時的なコンピュータ読取り可能ストレージ媒体は、集合的にすべてのコードを記憶している。少なくとも一実施例では、実行可能命令は、異なる命令が異なるプロセッサによって実行されるように実行され、たとえば、非一時的なコンピュータ読取り可能ストレージ媒体は命令を記憶し、メインの中央処理装置(「CPU」)は一部の命令を実行し、グラフィックス・プロセッシング・ユニット(「GPU」)及び/又はデータ・プロセッシング・ユニット(「DPU」)は他の命令を実行する。少なくとも一実施例では、コンピュータ・システムの異なる構成要素は、別々のプロセッサを有し、異なるプロセッサは、命令の異なるサブセットを実行する。
【0086】
したがって、少なくとも一実施例では、コンピュータ・システムは、本明細書に記載のプロセスの動作を単独で又は集合的に実行する1つ又は複数のサービスを実装するように構成され、こうしたコンピュータ・システムは、動作の実行を可能にする適用可能なハードウェア及び/又はソフトウェアで構成される。さらに、本開示の少なくとも一実施例を実装するコンピュータ・システムは、単一のデバイスであり、別の実施例では、異なるやり方で動作する複数のデバイスを備える分散型のコンピュータ・システムであり、それにより単一のデバイスがすべての動作を実行しないように分散型のコンピュータ・システムが本明細書に記載の動作を実行する。
【0087】
本明細書に提供されるあらゆる例、又は例示的な言葉(たとえば、「など」)の使用は、本開示の実施例をより明らかにすることだけを意図しており、別段の主張のない限り、本開示の範囲に制限を加えるものではない。本明細書のいかなる言葉も、特許請求されていない任意の要素を、本開示の実践に不可欠なものとして示すと解釈されるべきではない。
【0088】
本明細書に引用される出版物、特許出願、及び特許を含むすべての参考文献は、各参考文献が参照により組み込まれることがあたかも個別に明確に示され、その全体が本明細書に記載されたかのように、それと同程度まで参照により本明細書に組み込まれる。
【0089】
明細書及び特許請求の範囲において、「結合される」及び「接続される」という用語が、その派生語とともに使用されてもよい。これらの用語は、互いに同義語として意図されていない場合があることを理解すべきである。むしろ、特定の例では、「接続される」又は「結合される」は、2つ以上の要素が物理的又は電気的に互いに直接又は間接的に接触していることを示すために使用されてもよい。また「結合される」は、2つ以上の要素が直接互いに接触していないが、なお互いに連動又は相互作用することを意味してもよい。
【0090】
別段の具体的な記載のない限り、明細書全体を通して「処理する」、「コンピューティング」、「計算する」、又は「判定する」などの用語は、コンピューティング・システムのレジスタ及び/又はメモリ内の、電子的などの物理的な量として表されるデータをコンピューティング・システムのメモリ、レジスタ、又は他のそのような情報ストレージ・デバイス、送信デバイス、若しくはディスプレイ・デバイス内の物理的な量として同様に表される他のデータになるよう操作及び/又は変換するコンピュータ若しくはコンピューティング・システム、又は同様の電子コンピューティング・デバイスの行為及び/又はプロセスを指す。
【0091】
同様に、「プロセッサ」という用語は、レジスタ及び/又はメモリからの電子データを処理し、その電子データを、レジスタ及び/又はメモリに記憶することができる他の電子データに変換する任意のデバイス、又はデバイスの一部分を指してもよい。非限定的な例として、「プロセッサ」は、CPU、GPU、又はDPUなどの汎用処理が可能な任意のプロセッサであってもよい。非限定的な例として、「プロセッサ」は、任意のマイクロコントローラ、又はDSP、画像信号プロセッサ(「ISP:image signal processor」)、算術論理装置(「ALU:arithmetic logic unit」)、視覚処理装置(「VPU:vision processing unit」)、ツリー・トラバーサル・ユニット(「TTU:tree traversal unit」)、レイ・トレーシング・コア、テンソル・トレーシング・コア、テンソル処理装置(「TPU:tensor processing unit」)、組み込み制御ユニット(「ECU:embedded control unit」)などの専用処理装置であってもよい。非限定的な例として、「プロセッサ」は、PVA:programmable vision accelerator(プログラマブル・ビジョン・アクセラレータ)、DLA:deep learning accelerator(深層学習アクセラレータ)などのハードウェア・アクセラレータであってもよい。非限定的な例として、「プロセッサ」はまた、1つ又は複数の仮想マシンを実行する基礎となるハードウェア構成要素上でホストされる、CPU、GPUなどの1つ又は複数の仮想インスタンスを含んでもよい。「コンピューティング・プラットフォーム」は、1つ又は複数のプロセッサを備えてもよい。本明細書で使用する「ソフトウェア」プロセスは、たとえば、タスク、スレッド、及び知的エージェントなど、経時的にワークを実行するソフトウェア及び/又はハードウェアのエンティティを含んでもよい。また、各プロセスは、命令を直列で又は並列で連続的に又は断続的に実行するための複数のプロセスを指してもよい。「システム」及び「方法」という用語は、1つ又は複数の方法をシステムが具体化することができ、方法がシステムと考えられてもよい場合に限り、本明細書において交換可能に使用される。
【0092】
本明細書では、アナログ・データ又はデジタル・データを得る、取得する、受信する、又はそれらをサブシステム、コンピュータ・システム、又はコンピュータ実装機械に入力することに言及することができる。アナログ・データ又はデジタル・データを得る、取得する、受信する、又は入力することは、関数呼出し、又はアプリケーション・プログラミング・インターフェースへの呼出しのパラメータとしてデータを受信するなど、様々なやり方で実現することができる。いくつかの実装形態では、アナログ・データ又はデジタル・データを得る、取得する、受信する、又は入力するプロセスは、直列又は並列のインターフェースを介してデータを転送することによって実現することができる。別の実装形態では、アナログ・データ又はデジタル・データを得る、取得する、受信する、又は入力するプロセスは、提供するエンティティから取得するエンティティにコンピュータ・ネットワークを介してデータを転送することによって実現することができる。また、アナログ・データ又はデジタル・データを提供する、出力する、送信する、送る、又は提示することにも言及することができる。様々な例では、アナログ・データ又はデジタル・データを提供する、出力する、送信する、送る、又は提示するプロセスは、関数呼出しの入力又は出力のパラメータ、アプリケーション・プログラミング・インターフェース若しくはプロセス間通信機構のパラメータとしてデータを転送することによって実現することができる。
【0093】
上の議論は、説明した技法の例示的な実装形態について述べているが、記載した機能を実装するために他のアーキテクチャが使用されてもよく、この他のアーキテクチャは、本開示の範囲内にあることが意図される。さらに、議論を目的として、役割の具体的な分配が定義されているが、様々な機能及び役割は、状況に応じて異なるやり方で分配及び分割されてもよい。
【0094】
さらに、主題は、構造的特徴及び/又は方法論的動作に特有の言語で説明されてきたが、添付の特許請求の範囲で特許請求される主題は、説明した特有の特徴又は動作に必ずしも限定されないことが理解されるべきである。むしろ、特有の特徴及び動作は、特許請求の範囲を実装する例示的な形として開示されている。
【外国語明細書】