(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023178160
(43)【公開日】2023-12-14
(54)【発明の名称】構造化データベースから抽出された自然言語表現を使用した事前訓練言語モデル
(51)【国際特許分類】
G06F 16/24 20190101AFI20231207BHJP
【FI】
G06F16/24
【審査請求】未請求
【請求項の数】21
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022102308
(22)【出願日】2022-06-27
(31)【優先権主張番号】17/831,000
(32)【優先日】2022-06-02
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
2.BLUETOOTH
(71)【出願人】
【識別番号】501450960
【氏名又は名称】エヌビディア コーポレーション
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】ホー チャン シン
(72)【発明者】
【氏名】アナス ザイヌル アビディン
(72)【発明者】
【氏名】ボー リュウ
(72)【発明者】
【氏名】キャロル アンダーソン
(72)【発明者】
【氏名】バージニア アダムス
(72)【発明者】
【氏名】ジョナサン コーエン
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175GC03
(57)【要約】
【課題】構造データベースに存在する関係性について言語モデルを訓練するためのシステム及び方法を提供すること。
【解決手段】構造データ内の情報は、階層的関係性、関係などのデータベース内の関係性が維持されプレーン・テキスト・フォーマットで表されるように、処理されプレーン・テキストに変換される。この情報は、1つ又は複数の分野についての事前訓練を提供するための言語モデルの訓練データとして使用されてもよい。次いで、入力クエリに対する検索分野応答内の結果を識別するために、言語モデルが自然言語検索とともに活用されてもよい。
【選択図】
図1
【特許請求の範囲】
【請求項1】
構造化データベースからの複数のデータ・エントリをプレーン・テキスト・コーパスに変換するステップであって、前記プレーン・テキスト・コーパスが、前記複数のデータ・エントリのうちの2つ以上のデータ・エントリ間の少なくとも1つの関係性の少なくとも1つの自然言語表現を含む、ステップと、
前記プレーン・テキスト・コーパスを少なくとも部分的に使用して、言語モデルの1つ又は複数のパラメータを更新するステップと、
言語モデルを使用してクエリを受信するステップであって、前記クエリが、前記プレーン・テキスト・コーパスに対応する分野に関連付けられている、ステップと、
前記クエリが前記プレーン・テキスト・コーパスに対応する前記分野に関連付けられているとの判定に応答して、前記言語モデルを使用して前記クエリへの応答を生成するステップであって、前記クエリ又は前記応答のうちの少なくとも一方が、前記2つ以上のデータ・エントリのうちの第1のデータ・エントリを含み、前記応答が、少なくとも、前記第1のデータ・エントリ、及び前記第1のデータ・エントリと前記2つ以上のデータ・エントリのうちの別のデータ・エントリとの間の前記少なくとも1つの関係性の前記少なくとも1つのプレーン・テキスト表現に基づいて生成される、ステップと
を含む、コンピュータ実装方法。
【請求項2】
構造化データベースからの複数のデータ・エントリをプレーン・テキスト・コーパスに変換するステップが、前記プレーン・テキスト・コーパスの2つ以上の部分間の関係性の自然言語表現を生成することをさらに含み、前記プレーン・テキスト・コーパスの前記2つ以上の部分が、構造データベースからの前記2つ以上のデータ・エントリに対応する、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記クエリを受信したことに応答して検索分野の中を検索するステップをさらに含み、前記検索分野が前記言語モデルの外部の検索エンジンに関連付けられている、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記クエリが自然言語クエリである、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記構造化データベースが、非プレーン・テキスト・データベースである、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記構造化データベースが関係データベースである、請求項5に記載のコンピュータ実装方法。
【請求項7】
データベースのセットの第1の構造化データベースの分野がターゲット分野に対応していると判定するステップをさらに含み、前記複数のデータ・エントリを変換するステップが、前記第1の構造化データベースから抽出されたデータを変換することを含む、請求項1に記載のコンピュータ実装方法。
【請求項8】
データ・ストレージを使用して前記プレーン・テキスト・コーパスを格納するステップと、
前記データ・ストレージからの前記プレーン・テキスト・コーパスに少なくとも部分的に基づいて、前記言語モデルを微調整するステップと
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項9】
構造化データセット内の情報間の少なくとも1つの関連付けを識別すること、
前記少なくとも1つの関連付けが維持されるように前記情報を処理すること、
前記情報から1つ又は複数の分野の訓練セットを生成すること、
前記1つ又は複数の分野に関連付けられた入力クエリを受信することであって、前記入力クエリに関連付けられた言語モデルが、少なくとも前記訓練セットを使用して少なくとも部分的に訓練される、受信すること、及び
前記言語モデルを使用して、前記入力クエリへの応答を生成すること
を行うための1つ又は複数のプロセッサを含む、システム。
【請求項10】
前記関連付けが、前記構造化データセットの階層的関係性又は関係的関係性のうちの少なくとも一方に対応する、請求項9に記載のシステム。
【請求項11】
前記1つ又は複数のプロセッサがさらに、
前記構造化データセットが指定された分野に対応すると判定し、
前記構造化データセットを取得し、
前記構造化されたデータセットから前記情報を抽出する、
請求項9に記載のシステム。
【請求項12】
前記1つ又は複数のプロセッサがさらに、検索分野に対して前記入力クエリの検索を実行し、前記検索分野が、前記言語モデルの外部の検索エンジンに関連付けられている、請求項9に記載のシステム。
【請求項13】
前記入力クエリが、前記言語モデルによって処理される自然言語クエリである、請求項9に記載のシステム。
【請求項14】
前記情報が、前記少なくとも1つの関連付けがプレーン・テキストを使用して表現されるような文構造に変換される、請求項9に記載のシステム。
【請求項15】
前記1つ又は複数のプロセッサがさらに、前記訓練セットの少なくとも一部分を使用して前記言語モデルを事前訓練する、請求項9に記載のシステム。
【請求項16】
前記システムが、
自律型若しくは半自律型マシンのヒューマン・マシン・インターフェース・システム、
会話型AI動作を実行するためのシステム、
シミュレーション動作を実行するためのシステム、
デジタル・ツイン動作を実行するためのシステム、
深層学習動作を実行するためのシステム、
エッジデバイスを使用して実装されたシステム、
ロボットを使用して実装されたシステム、
1つ又は複数の仮想マシン(VM)を組み込んだシステム、
少なくとも部分的にデータ・センタ内に実装されたシステム、又は
少なくとも部分的にクラウド・コンピューティング・リソースを使用して実装されたシステム
のうちの少なくとも1つに含まれる、請求項9に記載のシステム。
【請求項17】
構造化データを受信するステップであって、前記構造化データが、前記構造化データを形成する情報の2つ以上の部分間の1つ又は複数の関係性の少なくとも1つの表現を含む、ステップと、
情報の前記2つ以上の部分間の前記少なくとも1つの関係性のカテゴリを識別するステップと、
情報の前記2つ以上の部分に関する前記カテゴリのプレーン・テキスト記述を生成するステップと、
前記プレーン・テキスト記述を1つ又は複数の言語モデルのための事前訓練データとして格納するステップと
を含む、コンピュータ実装方法。
【請求項18】
情報の前記2つ以上の部分間の関係性に関するテキスト記述が自然言語表現に変換される、請求項17に記載のコンピュータ実装方法。
【請求項19】
前記構造化データが1つ又は複数の分野に対応する、請求項17に記載のコンピュータ実装方法。
【請求項20】
前記構造化データが関係データベースから抽出される、請求項17に記載のコンピュータ実装方法。
【請求項21】
前記構造化データが非テキスト・データとして受信される、請求項17に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、構造化データベースから抽出された自然言語表現を使用した事前訓練言語モデルに関するものである。
【背景技術】
【0002】
質問回答、感情分析、及び要約などのタスクには、様々な言語モデルが効果的であることが明らかになっている。これらのモデルは、典型的には、非常に大きなデータセット又は人間が注釈付けしたデータセットを使用して特定の分野のために訓練されており、結果として、スケーリングが困難である場合がある。これらのモデルの機能性を得るには、多くの場合、特定の分野のためのモデルを微調整するために事前訓練が導入される。しかし、新規検索又は分野外の検索は一般に不十分な結果をもたらし、それにより、これらのモデルの使用は、必要な訓練データを有していない新しいアプリケーション用に限定される。
【発明の概要】
【課題を解決するための手段】
【0003】
図面を参照しながら、本開示による様々な実施例を説明する。
【図面の簡単な説明】
【0004】
【
図1】少なくとも一実施例による、実例訓練及びクエリ処理環境を示す図である。
【
図2】少なくとも一実施例による、実例検索環境を示す図である。
【
図3A】少なくとも一実施例による、実例データセットを示す図である。
【
図3B】少なくとも一実施例による、実例レコードを示す図である。
【
図3C】少なくとも一実施例による、実例レコードを示す図である。
【
図3D】少なくとも一実施例による、実例レコードを示す図である。
【
図3E】少なくとも一実施例による、実例レコードを示す図である。
【
図4A】少なくとも一実施例による、機械学習システムを訓練するための実例フローチャートである。
【
図4B】少なくとも一実施例による、機械学習システムを使用して訓練及び検索するための実例フローチャートである。
【
図5】少なくとも一実施例による、機械学習システムを使用して訓練及び検索するための実例フローチャートである。
【
図6】少なくとも一実施例による、プレーン・テキスト・データセットを生成するための実例フローチャートである。
【
図7】少なくとも一実施例による、例示的なデータ・センタ・システムを示す図である。
【
図8】少なくとも一実施例による、コンピュータ・システムを示す図である。
【
図9】少なくとも一実施例による、コンピュータ・システムを示す図である。
【
図10】少なくとも一実施例による、1つ又は複数の実施例による、グラフィックス・プロセッサの少なくとも一部分を示す図である。
【
図11】少なくとも一実施例による、1つ又は複数の実施例による、グラフィックス・プロセッサの少なくとも一部分を示す図である。
【発明を実施するための形態】
【0005】
様々な実施例による手法は、訓練学習モデルで使用するためのプレーン・テキスト変換中にデータベース内の階層的関係性及び構造的関係性を維持するためのシステム並びに方法を提供する。結果として、従来の意味論的検索技法と比較した場合に、データのコーパスからの新規情報の識別が容易になるという検索の改善が可能になる。様々な実施例は、1つ又は複数のモデルを訓練するためにノイズ除去目的関数(denoising objective)を利用する従来の訓練方法に関連する問題を克服することができる。特に新規情報を識別しようとする場合、ノイズ除去目的関数は元データに存在する構造情報を無視する可能性があるので、ノイズ除去目的関数は制限される。この情報は、人間のレビュー担当者からの重要な作業又は注釈を含む可能性があるが、従来の評価によって失われる。さらに、システム及び方法は、テキスト状データ以外のものに拡張されてもよく、関係データベースなどの構造化データベース内に格納されている情報を利用してもよい。このように、訓練目的で情報をプレーン・テキストに変換するときに構造を保持することができ、これにより言語モデルの事前訓練においてこれらの関係性を活用することが可能になり、それによって言語モデルを使用したきに改善された検索結果を提供することができる。
【0006】
様々な実施例により、人間が注釈付けした大規模なデータセットの使用を必要とせずに、自然言語検索を使用した新規の知見が可能になる。さらに、データベースに関連付けられた階層情報又は構造情報を活用することによって、意味論的検索の改善が提供される場合がある。実施例は、変換されたプレーン・テキスト・データ上で事前訓練された言語モデルを提供する。たとえば、テキスト・データは、様々な構造化された若しくは関係を示すデータベース又はデータ・ソースから取得され、その関連する構造を保持するように処理されるとともに、訓練目的のためにプレーン・テキストに変換されてもよい。この情報上でモデルを事前訓練することで、モデルは元データに存在する階層及び関係性を学習できるようになる。次いで、この言語モデルを使用して、1つ又は複数の異なる分野内の情報を処理し、様々な入力クエリへの応答を提供してもよい。特定の実施例では、プレーン・テキスト・データの変換は、テーブル対テキスト変換プロセスなどの自動化されたプロセスであってもよく、又は特定の分野に固有であってもよい。少なくとも一実施例では、言語モデルの訓練(たとえば、絡み合うなどした複雑な階層的関係を含む訓練)が改善されることにより、分野内テキストに対して検索結果の改善が提供される場合がある。したがって、言語モデルは、クエリを受信し、クエリを理解し、分野内情報の中を検索し、次いで、典型的な検索エンジンであれば失敗するはずの関連項目を見出すことができる。
【0007】
実施例はさらに、他の選択肢のなかでもとりわけ、関係データベースなどの1つ又は複数の構造データベースからテキストを生成することを目的とし得る。システム及び方法は、データベースの1つ又は複数の部分を入力として受信し、その入力から、データベース内の情報に少なくとも部分的に基づいて異なる構成要素間の関係性を決定することができる、1つ又は複数の自動化プロセスを含んでもよい。実例として、データベースは、項目をグループ化するか又は他の方法で分類してもよい(たとえば、世代/先祖によるグループ化、親/子の関係性によるグループ化など)。様々な実施例は、これらの関係性を評価し、次いで、訓練目的に有用であり得るプレーン・テキスト情報に対応し得るテーブル内の関係性に関連する1つ又は複数のレコードを生成してもよい。実例として、データベースには、医薬品のクラス、作用方法、及びその作用方法を推進する化合物のリストに関連する情報が含まれ得る。評価時に、「化合物AはA活性剤の一種である。」又は「化合物AはB医薬品として分類される。」などのプレーン・テキスト情報が生成されてもよい。次いで、これらの関係性は言語モデルの事前訓練に利用されてもよく、その結果、評価されたデータベース内で同様に提供される構造的関係性を活用することによって、分野内検索が改善される可能性がある。
【0008】
図1に示すように、環境100は、クエリに対する検索結果の応答を改善するために、とりわけ関係データベースなどのデータベース内の階層構造を維持して言語モデルを訓練するためのプロセス・フローを示す。この実例では、環境100は、1つ若しくは複数のプロセッサ及び1つ若しくは複数のメモリを含む、1つ又は複数のコンピュータ・システム上で実行されてもよい。コンピュータ・システムは、環境100の1つ又は複数のシステムが異なるシステム上でホストされるか又は他の方法で実行される分散コンピューティング環境(たとえば、クラウド・コンピューティング環境)の一部であってもよい。様々な構成要素が異なるモジュール又はサブシステムとして示され得るが、様々な実施例が様々なモジュール又はサブシステムの1つ又は複数の特徴を他の関連するモジュール又はサブシステムに組み込み得ることを認識すべきである。
【0009】
少なくとも1つの環境では、情報セットが、1つ又は複数のデータベース102に関連付けられる。情報セットは、様々な実施例において関係データベース、テーブルなどの何らかのタイプの階層的若しくは関係的な様式でフォーマット又は格納され得るデータを含んでもよい。データベース102に関連付けられたそれぞれの情報セットは、(たとえば、情報を情報セット内に入力するために)人間のレビュー担当者によって若しくはデータベース・ソフトウェア・システムに関連する規則によって準備又は他の方法で指定された豊富なフォーマットを含む場合がある。その結果、データベース内の情報は、言語モデルなどの1つ又は複数の機械学習システムに有用であり得る関係情報を提供することができる。しかし、これらの情報セットのフォーマットは、機械学習システムの訓練に好適ではない可能性があり、その結果、訓練データとして使用するために、変換又は他の方法で修正される場合がある。データベースがテキストに変換されると、情報の多くが失われる可能性があり、その結果、情報の有用性が低下する可能性がある。
図1に示すようなシステム及び方法は、情報セット内で確立された構造的関係性及び階層的関係性を維持するとともに依然として情報セットを訓練目的に有用なテキスト入力に変換する変換システム104を利用することによって、この欠陥を克服する。
【0010】
様々な実施例は、データベース102から情報セットを入力として受信し、次いで、その情報を、訓練データ106として使用され得るテキストベースのデータに変換する変換システム104を含む。少なくとも一実施例では、変換システム104は、入力を形成する情報を分析し、次いで情報間の様々な階層的関係性又は構造的関係性を表すための、規則セットに対応してもよい。実例として、入力情報が、最初のトピックが様々なサブトピックを有する折り畳み可能なリストの形式である場合、情報は、他の選択肢のなかでもとりわけリスト若しくはプレーン・テキスト・フォーマット又はそれらの組合せに変換される一連のマイクロレコードとして分離を示すための関係性のレベルによって、グループ化(たとえば、先祖、親、兄弟など)の形式で表されてもよい。このようにして、入力データの様々な部分間の関係性及び関連性は、訓練データ106として使用するためにプレーン・テキストに変換された後でも維持され得る。
【0011】
少なくとも一実施例では、入力データを受信し、入力データを訓練データ106に変換するために、1つ又は複数の自動化システムが変換システム104内に展開されてもよい。たとえば、テーブルを識別し、テーブル内の様々なヘッダを認識し、関連するヘッダを用いて様々な構成要素をグループ化し、次いでテーブル内のデータをプレーン・テキスト・フォーマットで提示するために、テーブル対テキスト変換アプリケーションが展開されてもよい。異なるタイプの入力データに対して異なるユーティリティが使用され得ること、また少なくとも一実施例では、変換の前に様々なフォーマットが決定され得ることを認識すべきである。たとえば、1つ又は複数のデータベースは、それらのデータベース内で一般的に提示された又はフォーマットされた情報に起因して、他のデータベースとは異なる方法で評価されてもよい。それに応じて、システムは、調整されるか、又は他の方法で、異なるタイプの入力データを扱うための命令セットを有してもよい。1つ又は複数の実施例により、ユーザが入力データをハードコード化するか又は他の方法で入力データをどのように評価及びグループ化すべきかを具体的に示すことができる、カスタマイズ可能な変換ユーティリティが可能になり得ることを認識すべきである。
【0012】
少なくとも一実施例では、訓練データ106は、言語モデル108を事前訓練するために使用されてもよい。本開示の実施例とともに、とりわけ、BERT、RoBERTa、及びT5を含むがこれらに限定されない様々なタイプの言語モデル108が利用されてもよい。これらの言語モデル108は、基本言語モデルと呼ばれることもあり、基本言語モデルは、多数のタスクに適用可能とすることができ、次いで、特定の分野に特殊化するように又は他の方法で特定の分野に焦点を合わせるように特別に訓練されてもよい。従来、これらのタイプのモデルは、特定の分野に関する十分な訓練情報を得るために非常に大きなデータ・セットを使用していたが、十分な訓練情報を取得することが困難である場合がある。さらに、様々な実施例はまた、望ましい結果を達成するために、モデル・アーキテクチャへの修正を利用してもよい。これらの問題は、本開示のシステム及び方法を使用して、訓練データ106を用いて、データベース102に関連付けられた分野に対応し得る特定の分野について言語モデル108を事前訓練することによって克服される。訓練データ106は元データの階層情報及び関係情報を維持するようにフォーマットされるので、事前訓練のためにより多くの情報が言語モデル108に提供され、それによって、より短いタイムラインで結果の改善が可能になる。さらに、システム及び方法は、注釈付きの訓練データが不足しているため又は十分な訓練データのセットがないために検索分野から「新規な」結果を識別する場合に関しては、従来の言語モデルの問題に対処することがある。
【0013】
前に示したように、従来の言語モデルは、ノイズ除去目的関数(たとえば、文及び句内の単語のマスキング)を使用して、注釈のないテキストの大きなコーパス上で事前訓練される場合がある。本開示のシステム及び方法とは異なり、これらの技法は入力データセットの構造を無視する。その結果、入力データはウェブ・ページ、書籍、記事などのテキスト状データに限定される。しかし、構造化データベース又は関係データベース(たとえば、SQL、XML、RRF)などの様々な場所において追加情報が見出される場合がある。様々な実施例は、テキスト内の構造及び関係を維持することによって、これらのデータベースを形成するためにすでに取り組まれた成果を活用する。結果として、この改善された訓練データ106上で言語モデル108を事前訓練することにより、クエリに応答して改善された結果がもたらされる。少なくとも一実施例では、クエリは、異なる構成要素間の新規の知見又は関係性を見出すための検索意図を有する自然言語クエリであってもよい。
【0014】
少なくとも一実施例では、言語モデル108は、検索分野112に対して実行する従来の検索エンジン110に関連する検索結果を改善するように実装されてもよい。たとえば、入力クエリ114が、言語モデル108又は検索エンジン110のいずれかに提示されてもよい。検索エンジン110は、言語モデル108を活用して、検索分野112に対して改善された結果を提供し、新規の知見であり得る結果116を生成してもよい。したがって、本開示のシステム及び方法を使用して、文書、ウェブ・ページなどのコーパス上で検索を実行することができる。事前訓練済みの言語モデル108を活用することにより、言語モデル108が、上記のように検索分野112に関連し得るデータベース102からの事前訓練に起因して検索分野112についてより深い知識を有するので、一連の新規の知見(たとえば、従来の検索では識別されない知見)を得ることができる。
【0015】
図2に示すように、環境200は、1つ又は複数の言語モデルとともに利用されてもよい。環境200がより多くの又はより少ない構成要素を含んでもよいこと、及び環境200の様々な構成要素が、単一のシステムに組み込まれてもよいが便宜上且つ明確にするために別個のモジュールとして示される場合があることを認識すべきである。この実例では、クライアント・デバイス202は、1つ又は複数のネットワーク208を介して、言語システム204又は検索システム206に対して1つ又は複数の要求を行うことができる。ネットワーク208は、ユーザ・デバイス、サーバ構成要素、スイッチなどの1つ若しくは複数の中間システムを含む有線ネットワーク又は無線ネットワークであってもよい。言語システム204又は検索システム206のうちの1つ又は複数が、異なるプロバイダに関連付けられてもよいこと、及び言語システム204が検索システム206の機能性を強化又は他の方法で改善するためのサービスとして提供されてもよいことを認識すべきである。さらに、少なくとも一実施例では、検索システム206は、1つ又は複数のレコードへのアクセスを提供するサブスクリプション・サービスであってもよく、言語システム204は、検索を改善するために使用されてもよい。さらに、少なくとも一実施例では、言語システム204は、検索システム206としての共通のエンティティによってホスト及び/又は管理されてもよい。
【0016】
この実例では、クライアント・デバイス202は、ネットワーク208を介して、言語モデルを訓練又は更新するよう求める要求、言語モデルを開発するよう求める要求、検索要求などの要求を行うことができる。たとえば、入力マネージャ210は、言語システム204内の1つ若しくは複数の変更又は更新に関連するクライアント・デバイス202からの要求を受信してもよい。入力マネージャ210は、要求を処理し、クライアント・デバイス202がそのような要求を行う権限を与えられているかどうかを判定し、次いで、権限が与えられておりシステムの能力の範囲内である場合、要求の遂行を進めてもよい。少なくとも一実施例では、要求は、言語モデル212を訓練するための新しい分野を開発することである。
【0017】
入力マネージャ210は、1つ又は複数のデータセット216からの情報を、言語モデル212を訓練するために利用され得るテキストベースの情報に変換するよう求めるコマンドを、データ処理ユニット214に送出してもよい。たとえば、データセット216は、データの異なる部分間のコンテキスト及び関係性情報を提供する階層情報を含む様々なデータベース又は他のタイプの構造化データを含み得るが、データがテキストベースのフォーマットに変換されるときに失われる可能性がある。本開示の実施例は、これらの関係性を保存し、それにより言語モデル212の訓練のための追加情報を提供することができる。単に例として、関係性は、「化学物質Aは薬剤Bのサブクラスである」などのテキスト文に変換されてもよい。このような関係性は、従来、テーブル又はサブメニュー内に格納されている情報などの情報をテキストベースのフォーマットに変換するときに失われる可能性がある。しかし、様々な実施例は、そのような関係情報を保存及び維持するためのデータ処理ユニット214を提供し、それにより人間の注釈を使用せずに改善された訓練データを提供する。
【0018】
様々な実施例では、データ処理ユニット214は、1つ又は複数の特定の分野に関連付けられたデータセット216を取得してもよい。たとえば、医療用途の場合、分野は、医薬化合物の相互作用又は作用機序を対象としてもよい。訓練データベース218に格納された訓練データを用いて様々な異なる分野が処理され得ることを認識すべきである。次いで、この情報は、言語モデル212を訓練するための事前訓練情報又は微調整情報として提供されてもよい。結果として、情報に注釈を付けて提供するための人間のレビュー担当者を設けることなく、言語モデル212を豊富な階層データ及び関係データを含む情報上で訓練することができ、それによって時間及びコストが節約される。さらに、より多様な分野を迅速に評価し、言語モデル212を訓練するために使用することができ、それにより、検索などの関連するアプリケーションを、より機敏で、迅速な展開に適したものにする。
【0019】
少なくとも一実施例では、言語モデル212は、検索システム206に組み込まれるか、又は検索システム206を強化するために使用されてもよい。これは例示的な実装形態として提供されており、本開示の実施例がそのような用途に限定されないことを認識すべきである。この実例では、検索システム206は、検索クエリなどの入力クエリを受信して処理し得るクエリ・マネージャ220を含む。様々な実施例では、入力クエリは、クライアント202から、言語システム204から、又はそれらの組合せから受信される。検索エンジン222は、検索分野224に対して検索を実行してもよい。たとえば、検索エンジン222は、ジャーナル又は記事のコレクション内の検索システムなどの、プロバイダに関連付けられた製品又はサービスであってもよい。さらに、様々な実施例では、検索エンジン222は、電子商取引プラットフォームを通じて利用可能な異なるウェブサイト又は製品を集約及び評価するものなど、より広範な検索エンジンであってもよい。この実例では、入力クエリに関連付けられた検索分野224は、言語モデル212が訓練された分野に実質的に類似しているか又は関連している場合がある。したがって、訓練データ218を介して維持される関係性を通じて、改善された検索結果が達成され得る。このようにして、新規の知見を検索するユーザは、言語モデル212で維持及び学習された関係性に関する知識を有していない可能性がある検索エンジン222を単独で使用するよりも良好な結果を受け取ることができる。さらに、ユーザは、自然言語検索を使用することによって、よりターゲットが絞られた検索を作り出すことが可能である場合がある。
【0020】
図3Aは、1つ又は複数のデータベースに格納され得るソース・データのセット300を示す。この実例では、セット300は、様々な医薬品間の関係性を示す階層構造になっている。ここでの構造は、ユーザが様々なタイプの医薬品を並べ替えられるようにする折り畳み可能なメニュー302によって表される。通常、このような構成をテキストベースに変換すると、リンク(たとえば、ドロップ・ダウン部分)が失われるか又は変換時にテキストとして反映されないため、この有益な階層情報及びセット300のグループ化は失われることになる。しかし、本開示の実施例は、そのような関係性を維持して、1つ又は複数の言語モデルを事前訓練するために使用できる改善された訓練データを提供し、他の選択肢のなかでもとりわけ自然言語検索入力からの新規の結果を容易にすることを目的とし得る。
【0021】
図3Bは、他の選択肢のなかでもとりわけ、変換システム104及び/又はデータ処理ユニット214などの本開示の1つ又は複数のシステム及び方法によって処理された後のセット300の例示的なレコード320を示す。この実例では、セット300の様々な医薬品が、先祖322、子孫324、及び兄弟326として一緒にグループ化される。実例として、精神賦活剤と神経系薬との2つの選択肢が、ドロップ・ダウン・メニューが開いた場所まで遡ることができるので、先祖322は、精神賦活剤及び神経系薬と見なされる。子孫324は、抗鬱剤からのドロップ・ダウン・メニューの一部であった各医薬品に対応する。さらに、兄弟326は、同じ最下位の先祖322から広がる他のカテゴリ(たとえば、精神賦活剤)に対応する。
【0022】
次いで、図示された例示的なレコード320は、1つ又は複数の言語モデルのための訓練データとして利用されてもよい。たとえば、この情報を利用して、MAO A阻害剤が精神賦活剤のクラス内の抗鬱剤の一種であることを言語モデルに教示してもよい。さらに、子孫326の評価を介するなどして関連する医薬品を識別することもでき、単に実例として、この評価を使用して、1つ又は複数が有害反応を引き起こす場合に潜在的な代替物を識別することができる。
【0023】
図3Cは、他の選択肢のなかでもとりわけ、変換システム104及び/又はデータ処理ユニット214などの本開示の1つ又は複数のシステム及び方法によって処理された後のセット300の例示的なレコード340を示す。この実例では、セット300の様々な医薬品が、親342及び子344をより遠い子孫324及び先祖322から分離しておくように一緒にグループ化される。実例として、
図3Bと比較した場合、直属の親である精神賦活剤(たとえば、抗鬱剤を含む最後のドロップ・メニュー)は、他の先祖である神経系薬から分離されている。さらに、子344は、抗鬱剤の下の異なるカテゴリに対応し、一方、他の子孫324は、子とは別のものとしてさらに分類される。このようにして、抗鬱剤の主要なクラスを識別することができ、特定の化合物を他の子孫324として分類することができる。
【0024】
上記のように、図示された例示的なレコード340は、次いで、1つ又は複数の言語モデルのための訓練データとして利用されてもよい。たとえば、この情報を利用して、
図3Bに示すように様々な特定の化合物にグループ化することなく言語モデルに特定のクラスの抗鬱剤を教示してもよい。
【0025】
図3Dは、他の選択肢のなかでもとりわけ、変換システム104及び/又はデータ処理ユニット214などの本開示の1つ又は複数のシステム及び方法によって処理された後のセット300の例示的なレコード360を示す。この実例では、セット300の様々な医薬品が、カテゴリ全体(たとえば、抗鬱剤)と比較した場合のそれらの「レベル」によって一緒にグループ化される。たとえば、レベル1の先祖362は、
図3Cの親に対応し、レベル2の先祖364は、
図3Cの子に対応し、レベル1の子孫366は、
図3Cの他の子孫324に対応し、以下同様である。このような分離は、特にドロップ・メニューに関してセット300の階層構造を維持し、評価されるクラス全体に対していくつのレベルが展開されるかよってレベルが示される。たとえば、この実例では、先祖は、主要カテゴリへと上向きに移動し(たとえば、抗鬱剤は精神賦活剤のカテゴリであり、精神賦活剤は神経系薬のカテゴリである)、子孫は、評価されるクラスから下向きに移動する。上記のように、図示された例示的なレコード360は、1つ又は複数の言語モデルのための訓練データとして利用されてもよい。
【0026】
図3Eは、他の選択肢のなかでもとりわけ、変換システム104及び/又はデータ処理ユニット214などの本開示の1つ又は複数のシステム及び方法によって処理された後のセット300の例示的なレコード380を示す。この実例では、セット300の階層的関係性及び/又は構造的関係性に少なくとも部分的に基づいて、マイクロレコード382のセットが生成される。たとえば、セット382の異なるマイクロレコードは、セット300の評価から得られた情報を含む句又は文を含んでもよい。この実例では、セット300に基づけば、セルトラリンは選択的セロトニン再取り込み阻害剤カテゴリ内の子孫であるか又はそのカテゴリにグループ化されているので、セルトラリンは、選択的セロトニン再取り込み阻害薬の一種であると記載されている。さらに、セット300を評価すると、セルトラリンが抗鬱剤の一種であることも確認することができる。本開示の様々な実施例は、これらのマイクロレコードを1つ又は複数の言語モデルを事前訓練するための訓練データとして生成することを含み得る。これらのマイクロレコード382は、セット300内で表される階層情報を維持しながら、セット300の平易な言語表現を提供する。このようにして、関係性の中ですでにコード化及び確立されているデータを、関係情報を失うことなく訓練目的で使用することができる。
【0027】
図4Aは、変換された構造データセット上で言語モデルを事前訓練するための実例プロセス400を示す。本明細書で提示する上記のプロセス及び他のプロセスについて、同様の順番で、若しくは代替的な順番で、又は少なくとも一部が並行して実行される追加の、より少ない、又は代替的なステップが、別段の記載のない限り様々な実施例の範囲内で存在してもよいことが理解されるべきである。この実例では、データセットが取得される402。データセットは、複数のデータ・エントリを含んでもよく、関係データベース、テーブルなどからの情報などの構造化データ又は階層データも含んでもよい。1つ又は複数のテキスト文書内の様々な形式の構造もまた、構造化データ又は階層データに対応し得ることを認識すべきである。例として、限定されないが、見出し及び小見出し、文書内の内部リンクなどは、情報が文書内でどのように関連しているかに関する有用な情報を提供し得る構造化データの形式であってもよい。
【0028】
少なくとも一実施例では、データセットはプレーン・テキストに変換されてもよい404。様々な実施例では、プレーン・テキストは、プレーン・テキスト・コーパスとしてよりも好ましい場合がある。たとえば、
図3A~
図3Eに示すように、データセット内の情報が抽出されてもよく、次いで、データセット内の関係性が、プレーン・テキストとしてラベル付けされるか又は他の方法で提示されてもよい。このような変換は、テーブル又はデータベースから情報を削除し、次いで、データセットの様々な情報間の関係性をリンクするか又は他の方法でテキストによって記述することを含んでもよい。すなわち、変換されたプレーン・テキスト・コーパスは、データ・セットを形成するデータ・エントリのうちの2つ以上のデータ・エントリ間の少なくとも1つの関係性の自然言語表現を含んでもよい。このようにして、データセットは、機械学習システムの訓練に有用な形式に変換されてもよい。
【0029】
プレーン・テキスト(たとえば、プレーン・テキスト・コーパス)の形式の変換されたデータセットを使用して、言語モデルの1つ又は複数のパラメータを更新してもよい406。たとえば、言語モデルは、訓練モードで実行され、プレーン・テキスト・コーパスを入力として受信してもよい。この情報は、言語モデルの様々な重み付けパラメータを調整するために且つ/又は特定の分野の言語モデルを微調整するために使用されてもよい。単一の言語モデルのために多種多様な分野を事前訓練することができるが、そのような動作は、より大きく、入力を実行するのにより時間を要する言語モデルをもたらす可能性があり、その結果、様々な実施例では、言語モデルが、ターゲットを絞ったタスクの特定の分野について事前訓練される場合があることを認識すべきである。
【0030】
図4Bは、検索エンジンとして機能するように又は検索エンジンを補足するように言語モデルを訓練するための方法420の実施例のフローチャートである。この実例では、データベースからデータセットの少なくとも一部分が抽出される422。データセットは、1つ又は複数の分野に関連付けられた情報を含んでもよく、分野は、検索のターゲット分野であってもよい。さらに、前述のように、データセットは、少なくとも部分的に、複数のデータ・エントリによって形成されてもよく、複数のデータ・エントリのうちの2つ以上のデータ・エントリ間に少なくとも1つの関係性が存在する。
【0031】
様々な実施例は、データセットの一部分から、データセットの一部分内の関係性を維持するプレーン・テキスト(たとえば、プレーン・テキスト・コーパス)を生成することを含む424。たとえば、プレーン・テキストは、データセット内の情報間の様々な関係性を書き出してもよい。プレーン・テキストはまた、関係性を表すラベル又は他の指標を含んでもよい。実施例では、プレーン・テキストを使用して、データセットの2つ以上のデータ・エントリ間の少なくとも1つの関係性の自然言語表現を提供してもよい。したがって、データセットが訓練目的で使用されるときにデータベース内の関係性を形成するために費やされた作業及び労力は維持され、それによって、より豊富な情報を提供する。
【0032】
たとえば訓練ステップ又は事前訓練ステップにおいて、生成されたプレーン・テキストを使用して、言語モデルの1つ又は複数のパラメータを更新してもよい426。言語モデルは、通常、大規模なデータセット上で訓練された既存の言語モデルである可能性がある。しかし、特定の分野に対してより正確な結果を提供するために、生成されたプレーン・テキストを使用して、言語モデルをその分野に合わせて事前訓練又は微調整してもよい。次いで、この訓練済みの言語モデルは、検索クエリを受信するために又は既存の検索エンジンの補足として、提供されてもよい428。したがって、ユーザは分野に関連付けられた自然言語検索クエリを入力することができ、構造的関係性が維持された情報を使用する事前訓練プロセスによって提供される改善を通じて、検索分野から新規の知見を抽出することができる。
【0033】
図5は、訓練済みの言語モデルを使用して入力クエリへの応答を生成するための方法500の一実施例のフローチャートである。この実例では、構造化データベースからのデータは、プレーン・テキスト・データに変換される502。プレーン・テキストへの変換は、関係性、タグなどに関するマイクロレコードを提供することなどによって、構造化データベースに関連付けられた関係性情報が維持されるようにフォーマットされてもよい。少なくとも一実施例では、たとえば、事前訓練又は微調整中に、プレーン・テキスト・データを使用して言語モデルの1つ又は複数のパラメータが更新される504。たとえば、他の特徴のなかでもとりわけ、言語モデルの様々な重み係数がプレーン・テキスト・データの分野に対応するように調整される1つ又は複数の訓練動作を開始してもよい。様々な実施例では、言語モデルが、次いで1つ又は複数の特定の分野について訓練される一般的な言語モデルであり得ることを認識すべきである。
【0034】
少なくとも一実施例では、次いで、訓練済みの言語モデルは、検索動作に利用されてもよい。たとえば、言語モデルにおいて、プレーン・テキスト・データの分野に関連付けられたクエリが受信されてもよい506。次いで、言語モデルは、他の選択肢のなかでもとりわけ、サード・パーティの検索エンジンに対応する検索分野に対してクエリを適用することなどによってクエリを処理して、クエリへの応答を提供してもよい508。少なくとも一実施例では、クエリは、プレーン・テキスト・データの分野に関連付けられていると評価及び判定されてもよい。さらに、特定の実施例では、クエリ又は応答のうちの少なくとも一方は、構造化データベースのデータを形成する2つ以上のデータ・エントリのうちの第1のデータ・エントリに関連付けられてもよい。応答は、少なくとも、第1のデータ・エントリ、及び第1のデータ・エントリと2つ以上のデータ・エントリのうちの別のデータ・エントリとの間の少なくとも1つの関係性の少なくとも1つのプレーン・テキスト表現に基づいて生成されてもよい。このようにして、言語モデルを使用して様々な検索分野の検索を改善又は強化し、訓練済みの言語モデルの利点を検索に提供することができる。
【0035】
図6は、構造化データからプレーン・テキスト・データセットを生成するための方法600の実施例のフローチャートである。この実例では、データベースから構造化データが受信される602。構造化データは、構造化データ内の情報の2つ以上の部分間の1つ又は複数の関係性が表されるように、フォーマットされているか又は別の方法で構成されたデータを含んでもよい。たとえば、情報の2つ以上の部分は、他の選択肢のなかでもとりわけ医薬化合物のファミリーなどの共通のファミリー内に分類されてもよい。2つ以上の部分間の関係性が識別されてもよい604。たとえば、情報の一部分を評価することによって階層的関係性又は関係的関係性が識別されてもよい。
【0036】
少なくとも一実施例では、関係性のプレーン・テキスト記述が生成される606。たとえば、プレーン・テキスト記述は、関係性、ラベル、タグなどを記述する文であってもよい。少なくともプレーン・テキスト記述を使用して、プレーン・テキスト・データセットが生成されてもよい608。プレーン・テキスト・データセットは、データセットに関連付けられた追加情報とともに、プレーン・テキスト記述、及び情報の2つ以上の部分を含んでもよい。プレーン・テキスト・データセットは、たとえば1つ又は複数の機械学習システムを訓練する際に使用するために格納されてもよい610。
【0037】
データ・センタ
図7は、少なくとも一実施例が使用されてもよい例示的なデータ・センタ700を示す。少なくとも一実施例では、データ・センタ700は、データ・センタ・インフラストラクチャ層710、フレームワーク層720、ソフトウェア層730、及びアプリケーション層740を含む。
【0038】
図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つ又は複数を有するサーバであってもよい。
【0039】
少なくとも一実施例では、グループ化済みコンピューティング・リソース714は、1つ若しくは複数のラック(図示せず)内に収容されたノードC.R.の別々のグループ、又は様々なグラフィカル・ロケーション(同じく図示せず)においてデータ・センタに収容された多数のラックを含んでもよい。グループ化済みコンピューティング・リソース714内のノードC.R.の別々のグループは、1つ若しくは複数のワークロードをサポートするように構成又は配分されてもよいグループ化済みのコンピュート・リソース、ネットワーク・リソース、メモリ・リソース、又はストレージ・リソースを含んでもよい。少なくとも一実施例では、CPU又はプロセッサを含むいくつかのノードC.R.は、1つ又は複数のラック内でグループ化されて、1つ又は複数のワークロードをサポートするためのコンピュート・リソースが提供されてもよい。少なくとも一実施例では、1つ又は複数のラックはまた、任意の数の電源モジュール、冷却モジュール、及びネットワーク・スイッチを任意の組合せで含んでもよい。
【0040】
少なくとも一実施例では、リソース・オーケストレータ712は、1つ又は複数のノードC.R.716(1)~716(N)及び/若しくはグループ化済みコンピューティング・リソース714を構成してもよく、又は他のやり方で制御してもよい。少なくとも一実施例では、リソース・オーケストレータ712は、データ・センタ700用のソフトウェア設計インフラストラクチャ(「SDI」:software design infrastructure)管理エンティティを含んでもよい。少なくとも一実施例では、リソース・オーケストレータは、ハードウェア、ソフトウェア、又はこれらの何らかの組合せを含んでもよい。
【0041】
図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と連携して、これらのマッピング又は配分されたコンピューティング・リソースを管理してもよい。
【0042】
少なくとも一実施例では、ソフトウェア層730に含まれるソフトウェア732は、ノードC.R.716(1)~716(N)、グループ化済みコンピューティング・リソース714、及び/又はフレームワーク層720の分配ファイル・システム728のうちの少なくとも一部分によって使用されるソフトウェアを含んでもよい。1つ又は複数のタイプのソフトウェアは、インターネット・ウェブ・ページ検索ソフトウェア、電子メール・ウイルス・スキャン・ソフトウェア、データベース・ソフトウェア、及びストリーミング・ビデオ・コンテンツ・ソフトウェアを含んでもよいが、これらに限定されない。
【0043】
少なくとも一実施例では、アプリケーション層740に含まれるアプリケーション742は、ノードC.R.716(1)~716(N)、グループ化済みコンピューティング・リソース714、及び/又はフレームワーク層720の分配ファイル・システム728のうちの少なくとも一部分によって使用される1つ若しくは複数のタイプのアプリケーションを含んでもよい。1つ若しくは複数のタイプのアプリケーションは、任意の数のゲノム学アプリケーション、認識コンピュート、並びに訓練若しくは推論のソフトウェア、機械学習フレームワーク・ソフトウェア(たとえば、PyTorch、TensorFlow、Caffeなど)を含む機械学習アプリケーション、又は1つ若しくは複数の実施例と併せて使用される他の機械学習アプリケーションを含んでもよいが、これらに限定されない。
【0044】
少なくとも一実施例では、構成マネージャ724、リソース・マネージャ726、及びリソース・オーケストレータ712のうちのいずれかは、任意の技術的に実行可能なやり方で取得された任意の量及びタイプのデータに基づき、任意の数及びタイプの自己修正措置を実装してもよい。少なくとも一実施例では、自己修正措置は、データ・センタ700のデータ・センタ演算子が、不良の恐れのある構成を決定しないようにし、十分に利用されていない且つ/又は性能の低いデータ・センタの部分をなくせるようにしてもよい。
【0045】
少なくとも一実施例では、データ・センタ700は、1つ若しくは複数の機械学習モデルを訓練し、又は本明細書に記載の1つ若しくは複数の実施例による1つ若しくは複数の機械学習モデルを使用して情報を予測若しくは推論するためのツール、サービス、ソフトウェア、又は他のリソースを含んでもよい。たとえば、少なくとも一実施例では、機械学習モデルは、データ・センタ700に関して上述したソフトウェア及びコンピューティング・リソースを使用して、ニューラル・ネットワーク・アーキテクチャに従って重みパラメータを計算することによって、訓練されてもよい。少なくとも一実施例では、1つ又は複数のニューラル・ネットワークに対応する訓練済み機械学習モデルは、本明細書に記載の1つ又は複数の技法によって計算された重みパラメータを使用することにより、データ・センタ700に関して上述したリソースを使用して、情報を推論又は予測するために使用されてもよい。
【0046】
少なくとも一実施例では、データ・センタは、上述したリソースを使用して訓練及び/又は推論を実行するために、CPU、特定用途向け集積回路(ASIC)、GPU、FPGA、又は他のハードウェアを使用してもよい。さらに、上述した1つ又は複数のソフトウェア及び/又はハードウェアのリソースは、画像認識、音声認識、又は他の人工知能サービスなどの情報の訓練又は推論の実行を、ユーザが行えるようにするためのサービスとして構成されてもよい。
【0047】
こうした構成要素を使用して、対話環境においてコマンドを実行することができる。
【0048】
コンピュータ・システム
図8は、例示的なコンピュータ・システムを示すブロック図であり、このコンピュータ・システムは、少なくとも一実施例による、命令を実行するための実行ユニットを含んでもよいプロセッサとともに形成された、相互接続されたデバイス及び構成要素、システム・オン・チップ(SoC)、又はこれら800の何らかの組合せを有するシステムであってもよい。少なくとも一実施例では、コンピュータ・システム800は、本明細書に記載の実施例などにおいて本開示に従ってデータを処理するためのアルゴリズムを実行する論理を含む実行ユニットを使用するための、プロセッサ802などの構成要素を、限定することなく含んでもよい。少なくとも一実施例では、コンピュータ・システム800は、カリフォルニア州サンタクララのインテルコーポレーションから入手可能なPENTIUM(登録商標)プロセッサ・ファミリー、XeonTM、Itanium(登録商標)、XScaleTM及び/又はStrongARMTM、Intel(登録商標)Core(商標)、又はIntel(登録商標)Nervana(商標)マイクロプロセッサなどのプロセッサを含んでもよいが、(他のマイクロプロセッサ、エンジニアリング・ワークステーション、セット・トップ・ボックスなどを有するPCを含め)他のシステムが使用されてもよい。少なくとも一実施例では、コンピュータ・システム800は、ワシントン州、レドモンドのマイクロソフトコーポレーションから入手可能なWINDOWS(登録商標)のオペレーティング・システムのあるバージョンを実行してもよいが、他のオペレーティング・システム(たとえば、UNIX(登録商標)及びLinux(登録商標))、組み込みソフトウェア、及び/又はグラフィカル・ユーザ・インターフェースが使用されてもよい。
【0049】
実施例は、携帯型デバイス及び組み込みアプリケーションなど、他のデバイスで使用されてもよい。携帯型デバイスのいくつかの例は、セルラー・フォン、インターネット・プロトコル・デバイス、デジタル・カメラ、パーソナル・デジタル・アシスタント(「PDA」:personal digital assistants)、及び携帯型PCを含む。少なくとも一実施例では、組み込みアプリケーションは、マイクロコントローラ、デジタル信号プロセッサ(「DSP」:digital signal processor)、システム・オン・チップ、ネットワーク・コンピュータ(「NetPC」:network computers)、エッジ・コンピューティング・デバイス、セット・トップ・ボックス、ネットワーク・ハブ、広域ネットワーク(「WAN」:wide area network)スイッチ、又は少なくとも一実施例による1つ又は複数の命令を実行することができる任意の他のシステムを含んでもよい。
【0050】
本明細書に記載のシステム及び方法の実施例は、様々な目的のために、実例として、限定されないが、機械制御、機械移動、機械駆動、合成データ生成、デジタル・ツイニング、モデル訓練、知覚、拡張現実、仮想現実、複合現実、ロボット工学、セキュリティ及び監視、自律型又は半自律型マシン・アプリケーション、深層学習、環境シミュレーション、データ・センタ処理、会話型AI、光輸送シミュレーション(たとえば、光線追跡、経路追跡など)、3Dアセット用の共同コンテンツ作成、クラウド・コンピューティング、並びに/又は任意の他の好適なアプリケーションのために使用されてもよい。
【0051】
開示された実施例は、自動車システム(たとえば、自律型若しくは半自律型マシン用のヒューマン・マシン・インターフェース)、ロボットを使用して実装されたシステム、空中システム、内側システム(medial system)、ボーティング・システム、スマート・エリア監視システム、深層学習動作を実行するためのシステム、シミュレーション及びデジタル・ツイン動作を実行するためのシステム、エッジデバイスを使用して実装されたシステム、1つ若しくは複数の仮想マシン(VM)を組み込んだシステム、合成データ生成動作を実行するためのシステム、少なくとも部分的にデータ・センタ内に実装されたシステム、会話型AI動作を実行するためのシステム、光輸送シミュレーションを実行するためのシステム、3Dアセット用の共同コンテンツ作成を実行するためのシステム、少なくとも部分的にクラウド・コンピューティング・リソースを使用して実装されたシステム、並びに/又は他のタイプのシステムなど、多種多様なシステムに組み込まれるか又は統合されてもよい。
【0052】
少なくとも一実施例では、コンピュータ・システム800は、限定することなくプロセッサ802を含んでもよく、このプロセッサ802は限定することなく、本明細書に記載の技法による機械学習モデルの訓練及び/又は推論を実行するための1つ又は複数の実行ユニット808を含んでもよい。少なくとも一実施例では、コンピュータ・システム800は、シングル・プロセッサのデスクトップ又はサーバ・システムであるが、別の実施例では、コンピュータ・システム800はマルチプロセッサ・システムであってもよい。少なくとも一実施例では、プロセッサ802は、限定することなく、複合命令セット・コンピュータ(「CISC」:complex instruction set computer)マイクロプロセッサ、縮小命令セット・コンピューティング(「RISC」)マイクロプロセッサ、超長命令語(「VLIW」)マイクロプロセッサ、命令セットの組合せを実装するプロセッサ、又は任意の他のプロセッサ・デバイス、たとえばデジタル信号プロセッサなどを含んでもよい。少なくとも一実施例では、プロセッサ802は、プロセッサ・バス810に結合されてもよく、このプロセッサ・バスは、プロセッサ802とコンピュータ・システム800内の他の構成要素との間でデータ信号を送信してもよい。
【0053】
少なくとも一実施例では、プロセッサ802は、限定することなく、レベル1(「L1」)の内部キャッシュ・メモリ(「キャッシュ」)804を含んでもよい。少なくとも一実施例では、プロセッサ802は、単一の内部キャッシュ又は複数レベルの内部キャッシュを有してもよい。少なくとも一実施例では、キャッシュ・メモリは、プロセッサ802の外部にあってもよい。他の実施例は、特定の実装形態及び必要性に応じて、内部キャッシュと外部キャッシュの両方の組合せも含んでよい。少なくとも一実施例では、レジスタ・ファイル806は、整数レジスタ、浮動小数点レジスタ、状態レジスタ、及び命令ポインタ・レジスタを限定することなく含む様々レジスタに、異なるタイプのデータを記憶してもよい。
【0054】
少なくとも一実施例では、整数及び浮動小数点の演算を実行するための論理を限定することなく含む実行ユニット808も、プロセッサ802にある。少なくとも一実施例では、プロセッサ802は、ある一定のマクロ命令のためのマイクロコードを記憶するマイクロコード(「uコード」)読取り専用メモリ(「ROM」:read only memory)も含んでよい。少なくとも一実施例では、実行ユニット808は、パック命令セット809に対処する論理を含んでもよい。少なくとも一実施例では、パック命令セット809を、命令を実行する関連回路とともに汎用プロセッサの命令セットに含めることにより、多くのマルチメディア・アプリケーションによって使用される演算を、汎用プロセッサ802のパック・データを使用して実行することができる。1つ又は複数の実施例では、プロセッサのデータ・バスの全幅を使用してパック・データの演算を実行することによって、多くのマルチメディア・アプリケーションを加速し、より効率的に実行することができ、これにより、1度に1つのデータ要素に対して1つ又は複数の演算を実行するためにプロセッサのデータ・バス間でより小さい単位のデータを転送する必要をなくすことができる。
【0055】
少なくとも一実施例では、実行ユニット808はまた、マイクロコントローラ、組み込みプロセッサ、グラフィックス・デバイス、DSP、及び他のタイプの論理回路において使用されてもよい。少なくとも一実施例では、コンピュータ・システム800は、限定することなくメモリ820を含んでもよい。少なくとも一実施例では、メモリ820は、ダイナミック・ランダム・アクセス・メモリ(「DRAM」)デバイス、スタティック・ランダム・アクセス・メモリ(「SRAM」)デバイス、フラッシュ・メモリ・デバイス、又は他のメモリ・デバイスとして実装されてもよい。少なくとも一実施例では、メモリ820は、プロセッサ802によって実行されてもよいデータ信号によって表される命令819、及び/又はデータ821を記憶してもよい。
【0056】
少なくとも一実施例では、システム論理チップが、プロセッサ・バス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に結合されてもよい。
【0057】
少なくとも一実施例では、コンピュータ・システム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デバイス、フラッシュ・メモリ・デバイス、又は他の大容量ストレージ・デバイスを備えてもよい。
【0058】
少なくとも一実施例では、
図8は、相互接続されたハードウェア・デバイス又は「チップ」を含むシステムを示すが、一方他の実施例では、
図8は例示的なシステム・オン・チップ(「SoC」)を示してもよい。少なくとも一実施例では、デバイスは、プロプライエタリ相互接続、標準相互接続(たとえば、PCIe)、又はこれらの何らかの組合せで相互接続されてもよい。少なくとも一実施例では、コンピュータ・システム800の1つ又は複数の構成要素は、コンピュート・エクスプレス・リンク(CXL:compute express link)相互接続を使用して相互接続されてもよい。
【0059】
こうした構成要素を使用して、対話環境においてコマンドを実行することができる。
【0060】
図9は、少なくとも一実施例による、プロセッサ910を利用するための電子デバイス900を示すブロック図である。少なくとも一実施例では、電子デバイス900は、たとえば限定することなく、ノートブック、タワー・サーバ、ラック・サーバ、ブレード・サーバ、ラップトップ、デスクトップ、タブレット、モバイル・デバイス、電話、組み込みコンピュータ、又は任意の他の好適な電子デバイスであってもよい。
【0061】
少なくとも一実施例では、システム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)相互接続を使用して相互接続されてもよい。
【0062】
少なくとも一実施例では、
図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を含んでもよい。これらの構成要素は、それぞれ任意の好適なやり方で実装されてもよい。
【0063】
少なくとも一実施例では、上述した構成要素を介して、他の構成要素がプロセッサ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)に実装されてもよい。
【0064】
こうした構成要素を使用して、対話環境においてコマンドを実行することができる。
【0065】
図10は、少なくとも一実施例による処理システムのブロック図である。少なくとも一実施例では、システム1000は、1つ又は複数のプロセッサ1002、及び1つ又は複数のグラフィックス・プロセッサ1008を含み、単一プロセッサのデスクトップ・システム、マルチプロセッサのワークステーション・システム、又は多数の一括で若しくは別々に管理されるプロセッサ1002若しくはプロセッサ・コア1007を有するサーバ・システム若しくはデータ・センタであってもよい。少なくとも一実施例では、システム1000は、モバイル・デバイス、携帯型デバイス、又は組み込みデバイスで使用するためのシステム・オン・チップ(SoC)集積回路内に組み込まれた処理プラットフォームである。
【0066】
少なくとも一実施例では、システム1000は、サーバ・ベースのゲーミング・プラットフォーム、クラウド・コンピューティング・ホスト・プラットフォーム、仮想化コンピューティング・プラットフォーム、ゲーム及びメディアのコンソールを含むゲーム・コンソール、携帯型ゲーム・コンソール、ハンドヘルド・ゲーム・コンソール、若しくはオンライン・ゲーム・コンソールを含んでもよく、又はそれらに組み込まれてもよい。少なくとも一実施例では、システム1000は、モバイル・フォン、スマート・フォン、タブレット・コンピューティング・デバイス、又はモバイル・インターネット・デバイスである。少なくとも一実施例では、処理システム1000はまた、スマート・ウォッチ・ウェアラブル・デバイス、スマート・アイウェア・デバイス、拡張現実デバイス、エッジデバイス、モノのインターネット(「IoT:Internet of Things」)デバイス、若しくは仮想現実デバイスなどのウェアラブル・デバイスを含んでもよく、それらに結合されてもよく、又はそれらのなかに一体化されてもよい。少なくとも一実施例では、処理システム1000は、1つ又は複数のプロセッサ1002と、1つ又は複数のグラフィックス・プロセッサ1008によって生成されるグラフィカル・インターフェースとを有するテレビ又はセット・トップ・ボックス・デバイスである。
【0067】
少なくとも一実施例では、1つ又は複数のプロセッサ1002はそれぞれ、実行されたときにシステム及びユーザ・ソフトウェアのための動作を実行する命令を処理するための1つ又は複数のプロセッサ・コア1007を含む。少なくとも一実施例では、1つ又は複数のプロセッサ・コア1007のそれぞれは、特定の命令セット1009を処理するように構成される。少なくとも一実施例では、命令セット1009は、複合命令セット・コンピューティング(CISC)、縮小命令セット・コンピューティング(RISC)、又は超長命令語(VLIW)を介したコンピューティングを容易にしてもよい。少なくとも一実施例では、プロセッサ・コア1007はそれぞれ、異なる命令セット1009を処理してもよく、この命令セットは、他の命令セットのエミュレーションを容易にする命令を含んでもよい。少なくとも一実施例では、プロセッサ・コア1007はまた、デジタル信号プロセッサ(DSP)などの他の処理デバイスを含んでもよい。
【0068】
少なくとも一実施例では、プロセッサ1002はキャッシュ・メモリ1004を含む。少なくとも一実施例では、プロセッサ1002は、単一の内部キャッシュ又は複数レベルの内部キャッシュを有してもよい。少なくとも一実施例では、キャッシュ・メモリは、プロセッサ1002の様々な構成要素間で共有される。少なくとも一実施例では、プロセッサ1002はまた、外部キャッシュ(たとえば、レベル3(L3)キャッシュ又はラスト・レベル・キャッシュ(LLC))(図示せず)を使用し、このキャッシュは、知られているキャッシュ・コヒーレンス技法を使用して、プロセッサ・コア1007間で共有されてもよい。少なくとも一実施例では、さらにレジスタ・ファイル1006がプロセッサ1002に含まれ、このレジスタ・ファイルは、異なるタイプのデータを記憶するための異なるタイプのレジスタ(たとえば、整数レジスタ、浮動小数点レジスタ、状態レジスタ、及び命令ポインタ・レジスタ)を含んでもよい。少なくとも一実施例では、レジスタ・ファイル1006は、汎用レジスタ又は他のレジスタを含んでもよい。
【0069】
少なくとも一実施例では、1つ又は複数のプロセッサ1002は、1つ又は複数のインターフェース・バス1010に結合されて、アドレス、データ、又は制御信号などの通信信号を、プロセッサ1002とシステム1000内の他の構成要素との間で送信する。少なくとも一実施例では、インターフェース・バス1010は、一実施例では、ダイレクト・メディア・インターフェース(DMI)バスのバージョンなどのプロセッサ・バスとすることができる。少なくとも一実施例では、インターフェース1010は、DMIバスに限定されず、1つ又は複数のペリフェラル・コンポーネント・インターコネクト・バス(たとえば、PCI、PCIエクスプレス)、メモリ・バス、又は他のタイプのインターフェース・バスを含んでもよい。少なくとも一実施例では、プロセッサ1002は、統合メモリ・コントローラ1016、及びプラットフォーム・コントローラ・ハブ1030を含む。少なくとも一実施例では、メモリ・コントローラ1016は、メモリ・デバイスとシステム1000の他の構成要素との間の通信を容易にし、一方でプラットフォーム・コントローラ・ハブ(PCH)1030は、ローカルI/Oバスを介してI/Oデバイスへの接続を提供する。
【0070】
少なくとも一実施例では、メモリ・デバイス1020は、ダイナミック・ランダム・アクセス・メモリ(DRAM)デバイス、スタティック・ランダム・アクセス・メモリ(SRAM)デバイス、フラッシュ・メモリ・デバイス、相変化メモリ・デバイス、又はプロセス・メモリとしての役割を果たすのに好適な性能を有する何らかの他のメモリ・デバイスとすることができる。少なくとも一実施例では、メモリ・デバイス1020は、システム1000のためのシステム・メモリとして動作して、1つ又は複数のプロセッサ1002がアプリケーション若しくはプロセスを実行するときに使用するためのデータ1022及び命令1021を記憶することができる。少なくとも一実施例では、メモリ・コントローラ1016はまた、任意選択の外部グラフィックス・プロセッサ1012と結合しており、このグラフィックス・プロセッサは、プロセッサ1002内の1つ又は複数のグラフィックス・プロセッサ1008と通信して、グラフィックス及びメディアの動作を実行してもよい。少なくとも一実施例では、ディスプレイ・デバイス1011は、プロセッサ1002に接続することができる。少なくとも一実施例では、ディスプレイ・デバイス1011は、モバイル電子デバイス又はラップトップ・デバイスのような内部ディスプレイ・デバイス、又はディスプレイ・インターフェース(たとえば、ディスプレイ・ポートなど)を介して取り付けられる外部ディスプレイ・デバイスのうちの1つ又は複数を含むことができる。少なくとも一実施例では、ディスプレイ・デバイス1011は、仮想現実(VR)アプリケーション又は拡張現実(AR)アプリケーションで使用するための立体ディスプレイ・デバイスなどの頭部装着型ディスプレイ(HMD)を含むことができる。
【0071】
少なくとも一実施例では、プラットフォーム・コントローラ・ハブ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の接続入力デバイスにも接続することができる。
【0072】
少なくとも一実施例では、メモリ・コントローラ1016及びプラットフォーム・コントローラ・ハブ1030のインスタンスは、外部グラフィックス・プロセッサ1012などの個別の外部グラフィックス・プロセッサに一体化されてもよい。少なくとも一実施例では、プラットフォーム・コントローラ・ハブ1030及び/又はメモリ・コントローラ1016は、1つ又は複数のプロセッサ1002の外部にあってもよい。たとえば、少なくとも一実施例では、システム1000は、外部のメモリ・コントローラ1016及びプラットフォーム・コントローラ・ハブ1030を含むことができ、これらは、プロセッサ1002と通信するシステム・チップセット内のメモリ・コントローラ・ハブ及び周辺装置コントローラ・ハブとして構成されてもよい。
【0073】
こうした構成要素を使用して、対話環境においてコマンドを実行することができる。
【0074】
図11は、少なくとも一実施例による、1つ又は複数のプロセッサ・コア1102A~1102N、統合メモリ・コントローラ1114、及び統合グラフィックス・プロセッサ1108を有するプロセッサ1100のブロック図である。少なくとも一実施例では、プロセッサ1100は、破線の四角によって表される追加コア1102Nを含むそれ以下の数の追加コアを含むことができる。少なくとも一実施例では、プロセッサ・コア1102A~1102Nのそれぞれは、1つ又は複数の内部キャッシュ・ユニット1104A~1104Nを含む。少なくとも一実施例では、各プロセッサ・コアはまた、1つ又は複数の共有キャッシュ・ユニット1106にアクセスできる。
【0075】
少なくとも一実施例では、内部キャッシュ・ユニット1104A~1104N、及び共有キャッシュ・ユニット1106は、プロセッサ1100内のキャッシュ・メモリ階層を表す。少なくとも一実施例では、キャッシュ・メモリ・ユニット1104A~1104Nは、各プロセッサ・コア内の命令及びデータのキャッシュの少なくとも1つのレベル、並びにレベル2(L2)、レベル3(L3)、レベル4(L4)などの共有中間レベル・キャッシュの1つ又は複数のレベル、又はキャッシュの他のレベルを含んでもよく、ここで外部メモリの前の最高レベルのキャッシュは、LLCとして分類される。少なくとも一実施例では、キャッシュ・コヒーレンス論理は、様々なキャッシュ・ユニット1106及び1104A~1104N間でコヒーレンスを維持する。
【0076】
少なくとも一実施例では、プロセッサ1100はまた、1つ又は複数のバス・コントローラ・ユニット1116とシステム・エージェント・コア1110のセットを含んでもよい。少なくとも一実施例では、1つ又は複数のバス・コントローラ・ユニット1116は、1つ又は複数のPCI若しくはPCIエクスプレス・バスなどのペリフェラル・バスのセットを管理する。少なくとも一実施例では、システム・エージェント・コア1110は、様々なプロセッサ構成要素のための管理機能を提供する。少なくとも一実施例では、システム・エージェント・コア1110は、様々な外部メモリ・デバイス(図示せず)へのアクセスを管理するための1つ又は複数の統合メモリ・コントローラ1114を含む。
【0077】
少なくとも一実施例では、プロセッサ・コア1102A~1102Nの1つ又は複数は、同時マルチスレッディングのサポートを含む。少なくとも一実施例では、システム・エージェント・コア1110は、マルチスレッドの処理中にコア1102A~1102Nを調整し動作させるための構成要素を含む。少なくとも一実施例では、システム・エージェント・コア1110はさらに、電力制御ユニット(PCU)を含んでもよく、このユニットは、プロセッサ・コア1102A~1102N及びグラフィックス・プロセッサ1108の1つ又は複数の電力状態を調整するための論理及び構成要素を含む。
【0078】
少なくとも一実施例では、プロセッサ1100はさらに、グラフィックス処理動作を実行するためのグラフィックス・プロセッサ1108を含む。少なくとも一実施例では、グラフィックス・プロセッサ1108は、共有キャッシュ・ユニット1106と、1つ又は複数の統合メモリ・コントローラ1114を含むシステム・エージェント・コア1110とに結合する。少なくとも一実施例では、システム・エージェント・コア1110はまた、1つ又は複数の結合されたディスプレイに対してグラフィックス・プロセッサの出力を行わせるためのディスプレイ・コントローラ1111を含む。少なくとも一実施例では、ディスプレイ・コントローラ1111はまた、少なくとも1つの相互接続を介してグラフィックス・プロセッサ1108に結合された別個のモジュールであってもよく、又はグラフィックス・プロセッサ1108内に一体化されていてもよい。
【0079】
少なくとも一実施例では、プロセッサ1100の内部構成要素を結合するために、リング・ベースの相互接続ユニット1112が使用される。少なくとも一実施例では、ポイントツーポイント相互接続、スイッチ相互接続、又は他の技法などの代替的な相互接続ユニットが使用されてもよい。少なくとも一実施例では、グラフィックス・プロセッサ1108は、I/Oリンク1113を介してリング相互接続1112と結合する。
【0080】
少なくとも一実施例では、I/Oリンク1113は、様々なプロセッサ構成要素と、eDRAMモジュールなどの高性能組み込みメモリ・モジュール1118との間の通信を容易にするオン・パッケージI/O相互接続を含む多様なI/O相互接続のうちの少なくとも1つを表す。少なくとも一実施例では、プロセッサ・コア1102A~1102Nのそれぞれ及びグラフィックス・プロセッサ1108は、共有ラスト・レベル・キャッシュとして組み込みメモリ・モジュール1118を使用する。
【0081】
少なくとも一実施例では、プロセッサ・コア1102A~1102Nは、共通の命令セット・アーキテクチャを実行する同種のコアである。少なくとも一実施例では、プロセッサ・コア1102A~1102Nは、命令セット・アーキテクチャ(ISA)の観点から見れば異種であり、ここでプロセッサ・コア1102A~1102Nのうちの1つ又は複数は、共通の命令セットを実行するが、プロセッサ・コア1102A~1102Nのうちの1つ又は複数の他のコアは、共通の命令セットのサブセット、又は異なる命令セットを実行する。少なくとも一実施例では、プロセッサ・コア1102A~1102Nは、マイクロ・アーキテクチャの観点から見れば異種であり、ここで電力消費量が相対的に高い1つ又は複数のコアは、電力消費量がより低い1つ又は複数のコアと結合する。少なくとも一実施例では、プロセッサ1100は、1つ又は複数のチップ上に、又はSoC集積回路として実装することができる。
【0082】
こうした構成要素を使用して、対話環境においてコマンドを実行することができる。
【0083】
他の変形形態は、本開示の範囲内にある。したがって、開示した技法は、様々な修正及び代替的な構成が可能であるが、それらのうち一定の例示的な実施例が図面に示され、上で詳細に説明されてきた。しかし、特定の1つ又は複数の開示された形に本開示を限定する意図はなく、その反対に、特許請求の範囲に定義される開示の趣旨及び範囲に入るすべての修正形態、代替的な構成、及び等価物を網羅することを意図している。
【0084】
開示される実施例を説明する文脈において(特に、以下の特許請求の範囲の文脈において)「a」及び「an」及び「the」という用語、並びに同様の指示語を使用することは、本明細書に別段の記載のない限り、又は文脈によって明らかに否定されない限り、単数と複数の両方を網羅すると解釈されるべきであり、用語の定義であると解釈されるべきではない。「備える(comprising)」、「有する(having)」、「含む(including)」、「収容する(containing)」という用語は、別段の記載のない限り、オープンエンドの用語(「含むが、これに限定されない」を意味する)と解釈される。「接続される」という用語は、修飾されずに物理的接続を指している場合には、何か介在するものがあったとしても、部分的に又は完全に中に収容される、取り付けられる、又は互いに接合されるものとして解釈される。本明細書において値の範囲を詳述することは、本明細書において別段の記載がない限り、またそれぞれ別々の値が、本明細書に個々に詳述されているかのように明細書に組み込まれていない限り、範囲内に含まれるそれぞれ別々の値を個々に参照する簡潔な方法として機能することを単に意図しているにすぎない。「セット」(たとえば、「アイテムのセット」)又は「サブセット」という用語の使用は、文脈によって別段の記載がない、又は否定されていない限り、1つ又は複数の部材を備える空ではない集合として解釈されるべきである。さらに、文脈によって別段の記載がない、又は否定されていない限り、対応するセットの「サブセット」という用語は、対応するセットの厳密なサブセットを必ずしも指すのではなく、サブセットと対応するセットは等しくてもよい。
【0085】
「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つの項目であるが、明示的に、又は文脈によって示されている場合にはそれより多くてもよい。さらに、別段の記載のない、又は文脈からそうでないことが明らかでない限り、「~に基づく」という言い回しは、「少なくとも部分的に~に基づく」を意味し、「~だけに基づく」を意味しない。
【0086】
本明細書に記載のプロセスの動作は、本明細書に別段の記載のない、又は文脈によって明確に否定されない限り、任意の好適な順序で実行することができる。少なくとも一実施例では、本明細書に記載のプロセス(又はその変形及び/又は組合せ)などのプロセスは、実行可能命令で構成された1つ又は複数のコンピュータ・システムの制御下で実行され、1つ又は複数のプロセッサ上で、ハードウェアによって、又はそれらの組合せによって集合的に実行されるコード(たとえば、実行可能な命令、1つ若しくは複数のコンピュータ・プログラム、又は1つ若しくは複数のアプリケーション)として実装される。少なくとも一実施例では、コードは、たとえば1つ又は複数のプロセッサによって実行可能な複数の命令を備えるコンピュータ・プログラムの形で、コンピュータ読取り可能ストレージ媒体に記憶される。少なくとも一実施例では、コンピュータ読取り可能ストレージ媒体は、一時的な信号(たとえば、伝播する一時的な電気若しくは電磁送信)を除外するが、一時的な信号のトランシーバ内の非一時的なデータ・ストレージ回路(たとえば、バッファ、キャッシュ、及びキュー)を含む非一時的なコンピュータ読取り可能ストレージ媒体である。少なくとも一実施例では、コード(たとえば、実行可能コード又はソース・コード)は、1つ又は複数の非一時的なコンピュータ読取り可能ストレージ媒体のセットに記憶され、このストレージ媒体には、コンピュータ・システムの1つ又は複数のプロセッサによって実行されたときに(すなわち、実行された結果として)、コンピュータ・システムに本明細書に記載の動作を実行させる実行可能命令が記憶されている(又は、実行可能命令を記憶するための他のメモリを有する)。非一時的なコンピュータ読取り可能ストレージ媒体のセットは、少なくとも一実施例では、複数の非一時的なコンピュータ読取り可能ストレージ媒体を備え、複数の非一時的なコンピュータ読取り可能ストレージ媒体の個々の非一時的なストレージ媒体のうちの1つ又は複数には、すべてのコードがないが、複数の非一時的なコンピュータ読取り可能ストレージ媒体は、集合的にすべてのコードを記憶している。少なくとも一実施例では、実行可能命令は、異なる命令が異なるプロセッサによって実行されるように実行され、たとえば、非一時的なコンピュータ読取り可能ストレージ媒体は命令を記憶し、メインの中央処理装置(「CPU」)は一部の命令を実行し、グラフィックス・プロセッシング・ユニット(「GPU」)及び/又はデータ・プロセッシング・ユニット(「DPU」)は他の命令を実行する。少なくとも一実施例では、コンピュータ・システムの異なる構成要素は、別々のプロセッサを有し、異なるプロセッサは、命令の異なるサブセットを実行する。
【0087】
したがって、少なくとも一実施例では、コンピュータ・システムは、本明細書に記載のプロセスの動作を単独で又は集合的に実行する1つ又は複数のサービスを実装するように構成され、こうしたコンピュータ・システムは、動作の実行を可能にする適用可能なハードウェア及び/又はソフトウェアで構成される。さらに、本開示の少なくとも一実施例を実装するコンピュータ・システムは、単一のデバイスであり、別の実施例では、異なるやり方で動作する複数のデバイスを備える分散型のコンピュータ・システムであり、それにより単一のデバイスがすべての動作を実行しないように分散型のコンピュータ・システムが本明細書に記載の動作を実行する。
【0088】
本明細書に提供されるあらゆる例、又は例示的な言葉(たとえば、「など」)の使用は、本開示の実施例をより明らかにすることだけを意図しており、別段の主張のない限り、本開示の範囲に制限を加えるものではない。本明細書のいかなる言葉も、特許請求されていない任意の要素を、本開示の実践に不可欠なものとして示すと解釈されるべきではない。
【0089】
本明細書に引用される出版物、特許出願、及び特許を含むすべての参考文献は、各参考文献が参照により組み込まれることがあたかも個別に明確に示され、その全体が本明細書に記載されたかのように、それと同程度まで参照により本明細書に組み込まれる。
【0090】
明細書及び特許請求の範囲において、「結合される」及び「接続される」という用語が、その派生語とともに使用されてもよい。これらの用語は、互いに同義語として意図されていない場合があることを理解すべきである。むしろ、特定の例では、「接続される」又は「結合される」は、2つ以上の要素が物理的又は電気的に互いに直接又は間接的に接触していることを示すために使用されてもよい。また「結合される」は、2つ以上の要素が直接互いに接触していないが、なお互いに連動又は相互作用することを意味してもよい。
【0091】
別段の具体的な記載のない限り、明細書全体を通して「処理する」、「コンピューティング」、「計算する」、又は「判定する」などの用語は、コンピューティング・システムのレジスタ及び/又はメモリ内の、電子的などの物理的な量として表されるデータをコンピューティング・システムのメモリ、レジスタ、又は他のそのような情報ストレージ・デバイス、送信デバイス、若しくはディスプレイ・デバイス内の物理的な量として同様に表される他のデータになるよう操作及び/又は変換するコンピュータ若しくはコンピューティング・システム、又は同様の電子コンピューティング・デバイスの行為及び/又はプロセスを指す。
【0092】
同様に、「プロセッサ」という用語は、レジスタ及び/又はメモリからの電子データを処理し、その電子データを、レジスタ及び/又はメモリに記憶することができる他の電子データに変換する任意のデバイス、又はデバイスの一部分を指してもよい。非限定的な例として、「プロセッサ」は、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つ又は複数の方法をシステムが具体化することができ、方法がシステムと考えられてもよい場合に限り、本明細書において交換可能に使用される。
【0093】
本明細書では、アナログ・データ又はデジタル・データを得る、取得する、受信する、又はそれらをサブシステム、コンピュータ・システム、又はコンピュータ実装機械に入力することに言及することができる。アナログ・データ又はデジタル・データを得る、取得する、受信する、又は入力することは、関数呼出し、又はアプリケーション・プログラミング・インターフェースへの呼出しのパラメータとしてデータを受信するなど、様々なやり方で実現することができる。いくつかの実装形態では、アナログ・データ又はデジタル・データを得る、取得する、受信する、又は入力するプロセスは、直列又は並列のインターフェースを介してデータを転送することによって実現することができる。別の実装形態では、アナログ・データ又はデジタル・データを得る、取得する、受信する、又は入力するプロセスは、提供するエンティティから取得するエンティティにコンピュータ・ネットワークを介してデータを転送することによって実現することができる。また、アナログ・データ又はデジタル・データを提供する、出力する、送信する、送る、又は提示することにも言及することができる。様々な例では、アナログ・データ又はデジタル・データを提供する、出力する、送信する、送る、又は提示するプロセスは、関数呼出しの入力又は出力のパラメータ、アプリケーション・プログラミング・インターフェース若しくはプロセス間通信機構のパラメータとしてデータを転送することによって実現することができる。
【0094】
上の議論は、説明した技法の例示的な実装形態について述べているが、記載した機能を実装するために他のアーキテクチャが使用されてもよく、この他のアーキテクチャは、本開示の範囲内にあることが意図される。さらに、議論を目的として、役割の具体的な分配が定義されているが、様々な機能及び役割は、状況に応じて異なるやり方で分配及び分割されてもよい。
【0095】
さらに、主題は、構造的特徴及び/又は方法論的動作に特有の言語で説明されてきたが、添付の特許請求の範囲で特許請求される主題は、説明した特有の特徴又は動作に必ずしも限定されないことが理解されるべきである。むしろ、特有の特徴及び動作は、特許請求の範囲を実装する例示的な形として開示されている。
【外国語明細書】