IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エヌビディア コーポレーションの特許一覧

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