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

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

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

特開2024-27070会話型AIシステム及びアプリケーションにおけるタスク指向型対話のための正準形式の生成
<>
  • 特開-会話型AIシステム及びアプリケーションにおけるタスク指向型対話のための正準形式の生成 図1
  • 特開-会話型AIシステム及びアプリケーションにおけるタスク指向型対話のための正準形式の生成 図2A
  • 特開-会話型AIシステム及びアプリケーションにおけるタスク指向型対話のための正準形式の生成 図2B
  • 特開-会話型AIシステム及びアプリケーションにおけるタスク指向型対話のための正準形式の生成 図3
  • 特開-会話型AIシステム及びアプリケーションにおけるタスク指向型対話のための正準形式の生成 図4
  • 特開-会話型AIシステム及びアプリケーションにおけるタスク指向型対話のための正準形式の生成 図5
  • 特開-会話型AIシステム及びアプリケーションにおけるタスク指向型対話のための正準形式の生成 図6
  • 特開-会話型AIシステム及びアプリケーションにおけるタスク指向型対話のための正準形式の生成 図7
  • 特開-会話型AIシステム及びアプリケーションにおけるタスク指向型対話のための正準形式の生成 図8
  • 特開-会話型AIシステム及びアプリケーションにおけるタスク指向型対話のための正準形式の生成 図9
  • 特開-会話型AIシステム及びアプリケーションにおけるタスク指向型対話のための正準形式の生成 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024027070
(43)【公開日】2024-02-29
(54)【発明の名称】会話型AIシステム及びアプリケーションにおけるタスク指向型対話のための正準形式の生成
(51)【国際特許分類】
   G06F 40/30 20200101AFI20240221BHJP
   G06F 40/216 20200101ALI20240221BHJP
【FI】
G06F40/30
G06F40/216
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022170272
(22)【出願日】2022-10-25
(31)【優先権主張番号】17/889,124
(32)【優先日】2022-08-16
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
(71)【出願人】
【識別番号】501450960
【氏名又は名称】エヌビディア コーポレーション
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】マケシュ ナーシムハン スリーダール
(72)【発明者】
【氏名】クリストファー パリジャン
【テーマコード(参考)】
5B091
【Fターム(参考)】
5B091AA11
5B091EA01
(57)【要約】
【課題】タスク指向型対話システムをトレーニング及び使用するための技法を提供すること。
【解決手段】プロンプト・モデルを使用し、テキスト・データに少なくとも部分的に基づいて、1つ又は複数のプロンプトを表すプロンプト・データを決定するためのシステム及び方法が開示される。言語モデルを使用し、テキスト・データ及びプロンプト・データに少なくとも部分的に基づいて、テキスト・データに関連付けられた正準形式を決定するためのシステム及び方法が開示される。いくつかの実例において、プロンプト・モデルは、言語モデルに正準形式を出力させるプロンプト・データを生成するようにトレーニングされる。正準形式を使用して、テキスト・データに関連付けられた少なくとも意図を決定するためのシステム及び方法が開示される。対話マネージャが、意図を使用して、テキスト・データに関連付けられた1つ又は複数のアクションを実行し得る。
【選択図】図1
【特許請求の範囲】
【請求項1】
1つ又は複数の第1のモデルを使用し、テキストを表すテキスト・データに少なくとも部分的に基づいて、1つ又は複数のプロンプトを表すデータを決定することと、
1つ又は複数の第2のモデルを使用し、前記テキスト・データ及び1つ又は複数のプロンプトを表す前記データに少なくとも部分的に基づいて、前記テキストに関連付けられた正準形式を決定することと、
前記正準形式に少なくとも部分的に基づいて、少なくとも前記テキストに関連付けられた意図を決定することと
を含む、方法。
【請求項2】
1つ又は複数のプロンプトを表す前記データが、前記1つ又は複数のプロンプトに関連付けられた1つ又は複数のベクトルを表すデータを含む、請求項1に記載の方法。
【請求項3】
前記テキストに関連付けられた前記正準表現の前記決定が、
前記1つ又は複数の第2のモデルを使用し、前記テキスト・データ及び1つ又は複数のプロンプトを表す前記データに少なくとも基づいて、1つ又は複数の単語に関連付けられた1つ又は複数のベクトルを決定することと、
前記1つ又は複数のベクトルに少なくとも部分的に基づいて最終的なベクトルを決定することと、
前記最終的なベクトルが前記正準形式に関連付けられていると判断することと
を含む、請求項1に記載の方法。
【請求項4】
前記最終的なベクトルが前記正準形式に関連付けられているとの前記判断が、
前記最終的なベクトルを1つ又は複数のベクトルのセットと比較することであって、1つ又は複数のベクトルの前記セットの少なくとも1つの個々のベクトルが、前記テキストに関連付けられたそれぞれの正準形式に関連付けられている、比較することと、
前記比較に少なくとも基づいて、前記最終的なベクトルが1つ又は複数のベクトルの前記セットからのベクトルと類似していると判断することと、
前記ベクトルが前記正準形式に関連付けられていると判断することと
を含む、請求項3に記載の方法。
【請求項5】
前記テキスト・データ又は1つ若しくは複数のプロンプトを表す前記データのうちの少なくとも一方に基づいて、前記意図に対する1つ又は複数のスロットに関連付けられた情報を決定することと、
前記1つ又は複数のスロットに関連付けられた前記意図及び前記情報を対話マネージャに入力することと
をさらに含む、請求項1に記載の方法。
【請求項6】
前記1つ又は複数の第1のモデルを使用し、第2のテキストを表す第2のテキスト・データに少なくとも基づいて、1つ又は複数のプロンプトを表す第2のデータを決定することであって、前記テキストが前記第2のテキストとは異なる、決定することと、
前記1つ又は複数の第2のモデルを使用し、前記第2のテキスト・データ及び1つ又は複数のプロンプトを表す前記第2のデータに少なくとも基づいて、前記正準形式が前記第2のテキストに関連付けられていると判断することと
をさらに含む、請求項1に記載の方法。
【請求項7】
前記正準形式が前記意図に関連付けられており、
前記1つ又は複数の第1のモデルが、前記1つ又は複数の第2のモデルが前記意図に関連付けられた前記正準形式を決定するために使用する1つ又は複数のプロンプトを表す前記データを出力するようにトレーニングされる、
請求項1に記載の方法。
【請求項8】
前記1つ又は複数の第1のモデルを使用し、第2のテキストを表す第2のテキスト・データに少なくとも部分的に基づいて、1つ又は複数のプロンプトを表す第2のデータを決定することと、
前記1つ又は複数の第2のモデルを使用し、前記第2のテキスト・データ及び1つ又は複数のプロンプトを表す前記第2のデータに少なくとも基づいて、前記第2のテキストに関連付けられた第2の正準形式を決定することと、
前記第2の正準形式及び前記第2のテキスト・データに関連付けられたグラウンド・トゥルース・データに少なくとも部分的に基づいて、前記1つ又は複数の第1のモデルに関連付けられた1つ又は複数のパラメータを更新することであって、前記グラウンド・トゥルース・データが、前記第2のテキスト・データが前記正準形式に関連付けられていることを示す、更新することと
をさらに含む、請求項1に記載の方法。
【請求項9】
1つ又は複数のプロンプト・モデルを使用し、テキストを表すテキスト・データに少なくとも基づいて、1つ又は複数のプロンプトを表すプロンプト・データを決定することと、
1つ又は複数の言語モデルを使用し、前記テキスト・データ及び前記プロンプト・データに少なくとも基づいて、前記テキストに関連付けられた第1の正準形式を決定することと、
前記テキストが前記第1の正準形式とは異なる第2の正準形式に対応することを示す前記テキスト・データに関連付けられたグラウンド・トゥルース・データに少なくとも基づいて、前記1つ又は複数のプロンプト・モデルに関連付けられた1つ又は複数のパラメータを更新することと
を含む動作を実行するための1つ又は複数の処理ユニット
を備える、プロセッサ。
【請求項10】
前記1つ又は複数のプロンプト・モデルに関連付けられた前記1つ又は複数のパラメータの前記更新が、
前記第1の正準形式及び前記第2の正準形式に少なくとも基づいて誤差を決定することと、
前記誤差に少なくとも基づいて前記1つ又は複数のパラメータを更新することと
を含む、請求項9に記載のプロセッサ。
【請求項11】
前記プロンプト・データが、前記1つ又は複数のプロンプトに関連付けられた1つ又は複数のベクトルを表す、請求項9に記載のプロセッサ。
【請求項12】
前記テキストに関連付けられた前記第1の正準表現の前記決定が、
前記1つ又は複数の言語モデルを使用し、前記テキスト・データ及び前記プロンプト・データに少なくとも基づいて、1つ又は複数の単語に関連付けられた1つ又は複数のベクトルを決定することと、
前記1つ又は複数のベクトルに少なくとも基づいて、最終的なベクトルを決定することと、
前記最終的なベクトルが前記第1の正準形式に関連付けられていると判断することと
を含む、請求項9に記載のプロセッサ。
【請求項13】
前記最終的なベクトルが前記第1の正準形式に関連付けられているとの前記判断が、
前記最終的なベクトルを1つ又は複数のベクトルのセットと比較することであって、1つ又は複数のベクトルの前記セットからの少なくとも1つの個々のベクトルがそれぞれの正準形式に関連付けられている、比較することと、
前記比較に少なくとも基づいて、前記最終的なベクトルが1つ又は複数のベクトルの前記セットからのベクトルと類似していると判断することと、
前記ベクトルが前記第1の正準形式に関連付けられていると判断することと
を含む、請求項12に記載のプロセッサ。
【請求項14】
前記動作が、
前記1つ又は複数のプロンプト・モデルを使用し、第2のテキストを表す第2のテキスト・データに少なくとも基づいて、1つ又は複数の第2のプロンプトを表す第2のプロンプト・データを決定することと、
前記1つ又は複数の言語モデルを使用し、前記第2のテキスト・データ及び前記第2のプロンプト・データに少なくとも基づいて、前記第2のテキストに関連付けられた第3の正準形式を決定することと、
前記第2のテキストが前記第3の正準形式とは異なる前記第2の正準形式に対応することを示す前記第2のテキスト・データに関連付けられた第2のグラウンド・トゥルース・データに少なくとも基づいて、前記1つ又は複数のプロンプト・モデルに関連付けられた前記1つ又は複数のパラメータを更新することと
をさらに含む、請求項9に記載のプロセッサ。
【請求項15】
前記1つ又は複数のプロンプト・モデルの前記1つ又は複数のパラメータの前記更新のための前記グラウンド・トゥルース・データが、前記1つ又は複数の言語モデルの1つ又は複数の出力に対応する、請求項9に記載のプロセッサ。
【請求項16】
1つ又は複数のプロンプト・モデルを使用し、テキスト入力を表すデータに少なくとも基づいて、1つ又は複数の出力を生成し、
1つ又は複数の言語モデルを使用し、前記1つ又は複数の出力に少なくとも基づいて、前記テキスト入力の正準表現を決定し、
前記正準表現に少なくとも基づいて、前記テキスト入力に関連付けられた意図を決定する
ための1つ又は複数の処理ユニット
を備える、システム。
【請求項17】
前記正準表現を、1つ又は複数の意図のセットに関連付けられた1つ又は複数の正準表現のセットと比較することに少なくとも基づいて、前記意図が決定され、前記意図が、前記正準表現と最も類似した1つ又は複数の正準表現の前記セットの個々の正準表現に対応する、請求項16に記載のシステム。
【請求項18】
前記テキスト入力に関連付けられた前記正準表現が、1つ又は複数の第1のベクトルを使用して表され、前記1つ又は複数の第1のベクトルを、1つ又は複数の意図に対応する1つ又は複数の第2のベクトルと比較することに少なくとも基づいて、前記意図が決定される、請求項16に記載のシステム。
【請求項19】
トレーニング中に前記1つ又は複数のプロンプト・モデルの1つ又は複数のパラメータを更新するために使用されるグラウンド・トゥルース・データが、前記トレーニング中の前記1つ又は複数の言語モデルの1つ又は複数の出力に対応する、請求項18に記載のシステム。
【請求項20】
前記システムが、
自律機械若しくは半自律機械のためのインフォテインメント・システム、
自律機械若しくは半自律機械のための娯楽システム、
シミュレーション動作を実行するためのシステム、
リアルタイム・ストリーミング・アプリケーションをホストするためのシステム、
仮想現実(VR:virtual reality)、拡張現実(AR:augmented reality)、若しくは複合現実(MR:mixed reality)のうちの1つ若しくは複数のためのコンテンツを生成するためのシステム、
デジタル・ツイン動作を実行するためのシステム、
光輸送シミュレーションを実行するためのシステム、
3Dアセットの共同コンテンツ作成を実行するためのシステム、
深層学習動作を実行するためのシステム、
エッジ・デバイスを使用して実装されるシステム、
ロボットを使用して実装されるシステム、
会話型AI動作を実行するためのシステム、
合成データを生成するためのシステム、
1つ若しくは複数の仮想機械(VM)を組み込むシステム、
データ・センタにおいて少なくとも部分的に実装されるシステム、又は、
クラウド計算資源を少なくとも部分的に使用して実装されるシステム
のうちの少なくとも1つに含まれる、請求項16に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、会話型AIシステム及びアプリケーションにおけるタスク指向型対話のための正準形式の生成に関するものである。
【背景技術】
【0002】
タスク指向型対話システムは、様々な用途、たとえば、旅行計画のスケジュールを立てる(たとえば、交通機関及び宿泊施設を予約する、など)、アクティビティの計画を立てる(たとえば、予約を入れる、など)、他者と通信する(たとえば、電話をかける、ビデオ会議を開始する、など)、物品を買い求める(たとえば、オンライン・マーケットプレイスから物品を購入する、など)、並びに/又は同様のことに使用される。いくつかのタスク指向型対話システムは、入力デバイスを使用して生成された且つ/又は話し言葉のトランスクリプトとして生成されたテキスト、たとえば、1つ若しくは複数の文字、単語、数字、及び/又は記号を含むテキストを受信することによって動作する。いくつかの状況において、テキストは、タスク、たとえば、出発地から目的地への飛行機のフライトのスケジュールを立てることを実行するよう求める要求を示す場合がある。タスク指向型対話システムは、次いで、対話マネージャが解釈できるデータ(たとえば、正準表現)を出力するように構成された大規模言語モデルを使用してテキストを処理する。たとえば、対話マネージャは、要求されたタスクを実行するための1つ又は複数のアクションを決定するために、データを処理し得る。
【0003】
これらのタスク指向型対話システムは非常に幅広い用途及び分野を有するので、会話モデルを作成することは、開発者にとって困難な場合がある。たとえば、既存のタスク指向型対話システム、たとえばDialogFlow及びRASAの場合、開発者は、タスク指向型対話システムが会話フローにおける各ポイントで受け入れることになる意図(たとえば、アクション)及びスロット(たとえば、パラメータ)を定義しなければならない。しかしながら、会話型の設計から個別の意図及びスロットを抜き出すことは、しばしば、開発者にとって直感的ではなく、発話に対して限られた意味しか表現できない場合がある。さらに、これらのタスク指向型対話システムは、モデルをトレーニングするために、詳細な規則ベースの文法の作成又は広範なデータセット(たとえば、数千のユーザ発話)の収集を必要とする場合がある。その結果、高品質で使いやすいタスク指向型会話インターフェースを容易に又は効率的に作成することは、開発者にとって、しばしば困難である。
【0004】
いくつかの解決策は、少量の例示的発話、たとえば、意図ごとに5~10個の発話のみを要求することによって、開発者がタスク指向型対話システムをトレーニングするプロセスを簡素化するよう試みる。次いで、この少量の例示的発話を使用して、特定の意図に合わせてタスク指向型対話システムのモデルを微調整する。しかしながら、これらの提案された解決策は、開発者にとって容易であるが、通常、高品質のモデルを作り出さない。たとえば、これらのタスク指向型対話システムが、モデルがトレーニングされていない新規の意図に関連するテキストを受信した場合、タスク指向型対話システムは、新規の意図を識別するためにテキストを処理できない可能性がある。別の実例として、これらのタスク指向型対話システムがトレーニング済みの意図に関連するテキストを受信したが、そのテキストが、タスク指向型対話システムが意図のトレーニング中に受信していない発話を表している場合、タスク指向型対話システムはわずかな発話を使用して訓練され得るので、この状況は発生する可能性が非常に高く、タスク指向型対話システムは、この場合もやはり、意図を識別するためにテキストを処理できない可能性がある。
【発明の概要】
【課題を解決するための手段】
【0005】
本開示の実施例は、タスク指向型対話システムをトレーニング及び配備するための技法に関する。いくつかの実施例において、言語モデルを使用してテキストを正準形式に翻訳するシステム及び方法が開示され、正準形式は、テキストの自然言語の制約付き意味論的表現を含み得る。たとえば、テキストを翻訳するために、システム及び方法は、プロンプト(たとえば、学習済みの仮想プロンプト、仮想プロンプト・トークンなど)を生成するために最初にテキストを処理するプロンプト・モデルを含み得る。システム及び方法は、次いで、テキストに関連する正準形式を生成及び出力するために、テキストとプロンプトとの両方を、言語モデル、たとえば、プロンプトとともにテキストを処理するように構成された大規模言語モデルに入力する。いくつかの実施例において、本明細書に記載のように、システム及び方法は、様々な意図に関する一般化された正準形式を出力するようにトレーニングされる。システム及び方法は、いくつかの実施例において、次いで、少なくとも正準形式及び/又はスロットに対するパラメータを対話マネージャに提供し得、対話マネージャは、正準形式及び/又はスロットを処理し、要求されたタスクを実行するための1つ又は複数のアクションを決定することが可能である。したがって、いくつかの実施例において、プロンプト・モデルは、対話マネージャがタスクを実行するために解釈できる特定の正準形式を言語モデルに出力させるプロンプトを生成するようにトレーニングされる。
【0006】
従来のシステム、たとえば、個別の意図ラベルを用いた分類を必要とする前述のシステムとは対照的に、本開示の1つ又は複数の実施例は、テキストを、対話マネージャが解釈できる一般化された正準形式に変換することが可能である。たとえば、正準形式は一連のテキスト(たとえば、一連の単語)を表すので、トレーニング中に正準形式の1つ又は複数の用語が提示されなかったとしても、現在のシステムは、モデルのトレーニングと一致する方法で一般化することによって、新規の(たとえば、以前に遭遇したことのない)意図を解釈することが可能であり得る。たとえば、現在のシステムが、特定の意図、たとえば、飛行機の予約のスケジュールを立てることについてトレーニングされている場合、現在のシステムは依然として、新規の意図、たとえば、クルーズの予約のスケジュールを立てることを要求するテキストを解釈することが可能であり得る。この理由は、いくつかの実施例において、現在のシステムが依然として、現在のシステムがトレーニングされた正準形式、たとえば、「飛行機の予約をとる」と類似した正準形式、たとえば「クルーズの予約をとる」を出力し得るからである。
【0007】
加えて、大規模言語モデルをトレーニングして正準形式を生成する従来のシステムとは対照的に、現在のシステムは、正準形式を生成する言語モデルをもトレーニングする必要なく、意図及び/又はタスクのためのプロンプト・モデルをトレーニングする。いくつかの実例において、プロンプト・モデルは、言語モデルよりもはるかに小さい場合がある。たとえば、プロンプト・モデルは、第1の数のパラメータ、たとえば、100万個のパラメータ(及び/又は任意の他の数のパラメータ)を含み得る一方で、言語モデルは、より多数の第2のパラメータ、たとえば、10億個のパラメータ(及び/又は任意の他の数のパラメータ)を含む。したがって、言語モデルではなくプロンプト・モデルをトレーニングすることによって、トレーニングに使用するトレーニング・データ、計算資源、及び時間を削減する(たとえば、意図ごとに5~10個の発話)と同時に、高品質の結果を提供することができる。
【0008】
タスク指向型対話マネージャをトレーニング及び配備するための本システム及び方法について、以下のような添付の図面を参照して、詳しく後述する。
【図面の簡単な説明】
【0009】
図1】本開示のいくつかの実施例による、言語システムの実例を示す図である。
図2A】本開示のいくつかの実施例による、一般化された構造を有する正準形式を出力する言語システムの実例を示す図である。
図2B】本開示のいくつかの実施例による、一般化された構造を有する正準形式を出力する言語システムの実例を示す図である。
図3】本開示のいくつかの実施例による、ベクトルを使用して、テキストに関連付けられた正準形式を決定することを示す図である。
図4】本開示のいくつかの実施例による、正準形式を使用して、テキストに関連付けられた意図を決定する対話マネージャを示す図である。
図5】本開示のいくつかの実施例による、言語システムをトレーニングするためのプロセスを示すデータ・フロー図である。
図6】本開示のいくつかの実施例による、プロンプト・モデルをトレーニングするためのトレーニング・データの実例を示す図である。
図7】本開示のいくつかの実施例による、言語システムを使用するための方法を示す流れ図である。
図8】本開示のいくつかの実施例による、言語システムをトレーニングするための方法を示す流れ図である。
図9】本開示のいくつかの実施例の実装に使用するのに適した例示的コンピューティング・デバイスのブロック図である。
図10】本開示のいくつかの実施例の実装に使用するのに適した例示的データ・センタのブロック図である。
【発明を実施するための形態】
【0010】
タスク指向型対話システムをトレーニング及び使用するための技法に関連するシステム並びに方法が開示される。たとえば、システムは、1つ若しくは複数の文字、単語、数字、記号、及び/又は同類のものを表すテキスト・データを、受信及び/又は生成し得る。いくつかの実例において、テキスト・データは、ユーザによってシステム及び/又は別のコンピューティング・デバイスに入力された1つ又は複数の単語を表し得る。いくつかの実例において、テキスト・データは、ユーザからの口頭での発話のトランスクリプト及び/又はダイアライゼーションに関連付けられた1つ又は複数の単語を表し得る。いずれの例においても、テキスト・データは、ユーザによって要求されているタスク、たとえば、出発地から目的地への飛行機のフライトを予約することを表し得る。システムは、次いで、要求されたタスクに関連付けられた意図及び意図のスロットに関する情報を識別するために、テキスト・データを処理し得る。本明細書に記載のように、意図は、予約をとる(たとえば、飛行機のフライトを予約する、ホテルを予約する、ディナーの予約をとる、など)、イベントのスケジュールを立てる(たとえば、誕生日パーティーのスケジュールを立てる、スポーツの試合のスケジュールを立てる、など)、通信を開始すること(電話をかける、ビデオ会議を開始する、など)、リストを作成する(たとえば、買い物リストを作成する、やることリストを作成する、など)、物品及び/若しくはサービスを取得する、並びに/又は任意の他の意図を含み得るが、これらに限定されない。加えて、スロットは、意図を実行するための追加情報(たとえば、パラメータ)を提供し得る。たとえば、テキスト・データが、ユーザ発話、たとえば「7月25日のスポケーンからアトランタへのフライトのスケジュールを立てる」を表す場合、意図は、「フライトを予約する」を含み得、スロットは、スポケーンという「出発地」、アトランタという「目的地」、及び7月25日という「日付」を含み得る。
【0011】
テキスト・データを処理するために、システムは、テキスト・データに関連付けられたプロンプト・データを生成するためにテキスト・データを処理するように構成されたプロンプト・モデルを含み得る。プロンプト・データは、1つ若しくは複数の仮想プロンプト及び/又は1つ若しくは複数のプロンプト・トークンを表し得る。たとえば、プロンプト・データは、1つ又は複数のベクトルを表し得、各ベクトルは、テキスト・データを処理するときにプロンプト・モデルによって識別されるそれぞれの単語を表す。システムはまた、テキストに関連付けられた正準形式を生成するためにプロンプト・データとともにテキスト・データを処理するように構成された言語モデル、たとえば、大規模言語モデルを含み得る。本明細書に記載のように、正準形式は、テキストの自然言語の制約付き意味論的表現を含み得る。たとえば、上記の実例を使用すると、テキストの正準形式は、表現、たとえば「飛行機のフライトを予約する」を含み得る。いくつかの実例において、正準形式は、条件付き文、入れ子型の意味論、及び/又は他の複雑な表現を用いてさらに拡張される。システムは、次いで、この正準形式、及び/又はスロットに関連付けられたパラメータ(及び、いくつかの実例では、追加データ)を対話マネージャに入力し得、対話マネージャは、正準形式及び/又はパラメータを処理して、要求されたタスクを実行するための1つ又は複数のアクションを決定することが可能である。
【0012】
いくつかの実例において、システムは、言語モデルのパラメータの重みを更新することなく、プロンプト・モデルのパラメータの重みが更新されるようにトレーニングされる。たとえば、トレーニング・データは、テキストを表すテキスト・データ(たとえば、一連の文字、単語、数字、及び/又は記号)を、テキストに関連付けられた正準形式を表すグラウンド・トゥルース・データとともに含み得る。システムをトレーニングするために、システムは、テキストに関連付けられた正準形式を出力するために、本明細書に記載のプロセスのうちの1つ又は複数を使用してテキスト・データを処理し得る。トレーニング・エンジンは、次いで、グラウンド・トゥルース・データによって表される正準形式とシステムによって出力される正準形式との間の差に基づいて、1つ又は複数の誤差を決定し得る。加えて、システムは、誤差に基づいて、プロンプト・モデルのパラメータの重み及び/又はバイアスを更新し得る。このようなプロセスを使用してシステムをトレーニングすることにより、プロンプト・モデルは、対話マネージャが迅速且つ正確に解釈することが可能な特定の正準形式を言語モデルに出力させるプロンプト・データを生成するように構成され得る。
【0013】
本明細書に記載のシステム及び方法は、実例として及び限定せずに、機械制御、機械移動、機械駆動、合成データ生成、モデル・トレーニング、知覚、拡張現実、仮想現実、複合現実、ロボット工学、セキュリティ及び監視、シミュレーション及びデジタル・ツイニング、自律機械又は半自律機械アプリケーション、リアルタイム・ストリーミング、仮想現実、複合現実、若しくは拡張現実、深層学習、環境シミュレーション、データ・センタ処理、会話型AI、光輸送シミュレーション(たとえば、レイ・トレーシング、パス・トレーシングなど)、3Dアセットの共同コンテンツ作成、クラウド計算、並びに/又は任意の他の適切なアプリケーションに関連付けられたシステムにおける、様々な目的のために使用され得る。
【0014】
開示される実施例は、多種多様なシステム、たとえば、自動車システム(たとえば、自律機械若しくは半自律機械の車内システム、インフォテインメント・システム、及び/又は娯楽システム)、ロボットを使用して実装されるシステム、空中システム、医療システム、ボート・システム、スマート・エリア監視システム、深層学習動作を実行するためのシステム、シミュレーション動作を実行するためのシステム、エッジ・デバイスを使用して実装されるシステム、1つ又は複数の仮想機械(VM:virtual machine)を組み込むシステム、合成データ生成動作を実行するためのシステム、データ・センタにおいて少なくとも部分的に実装されるシステム、会話型AI動作を実行するためのシステム、光輸送シミュレーションを実行するためのシステム、3Dアセットの共同コンテンツ作成を実行するためのシステム、クラウド計算資源を少なくとも部分的に使用して実装されるシステム、及び/又は他のタイプのシステムに含まれ得る。
【0015】
図1は、本開示のいくつかの実施例による、言語システム102の実例を示す。本明細書に記載された、この及び他の構成は、単に実例として明記されている、ということを理解されたい。他の構成及び要素(たとえば、機械、インターフェース、機能、順序、機能のグループなど)が、示されているものに加えて又はその代わりに使用され得、いくつかの要素は、ともに省略され得る。さらに、本明細書に記載の要素の多数は、個別の若しくは分散された構成要素として又は他の構成要素と併せて、及び任意の適した組合せ及び場所で実装され得る機能エンティティである。エンティティによって実行されているものとして本明細書に記載された様々な機能は、ハードウェア、ファームウェア、及び/又はソフトウェアによって、実施され得る。たとえば、様々な機能は、メモリに記憶されたプロセッサ実行命令によって実施され得る。
【0016】
プロセス100は、言語システム102がテキスト・データ104を受信することを含み得る。本明細書に記載のように、いくつかの実例において、テキスト・データ104は、ユーザによってデバイス(たとえば、コンピューティング・デバイス900)に入力された1つ若しくは複数の文字、単語、記号、及び/若しくは数字を表し得る、且つ/又は、ユーザによる口頭での発話に基づいて生成されたトランスクリプト又はダイアライゼーションからの1つ若しくは複数の文字、単語、記号、及び/若しくは数字を表し得る。たとえば、ユーザは、デバイス、たとえば、携帯電話、テーブル、コンピュータ、テレビジョン、音声アシスタント、キオスク、及び/又は任意の他のタイプのデバイス(たとえば、コンピューティング・デバイス900)に、可聴入力(たとえば、ユーザ発話)を提供し得る。可聴入力は、次いで、可聴入力から1つ又は複数の特徴を抽出するために可聴入力を評価する(言語システム102の一部として含まれるか又は言語システム102とは別個に含まれ得る)1つ又は複数の自然言語処理(NLP:natural language processing)システムなどを介して、1つ若しくは複数の処理ステップ又は前処理ステップにかけられ得る。さらに、いくつかの実例において、入力プロセッサは、前処理(たとえば、トークン化、句読点の除去、ストップ・ワードの除去、ステミング、レンマ化、テキスト正規化、逆テキスト正規化など)、特徴抽出、及び/又は同類のもののためのテキスト処理システムを含み得る。デバイスは、次いで、可聴入力を表すトランスクリプト又はダイアライゼーションを生成し得、テキスト・データ104は、トランスクリプト又はダイアライゼーションを表す。
【0017】
プロセス100は、プロンプト・モデル106が、プロンプト・データ108を生成するためにテキスト・データ104を処理することを含み得る。本明細書に記載のように、いくつかの実例において、プロンプト・データ108は、1つ若しくは複数の仮想プロンプト及び/又は1つ若しくは複数のプロンプト・トークンを表し得る。第1の実例の場合、プロンプト・データ108は1つ又は複数のベクトルを表し得、各ベクトルは、テキスト・データ104を処理するときにプロンプト・モデル106によって識別される単語を表す。第2の実例の場合、プロンプト・データ108は1つ又は複数のベクトルを表し得るが、1つ又は複数のベクトルは、実際の単語を表さない。さらに詳しく後述するように、プロンプト・モデル106は、テキスト・データ104によって表される1つ又は複数の単語に基づいて特定のプロンプト・データ108を出力するためにトレーニングされ得る。たとえば、プロンプト・モデル106は、プロンプト・モデル106が特定のセットの1つ若しくは複数の単語又は特定のセットと類似した1つ若しくは複数の単語を受信するたびに、特定のベクトル(又は特定のベクトルとの閾値類似度内のベクトル)を出力するようにトレーニングされ得る。
【0018】
いくつかの実例において、プロンプト・モデル106は、前処理の有無にかかわらず、言語システム102の言語モデル112のための入力データ110として使用され得る出力データを生成するように構成され得る。たとえば、入力データ110は、プロンプト・モデル106に入力された元のテキスト・データ104と、プロンプト・データ108との両方を含み得る。他の実例において、プロンプト・モデル106は、プロンプト・データ108を出力するように構成され得、言語システム102は、次いで、少なくともテキスト・データ104をプロンプト・データ108に関連付けることによって入力データ110を生成する。いくつかの実例において、図1の実例にも示されているように、テキスト・データ104とプロンプト・データ108との両方が、言語モデル112の入力データ110の一部として提供される。しかしながら、他の実例において、プロンプト・データ108は、テキスト・データ104なしで言語モデル112に提供され得る。
【0019】
プロセス100は、言語モデル112が、入力データ110を処理し、その処理に基づいて、テキスト・データ104に関連付けられた正準形式114を出力することを含み得る。いくつかの実例において、言語モデル112は、大規模言語モデル、たとえば、凍結された大規模言語モデルを含み得る。たとえば、言語モデル112は、大量のデータでトレーニングされ得る。いくつかの実例において、言語モデル112は、任意のタイプの言語モデル、たとえば、生成言語モデル(たとえば、事前トレーニング済みの生成型変換器(GPT:Generative Pretrained Transformer)など)、表現言語モデル(たとえば、変換器による双方向のエンコーダ表現(BERT:Bidirectional Encoder Representations from Transformers)など)、及び/又は同類のものを含み得る。本明細書に記載のように、正準形式114は、テキスト・データ104によって表されるテキストの自然言語の制約付き意味論的表現を含み得る。いくつかの実例において、言語システム102のトレーニングに関してより詳細に述べるように、言語システム102は、一般構造を含む正準形式114を出力するようにトレーニングされ得る。
【0020】
たとえば、図2Aは、本開示のいくつかの実施例による、類似の構造を有する正準形式114を出力する言語システム102の第1の実例を示す。図2Aの実例によって示すように、第1のテキスト・データ202(1)が「私の銀行口座の金額を確認する」という第1のユーザ発話を表す場合、第1のテキスト・データ202(1)に関連付けられた正準形式204(1)は、「口座の残高を確認する」を含み得る。加えて、第2のテキスト・データ202(2)が「私の銀行口座にいくらあるか確認する」という第2のユーザ発話を表す場合、第2のテキスト・データ202(1)に関連付けられた正準形式204(2)も、「口座の残高を確認する」を含み得る。したがって、第2のテキスト・データ202(2)内の単語が第1のテキスト・データ202(1)内の単語とわずかに異なる場合でも、第1のテキスト・データ202(1)に対する正準形式204(1)は、第2のテキスト・データ202(2)に対する正準形式204(2)と一致する。この理由は、いくつかの実例において、言語システム102が、類似の構造を使用して正準形式204(1)~204(2)を出力するようにトレーニングされているからであり得る。
【0021】
加えて、図2Bは、本開示のいくつかの実施例による、類似の構造を有する正準形式114を出力する言語システム102の第2の実例を示す。図2Bの実例によって示すように、第1のテキスト・データ206(1)が「バス旅行のチケットを購入する」という第1のユーザ発話を表す場合、第1のテキスト・データ206(1)に関連付けられた正準形式208(1)は、「バスのチケットを購入する」を含み得る。加えて、第2のテキスト・データ206(2)が「7月25日のスポケーンからアトランタへの旅行のために飛行機のチケットを購入する」という第2のユーザ発話を表す場合、第2のテキスト・データ206(2)に関連付けられた正準形式208(2)は、「飛行機のチケットを購入する」を含み得る。したがって、第1のテキスト・データ206(1)がバスのチケットの購入(たとえば、第1の意図)に関する第1の発話に関連付けられており、第2のテキスト・データ206(2)が飛行機のチケットの購入(たとえば、第2の異なる意図)に関する第2の発話に関連付けられている場合でも、正準形式208(1)~208(2)は、類似の構造を含む。より具体的には、正準形式208(1)~208(2)はどちらも、「購入する」という単語で始まり、「チケット」という単語で終わり、(たとえば、意図に基づく)チケット・タイプを表す中間単語を有する。他の正準形式114、たとえば、類似の意図(たとえば、イベントの予約及び/又はスケジューリング)に関連付けられた正準形式114に対しても、類似の構造が使用され得る。
【0022】
たとえば、クルーズを予約する意図に関連付けられた正準形式114は「クルーズのチケットを購入する」を含み得、野球のチケットを購入する意図に関連付けられた正準形式114は「野球のチケットを購入する」を含み得、映画のチケットを購入する意図に関連付けられた正準形式114は「映画のチケットを購入する」を含み得、カーニバルのチケットを購入する意図に関連付けられた正準形式114は「カーニバルのチケットを購入する」を含み得、且つ/又は以下同様である。いくつかの実例において、類似の構造を有する正準形式114を使用することによって、言語システム102は、言語システム102が処理するように特別にトレーニングされていない意図(たとえば、言語システム102にとって新しい又は新規の意図)に対しても良好な結果を提供することが可能である。
【0023】
たとえば、図2Bの実例を使用すると、言語システム102は、「飛行機のチケットを購入する」という第1の意図についてはトレーニングされ得るが、「バスのチケットを購入する」という第2の意図についてはトレーニングされない。したがって、言語モデル102は、「7月25日のスポケーンからアトランタへの旅行のために飛行機のチケットを購入する」という発話(及び/又は飛行機のチケットの予約に関連する何らかの他の発話)を表すテキスト・データ206(2)を受信したとき、「飛行機のチケットを購入する」という正準形式208(2)を出力するようにトレーニングされ得る。言語モデル102が、次いで、「バス旅行のチケットを購入する」という発話を表すテキスト・データ206(2)を受信した場合、言語モデル102が第2の意図についてトレーニングされていなかったとしても、言語モデル102は依然として、「バスのチケットを購入する」という正準形式208(1)を生成することが可能であり得る。この理由は、表現の中間にあるチケット・タイプを除いて、正準形式208(1)の構造が正準形式208(2)の構造と類似しているからである。しかしながら、言語モデル102は依然として、テキスト・データ206(1)及び/又はプロンプト・モデル106がテキスト・データ206(1)に対して生成するプロンプト・データ108を処理することによって、そのチケット・タイプを決定することが可能であり得る。
【0024】
本明細書に記載のように、いくつかの実例において、言語システム102(たとえば、言語モデル112)は、条件文、入れ子型の意味論、及び/又は別のより複雑な表現を用いて正準形式114を拡張するように構成され得る。たとえば、図2Bの実例を使用すると、言語システム102(たとえば、言語モデル112)は、1つ又は複数の単語、たとえば、「旅行のため」、「往復」、「片道旅行」、及び/又は同様のものを含むように正準形式208(2)を拡張し得る。いくつかの実例において、言語モデル102は、トレーニング中に、条件文、入れ子型の意味論、及び/又は他の複雑な表現を学習する。
【0025】
いくつかの実例において、言語システム102(たとえば、言語モデル112及び/又は言語システム102の別の構成要素)は、言語モデル112からの出力を使用して、テキスト・データ104に対する最終的な正準形式を決定し得る。たとえば、図3は、本開示のいくつかの実施例による、ベクトルを使用して、テキストに関連付けられた正準形式を決定することを示す。図示するように、言語システム102(たとえば、言語モデル112)は、単語304(1)~304(N)(単数形で「単語(word)304」又は複数形で「単語(words)304」とも称される)に対するベクトル302(1)~302(N)(単数形で「ベクトル(vector)302」又は複数形で「ベクトル(vectors)302」とも称される)を決定し得る。いくつかの実例において、言語モデル112は、最初に、入力データ110の処理に基づいて、ベクトル302を決定及び/又は出力し得、各ベクトル302は単語304に関連付けられた。いくつかの実例において、言語モデル112は、最初に、入力データ110の処理に基づいて、単語304(たとえば、初期の正準形式)を生成及び/又は出力し得る。そのような実例において、言語システム102(たとえば、言語モデル112)は、マッピングを使用して、単語304に対するベクトル302を決定し得る。
【0026】
いずれの実例においても、言語システム102(たとえば、言語モデル112)は、次いで、ベクトル302を使用して、最終的な正準形式を決定し得る。たとえば、言語システム102(たとえば、言語モデル112)は、ベクトル302を使用して、単語304に関連付けられた最終的なベクトル306を決定し得る。いくつかの実例において、言語システム102(たとえば、言語モデル112)は、ベクトル302の平均をとること(たとえば、ベクトル302を加算し、次いで、ベクトル302の数で除算すること)によって、最終的なベクトル306を決定し得る。いくつかの実例において、言語システム102(たとえば、言語モデル112)は、の1つ又は複数の追加の技法及び/又は代替の技法、たとえば、ベクトル302の平均、ベクトル302の最頻値、ベクトル302の中央値、ベクトル302の合計、及び/又は同様のものを使用して、最終的なベクトル306を決定し得る。実例のいずれにおいても、最終的なベクトル306は、単語304に関連付けられた文の意味を表す文ベクトルに対応し得る。
【0027】
言語システム102(たとえば、言語モデル112)は、次いで、正準形式セット308を使用して、最終的な正準形式を決定し得る。図3の実例によって示すように、正準形式セット308は、ベクトル310(1)~310(O)(単数形で「ベクトル(vector)310」又は複数形で「ベクトル(vectors)310」とも称される)を、正準形式312(1)~312(O)(単数形で「正準形式(canonical form)312」又は複数形で「正準形式(canonical forms)312」とも称される)に関連付ける(たとえば、マップする)。正準形式セット308を使用するために、言語システム102(たとえば、言語モデル112)は、最終的なベクトル306と一致するベクトル310及び/又は最終的なベクトル306に最も近いベクトル310を識別するために、最終的なベクトル306をベクトル310と比較し得る。たとえば、図3の実例において、言語システム102(たとえば、言語モデル112)は、ベクトル310(3)が最終的なベクトル306に最も近い一致ベクトル310であると判断し得る。言語システム102(たとえば、言語モデル112)は、次いで、ベクトル310(3)を使用して、最終的な正準形式を決定し得る。たとえば、ベクトル310(3)が正準形式312(3)に関連付けられている(たとえば、マップされている)ので、言語システム102(たとえば、言語モデル112)は、正準形式312(3)を選択し得る。
【0028】
いくつかの実例において、言語システム102(たとえば、言語モデル112)は、そのようなプロセスを使用して最終的な正準形式312(3)を識別することによって、単語304及び/又はベクトル302を任意の順序で出力することが可能であり、言語システム102(たとえば、言語モデル112)はさらに、最終的なベクトル306を使用して、最終的な正準形式312(3)を決定することが可能である。加えて、いくつかの実例において、そのようなプロセスを使用することによって、言語システム102は、言語システム102が識別するようにトレーニングされていない意図の正準形式を提供することが可能である。
【0029】
たとえば、図2Bの実例を使用すると、言語システム102が、飛行機のチケットの購入に関連する意図を識別するようにトレーニングされたが、言語システム102が、バスのチケットを購入するよう求める要求に関連するテキスト・データ206(1)を受信した場合、言語システム102は依然として、正準形式208(1)を生成することが可能であり得る。この理由は、言語システム102(たとえば、言語モデル112)が依然として、言語システム102(たとえば、言語モデル112)がテキスト・データ206(2)に対して出力する単語及び/又はベクトルと類似した単語及び/又はベクトルを、テキスト・データ206(1)に対しても出力し得るからである。したがって、図3のプロセスを使用すると、言語システム102(たとえば、言語モデル112)は、テキスト・データ206(1)に対して、テキスト・データ206(2)に対する正準形式208(2)(たとえば、少なくとも「購入する」及び「チケット」を含む)と類似した正準形式を決定し得る。言語システム102(たとえば、言語モデル112)は、テキスト・データ206(1)に対する正準形式208(1)を生成するために、条件文及び/又は入れ子型の意味論を用いて正準形式を拡張するように構成され得る。
【0030】
たとえば、言語システム102(たとえば、言語モデル112)は、テキスト・データ206(1)が「バス」という単語を表すと判断し得る。したがって、言語システム102(たとえば、言語モデル112)は、言語システム102(たとえば、言語モデル112)が選択した正準形式208(2)内の「飛行機」という単語を「バス」という単語で置き換えることによって、正準形式208(1)を生成し得る。このように、言語システム102(たとえば、言語モデル112)は、言語システム102(たとえば、言語モデル112)が識別するようにトレーニングされていない意図に対する正準形式を生成するために、正準形式114に対して類似の構造を使用することが可能である。
【0031】
図3の実例は、各単語304に対して単一のベクトル302を示しているが、他の実例では、各単語304は、1つ又は複数のベクトル302に関連付けられ得る。たとえば、単一の単語304は、単語304をともに表す2つ以上のベクトル302に関連付けられ得る。加えて、いくつかの実例において、言語モデル112によって出力されるベクトル302は、実際の単語304に関連付けられない場合があり、たとえば、代わりに、2つ以上の単語、又は単語の一部、たとえば、音素若しくは文字に関連付けられ得る。
【0032】
加えて、図3の実例は、言語モデル112が、単語304に関連付けられた最終的なベクトル306を決定するものとして説明しているが、他の実例では、別のモデルが、最終的なベクトル306を決定するように構成され得る。たとえば、単語304は、単語304を処理し、単語306に関連付けられた最終的なベクトル306を出力するようにトレーニングされた、他のモデルに入力され得る。
【0033】
図1を再び参照すると、正準モデル116は、正準形式114及び/又はテキスト・データ104を含む入力データ118と、対話マネージャ122による処理のための出力データ120とを処理し得る。図1の実例は、正準モデル116を言語モデル112とは別個のものとして示しているが、他の実例では、正準モデル116は言語モデル112の一部であり得る。
【0034】
出力データ120を生成するために、正準モデル(1)116は、最初に、正準形式114を処理して、テキスト・データ104の意図を決定し得る。正準モデル116及び/又は言語モデル112はまた、意図に関連付けられた1つ又は複数のスロットに対する1つ又は複数のパラメータを決定し得る。いくつかの実例において、正準モデル116及び/又は言語モデル112は、正準形式114、テキスト・データ104、及び/又はプロンプト・データ108をさらに分析することに基づいて、パラメータを決定し得る。いくつかの実例において、正準モデル116は、(たとえば、言語モデル112がテキスト・データ104及び/又はプロンプト・データ108を使用してパラメータを決定するときなどに)言語モデル112からパラメータを受信したことに基づいて、パラメータを決定し得る。本明細書でより詳細に説明するように、言語モデル112及び/又は正準モデル116は、言語モデル112が正準形式114を決定するために使用するプロセスと類似したプロセスを使用して、スロットに対するパラメータを決定し得る。
【0035】
たとえば、図4は、本開示のいくつかの実施例による、正準形式208(2)(及び追加データ)を使用して意図及び意図に関連付けられたスロットを決定する正準モデル116を示す。図示するように、正準モデル116は、「7月25日のスポケーンからアトランタへの旅行のために飛行機のチケットを購入する」というテキスト・データ206(2)に関連付けられた、「飛行機のチケットを購入する」という正準形式208(2)を、入力として受信し得る。正準モデル116は、次いで、正準形式208(2)と、テキスト・データ206(2)に関連付けられた意図404を含む出力データ402(出力データ120”を含み得る且つ/又は表し得る)とを処理し得る。図4の実例において、意図404は、「飛行機のチケットを購入する」を含む。しかしながら、他の実例において、意図404は、1つ又は複数の単語、たとえば、別の正準表現を含み得る。
【0036】
いくつかの実例において、正準モデル116はまた、意図404に関連付けられたスロット406(1)~406(3)(単数形で「スロット(slot)406」又は複数形で「スロット(slots)406」とも称される)を決定し得る。図示するように、意図404に関連付けられた第1のスロット406(1)は、旅行の出発地を含み得る「スポケーン」を含む。意図404に関連付けられた第2のスロット406(2)は、旅行の目的地を含み得る「アトランタ」を含む。最後に、意図404に関連付けられた第3のスロット406(3)は、旅行の日付を含み得る「7月25日」を含む。図4の実例は、意図404が3つのスロット406に関連付けられていることを示しているが、他の実例では、意図404は、任意の数のスロット406に関連付けられ得る。たとえば、意図404は、3つ以上のスロット406、たとえば、旅行の時間に関連付けられた第4のスロットに関連付けられ得る。そのような実例では、テキスト・データ206(2)が時間を示していないので、正準モデル116は、第4のスロットを空のままにし得る(たとえば、第4のスロットに対して情報を提供しない)。
【0037】
図4の実例において、正準モデル116は、追加データ408を使用してスロット406を決定し得る。いくつかの実例において、追加データ408は、テキスト・データ406(2)、及び/又はテキスト・データ406(2)に関連付けられたプロンプト・データ108を含み得る。たとえば、正準モデル116は、スロット406のそれぞれについての情報を決定するために、テキスト・データ206(2)及び/又はプロンプト・データ108を処理し得る。加えて又は別法として、いくつかの実例において、追加データ408は、別の構成要素、たとえば、言語モデル112から受信したデータを含み得るたとえば、言語モデル112が、スロット406のそれぞれについての情報を決定するために、テキスト・データ206(2)及び/又はプロンプト・データ108を処理し得る。言語モデル112は、次いで、スロット406についての情報を表す追加データ408を、正準モデル116に送信し得る。追加データ408を使用して、正準モデル116は、正しいスロット406に情報を入力し得る。
【0038】
いくつかの実例において、追加データ408は、正準モデル116及び/又は言語モデル112が意図404について決定すべきスロット406を示し得る。スロット406は、1つ若しくは複数の必須スロット406、1つ若しくは複数の任意スロット406、及び/又は1つ若しくは複数の異なるタイプのスロットを含み得るが、これらに限定されない。本明細書に記載のように、必須スロット406は、意図404に関連付けられたアクションを実行するために情報が必須とされるスロット406を含み得る(これについては、対話マネージャ120に関してより詳細に説明されている。加えて、任意スロット406は、意図404に関連付けられたアクションを実行するために情報が任意とされるスロット406を含み得る。たとえば、上記の実例を使用すると、対話マネージャ120は、飛行機のチケットを購入することに関連するアクションを、出発地、目的地、及び日付なしで実行することは不可能であるので、スロット406は必須スロット406を含み得る。しかしながら、意図404に関連付けられた任意スロット406は、旅行の時刻を含み得る。この理由は、対話マネージャ120が、時刻に関する情報なしでも、依然としてアクションを実行することが可能であるからである。
【0039】
いくつかの実例において、言語モデル112及び/又は正準モデル116は、正準形式114と同様に、スロットに対して自然言語を使用するようにトレーニングされ得る。たとえば、言語モデル112及び/又は正準モデル116は、プロンプト・データ108及びテキスト・データ104を使用して、意図404に関連付けられたスロット406を決定するようにトレーニングされ得る。そのような実例では、言語システム102が、新規の意図に関連付けられたテキスト・データ104を受信する場合、及び/又は、言語システム102が、トレーニング済みの意図に関連付けられているが、言語システム102がトレーニングされていない新規のスロットを表すテキスト・データ104を受信する場合などに、自然言語を使用することにより、言語システム102及び/又は正準モデル116の精度も向上し得る。
【0040】
第1の実例として、言語システム102が、第1の意図、たとえば「飛行機のチケットを購入する」を識別するようにトレーニングされた場合、言語システム102は依然として、第2のトレーニングされていない意図、たとえば「電車のチケットを購入する」に関連付けられたテキスト・データ104を受信し得る。本明細書に記載のプロセスを実行することにより、言語システム102は、テキスト・データ104に関連付けられた(たとえば、正準形式、たとえば正準形式114を含み得る)意図、たとえば「電車のチケットを購入する」を生成することが可能であり得る。加えて、言語システム102は、第1の意図に関連付けられたスロットのうちの1つ又は複数を第2の意図に対して使用し得る。たとえば、第1の意図が「出発地」、「目的地」、及び「日付」というスロットに関連付けられている場合、言語システム102は、第2の意図に対して類似のスロットを使用し得る。この理由は、スロットが自然言語に関連付けられており、多くの意図、たとえばアクティビティの予約(たとえば、飛行機のチケットの予約、タクシーの予約、電車のチケットの予約、クルーズの予約など)に関連付けられている意図によって使用され得るからである。
【0041】
第2の実例として、言語システム102は、第1の意図に対する第1のスロット及び第2の意図に対する第2のスロットを識別するようにトレーニングされている場合がある。たとえば、第1の意図が、この場合もやはり「飛行機のチケットを予約する」に関連付けられている場合、第1のスロットは「出発地」、「目的地」、及び「日付」を含み得る。加えて、第2の意図が、「電車のチケットを予約する」に関連付けられている場合、第2のスロットは「出発地」、「目的地」、「日付」、及び「時刻」を含み得る。したがって、言語システム102が、「7月25日8:00のスポケーンからアトランタまでの飛行機のチケットを購入する」を含むテキストを表すテキスト・データ104を受信した場合、言語システム102は、第1の意図に関連付けられたスロット及び第2の意図に関連付けられた追加スロットに対する情報を決定し得る。たとえば、言語システム102は、出発地として「スポケーン」、目的地として「アトランタ」、日付として「7月25日」、及び時刻として「8:00」を含む情報を決定し得る。
【0042】
いくつかの実例において、意図に対するスロットは自然言語を使用するので、言語システム102は、第1の意図に対してこの新しいスロットを学習することが可能である。たとえば、言語システム102は、テキスト・データ104(及び/又は他のデータ、たとえば、プロンプト・データ108)を処理して、テキスト・データ104(及び/又は他のデータ)によって表される「日付」を容易に識別することが可能であり得る。言い換えれば、言語システム102は、別の意図(たとえば、別の類似の意図)に対する1つ又は複数のスロットを使用して、意図に対する新しい関連するスロットを継続して学習し得る。
【0043】
図1を再び参照すると、プロセス100は、対話マネージャ122が、テキスト・データ104に関連付けられたアクションを実行するために、出力データ120を処理することを含み得る。たとえば、対話マネージャ122は、出力データ120によって表される意図及び/又はスロットを使用して、実行すべきアクションを決定し得る。いくつかの実例において、アクションは、意図及び/又はスロットに基づいてシステムがとるべき応答を含み得る。たとえば、図4の実例を使用すると、アクションは、7月25日のスポケーンからアトランタまでの飛行機のチケットを予約することを含み得る。いくつかの実例において、アクションは、ユーザに提供すべき応答を生成することを含み得る。たとえば、図4の実例を再び使用すると、対話マネージャ122が、意図404を実行するのに時間が必要であると判断した場合、対話マネージャ122は、ユーザに対して「旅行の予約の場合、何時を希望しますか」を含む応答を生成し得る。
【0044】
本明細書に記載のように、プロンプト・モデル106は、言語モデル112に特定の正準形式114を出力させるプロンプト・データ108を生成するようにトレーニングされ得る。たとえば、図5は、本開示のいくつかの実施例による、プロンプト・モデル106をトレーニングするためのプロセス500を示すデータ・フロー図である。図5の実例において、正準モデル112は、言語モデル112の一部として含まれ得る。
【0045】
図示するように、プロンプト・モデル106は、テキスト・データ502(たとえば、トレーニング・テキスト・データ)を使用してトレーニングされ得る。トレーニングに使用されるテキスト・データ502は、テキスト、たとえば、様々な語句、文、トランスクリプト、及び/又は、1つ若しくは複数の単語、文字、記号、及び/若しくは数字の他のグループを表し得る。プロンプト・モデル106はまた、テキスト・データ502に対応するグラウンド・トゥルース・データ504を使用してトレーニングされ得る。図示するように、グラウンド・トゥルース・データ504は、テキスト・データ502によって表される1つ又は複数の単語のグループごとに、正準形式506及び/又はスロット508を含み得る。いくつかの実例において、グラウンド・トゥルース・データ504は、合成的に作成された(たとえば、コンピュータ・モデルから生成された)もの、実際に作成された(たとえば、現実世界のデータから設計及び作成された)もの、機械自動化されたもの、人間によって生成されたもの、及び/又はそれらの組合せであり得る。
【0046】
たとえば、図6は、本開示のいくつかの実施例による、プロンプト・モデル106をトレーニングするためのテキスト・データ502及びグラウンド・トゥルース・データ504の実例を示す。図6の実例において、開発者及び/又は他のタイプのユーザは、特定の意図、たとえば、「残高を確認する」に基づいてプロンプト・モデル106をトレーニングしている場合がある。したがって、テキスト・データ602(1)~602(6)(テキスト・データ502を表し得る且つ/又は含み得る)(「テキスト・データ602」とも称され得る)は、その意図に関連付けられた様々なユーザ発話のトランスクリプトを表す。たとえば、第1のテキスト・データ602(1)は「私の銀行口座の金額を確認する」を含み、第2のテキスト・データ602(2)は「私の銀行口座にいくらあるか確認する」を含み、第3のテキスト・データ602(3)は「私の口座残高を確認する」を含み、第4のテキスト・データ602(4)は「私の口座にお金はあるか」を含み、第5のテキスト・データ602(5)は「私の口座残高を確認してください」を含み、第6のテキスト・データ602(6)は「私の口座残高を確認できますか」を含む。
【0047】
テキスト・データ602の各インスタンスはまた、それぞれの正準形式604(1)~604(6)(正準形式506を表し得る且つ/又は含み得る)(単数形で「正準形式(canonical form)604」又は複数形で「正準形式(canonical forms)604」とも称され得る)に関連付けられ得る。図6の実例によって示すように、正準形式604のそれぞれは「口座の残高を確認する」を含む。いくつかの実例において、対話マネージャ122が、そのような正準形式604を使用して「残高を確認する」という意図を正確に識別することが可能であるので、正準形式604は「口座の残高を確認する」を含み得る。したがって、開発者及び/又は他のユーザは、プロンプト・モデル106を特定のプロンプト・データ508を生成するようにトレーニングしている可能性があり、次いで、言語モデル112が、その特定のプロンプト・データ508を使用して、「口座の残高を確認する」という正準形式604を出力する。
【0048】
たとえば、図5を再び参照すると、プロンプト・モデル106は、本明細書に記載のプロセスのうちの1つ又は複数を実行して、テキスト・データ502を処理し、プロンプト・データ510を出力し得る。次いで、言語モデル112は、本明細書に記載のプロセスのうちの1つ又は複数を実行して、テキスト・データ502及びプロンプト・データ510を含む入力データ512と、正準形式516及び/又はテキスト・データ502に関連付けられたスロット518を表す出力データ514とを処理する。トレーニング・エンジン520は、グラウンド・トゥルース・データ504と比較した場合の、正準形式516及び/又はスロット518における損失(たとえば、誤差)を測定する、1つ又は複数の損失関数を使用し得る。いくつかの実例において、異なる出力514は、異なる損失関数を有し得る。たとえば、正準形式516は第1の損失関数を有し得、スロット518は第2の損失関数を有し得る。いくつかの実例において、損失関数を組み合わせて、総損失を形成することができ、総損失を使用して、プロンプト・モデル106をトレーニングする(たとえば、そのパラメータを更新する)ことができる。いずれの実例においても、トレーニング・パラメータに関して損失関数の勾配を再帰的に計算するために、バックワード・パス計算が実行され得る。いくつかの実例において、これらの勾配を計算するために、プロンプト・モデル106の重み及びバイアスが使用され得る。
【0049】
図5及び図6の実例は、テキスト・データ602の6個のインスタンスを使用してプロンプト・モデル106をトレーニングすることを説明しているが、他の実例では、テキスト・データ602の任意の数のインスタンス(たとえば、1個のインスタンス、5個のインスタンス、10個のインスタンス、20個のインスタンスなど)を使用して、プロンプト・モデル106がトレーニングされ得る。加えて、図5及び図6の実例は、言語システム102が同じ正準形式604を出力するように、プロンプト・モデル106をトレーニングすることを説明しているが、他の実例では、言語システム102が、対話マネージャ116も同じ意図を識別するために処理することが可能な1つ又は複数の他の正準形式604を出力するように、プロンプト・モデル106がトレーニングされ得る。たとえば、プロンプト・モデル106は、いくつかのテキスト・データ602が言語システム102に(「口座の金額を確認する」を含み得る)別の正準形式を出力させるようにトレーニングされ得る。そのような実例において、対話マネージャ116もまた、この他の正準形式に処理し、「残高を確認する」という意図を識別し得る。
【0050】
さらに、図5及び図6の実例は、単一の意図についてプロンプト・モデル106をトレーニングすることを説明しているが、他の実例では、類似のプロセスを使用して、1つ又は複数の他の意図についてプロンプト・モデル106をトレーニングすることができる。たとえば、プロンプト・モデル106はまた、言語モデル112に、第2の意図に関連付けられた正準形式、第3の意図に関連付けられた正準形式、第4の意図に関連付けられた正準形式、及び/又は同様のものを出力させるようにトレーニングされ得る。
【0051】
ここで図7及び図8を参照すると、本明細書に記載の方法700及び方法800の各ブロックは、ハードウェア、ファームウェア、及び/又はソフトウェアの任意の組合せを使用して実行され得る計算プロセスを含む。たとえば、様々な機能は、メモリに記憶されたプロセッサ実行命令によって実施され得る。方法700及び方法800はまた、コンピュータ記憶媒体に記憶されたコンピュータ使用可能命令として実施され得る。方法700及び方法800は、いくつか例を挙げると、スタンドアロン・アプリケーション、サービス若しくはホスト型サービス(スタンドアロンの若しくは別のホスト型サービスと組み合わせた)、又は別の製品へのプラグインによって提供され得る。加えて、方法700及び方法800は、例として、それぞれ図1及び図5のシステムに関して説明される。しかしながら、方法700及び方法800は、本明細書に記載のものを含むがこれらに限定されない、任意の1つのシステム、又は任意の組合せのシステムによって、加えて又は別法として、実行され得る。
【0052】
図7は、本開示のいくつかの実施例による、言語システム102を使用するための方法700を示す流れ図である。方法700は、ブロックB702において、プロンプト・モデルを使用し、テキストを表すテキスト・データに少なくとも部分的に基づいて、プロンプトを表すプロンプト・データを決定することを含み得る。たとえば、言語システム102のプロンプト・モデル106は、プロンプト・データ108を出力するために、テキスト・データ104を処理し得る。本明細書に記載のように、テキスト・データ104は、入力テキスト、ユーザ発話のトランスクリプト、及び/又は任意の他のタイプのテキストを表し得る。加えて、いくつかの実例において、プロンプト・データ108は、1つ若しくは複数の仮想プロンプト及び/又は1つ若しくは複数のプロンプト・トークンを表し得る。たとえば、プロンプト・データ108は、1つ又は複数のベクトルを表し得、各ベクトルは、テキスト・データ104を処理するときにプロンプト・モデル106によって識別される単語(又はその一部)を表す。
【0053】
方法700は、ブロックB704において、テキスト・データ及びプロンプト・データを言語モデルに入力することを含み得る。たとえば、テキスト・データ104及びプロンプト・データ108は、言語モデル112に入力され得る。いくつかの実例において、プロンプト・モデル106が、テキスト・データ104とプロンプト・データ108との両方を、言語システム102の言語モデル112に出力する。いくつかの実例において、プロンプト・モデル106が、プロンプト・データ108を言語モデル112に出力する一方で、言語システム102も、テキスト・データ104を言語モデル112に入力する。本明細書に記載のように、言語モデル112は、大規模言語モデルを含み得る。
【0054】
方法700は、ブロックB706において、言語モデルを使用し、テキスト・データ及びプロンプト・データに少なくとも部分的に基づいて、テキストに関連付けられた正準形式を決定することを含み得る。たとえば、言語モデル112は、正準形式114で出力を生成するために、テキスト・データ104及びプロンプト・データ108を処理し得る。本明細書に記載のように、正準形式114は、テキスト・データ104によって表されるテキストの自然言語の制約付き意味論的表現を含み得る。いくつかの実例において、正準形式114を決定するために、言語モデル112によって決定された1つ又は複数の単語に対して、ベクトルが決定される。次いで、ベクトルに基づいて最終的なベクトルが決定され、最終的なベクトルは、単語に関連付けられた文の意味を表す文ベクトルに対応する。次いで、最終的なベクトルを使用して、正準形式114に関連付けられた別のベクトルに最も近い一致を見出すことなどによって、正準形式114を決定する。
【0055】
方法700は、ブロックB708において、正準形式に関連付けられた意図を決定することを含み得る。たとえば、正準モデル116は、正準形式114を処理し、テキスト・データ104に関連付けられた意図を決定し得る。いくつかの実例において、正準モデル116及び/又は言語モデル112はさらに、意図に関連付けられた1つ又は複数のスロットに関する情報(たとえば、1つ又は複数のパラメータ)を決定し得る。言語システム102は、次いで、意図及びスロットを処理する対話マネージャ122に意図及びスロットを入力し得る。対話マネージャ122は、処理に基づいて、実行すべき1つ又は複数のアクションを決定し得る。
【0056】
図8は、本開示のいくつかの実施例による、言語システム102をトレーニングするための方法800を示す流れ図である。方法800は、ブロックB802において、プロンプト・モデルを使用し、テキストを表すトレーニング・テキスト・データに少なくとも部分的に基づいて、1つ又は複数のプロンプトを表すプロンプト・データを決定することを含み得る。たとえば、言語システム102のプロンプト・モデル106は、プロンプト・データ510を出力するために、テキスト・データ502を処理し得る。本明細書に記載のように、テキスト・データ502は、テキスト、たとえば、様々な文字、単語、記号、数字、語句、文、トランスクリプト、及び/又は他のグループを表し得る。いくつかの実例において、テキスト・データ502は、単一の意図に関連付けられた単語の1つ又は複数のグループを含み得る。いくつかの実例において、テキスト・データ502は、2つ以上の意図に関連付けられた単語の1つ又は複数のグループを含み得る。
【0057】
方法800は、ブロックB804において、テキスト・データ及びプロンプト・データを言語モデルに入力することを含み得る。たとえば、テキスト・データ104及びプロンプト・データ108は、言語システム102の言語モデル112に入力され得る。いくつかの実例において、プロンプト・モデル106が、テキスト・データ104とプロンプト・データ108との両方を、言語モデル112に出力する。いくつかの実例において、プロンプト・モデル106が、プロンプト・データ108を言語モデル112に出力する一方で、言語システム102も、テキスト・データ104を言語モデル112に入力する。本明細書に記載のように、言語モデル112は、大規模言語モデルを含み得る。
【0058】
方法800は、ブロックB806において、言語モデルを使用し、テキスト・データ及びプロンプト・データに少なくとも部分的に基づいて、テキストに関連付けられた1つ又は複数の正準形式を決定することを含み得る。たとえば、言語モデル112は、正準形式516を生成するために、テキスト・データ502及びプロンプト・データ510を処理し得る。本明細書に記載のように、正準形式516は、テキスト・データ502によって表されるテキストの自然言語の制約付き意味論的表現を含み得る。たとえば、正準形式516は、言語モデル112によって生成された正準形式114と類似している場合がある。
【0059】
しかしながら、いくつかの実例において、正準形式を決定するために、言語モデル112によって決定された各単語に対して、ベクトルが決定される。次いで、ベクトルに基づいて最終的なベクトルが決定され、最終的なベクトルは、単語に関連付けられた文の意味を表す文ベクトルに対応する。次いで、最終的なベクトルを使用して、正準形式516に関連付けられた別のベクトルに最も近い一致を見出すことなどによって、正準形式516を決定する。
【0060】
方法800は、ブロックB808において、1つ又は複数の正準形式及びグラウンド・トゥルース・データに少なくとも部分的に基づいて、プロンプト・モデルに関連付けられた1つ又は複数のパラメータを更新することを含み得る。たとえば、トレーニング・エンジン516は、正準形式512及びグラウンド・トゥルース・データ504に基づいて、1つ又は複数の誤差を決定し得る。トレーニング・エンジン516は、次いで、誤差に基づいて、プロンプト・モデル106のパラメータを更新し得る。パラメータを更新することによって、プロンプト・モデル106は、言語モデル112に意図に対する正しい正準形式512をより正確に決定させる、プロンプト・データ508を出力し得る。
【0061】
例示的コンピューティング・デバイス
図9は、本開示のいくつかの実施例の実装において使用するのに適した例示的コンピューティング・デバイス900のブロック図である。コンピューティング・デバイス900は、以下のデバイスを直接に又は間接に結合する相互接続システム902を含み得る:メモリ904、1つ又は複数の中央処理装置(CPU:central processing unit)906、1つ又は複数のグラフィックス・プロセッシング・ユニット(GPU:graphics processing unit)908、通信インターフェース910、入力/出力(I/O:input/ouput)ポート912、入力/出力構成要素914、電力供給装置916、1つ又は複数のプレゼンテーション構成要素918(たとえば、ディスプレイ)、及び1つ又は複数の論理ユニット920。少なくとも1つの実施例において、コンピューティング・デバイス900は、1つ又は複数の仮想機械(VM)を含み得る、及び/又は、その構成要素のいずれかは、仮想構成要素(たとえば、仮想ハードウェア構成要素)を含み得る。非限定的実例として、GPU908のうちの1つ又は複数は、1つ又は複数のvGPUを含み得、CPU906のうちの1つ又は複数は、1つ又は複数のvCPUを含み得、及び/又は論理ユニット920のうちの1つ又は複数は、1つ又は複数の仮想論理ユニットを含み得る。そのようなものとして、コンピューティング・デバイス900は、個別の構成要素(たとえば、コンピューティング・デバイス900専用の完全なGPU)、仮想構成要素(たとえば、コンピューティング・デバイス900専用のGPUの一部分)、又はその組合せを含み得る。
【0062】
図9の様々なブロックは、線を有する相互接続システム902を介して接続されるものとして示されているが、これは限定を意図しておらず、単に明確にすることを目的としている。たとえば、いくつかの実施例において、プレゼンテーション構成要素918、たとえば、ディスプレイ・デバイス、は、I/O構成要素914と考えられ得る(たとえば、ディスプレイがタッチスクリーンである場合)。別の実例として、CPU906及び/又はGPU908は、メモリを含み得る(たとえば、メモリ904は、GPU908、CPU906、及び/又は他の構成要素のメモリに加えた記憶デバイスを表し得る)。言い換えれば、図9のコンピューティング・デバイスは、単に、例示である。「ワークステーション」、「サーバ」、「ラップトップ」、「デスクトップ」、「タブレット」、「クライアント・デバイス」、「モバイル・デバイス」、「ハンドヘルド・デバイス」、「ゲーム機」、「電子制御ユニット(ECU)」、「仮想現実システム」、及び/又は他のデバイス又はシステム・タイプのようなカテゴリは、すべて、図9のコンピューティング・デバイスの範囲内にあることが企図されているので、区別されない。
【0063】
相互接続システム902は、1つ又は複数のリンク又はバス、たとえば、アドレス・バス、データ・バス、制御バス、又はその組合せ、を表し得る。相互接続システム902は、1つ又は複数のバス又はリンク・タイプ、たとえば、業界標準アーキテクチャ(ISA:industry standard Architecture)バス、拡張業界標準アーキテクチャ(EISA:extended industry standard Architecture)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA:video electronics standards association)バス、周辺構成要素相互接続(PCI:peripheral component interconnect)バス、周辺構成要素相互接続エクスプレス(PCIe:peripheral component interconnect express)バス、及び/又は別のタイプのバス若しくはリンク、を含み得る。いくつかの実施例において、構成要素間の直接接続が存在する。一実例として、CPU906は、メモリ904に直接接続され得る。さらに、CPU906は、GPU908に直接接続され得る。構成要素間に直接、又は2地点間接続があるとき、相互接続システム902は、接続を実施するためのPCIeリンクを含み得る。これらの実例において、PCIバスは、コンピューティング・デバイス900に含まれる必要はない。
【0064】
メモリ904は、様々なコンピュータ可読媒体のいずれかを含み得る。コンピュータ可読媒体は、コンピューティング・デバイス900によってアクセスされ得る任意の利用可能な媒体でもよい。コンピュータ可読媒体は、揮発性媒体及び不揮発性媒体の両方、並びに取り外し可能な媒体及び取り外し不可能な媒体を含み得る。実例として、そして限定ではなく、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含み得る。
【0065】
コンピュータ記憶媒体は、情報、たとえば、コンピュータ可読命令、データ構造、プログラム・モジュール、及び/又は他のデータ・タイプ、を記憶するための任意の方法又は技術において実装される揮発性媒体及び不揮発性媒体の両方及び/又は取り外し可能な媒体及び取り外し不可能な媒体を含み得る。たとえば、メモリ904は、コンピュータ可読命令(たとえば、プログラム及び/又はプログラム要素、たとえば、オペレーティング・システム、を表すを記憶し得る。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュ・メモリ又は他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD:digital versatile disk)又は他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶デバイス、或いは、所望の情報を記憶するために使用され得る及びコンピューティング・デバイス900によってアクセスされ得る任意の他の媒体を含み得るが、これらに限定されない。本明細書では、コンピュータ記憶媒体は、信号それ自体を含まない。
【0066】
コンピュータ記憶媒体は、変調されたデータ信号、たとえば、搬送波又は他のトランスポート機構、においてコンピュータ可読命令、データ構造、プログラム・モジュール、及び/又は他のデータ・タイプを実施し得、任意の情報配信媒体を含む。「変調されたデータ信号」という用語は、信号において情報をエンコードするための方式などで設定又は変更されたそれの特徴のうちの1つ又は複数を有する信号を指し得る。実例として、及び限定ではなく、コンピュータ記憶媒体は、有線媒体、たとえば、有線ネットワーク又は直接有線接続、とワイヤレス媒体、たとえば、音響、RF、赤外線及び他のワイヤレス媒体、とを含み得る。前述のうちのいずれかの組合せもまた、コンピュータ可読媒体の範囲に含まれるべきである。
【0067】
CPU906は、コンピューティング・デバイス900の1つ又は複数の構成要素を制御して本明細書に記載の方法及び/又はプロセスのうちの1つ又は複数を実行するためのコンピュータ可読命令のうちの少なくともいくつかを実行するように構成され得る。CPU906は、多数のソフトウェア・スレッドを同時に処理する能力を有する1つ又は複数のコア(たとえば、1、2、4、8、28、72など)をそれぞれ含み得る。CPU906は、任意のタイプのプロセッサを含み得、実装されるコンピューティング・デバイス900のタイプ(たとえば、モバイル・デバイスのためのより少数のコアを有するプロセッサ及びサーバのためのより多数のコアを有するプロセッサ)に応じて、異なるタイプのプロセッサを含み得る。たとえば、コンピューティング・デバイス900のタイプに応じて、プロセッサは、縮小命令セット・コンピューティング(RISC:Reduced Instruction Set Computing)を使用して実装されるアドバンストRISC機械(ARM:Advanced RISC Machine)プロセッサ又は複合命令セット・コンピュータ(CISC:Complex Instruction Set Computing)を使用して実装されるx86プロセッサでもよい。コンピューティング・デバイス900は、1つ又は複数のマイクロプロセッサ又は補足のコプロセッサ、たとえば、数値演算コプロセッサ、に加えて、1つ又は複数のCPU906を含み得る。
【0068】
CPU906に加えて、又はその代わりに、GPU908は、コンピューティング・デバイス900の1つ又は複数の構成要素を制御して本明細書に記載の方法及び/又はプロセスのうちの1つ又は複数を実行するためのコンピュータ可読命令のうちの少なくともいくつかを実行するように構成され得る。GPU908のうちの1つ又は複数は、統合型GPUでもよく(たとえば、CPU906のうちの1つ又は複数を有する、及び/或いは、GPU908のうちの1つ又は複数は、個別のGPUでもよい。実施例において、GPU908のうちの1つ又は複数は、CPU906のうちの1つ又は複数のCPUのコプロセッサでもよい。GPU908は、グラフィックス(たとえば、3Dグラフィックス)をレンダリングする又は汎用計算を実行するために、コンピューティング・デバイス900によって使用され得る。たとえば、GPU908は、GPUでの汎用計算(GPGPU:General-Purpose computing on GPU)のために使用され得る。GPU908は、数百又は数千のソフトウェア・スレッドを同時に処理する能力を有する数百又は数千のコアを含み得る。GPU908は、レンダリング・コマンド(たとえば、ホスト・インターフェースを介して受信されるCPU906からのレンダリング・コマンド)に応答して出力画像の画素データを生成し得る。GPU908は、画素データ又は任意の他の適したデータ、たとえば、GPGPUデータ、を記憶するためのグラフィックス・メモリ、たとえば、ディスプレイ・メモリ、を含み得る。ディスプレイ・メモリは、メモリ904の一部として含まれ得る。GPU908は、並行して(たとえば、リンクを介して)動作する2つ以上のGPUを含み得る。リンクは、GPUを直接接続する(たとえば、NVLINKを使用して)ことができる、又はスイッチを介して(たとえば、NVSwitchを使用して)GPUを接続することができる。ともに結合されるとき、各GPU908は、出力の異なる部分の又は異なる出力の画素データ又はGPGPUデータ(たとえば、第1の画像の第1のGPU及び第2の画像の第2のGPU)を生成することができる。各GPUは、それ自体のメモリを含むことができる、又は他のGPUとメモリを共用することができる。
【0069】
CPU906及び/又はGPU908に加えて又はその代わりに、論理ユニット920は、コンピューティング・デバイス900の1つ又は複数の構成要素を制御して本明細書に記載の方法及び/又はプロセスのうちの1つ又は複数を実行するためのコンピュータ可読命令のうちの少なくともいくつかを実行するように構成され得る。実施例において、CPU906、GPU908、及び/又は論理ユニット920は、方法、プロセス及び/又はそれの部分の任意の組合せを別個に又はともに実行することができる。論理ユニット920のうちの1つ又は複数は、CPU906及び/又はGPU908のうちの1つ又は複数の部分でもよい及び/又はそれに統合することができ、及び/又は、論理ユニット920のうちの1つ又は複数は、個別の構成要素でもよい又は他の方法でCPU906及び/又はGPU908の外部でもよい。実施例において、論理ユニット920のうちの1つ又は複数は、CPU906のうちの1つ又は複数及び/又はGPU908のうちの1つ又は複数のコプロセッサでもよい。
【0070】
論理ユニット920の実例は、1つ又は複数の処理コア及び/又はその構成要素、たとえば、データ・プロセッシング・ユニット(DPU:Data Processing Units)、テンソル・コア(TC:Tensor Core)、テンソル・プロセッシング・ユニット(TPU:Tensor Processing Unit)、画素ビジュアル・コア(PVC:Pixel Visual Core)、ビジョン・プロセッシング・ユニット(VPU:Vision Processing Unit)、グラフィックス・プロセッシング・クラスタ(GPC:Graphics Processing Cluster)、テクスチャ・プロセッシング・クラスタ(TPC:Texture Processing Cluster)、ストリーミング・マルチプロセッサ(SM:Streaming Multiprocessor)、木の走査ユニット(TTU:Tree Traversal Unit)、人工知能アクセラレータ(AIA:Artificial Intelligence Accelerator)、深層学習アクセラレータ(DLA:Deep Learning Accelerator)、演算論理ユニット(ALU:Arithmetic-Logic Unit)、特定用途向け集積回路(ASIC:Application-Specific Integrated Circuit)、浮動小数点ユニット(FPU:Floating Point Unit)、入力/出力(I/O)要素、周辺構成要素相互接続(PCI)又は周辺構成要素相互接続エクスプレス(PCIe)要素、及び/又は同類のものを含む。
【0071】
通信インターフェース910は、有線及び/又はワイヤレス通信を含む、電子通信ネットワークを介してコンピューティング・デバイス900が他のコンピューティング・デバイスと通信することを可能にする1つ又は複数の受信器、送信器、及び/又は送受信器を含み得る。通信インターフェース910は、いくつかの異なるネットワーク、たとえば、ワイヤレス・ネットワーク(たとえば、Wi-Fi、Z-Wave、ブルートゥース(登録商標)、ブルートゥース(登録商標)LE、ZigBee(登録商標)など)、有線ネットワーク(たとえば、イーサネット(登録商標)又はInfiniBandを介して通信する)、低電力ワイド・エリア・ネットワーク(たとえば、LoRaWAN、SigFoxなど)、及び/又はインターネット、のいずれかを介する通信を可能にするための構成要素及び機能性を含み得る。1つ又は複数の実施例において、論理ユニット920及び/又は通信インターフェース910は、ネットワークを介して及び/又は相互接続システム902を介して受信したデータを1つ又は複数のGPU908(たとえば、そのメモリ)に直接送信するための、1つ又は複数のデータ・プロセッシング・ユニット(DPU)を含み得る。
【0072】
I/Oポート912は、それらのうちのいくつかはコンピューティング・デバイス900に組み込む(たとえば、統合する)ことができる、I/O構成要素914、プレゼンテーション構成要素918、及び/又は他の構成要素を含む他のデバイスに、コンピューティング・デバイス900が論理的に結合されることを可能にし得る。例示的I/O構成要素914は、マイクロフォン、マウス、キーボード、ジョイスティック、ゲーム・パッド、ゲーム・コントローラ、サテライト・ディッシュ、スキャナ、プリンタ、ワイヤレス・デバイスなどを含む。I/O構成要素914は、ユーザによって生成されるエア・ジェスチャ、音声、又は他の生理的入力を処理するナチュラル・ユーザ・インターフェース(NUI:natural user interfac)を提供し得る。いくつかの事例において、入力は、さらに処理するために適切なネットワーク要素に送信され得る。NUIは、音声認識、スタイラス認識、顔認識、生体認識、画面上の及び画面付近両方でのジェスチャの認識、エア・ジェスチャ、頭部及び視標追跡、及びコンピューティング・デバイス900のディスプレイに関連するタッチ認識(さらに詳しく後述するような)の任意の組合せを実装し得る。コンピューティング・デバイス900は、ジェスチャ検出及び認識のための深度カメラ、たとえば、ステレオ・カメラ・システム、赤外線カメラ・システム、RGBカメラ・システム、タッチスクリーン技術、及びこれらの組合せを含み得る。加えて、コンピューティング・デバイス900は、動きの検出を可能にする加速度計又はジャイロスコープ(たとえば、慣性測定ユニット(IMU:inertia measurement unit)の一部としての)を含み得る。いくつかの実例において、加速度計又はジャイロスコープの出力は、没入型拡張現実又は仮想現実をレンダリングするためにコンピューティング・デバイス900によって使用され得る。
【0073】
電力供給装置916は、ハードワイヤード電力供給装置、バッテリ電力供給装置、又はその組合せを含み得る。電力供給装置916は、コンピューティング・デバイス900の構成要素が動作することを可能にするために、コンピューティング・デバイス900に電力を提供することができる。
【0074】
プレゼンテーション構成要素918は、ディスプレイ(たとえば、モニタ、タッチスクリーン、テレビジョン画面、ヘッドアップディスプレイ(HUD:heads-up-display)、他のディスプレイ・タイプ、又はその組合せ)、スピーカ、及び/又は他のプレゼンテーション構成要素を含み得る。プレゼンテーション構成要素918は、他の構成要素(たとえば、GPU908、CPU906、DPUなど)からデータを受信し、データを出力する(たとえば、画像、ビデオ、サウンドなどとして)ことができる。
【0075】
例示的データ・センタ
図10は、本開示の少なくとも1つの実施例において使用され得る例示的データ・センタ1000を示す。データ・センタ1000は、データ・センタ・インフラストラクチャ層1010、フレームワーク層1020、ソフトウェア層1030、及び/又はアプリケーション層1040を含み得る。
【0076】
図10に示すように、データ・センタ・インフラストラクチャ層1010は、資源オーケストレータ1012、グループ化された計算資源1014、及びノード計算資源(「ノードC.R.」)1016(1)~1016(N)を含むことができ、そこで、「N」は、任意の完全な、正の整数を表す。少なくとも1つの実施例において、ノードC.R.1016(1)~1016(N)は、任意の数の中央処理装置(「CPU」)又は他のプロセッサ(DPU、アクセラレータ、フィールド・プログラマブル・ゲート・アレイ(FPGA:field programmable gate array)、グラフィックス・プロセッサ又はグラフィックス・プロセッシング・ユニット(GPU)などを含む)、メモリ・デバイス(たとえば、ダイナミック・リードオンリ・メモリ)、記憶デバイス(たとえば、ソリッド・ステート又はディスク・ドライブ)、ネットワーク入力/出力(「NW I/O」:network input/output)デバイス、ネットワーク・スイッチ、仮想機械(「VM」)、電力モジュール、及び/又は冷却モジュールなどを含み得るが、これらに限定されない。いくつかの実施例において、ノードC.R.1016(1)~1016(N)のうちの1つ又は複数のノードC.R.は、前述の計算資源のうちの1つ又は複数を有するサーバに対応し得る。加えて、いくつかの実施例において、ノードC.R.1016(1)~10161(N)は、1つ又は複数の仮想構成要素、たとえば、vGPU、vCPU、及び/又は同類のもの、を含み得る、及び/又は、ノードC.R.1016(1)~1016(N)のうちの1つ又は複数は、仮想機械(VM)に対応し得る。
【0077】
少なくとも1つの実施例において、グループ化された計算資源1014は、1つ又は複数のラック(図示せず)に格納された別個のグループのノードC.R.1016、或いは様々な地理的場所にあるデータ・センタに格納された多数のラック(やはり図示せず)を含み得る。グループ化された計算資源1014内のノードC.R.1016の別個のグループは、1つ又は複数のワークロードをサポートするために構成され得る又は割り当てられ得るグループ化された計算、ネットワーク、メモリ又はストレージ資源を含み得る。少なくとも1つの実施例において、CPU、GPU、DPU、及び/又は他のプロセッサを含むいくつかのノードC.R.1016は、1つ又は複数のワークロードをサポートするための計算資源を提供するために、1つ又は複数のラック内にグループ化され得る。1つ又は複数のラックはまた、任意の数の電力モジュール、冷却モジュール、及び/又はネットワーク・スイッチを、任意の組合せで、含み得る。
【0078】
資源オーケストレータ1012は、1つ又は複数のノードC.R.1016(1)~1016(N)及び/又はグループ化された計算資源1014を構成又は他の方法で制御することができる。少なくとも1つの実施例において、資源オーケストレータ1012は、データ・センタ1000のためのソフトウェア設計インフラストラクチャ(SDI:software design infrastructure)管理エンティティを含み得る。資源オーケストレータ1012は、ハードウェア、ソフトウェア、又はその何らかの組合せを含み得る。
【0079】
少なくとも1つの実施例において、図10に示すように、フレームワーク層1020は、ジョブ・スケジューラ1028、構成マネージャ1034、資源マネージャ1036、及び/又は分散型ファイル・システム1038を含み得る。フレームワーク層1020は、ソフトウェア層1030のソフトウェア1032及び/又はアプリケーション層1040の1つ若しくは複数のアプリケーション1042をサポートするために、フレームワークを含み得る。ソフトウェア1032又はアプリケーション1042は、ウェブベースのサービス・ソフトウェア又はアプリケーション、たとえば、アマゾン・ウェブ・サービス、グーグル・クラウド及びMicrosoft Azureによって提供されるもの、をそれぞれ含み得る。フレームワーク層1020は、大規模データ処理(たとえば、「ビッグ・データ」)のための分散型ファイル・システム1038を使用し得るApache Spark(商標)(以下「Spark」)などのフリー及びオープン・ソース・ソフトウェア・ウェブ・アプリケーション・フレームワークのタイプでもよいが、これに限定されない。少なくとも1つの実施例において、ジョブ・スケジューラ1028は、データ・センタ1000の様々な層によってサポートされるワークロードのスケジューリングを容易にするために、Sparkドライバを含み得る。構成マネージャ1034は、異なる層、たとえば、ソフトウェア層1030と、大規模データ処理をサポートするためのSpark及び分散型ファイル・システム1038を含むフレームワーク層1020、を構成する能力を有し得る。資源マネージャ1036は、分散型ファイル・システム1038及びジョブ・スケジューラ1028のサポートのためにマップされた又は割り当てられたクラスタ化された又はグループ化された計算資源を管理する能力を有し得る。少なくとも1つの実施例において、クラスタ化された又はグループ化された計算資源は、データ・センタ・インフラストラクチャ層1010にグループ化された計算資源1014を含み得る。資源マネージャ1036は、資源オーケストレータ1012と調整してこれらのマップされた又は割り当てられた計算資源を管理することができる。
【0080】
少なくとも1つの実施例において、ソフトウェア層1030に含まれるソフトウェア1032は、ノードC.R.1016(1)~1016(N)の少なくとも部分、グループ化された計算資源1014、及び/又はフレームワーク層1020の分散型ファイル・システム1038によって使用されるソフトウェアを含み得る。1つ又は複数のタイプのソフトウェアは、インターネット・ウェブ・ページ検索ソフトウェア、電子メール・ウイルス・スキャン・ソフトウェア、データベース・ソフトウェア、及びストリーミング・ビデオ・コンテンツ・ソフトウェアを含み得るが、これらに限定されない。
【0081】
少なくとも1つの実施例において、アプリケーション層1040に含まれるアプリケーション1042は、ノードC.R.1016(1)~1016(N)の少なくとも部分、グループ化された計算資源1014、及び/又はフレームワーク層1020の分散型ファイル・システム1038によって使用される1つ又は複数のタイプのアプリケーションを含み得る。1つ又は複数のタイプのアプリケーションは、任意の数のゲノミクス・アプリケーション、認知計算、並びに、トレーニング若しくは推論ソフトウェア、機械学習フレームワーク・ソフトウェア(たとえば、PyTorch、TensorFlow、Caffeなど)、及び/又は1つ又は複数の実施例と併せて使用される他の機械学習アプリケーションを含む、機械学習アプリケーションを含み得るが、これらに限定されない。
【0082】
少なくとも1つの実施例において、構成マネージャ1034、資源マネージャ1036、及び資源オーケストレータ1012のうちのいずれかは、任意の技術的に可能な方式で取得される任意の量及びタイプのデータに基づいて任意の数及びタイプの自己書換え型アクションを実装することができる。自己書換え型アクションは、よくない可能性のある構成決定を行うこと及びデータ・センタの十分に活用されていない及び/又は実行の不十分な部分をおそらく回避することからデータ・センタ1000のデータ・センタ・オペレータを解放し得る。
【0083】
データ・センタ1000は、1つ又は複数の機械学習モデルをトレーニングする或いは本明細書に記載の1つ又は複数の実施例による1つ又は複数の機械学習モデルを使用して情報を予測する又は推論するために、ツール、サービス、ソフトウェア或いは他の資源を含み得る。たとえば、機械学習モデルは、データ・センタ1000に関して前述されたソフトウェア及び/又は計算資源を使用するニューラル・ネットワーク・アーキテクチャによる重みパラメータの計算によって、トレーニングされ得る。少なくとも1つの実施例において、1つ又は複数のニューラル・ネットワークに対応するトレーニングされた又は配備された機械学習モデルは、たとえば、本明細書に記載のものに限定されない、1つ又は複数のトレーニング技法を介して計算された重みパラメータを使用することによって、データ・センタ1000に関して前述された資源を使用する情報の推論又は予測のために使用され得る。
【0084】
少なくとも1つの実施例において、データ・センタ1000は、前述の資源を使用するトレーニング及び/又は推論の実行のために、CPU、特定用途向け集積回路(ASIC)、GPU、FPGA、及び/又は他のハードウェア(若しくはそれに対応する仮想計算資源)を使用することができる。さらに、前述の1つ又は複数のソフトウェア及び/又はハードウェア資源は、情報の推論をユーザがトレーニング又は実行することを可能にするためのサービス、たとえば、画像認識、音声認識、又は他の人工知能サービス、として構成され得る。
【0085】
例示的ネットワーク環境
本開示の実施例の実装において使用するのに適したネットワーク環境は、1つ又は複数のクライアント・デバイス、サーバ、ネットワーク接続型ストレージ(NAS:network attached storage)、他のバックエンド・デバイス、及び/又は他のデバイス・タイプを含み得る。クライアント・デバイス、サーバ、及び/又は他のデバイス・タイプ(たとえば、各デバイス)は、図9のコンピューティング・デバイス900の1つ又は複数のインスタンスで実装され得る- たとえば、各デバイスは、コンピューティング・デバイス900の類似の構成要素、特徴、及び/又は機能性を含み得る。加えて、バックエンド・デバイス(たとえば、サーバ、NASなど)が、実装される場合、バックエンド・デバイスは、データ・センタ1000の一部として含まれ得、その実例は、図10に関して本明細書でさらに詳述される。
【0086】
ネットワーク環境の構成要素は、有線、ワイヤレス、又はその両方でもよい、ネットワークを介して互いに通信し得る。ネットワークは、複数のネットワーク、又はネットワークのネットワークを含み得る。実例として、ネットワークは、1つ又は複数のワイド・エリア・ネットワーク(WAN)、1つ又は複数のローカル・エリア・ネットワーク(LAN)、1つ又は複数のパブリック・ネットワーク、たとえば、インターネット及び/又は公衆交換電話網(PSTN)、及び/又は1つ又は複数のプライベート・ネットワークを含み得る。ネットワークが、ワイヤレス電気通信ネットワークを含む場合、構成要素、たとえば、基地局、通信塔、又はアクセス・ポイントなどさえも(他の構成要素と同様に)、ワイヤレス接続を提供し得る。
【0087】
互換性のあるネットワーク環境は、1つ又は複数のピア・ツー・ピア・ネットワーク環境- サーバがネットワーク環境に含まれないことがある場合- と、1つ又は複数のクライアント・サーバ・ネットワーク環境- 1つ又は複数のサーバがネットワーク環境に含まれ得る場合- とを含み得る。ピア・ツー・ピア・ネットワーク環境では、サーバに関して本明細書に記載した機能性は、任意の数のクライアント・デバイスに実装され得る。
【0088】
少なくとも1つの実施例において、ネットワーク環境は、1つ又は複数のクラウドベースのネットワーク環境、分散された計算環境、その組合せなどを含み得る。クラウドベースのネットワーク環境は、フレームワーク層、ジョブ・スケジューラ、資源マネージャ、並びに、1つ又は複数のコア・ネットワーク・サーバ及び/又はエッジ・サーバを含み得る、サーバのうちの1つ又は複数に実装された分散型ファイル・システムを含み得る。フレームワーク層は、ソフトウェア層のソフトウェア及び/又はアプリケーション層の1つ又は複数のアプリケーションをサポートするために、フレームワークを含み得る。ソフトウェア又はアプリケーションは、それぞれ、ウェブベースのサービス・ソフトウェア又はアプリケーションを含み得る。実施例において、クライアント・デバイスのうちの1つ又は複数は、ウェブベースのサービス・ソフトウェア又はアプリケーションを使用し得る(たとえば、1つ又は複数のアプリケーション・プログラミング・インターフェース(API:application programming interface)を介してサービス・ソフトウェア及び/又はアプリケーションにアクセスすることによって)。フレームワーク層は、たとえば大規模データ処理(たとえば、「ビッグ・データ」)のための分散型ファイル・システムを使用し得る、フリー及びオープン・ソース・ソフトウェア・ウェブ・アプリケーション・フレームワークのタイプでもよいが、これに限定されない。
【0089】
クラウドベースのネットワーク環境は、本明細書に記載の計算及び/又はデータ・ストレージ機能(又は1つ若しくは複数のその部分)の任意の組合せを実施するクラウド計算及び/又はクラウド・ストレージを提供し得る。これらの様々な機能のいずれも、セントラル又はコア・サーバ(たとえば、州、領域、国、世界に分散され得る1つ又は複数のデータ・センタなどの)から複数の場所に分散され得る。ユーザ(たとえば、クライアント・デバイス)への接続が、エッジ・サーバに比較的近い場合、コア・サーバは、機能性の少なくとも一部分をエッジ・サーバに任じ得る。クラウドベースのネットワーク環境は、プライベート(たとえば、単一の組織に限定される)でもよく、パブリック(たとえば、多数の組織に利用可能)、及び/又はその組合せ(たとえば、ハイブリッド・クラウド環境)でもよい。
【0090】
クライアント・デバイスは、図9に関して本明細書に記載の例示的コンピューティング・デバイス900の構成要素、特徴、及び機能性のうちの少なくともいくつかを含み得る。実例として、及び限定ではなく、クライアント・デバイスは、パーソナル・コンピュータ(PC)、ラップトップ・コンピュータ、モバイル・デバイス、スマートフォン、タブレット・コンピュータ、スマート・ウォッチ、ウェアラブル・コンピュータ、パーソナル・デジタル・アシスタント(PDA:Personal Digital Assistant)、MP3プレーヤ、仮想現実ヘッドセット、全地球測位システム(GPS)又はデバイス、ビデオプレーヤ、ビデオカメラ、監視デバイス又はシステム、車両、船、飛行船、仮想機械、ドローン、ロボット、ハンドヘルド通信デバイス、病院デバイス、ゲーミング・デバイス又はシステム、娯楽システム、車両コンピュータ・システム、組み込み型システム・コントローラ、リモート制御、器具、民生用電子デバイス、ワークステーション、エッジ・デバイス、これらの描写されたデバイスの任意の組合せ、或いは任意の他の適切なデバイスとして実施され得る。
【0091】
本開示は、コンピュータ又は他の機械、たとえば、パーソナル・データ・アシスタント又は他のハンドヘルド・デバイス、によって実行されている、プログラム・モジュールなどのコンピュータ実行可能命令を含む、コンピュータ・コード又は機械使用可能命令との一般的関連において説明され得る。一般に、ルーティン、プログラム、オブジェクト、構成要素、データ構造などを含む、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ・タイプを実装するコードを指す。本開示は、ハンドヘルド・デバイス、民生用電子機器、汎用コンピュータ、より専門的コンピューティング・デバイスなどを含む、様々なシステム構成において実施され得る。本開示はまた、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散型計算環境において実施され得る。
【0092】
本明細書では、2つ以上の要素に関する「及び/又は」の記述は、1つのみの要素、又は要素の組合せを意味すると解釈されるべきである。たとえば、「要素A、要素B、及び/又は要素C」は、要素Aのみ、要素Bのみ、要素Cのみ、要素A及び要素B、要素A及び要素C、要素B及び要素C、或いは要素A、B、及びCを含み得る。加えて、「要素A又は要素Bのうちの少なくとも1つ」は、要素Aのうちの少なくとも1つ、要素Bのうちの少なくとも1つ、或いは要素Aのうちの少なくとも1つ及び要素Bのうちの少なくとも1つを含み得る。さらに、「要素A及び要素Bのうちの少なくとも1つ」は、要素Aのうちの少なくとも1つ、要素Bのうちの少なくとも1つ、或いは要素Aのうちの少なくとも1つ及び要素Bのうちの少なくとも1つを含み得る。
【0093】
本開示の主題は、法的要件を満たすために、本明細書に記載の特異性を有して説明されている。しかしながら、その説明自体は、本開示の範囲を限定することを意図していない。そうではなくて、本発明者により、他の現在又は未来の技術と併せて、本文書に記載されているものと類似の異なるステップ又はステップの組合せを含むために、本請求の主題は他のやり方でも実施され得ることが企図されている。さらに、「ステップ」及び/又は「ブロック」という用語が、用いられる方法の異なる要素を含意するために、本明細書で使用され得るが、それらの用語は、個々のステップの順番が明示的に記載されていない限り及びそのように記載されているときを除いて、本明細書に記載の様々なステップの間の任意の特定の順番を暗示するものとして解釈されるべきではない。
図1
図2A
図2B
図3
図4
図5
図6
図7
図8
図9
図10
【外国語明細書】