(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024043563
(43)【公開日】2024-04-01
(54)【発明の名称】大規模言語モデルを使用する自然言語処理アプリケーション
(51)【国際特許分類】
G06F 16/90 20190101AFI20240325BHJP
G06F 40/216 20200101ALI20240325BHJP
G06F 40/56 20200101ALI20240325BHJP
【FI】
G06F16/90 100
G06F40/216
G06F40/56
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022163756
(22)【出願日】2022-10-12
(31)【優先権主張番号】17/947,946
(32)【優先日】2022-09-19
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
(71)【出願人】
【識別番号】501450960
【氏名又は名称】エヌビディア コーポレーション
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】ライアン リアリー
(72)【発明者】
【氏名】ジョナサン コーエン
【テーマコード(参考)】
5B091
5B175
【Fターム(参考)】
5B091AA15
5B091CA01
5B091CA12
5B091CA14
5B091CA21
5B091EA01
5B091EA02
5B175DA01
5B175EA01
(57)【要約】 (修正有)
【課題】大規模モデルを再訓練する必要なしに、そのモデルを使用して特定のタイプのタスクを実施する方法、プロセッサ及びシステムを提供する。
【解決手段】カスタム・エンドポイントを生成する方法は、カスタム・エンドポイントが、1つ又は複数のガイダンス機構の仕様によって指示されるように、特定のタイプのタスクのために訓練される。ガイダンス機構は、テキストのストリングに関するタイプのタスクを実施する際にモデルをガイドするための要求に追加されるか又はその要求とともに使用される。そのような要求を受信するエンドポイントは、モデルによって必要とされるフォーマットで要求を得るために必要とされるマーシャリングを実施する。このストリングを受信するモデルは、ガイダンス機構に従ってテキストを処理する。そのような手法は、様々なタスクが単一のモデルによって実施されることを可能にする。
【選択図】
図6
【特許請求の範囲】
【請求項1】
少なくとも、2つ又はそれ以上の通信可能に結合されたコンピューティング・デバイスのシステムのエンドポイントにおいて受信された要求に基づいて、前記要求に関連付けられた自然言語テキスト・ストリングを決定するステップと、
少なくとも、前記自然言語テキスト・ストリングと前記エンドポイントに関連付けられたタスクとに基づいて、前記要求に関連付けられた1つ又は複数のガイダンス機構を決定するステップと、
言語モデルを使用して、及び少なくとも、前記1つ又は複数のガイダンス機構に基づいて、前記要求に対応するテキスト結果を生成するために前記自然言語テキスト・ストリングを処理するステップと、
前記エンドポイントを使用して、前記要求に対する応答を生成するステップであって、前記応答が少なくとも前記テキスト結果を含む、ステップと
を含む、方法。
【請求項2】
前記エンドポイントが複数のエンドポイントのうちの1つであり、前記複数のエンドポイントの個々のエンドポイントがそれぞれのタスクに関連付けられ、大規模言語モデルが、前記複数のエンドポイントに関連付けられたタスクの少なくともサブセットを実施するように訓練されなかった、請求項1に記載の方法。
【請求項3】
前記複数のエンドポイントの個々のエンドポイントについて、前記個々のエンドポイントの前記それぞれのタスクのための1つ又は複数のガイダンス機構のそれぞれのセットを選択するステップ
をさらに含む、請求項2に記載の方法。
【請求項4】
前記1つ又は複数のガイダンス機構が、前記タスクのために実施されるべき推論のタイプ又は前記タスクのために返されるべき結果のタイプのうちの少なくとも1つを指示するプロンプト・トークンを含む、請求項1に記載の方法。
【請求項5】
前記1つ又は複数のガイダンス機構が、参照すべき1つ又は複数のデータセットを指示する取出しセット・タグを含み、前記結果が、さらに、少なくとも前記取出しセット・タグに基づいて、前記1つ又は複数のデータセットから取り出されたデータを処理するために、少なくとも、前記言語モデルを使用することに基づいて、生成される、請求項1に記載の方法。
【請求項6】
前記1つ又は複数のガイダンス機構が、前記処理より前に前記言語モデルのネットワーク重み又は層構造のうちの少なくとも1つを修正するためのアダプタ重みを含む、請求項1に記載の方法。
【請求項7】
前記1つ又は複数のガイダンス機構を表す1つ又は複数の英数字ストリングを生成するステップと、
修正されたテキスト・ストリングを形成するために前記自然言語テキスト・ストリングに前記1つ又は複数の英数字ストリングをプリペンドするステップと
をさらに含み、
前記自然言語テキスト・ストリングを前記処理するステップが、前記修正されたテキスト・ストリングを処理するステップを含む、請求項1に記載の方法。
【請求項8】
前記エンドポイントが複数のエンドポイントのうちの1つであり、前記方法が、
前記複数のエンドポイントのうちの1つ又は複数のエンドポイントを使用して、前記言語モデルを使用して実施されるべき複数のタスクのための複数のテキスト・ストリングを生成するステップと、
1つ又は複数のバッチ又は組み合わせられた同種タスク・ストリームのうちの少なくとも1つとして前記複数のテキスト・ストリングを送信するステップと
をさらに含む、請求項1に記載の方法。
【請求項9】
前記言語モデルが、異なるサイズの2つ又はそれ以上のモデル・インスタンスに関連付けられ、前記エンドポイントが、前記タスクを実施するように、前記2つ又はそれ以上のモデル・インスタンスのうちの指定されたモデル・インスタンスに関して訓練される、請求項1に記載の方法。
【請求項10】
前記自然言語テキスト・ストリングが、前記エンドポイントを構成するために使用される1つ又は複数のマーシャリング・ルールに従って前記要求から取得される、請求項1に記載の方法。
【請求項11】
プロセッサであって、
前記プロセッサに、
少なくとも、2つ又はそれ以上の通信可能に結合されたコンピューティング・デバイスのシステムのエンドポイントにおいて受信された要求に基づいて、前記要求に関連付けられた自然言語テキスト・ストリングを決定することと、
少なくとも、前記自然言語テキスト・ストリングと前記エンドポイントに関連付けられたタスクとに基づいて、前記要求に関連付けられた1つ又は複数のガイダンス機構を決定することと、
大規模言語モデルを使用して、及び少なくとも、前記1つ又は複数のガイダンス機構に基づいて、前記要求に対応するテキスト結果を生成するために前記自然言語テキスト・ストリングを処理することと、
前記エンドポイントを使用して、前記要求に対する応答を生成することであって、前記応答が少なくとも前記テキスト結果を含む、生成することと
を含む動作を実施させるための1つ又は複数の回路
を備える、プロセッサ。
【請求項12】
前記エンドポイントが複数のエンドポイントのうちの1つであり、前記複数のエンドポイントの個々のエンドポイントがそれぞれのタスクに関連付けられ、前記大規模言語モデルが、前記複数のエンドポイントのタスクの少なくともサブセットを実施するように訓練されなかった、請求項11に記載のプロセッサ。
【請求項13】
前記動作が、前記複数のエンドポイントの個々のエンドポイントについて、前記個々のエンドポイントの前記それぞれのタスクのための1つ又は複数のガイダンス機構のそれぞれのセットを選択することをさらに含む、請求項12に記載のプロセッサ。
【請求項14】
前記動作が、
前記1つ又は複数のガイダンス機構を表す1つ又は複数の英数字ストリングを生成することと、
修正されたテキスト・ストリングを形成するために前記自然言語テキスト・ストリングに前記1つ又は複数の英数字ストリングをプリペンドすることと
をさらに含み、
前記自然言語テキスト・ストリングを前記処理することが、前記修正されたテキスト・ストリングを処理することを含む、請求項12に記載のプロセッサ。
【請求項15】
前記大規模言語モデルが、異なるサイズの2つ又はそれ以上のモデル・インスタンスに関連付けられ、前記エンドポイントが、前記タスクを実施するように、前記2つ又はそれ以上のモデル・インスタンスのうちの指定されたモデル・インスタンスに関して訓練される、請求項11に記載のプロセッサ。
【請求項16】
前記プロセッサが、
シミュレーション動作を実施するためのシステム、
自律機械アプリケーションをテスト又は検証するためのシミュレーション動作を実施するためのシステム、
グラフィカル出力をレンダリングするためのシステム、
深層学習動作を実施するためのシステム、
エッジ・デバイスを使用して実装されるシステム、
仮想現実(VR)コンテンツを生成又は提示するためのシステム、
拡張現実(AR)コンテンツを生成又は提示するためのシステム、
複合現実(MR)コンテンツを生成又は提示するためのシステム、
1つ又は複数の仮想機械(VM)を組み込んだシステム、
少なくとも部分的にデータ・センタにおいて実装されるシステム、
シミュレーションを使用してハードウェア・テストを実施するためのシステム、
合成データ生成のためのシステム、
3Dアセットのための共同コンテンツ作成プラットフォーム、或いは
少なくとも部分的にクラウド・コンピューティング・リソースを使用して実装されるシステム
のうちの少なくとも1つにおいて備えられる、請求項11に記載のプロセッサ。
【請求項17】
要求に対する応答を、前記要求に対応するエンドポイントに関連付けられた応答フォーマットに従って生成するための1つ又は複数の処理ユニット
を備えるシステムであって、前記応答が、少なくとも、前記応答フォーマットに関連付けられると決定された1つ又は複数のガイダンス機構に従って推論を実施する言語モデルに基づいて、生成される、システム。
【請求項18】
前記1つ又は複数のガイダンス機構が、プロンプト・トークン、取出しタグ・セット、又はアダプタ重みのうちの少なくとも1つを含む、請求項17に記載のシステム。
【請求項19】
前記1つ又は複数のガイダンス機構が、
前記言語モデルの少なくとも1つの層の1つ又は複数の重みを変えること、
前記言語モデルの1つ又は複数の層の構造を変えること、
前記要求に対応する、前記言語モデルへの入力を更新すること、又は
前記言語モデルへの前記入力に対応するデータを取り出すためにアクセスすべきデータ・セットの指示を提供すること
のうちの少なくとも1つを実施するために使用される、請求項17に記載のシステム。
【請求項20】
前記システムが、
シミュレーション動作を実施するためのシステム、
自律機械アプリケーションをテスト又は検証するためのシミュレーション動作を実施するためのシステム、
グラフィカル出力をレンダリングするためのシステム、
深層学習動作を実施するためのシステム、
エッジ・デバイスを使用して実装されるシステム、
仮想現実(VR)コンテンツを生成又は提示するためのシステム、
拡張現実(AR)コンテンツを生成又は提示するためのシステム、
複合現実(MR)コンテンツを生成又は提示するためのシステム、
1つ又は複数の仮想機械(VM)を組み込んだシステム、
少なくとも部分的にデータ・センタにおいて実装されるシステム、
シミュレーションを使用してハードウェア・テストを実施するためのシステム、
合成データ生成のためのシステム、
3Dアセットのための共同コンテンツ作成プラットフォーム、或いは
少なくとも部分的にクラウド・コンピューティング・リソースを使用して実装されるシステム
のうちの少なくとも1つを備える、請求項17に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、大規模言語モデルを使用する自然言語処理アプリケーションに関する。
【背景技術】
【0002】
自然言語処理(NLP:natural language processing)技法の適用例及び実装形態は、ほんのいくつかの実例を挙げれば、言語生成又は分析、文法及び用法チェック、或いはコンテンツ要約など、様々なタスクのために一般的に使用されている。高度に正確なNLP結果を提供するために、語彙及び文法についての極めて大きい訓練セットを使用して訓練された大規模言語モデルを使用することが有利であり得る。大規模言語モデル(LLM:large language model)は、広範囲の複雑なNLPアルゴリズムを実装するための極めて強力な普遍的なツールであり得るが、そのような大規模モデルは、算出量的に費用がかかり、基本的計算をロードし、実施するために多くのマルチプロセッサ・サーバ又はワークステーションを必要とすることがあり、これにより、多くの潜在的ユーザがこれらのモデルを利用できない。クラウド・プロバイダなどのエンティティが様々な異なるユーザ又はエンティティによる使用のためのLLMをホストすることができるが、そのような実装形態は準最適であり得る。たとえば、特有の使用事例又は動作では、言語モデルがカスタマイゼーションを必要とし得、カスタマイゼーションは、モデルが、その使用事例又は動作に特に関連するある量の追加のデータにより訓練されることを必要とする。大きいクラウド・プロバイダの場合でも、これらのモデルのサイズ及び算出費用は、各そのような使用事例又は動作について異なる大規模モデルを訓練及びホストすることの実現可能性を低減する。
【発明の概要】
【課題を解決するための手段】
【0003】
本開示による様々な実施例が、図面を参照しながら説明される。
【図面の簡単な説明】
【0004】
【
図1】様々な実施例による、使用され得る例示的な言語推論処理システムを示す図である。
【
図2】様々な実施例による、異なるエンドポイントにダイレクトされるコールと、異なるサイズの言語モデルを選択することとを示す図である。
【
図3】少なくとも1つの実施例による、プロンプト・エンジニアリング及びチューニングの一実例を示す図である。
【
図4】少なくとも1つの実施例による、異なるガイダンス機構(guidance mechanism)についての異なる推論結果を示す図である。
【
図5】少なくとも1つの実施例による、グローバル・モデルを使用してカスタム推論を実施するための例示的なプロセスを示す図である。
【
図6】少なくとも1つの実施例による、実施されるべき特定のタイプのタスクのためのカスタム・エンドポイントを生成するための例示的なプロセスを示す図である。
【
図7】少なくとも1つの実施例による、タスクを決定及び/又は実施するために使用され得る例示的な分散型システムの構成要素を示す図である。
【
図8A】少なくとも1つの実施例による、推論及び/又は訓練論理(training logic)を示す図である。
【
図8B】少なくとも1つの実施例による、推論及び/又は訓練論理を示す図である。
【
図9】少なくとも一実施例による、例示的なデータ・センタ・システムを示す図である。
【
図10】少なくとも1つの実施例による、コンピュータ・システムを示す図である。
【
図11】少なくとも1つの実施例による、コンピュータ・システムを示す図である。
【
図12】1つ又は複数の実施例による、グラフィックス・プロセッサの少なくとも一部分を示す図である。
【
図13】1つ又は複数の実施例による、グラフィックス・プロセッサの少なくとも一部分を示す図である。
【
図14】少なくとも1つの実施例による、先進コンピューティング・パイプラインのための例示的なデータ・フロー図である。
【
図15】少なくとも1つの実施例による、先進コンピューティング・パイプラインにおいて機械学習モデルを訓練し、適応させ、インスタンス化し、導入するための例示的なシステムのためのシステム図である。
【
図16A】少なくとも1つの実施例による、機械学習モデルを訓練するためのプロセスのためのデータ・フロー図である。
【
図16B】少なくとも1つの実施例による、事前訓練されたアノテーション・モデルを用いてアノテーション・ツールを拡張するためのクライアントサーバ・アーキテクチャを示す図である。
【発明を実施するための形態】
【0005】
以下の説明では、様々な実施例が説明される。説明の目的で、実施例の完全な理解を提供するために、具体的な構成及び詳細が記載される。ただし、実施例は具体的な詳細なしに実施され得ることも当業者には明らかであろう。さらに、よく知られている特徴は、説明されている実施例を不明瞭にしないために省略又は簡略化され得る。
【0006】
様々な実施例による手法が、様々な異なるタスクのための大規模モデルの使用を提供することができる。特に、様々な実施例は、単一の大規模言語モデル(LLM)を再訓練する必要なしに又は複数の異なるカスタマイズされたモデルを使用する必要なしに、様々な異なる自然言語処理(NLP)関係推論タスクのために単一のLLMを使用する能力を提供する。カスタム・エンドポイントの使用を可能にする推論サービスが提供され得、個々のエンドポイントが、1つ又は複数の「ガイダンス機構」の選択又は提供によって指示され(indicate)得るように、特定のタイプのタスクのために訓練され得る。ガイダンス機構は、テキストのストリングに関して、特定の動作又はタイプの動作を実施するための要求に追加されるか、その要求中に埋め込まれるか、又はその要求に関連付けられ得る、トークン、タグ、重み、ファイル、モディファイア(modifier)、又は他のタイプのデータ・オブジェクトを含むことができる。例示的なガイダンス機構が、他のオプションの中でも、実施されるべき動作のタイプを指示するためのプロンプト・トークン(prompt token)、その動作のために使用すべきデータ・セットを指示するための取出しセット・タグ(retrieval set tag)、及び/或いは言語モデルの動作又は構造を効果的に修正することができるアダプタ重み(adaptor weight)を含む。そのような要求を受信するエンドポイントが、言語モデルによって必要とされるテキスト・フォーマットで要求を得るために必要とされるマーシャリング及び/又は他の動作を実施することができ、たとえば、テキスト・フォーマットの要求に1つ又は複数のテキスト・ストリング(又はテキスト・プレフィックス)をプリペンドする(prepend)ことによって、要求にガイダンス機構を追加することができる。いくつかの実施例では、言語モデルの異なるサイズのインスタンスがあり得、個々のエンドポイントが、特定のサイズのこれらのインスタンスのうちの1つに関連付けられ、それについて訓練され得、これは、所与の要求について推論を実施するための時間及びコストなどの側面に影響を及ぼすことができる。推論が、モデルを使用して実施されると、(プロンプト・トークンによって指定された形式の)結果がエンドポイントに返され得、ここで、マーシャリング及び/又は他の処理が、結果を必要な構造又はフォーマットのものにするために実施され得、結果は、意図された受信側又は宛先にフォワーディングされ得る。そのようなグローバル・サービスは、各々、様々な異なる使用事例又はタイプの動作のためのカスタム・エンドポイントを生成することが可能であり得る、多種多様な異なるユーザ、開発者、及び/又は他のエンティティによって使用され得る。タスクのこの異種セットは、高度に同種の算出ストリーム、又はタスクの同種バッチのシーケンスにコンバートされ得、これは、単一の大規模言語モデルを使用して処理され得、これは、高効率であり、算出量的にコスト効果的であり得る。
【0007】
そのような表現を生成することの利点が、様々な適用例において及び様々な使用事例について取得され得る。これらは、実例として、及び限定はしないが、デジタル会話型エージェントが適宜に応答することができるように人が言っていることの意図を理解するための会話型システムにおける使用を含むことができる。これは、コンピュータ・システムが口頭の又は書かれた通信を介して人間と対話している状況に広く適用される。そのような手法はまた、書かれた文書又は人間音声の録音を分析して、それらの意味、構造を決定するために、或いは、たとえば、文法の誤りを見つけるために又は代替の言い回しを生成するために使用され得る。そのような手法はまた、たとえば、ビデオ・ゲームにおいて、マーケティング・コピーのために、或いはクリエイティブ・ライティング又はビジネス通信アプリケーションにおいて使用されるために、書かれた又は話されたコンテンツを生成して有益であり得る。別のアプリケーションは、たとえば、ある言語から別の言語に翻訳するために、異なる言語間でコンバートすることである。また別のアプリケーションは、自動的に、所与のタスクを実施するためにコードを生成するか、或いはコードの構造、目的を理解するために又はプログラミング・エラーを検出するためにコードを分析するシステムでは、コンピュータ・プログラミング・ソース・コードのコンテキストにおけるものである。これらの言語関係動作は、他のオプションの中でも、ビデオ会議、画像分析、自律ナビゲーション、ロボティクス、ゲーミング及びアニメーション、並びにデータ処理に関係し得るような、1つ又は複数の言語関係タスクをも含み得る、様々なタイプのアプリケーション又はシステムに対応することができる。
【0008】
本明細書に含まれている教示及び示唆に照らして当業者に明らかになるように、この及び他のそのような機能性の変形形態も、様々な実施例の範囲内で使用され得る。
【0009】
図1は、様々な言語ベース・タスク又は動作を実施するために使用され得る例示的なシステム100を示す。この実例では、ユーザ又はエンティティが、それらのタスク又は動作を実施するためのシステム100へのコール(又は要求又は命令)を行うためにクライアント・デバイス150(或いは他のコンピュータ化デバイス又はシステム)を使用することができる。コールは、処理されるべきある量のテキスト、並びに、そのテキストが処理されるべきであるやり方を指示する1つ又は複数のトークン(或いは他のオブジェクト又はファイル)の仕様を含み得る。いくつかの実施例では、要求を受信するように選択されたエンドポイントが、別個の指示が必要とされないように、これらの1つ又は複数のトークンに関連付けられ得る。この実例では、テキストは、大規模言語モデルを使用して処理されるべきであり、大規模言語モデルは、本明細書で説明されるように、テキストベース動作を実施するための強力なツールであり得る。クライアント・デバイス150からの要求は、共有リソースが、1つ又は複数の大規模言語モデル104をホストするために使用される、データ・センタ(又はクラウド・コンピューティング環境又はマルチテナント・リソース・プロバイダ環境など)などの環境に受信され得る。この実例では、これらの大規模言語モデル104は、データセンタにおけるリソースによってホストされる大規模言語モデル(LLM)推論サービス102の一部として提供され得る。クライアント・デバイス150は、適切なエンドポイント122、126にコールすることができ、エンドポイント122、126はテキストをクエリ・サービス106にダイレクトすることができ、クエリ・サービス106は、テキスト・クエリ又は動作が、適切なLLM104を使用して実施されることを引き起こすことができる。それぞれのLLMによって生成された推論など、この処理の結果が、次いで、クライアント・デバイス150に返されるか、或いは別の適切な受信側又は宛先にダイレクトされ得る。
【0010】
ただし、上述のように、大規模言語モデル(LLM)は、広範囲の複雑なNLPアルゴリズムを実装するための極めて強力な普遍的なツールであるが、以前のLLMベース手法は、少なくとも部分的に、それらの対応する算出費用により、うまくスケーリングしなかった。様々なユーザによって提供される様々な特有の使用事例及び動作があることになるので、以前のシステムにおいて単一のLLMを提供することは、少なくとも部分的に、これらの様々な動作及び使用事例のために複数の独立したLLMを訓練及びホストする能力がないこと(又はそうすることの非実用性)により、正確な結果を可能にしない。
【0011】
したがって、本開示の様々な実施例は、様々な使用事例及び動作のためにフレキシブルにカスタマイズ可能であるやり方で、データセンタにおいてホストされ、様々なユーザによってサービスとしてアクセスされるべき、1つ又は複数の大規模言語モデルのためのシステム・アーキテクチャを提示することができる。そのようなアーキテクチャはまた、そのような導入がサービスのプロバイダにとって算出量的に効率的であることを可能にすることができる。
図1に示されているシステムなどのシステム100は、LLM推論サービス102、各開発者、ユーザ、又はエンティティのための1つの名前空間などの1つ又は複数の推論名前空間120、及び、特定のタスク、動作、又は使用事例のためのエンドポイントを訓練するための訓練名前空間140などの構成要素を含むことができる。
【0012】
LLM推論サービス102は、テキストベース要求を受信し、対応する推論を生成することができる。少なくともいくつかの実施例では、(使用について異なるコストが伴い得る)異なるサイズのLLMのインスタンスがある場合、要求は、(少なくとも、コンピュート、メモリ、又はストレージ要件のうちの1つ又は複数に関して)ホストするのに又は動作させるのにあまり費用がかからず、算出を実施するのにあまり時間がかからないが、単純な推論タスクに関して使用するには最良である、より小さいモデル、或いは、動作させるのにより費用がかかり得るが、よりロバストな推論能力を提供する「大規模」モデルなど、使用すべきモデルを指定し得る。4つの異なるサイズのモデルが示されているが、様々な異なるサイズの使用される任意の数のLLMモデル104があり得る。他の差異の中でも、ロケーション又は利用可能性に関係し得るような、モデル・インスタンス間の他の差異もあり得る。この推論サービス102のクエリ・サービス106に受信された要求又はクエリが、推論のために適切なモデル・インスタンスにダイレクトされ得、結果が、(後処理、アグリゲーション、又は他のそのような動作の後に)クライアント・デバイス150又はターゲット宛先に返され得る。
【0013】
上述のように、異なる要求が、異なるタスク、動作、又は使用事例に関連付けられ得る。これらの様々な代替形態について異なるモデルを訓練及びホストする代わりに、この例示的なシステムは、個々の要求が、1つ又は複数のタグ、トークン、重み、及び/或いは他のオブジェクト又はファイルに関連付けられることを可能にすることができ、それらは、推論サービス102が、どのように最も良く要求を処理すべきか又は要求について推論を実施すべきかを決定するのを助けることができる。この実例では、(要求又は推論時間における)要求が、他のオプションの中でも、少なくとも1つの「プロンプト・トークン」(PT:prompt token)、「取出しセット・タグ」(RST:retrieval set tag)、又は「アダプタ重み」(AW:adaptor weight)など、1つ又は複数のガイダンス機構に関連付けられ得る。いくつかの実施例では、3つの異なるタイプなど、ガイダンス機構タイプの固定セットがあり得るが、所与の要求が3つの異なるタイプを提供することは必要とされない。これらのガイダンス機構は、LLMを通した推論算出のコンピュート・フローを変更することなしに、様々なカスタマイゼーション・オプションを可能にすることができる。本明細書でより詳細に説明されるように、個々のガイダンス機構は、LLMが、他のオプションの中でも、フルセンテンス応答、真/偽応答、及び/又はテキスト・ストリング中の各単語についての音声のタイプなど、異なる結果又はタイプの結果を返すことを引き起こすことができ、これは、知識又は情報の特定のセットから引き出され得る。これらの機構が処理されるやり方は、LLMインスタンスが、同じ推論プロセス又は算出を使用してテキスト入力を処理することを可能にし、したがって、単一のLLMが、すべてのこれらのカスタマイズされた要求について使用され得る。さらに、関連付けられた同じ又は異なる機構をもつ複数の要求が、効率の改善のために一緒にバッチ処理され得る。そのような推論サービス102は、小さいLLMインスタンス104から大規模なLLMインスタンス104までの、10億個、50億個、400億個、及び5300億個のパラメータをもつものなど、異なるサイズのLLMインスタンスをホストし得る。
【0014】
関連付けられた異なるガイダンス機構をもつ要求について同じ処理が形成されることを可能にするために、導入される様々なエンドポイント122、126があり得、ここで、個々のエンドポイントが、異なるガイダンス機構、又はガイダンス機構の組合せに関連付けられ得る。少なくともいくつかの実施例では、このシステムを使用する複数のユーザ、開発者、又はエンティティがあり得る場合、導入されるエンドポイントのユーザ(又は開発者など)ごとの名前空間を可能にするホストされた様々な推論名前空間120があり得る。所与の推論名前空間120が、推論サービス102のホストされたLLM104を使用して推論を実施するための要求を受信するためのすべてのエンドポイントを含んでいることがある。これらのエンドポイントは、たとえば、対応するユーザ又は開発者によって管理され得、いくつかの事例では、使用のために他のユーザ、さらには公衆に公開され(たとえば、オープン・インターネットに公開され)得る。各エンドポイント122、126は、「/summarize_news_article」など、名前、識別子、アドレス、及び/又はユニフォーム・リソース・ロケータ(URL:uniform resource locator)を含み得るような、いくつかの関連付けられた項目又は態様からなることができる。エンドポイントはまた、このエンドポイントに送出された要求について使用すべきLLMのサイズについてのインジケータ、並びに1つ又は複数の関連付けられた推論パラメータ(たとえば、サンプルの数、又は温度)を含み得る。エンドポイントはまた、プロンプト・トークン及び取出しセット・タグなど、1つ又は複数のガイダンス機構124を含むか、又はそれらに関連付けられ得る。少なくともいくつかの実施例では、エンドポイントは、実施されるべきデータ・マーシャリング128のタイプにも関連付けられ得る。いくつかの実施例では、これは、それぞれのエンドポイントを作成するユーザ、開発者、又はエンティティに提供されるオプションであり得る。(たとえば、JSON又はProtobufなど、構造化された言語プロトコルについて)特定のタイプをもつ入力フィールドから、LLMによって処理されるべきテキスト・ストリングにどのようにマッピングすべきか、及びそのテキスト・ストリングからどのようにマッピングすべきかを指定することができる、データ・マーシャリング選択が行われ得る。マーシャリングは、エンドポイント内で実行されるコードを使用して実施され得るか、又はエンドポイントと通信しているプロセスによって実施され得る。ユーザのためにクライアント・デバイス150(又は他のそのようなソース)から受信された要求が、ロード・バランサ又はイングレス層130を使用して受信され得、ロード・バランサ又はイングレス層130は、その要求を、そのユーザに関連付けられた名前空間120中の適切なエンドポイント122、126にダイレクトすることができる。RESTエンドポイントを介して受信されたJSON要求又はGRPCエンドポイントによって受信されたProtobuf要求など、構造化された入って来る要求の場合、(いくつかの実施例においてエンドポイントの内部にあり得る)1つ又は複数のマーシャリング構成要素128又はプロセスが、その名前空間120及び/又はエンドポイントの訓練及び作成中に使用されたマーシャリング・ルール142に従って、この構造化された要求データをテキストにコンバートすることができる。要求はまた、プロンプト・トークン及び取出しセット・タグなど、任意の関連付けられたガイダンス機構にバインドされ、関連付けられたLLMパラメータとともに、処理するためにLLM推論サービス102に渡され得る。次いで、LLM推論サービスからの推論ベース応答が、1つ又は複数の出力データ・マーシャリング・ルールに従って、それぞれの構造化された言語プロトコル(たとえば、JSON又はProtobuf)に基づくフォーマットにマーシャリングされ、クライアント・デバイス150に返されるか、或いはさもなければ、ターゲット受信側又は宛先に送出され得る。
【0015】
たとえば、ユーザ又は開発者のためのタスクの特定のセットのために構成されたエンドポイントの適切なセットを提供するために、そのようなシステムはまた、訓練名前空間140において動作することができる、開発者スタジオなどのツールを提供することができる。開発者スタジオなどのツールは、プロンプト・トークン144又はアダプタ重みなど、ガイダンス機構を訓練するための、或いはLLMを参照する取出しセット146を管理するためのワークフローのセットを提供することができる。本明細書で説明されるように、1つ又は複数のマーシャリング・ルール142も提供され得る。
【0016】
訓練は、所与の言語モデルに関して、訓練モジュール148に関する特定の訓練及び評価データ・セットを伴うことができ、少なくともいくつかの訓練ハイパーパラメータ(たとえば、学習レート、又は訓練反復の最大数)の仕様を必要とすることができる。この訓練ワークフローは、次いで、他のオプションの中でも、モデルが収束する、損失値が許容できるしきい値を下回る、及び/又はすべての訓練データが使用された場合など、終了基準が満たされるまで、いくつかの訓練反復を実施することができる。ユーザは、所与のタスクのために使用されるべき各ガイダンス機構についての訓練及び評価など、タスクを実施することができる。
【0017】
カスタマイゼーション及び訓練が完了すると、関連付けられたカスタマイゼーション・データが、対応する推論名前空間120中の新しいエンドポイントに発行され得る。エンドポイントは、エンドポイント管理システムの一部として提供され得るような、アクセス制御或いは他の機構又は構成を整備され得る。そのような開発者ツールは、他のオプションの中でも、推論システムの一部としてクラウドにおいて、及び/又はユーザ・ロケーションにおける構内においてなど、様々なロケーションにおいて稼働することができる。
【0018】
このツールが、ホストされたクラウド・サービスの一部として提供された場合、システムは、下位LLMが更新された場合、関連付けられた訓練データからのプロンプト・トークン又はアダプタ重みを自動的に再算出し、関連付けられたエンドポイントを自動的に再導入し得る。任意の時間において、ユーザは、関連付けられたガイダンス機構をダウンロードし、それらを、推論名前空間120を通ることなしに、ユーザ・ロケーションにおける構内で、関連付けられたLLMを用いた推論のために使用することができる。開発者スタジオはまた、処理時間を温存するための追加の機能性を実施するように構成され得る。たとえば、エンドポイントは、小さいLLMに関して、所与のプロンプト・トークン、結果セット・タグ、及び/又はアダプタ重みについて訓練され得る。訓練プロセスは、一緒に行われるとき、多くの追加の処理を必要としないので、スタジオはまた、同じガイダンス機構のための、ただし、中間の又は大規模なLLM、或いは少なくとも次にサイズが大規模なLLMなど、他のサイズのLLMのためのエンドポイントを生成し得る。新しいエンドポイントを最初から作成することは、かなりのリソースがかかることがあり、したがって、異なるサイズのモデル・インスタンスについて一緒にそれらを訓練及び作成することにおける利点があり得る。開発者スタジオはまた、それぞれの言語モデルの更新又は修正のために、更新されたエンドポイントを自動的に生成するように構成され得る。
【0019】
図2は、そのようなシステムにおける例示的なコール・フロー200を示す。この実例では、同じエンティティ又は異なるエンティティに関連付けられ得る2つの異なるクライアント・デバイス202、204があり、クライアント・デバイス202、204は、
図1に関して説明されたように、同じ名前空間又は異なる名前空間にコールを行い得る。いくつかの実施例では、複数の異なるエンティティによって使用され得る、共通プロンプト・トークン及び/又は公開されている取出しセットをもつ汎用又は「公開」名前空間もあり得る。この実例では、クライアントA 202が、推論サービス216のLLMを使用して処理されるべきテキストのストリングを有する。少なくとも処理の結果についての意図された使用に基づいて、要求は、返されるべき結果のタイプを識別するための特定のプロンプト・トークン、並びに、LLMが、その要求を処理するために使用するべきである特定のデータベースを識別するための取出しセットなど、その要求に関連付けられた1つ又は複数のガイダンス機構218を有することができる。この実例では、訓練されたエンドポイント、ここでは、特に、これらの特定のガイダンス機構218に関連付けられたテキストについて訓練された、エンドポイントA 204があることになる。そのエンドポイントは、RESTエンドポイントの形式など、任意の適切な形式とることができる。概して、同じ名前空間中にあり得る、エンドポイントB 208などの他のエンドポイントがあることになり、それらのエンドポイントは、それらが、異なるガイダンス機構について訓練されたので、この要求についてコールされないことになる。エンドポイントはまた、異なるタイプに対応し得、したがって、同じ名前空間中にあるのか異なる名前空間中にあるのかにかかわらず、エンドポイントのサブセットがRESTエンドポイントであり得、別のサブセットが別のタイプのエンドポイントであり得る。コールされたエンドポイント、ここでは、エンドポイントA 206は、関連付けられたガイダンス機構とともに、処理されるべきテキストを含んでいた入力要求を、推論サービス216の汎用LLMによって処理するのに適したフォーマットのものである要求に変換するために、これらのガイダンス・トークンを使用することができる。いくつかの実施例では、クライアントが、たとえば、特定のエンドポイントをコールしないことがあるが、要求を汎用インターフェース又はAPIにサブミットし得、汎用インターフェース又はAPIは、その要求を分析し、その要求を適切なエンドポイントにダイレクトすることができる。各エンドポイントはまた、特定のサイズのLLMに関連付けられるか、又はそのLLMについて訓練され得、したがって、エンドポイントA 206は、大規模なLLM212によって処理されるべきこのフォーマットされたストリングをLLM推論サービス216に送出するように訓練、構成、又はカスタマイズされ得る。この実例における推論の結果が、エンドポイントA 206を介してクライアントA 202に返され得るが、他の実例では、結果は、異なるエンドポイントを通して渡されるか、或いは異なる(又は追加の)受信側又は宛先に送出され得る。図示されていないが、処理の結果はまた、LLMモデルのさらなる訓練において使用するために、LLM推論サービスによって又はLLM推論サービスのために記憶され得る。
【0020】
示されているように、別個のクライアント・デバイスB 204が、処理されるべきテキストとガイダンス機構220の異なるセットとを含む要求をサブミットすることができ、その要求は、次いで、それらのガイダンス機構に関連付けられた異なるエンドポイントC 210にダイレクトされることになる。クライアントB 204及びクライアントA 202が単一のエンティティに関連付けられた場合、これらのエンドポイント206、208、210は、すべて、単一の名前空間に関連付けられ得るが、そうでない場合、少なくともエンドポイントA 206とエンドポイントC 210とが、異なる名前空間中にあり得る。この実例では、エンドポイントC 210は、次いで、フォーマットされた要求を、説明された小さいLLM214など、LLMのいずれかであり得るターゲットLLMにダイレクトするが、この実例では、単一のLLMモデルが複数の異なるタイプの自然言語処理(又は他のそのような)タスクのために複数の異なるエンティティによって共有され得るので、大規模なLLM212にもダイレクトされる。結果は、エンドポイントC 210(又は別のエンドポイント)を通って、クライアント・デバイスB 204及び/或いは別のターゲット宛先又は受信側に渡され得る。
図2に示されていないが、エンドポイント(又はエンドポイントと通信しているプロセス)はまた、
図1に関して説明されたマーシャリングを実施することができ、クライアントから受信された要求が、JSONなど、構造化されたフォーマットのものであり得、その要求は、LLMに提供されるべきテキスト要求を生成するために、テキストにコンバートされ得、LLM(及び推論サービス)から受信された応答がテキスト・フォーマットのものであり得、その応答もマーシャリング・プロセスを受けることができ、したがって、要求元クライアント・デバイスに受信された応答が、適切な構造化されたフォーマットのものである。
【0021】
少なくとも1つの実施例では、関連付けられたテキストがどのように処理されるべきであるかに関するガイダンス又は命令を提供するために、プロンプト・トークンが使用され得る。プロンプト・トークンは、入力要求テキスト・ストリングにプリペンドされ(或いはさもなければ、その中に又はその後に挿入され)得る一連の数の形式をとることができる。一連の数(又は英数字)は、人間が理解可能でないことがあるが、ストリング中の後続のテキストがどのように処理されるべきであるかに関するガイダンスを提供することができる。テキスト・ストリングは、自然言語の(たとえば、アメリカ英語の)センテンスであり得る。使用されるべき処理のタイプにかかわらず、LLMへの入力は、実施されるべき推論のタイプ又は返されるべき応答のタイプを指示する英数字シーケンスタイプ・プレフィックスによってプリペンドされた自然言語テキスト・ストリングであり得る。
【0022】
図3は、例示的なプロンプト・トークンの訓練及び/又は生成における例示的な段階300を示す。この実例では、訓練テキスト入力ストリング302が提供され、ここでは、「ノルマンディーはどの国に位置しますか?」という質問を提示する。プロンプト・エンジニアリング段階304中に、「質問に答えてください」という命令に対応するプロンプト・トークンが生成される。プロンプトは、ここでは、人間が理解可能なテキスト中に示されているが、多くの事例では、プロンプト・トークンは、人間が理解可能でないことがある英数字ストリングの形式をとることを理解されたい。訓練プロセス中に、プロンプト・トークン生成器が、入力テキスト及び対応するプロンプト・トークンなど、このタイプのタスクに関連付けられた訓練データを分析して、ターゲット・タスクを達成するための適切なプロンプト・トークンを生成することを学習することができる。上述のように、各エンドポイントのために記憶された又はそれに関連付けられた1つのプロンプト・トークンがあり得、各エンドポイントは、少なくともいくつかの実施例では、各々、それぞれのAPIであり得る。プロンプト・トークンとして働くべき代表的ストリングを生成することに加えて、プロンプト・エンジニアリング段階304はまた、生成されたテキストから結果を抽出するためのルーチンを決定及び記憶することができる。
【0023】
この実例におけるプロンプトはまた、プロンプト・チューニング段階310を通ることができる。プロンプト・チューニング段階は、特定のタスクについて、より正確な結果が取得され得るように、プロンプト・トークンと関連付けられたプロセスとの品質を改善することによって、「凍結している」又は固定であり、概して、所与のタスクのためにカスタマイズされ得ない、LLMによる推論の結果を改善することを試みるプロセスを伴うことができる。この実例では、入力タスクが、より粒度の細かい様式で、並びに完全に構成部分を分析するために、トークン化され得314、これは、1つ又は複数の「ソフト」プロンプト・トークン312を生成するのを助け得る。個々のソフト・プロンプト・トークン316が、1次プロンプト・トークンに関する何かを修正し得るか、又は、ソフト・プロンプト・トークン312のセットが単一のプロンプト・トークン306の代わりに使用され得る。ソフト・プロンプト・トークン312は、より具体的な命令を各々指示することができる、仮想トークンの形式をとることができる。単に、質問に答えるようにLLMに命令する代わりに、答えるためのやり方、伝達しようとする感情状態、答えの形式などを命令し得る。これらのプロンプトは、いくつかの実施例では、テキスト・プロンプト、プロンプト・チューニングからの学習された埋込み、及び/又は学習されたプロンプト・モデルなど、様々な形式をとることができる。返される結果が、単一のブール値、構造化されたフォーマットのテキスト、入力テキスト・ストリング中の各単語の音声のタイプなどについての複数の応答など、ガイダンス・トークンによって指示されるような、指定された形式のものであり得る。いくつかの実施例では、結果はまた、ムービー・レビューによって表現された感情など、入力テキストに関して行われた決定を提供し得る。
【0024】
LLMはテキストのみを話すので、提供される命令もテキスト形式のものでなければならない。プロンプト・トークンは、実施されるべき推論に関する、何らかの命令、又は「ガイダンス」を提供する、テキスト中のプレフィックスの形式をとることができる。上述のように、これは、他のオプションの中でも、真/偽様式で質問に答えること、テキストの感情を推論すること、センテンスが論理的であるかどうかを決定すること、特定のタイプの情報(たとえば、名前、アドレス、又は存在する場合、肩書き)を抽出すること、パラグラフを要約すること、テキストの本文についての件名を提案すること、又は取出しセット・タグによって指定されたライブラリを使用して質問に答えることを行うようにモデルに命令することであり得る。LLMは、自然言語を理解するモデルとして考えられ得、要求が同じくその自然言語のものであり、そのモデルが、それが要求を理解することができるように訓練されている限り、いくつかの異なる事を行うように依頼され得る。訓練中に、モデルは、実施されるべきであるタスクのタイプの実例を評価することができ、モデルによって理解され得る、コンピュータ又はネットワークが理解可能な言語又はシンタックスに基づき得る数(又は英数字)のシーケンスを生成することができる。モデルからの結果が評価され得、それらの結果が正確でないか、又は所望のタイプのものでない場合、プロンプト・トークンについて使用される命令ストリングを改良することを試みるために、さらなる訓練が実施され得る。このトークンを改良するために、Pチューニングなどのプロセスが使用され得る。
【0025】
アダプタ重みが、他のガイダンス機構の場合と同様に、処理されるべきテキスト・ストリングにプリペンドすることなどによって、推論サービス又は言語モデルに送出されるべき要求のテキストに挿入され得る。いくつかの実施例では、ガイダンス機構は、特定の順序でアタッチされるべきであり、他の実施例では、順序付けが固定でないことがあるが、個々のガイダンス機構が、特定のガイダンス機構に対応するテキスト・ストリングの一部分を識別するインジケータ(たとえば、特有のコード又はシンボル)を含むことができる。アダプタ重みは、LLMのアクティブ化の摂動として機能することができ、これは、LLMが、異なるアダプタ重みをもつ異なる要求について異なるタイプの結果を返すことを引き起こすことができる。アダプタ重みは、ネットワーク重みのうちの1つ又は複数の調整として考えられ得、これは、ネットワークが、(1つ又は複数の)関連するネットワーク重みを調整するために再訓練を実施する必要なしに、わずかに異なるやり方で推論を実施することを効果的に引き起こすことができる。
図1に関して説明された訓練プロセスなどの訓練プロセスは、所与のタスクについての、すなわち、それぞれのエンドポイントに関連付けられるべきである、適切なアダプタ重みを決定するために使用され得る。例示的なアダプタ重みは、さらなる層の処理が、特定の重み又はアクティブ化を伴って、層37と層38との間でなど、モデルの2つの層の間で実施されるべきであることを指示することができる。そのような手法は、再訓練の必要なしにモデルの動作を効果的に修正することができる。
【0026】
エンドポイントに関連付けられた特定の推論タスクのために使用されるべきデータベース、辞書、ライブラリ、或いは、データ又はファクト(fact)の他のセットを指定するために、取出しセット・タグが使用され得る。そのようなタグの使用の利点は、そのようなタグが、言語モデルが、そのモデルを訓練するために使用されたもの以外のデータを使用することを可能にすることができ、これが、このデータに関して再訓練することを必要とすることなしに、そのモデルの能力を効果的に拡大することができることである。2つの異なる要求が、ファクトの異なるセットをもつ2つの異なるデータベースをポイントすることができ、したがって、そのモデルは、2つの異なる答えでまったく同じ質問に答え得る。データベース・ルックアップ以外に、これらの要求に関係する他のあらゆるものが、算出量的に等価又は同種であり得、これは、このプロセスを高効率のものにするのを助ける。取出しセットのフォーマットは、データが、関連する言語モデル又は推論サービスにとって理解可能であり、それらによってアクセス可能であるテキスト・フォーマットのものである限り、変動することができる。いくつかの実施例では、実施されるある量の前処理があり得、データが、取出しセット・タグによって指示されたデータベース又はファクト・セットから抽出され、データは、言語モデルに入力として提供されるように、指定されたフォーマットにフォーマットされ、インデックス付けされる。そのような手法は、データ自体が言語モデルによる使用のために単一のフォーマットのものにされ得る限り、指定されたデータベースが、構造又は形式においてより変化に富んだものであることを可能にすることができる。いくつかの実施例では、前処理は、他のオプションの中でも、効果的にファクト・セットをインデックス付けし、そのインデックスをモデルに提供し得、したがって、言語モデル又はネットワークの内部層が、インデックスを介して識別されたファクト(又は文書など)にアクセスすることができる。法律用語のデータベースが、レシピのセットとは異なるタスクのために有用であり、概して、これらのファクトを組み合わせて単一のデータベースにすることが利益にならず、そのデータベースが、その場合、過度に大きくなるか、又は実用的であるように所与のタイプのファクトの数を低減する必要があるかのいずれかとなり、これが、結果の品質を減らすので、異なるデータ・セットが特定のタスクに適していることがある。いくつかの事例では、4つの異なるエンドポイントがあり得、それらは、場合によっては、それらが、異なるファクト・セットを使用し、異なるファクト・セットについて訓練又はカスタマイズされることを除いて、同じである。
【0027】
図4は、同じ言語モデルを使用して、ただし異なるカスタム・エンドポイントを使用して、同じテキスト・ストリングについて返され得る、異なるタイプの推論結果のセット400を示す。「エンドポイント」は、本明細書の主要な実例として使用されるが、特定の又はカスタム処理が、様々なモデル、ルール、識別子、インターフェース、及び/又は他のそのようなオプションを使用して、入って来る要求に適用されることを引き起こすための任意の数のやり方があり得、したがって、(Restなのかそれ以外なのかにかかわらず)「エンドポイント」は、様々な実施例の範囲に対する限定として見なされるべきではないことを理解されたい。この実例では、単一のテキスト・ストリング402が、異なるガイダンス機構、又はガイダンス機構の組合せに関連付けられ得る複数の異なるエンドポイントに受信され得る。示されているように、異なるタイプの結果404が、異なるプロンプト・トークン、又は他のそのようなガイダンス機構の使用によって返され得る。この実例では、「地球は丸いですか?」というテキスト・ストリングについて、結果は、同様のコンテンツを、ただし、はい/いいえの結果の場合は「はい」、真/偽の場合は「真」、「自然言語で質問に答えてください」の結果の場合は「地球は丸いです」、又はバイナリ1/0の結果の場合は「1」など、異なる形式で有することができる。異なるプロンプト・トークンについての別の結果が、少なくとも、特定の定義セットを使用して識別された、テキスト・ストリングの品詞を返す。現代のファクト・セットが、地球が丸いかどうかを質問された場合、「はい」の答えを返し得るが、誰かが、中世欧州の宗教的なテキストなどのファクト・セットに基づいて応答を決定している場合、結果406は、それがその特定のファクト・セットによる正しい答えであるので、はい/いいえの結果の場合は「いいえ」であり得るように、別の結果が、ファクト・セットを指定することに基づく結果の差異を示す。示されているように、単一の大規模言語モデルが、異なるガイダンス機構の使用によってまったく異なる結果を返すようにガイドされ得る。
【0028】
そのような手法は、複数のユーザが、LLMなどのモデルの性能を、そのモデルを実際に修正又は再訓練することなしに、効果的にカスタマイズすることを可能にすることができる。これらのユーザは、代わりに、1つ又は複数のガイダンス機構の使用によって、テキスト処理要求をフォーマットすることができるカスタマイズされたエンドポイントを使用することができ、したがって、LLMは、特定の動作又はタイプのタスクを実施するためのこの特定の要求にどのように対処すべきかを知っている。そのようなモデルは、次いで、複数の異なるタイプのタスクを実施するために複数の異なるユーザによって同時に使用され得る。上述のように、効率目的のために、これらの同様にフォーマットされた要求はまた、送信及び処理のために一緒にバッチ処理され得るが、それらは、異なるタイプの、実施されるべきタスク、又は提供されるべき結果に対応し得る。LLMによって実施される動作は、これらのガイダンス機構の結果として変化しないことがあり、したがって、経時的改善又は別のそのような目的のために所望されない限り、再訓練又はカスタマイゼーションなしに同じ(又は同様の)算出を実施する単一のモデルが使用され得る。たとえば、取出しセット・タグが、特定のデータベースを使用することを指示した場合、そのモデルは、わずかに異なる算出を実施することになる。ただし、数万のカスタマイズされた要求を、実施されるべき単一の算出、又は算出の小さいセット(たとえば、2~10)に低減することが可能であり得る。本質的に、少なくとも1つの実施例による、そのようなシステム又はサービスは、タスクの異種セットを取り入れることができ、タスクの異種セットは、単一のモデル、又は同じモデルのインスタンスによって処理され得る、同種算出ストリングにコンバートされ得、これは、このシステム又はサービスを、はるかに効率的で、算出量的にコスト効果的にすることができる。
【0029】
図5は、様々な実施例による、実施され得るカスタム推論タスクを大規模言語モデルが実施することを引き起こすための例示的なプロセス500を示す。本明細書で説明されるこの及び他のプロセスについて、別段に明記されない限り、様々な実施例の範囲内で、同様の又は代替の順序で、或いは少なくとも部分的に並列に実施される、追加の、より少数の、又は代替の動作があり得ることを理解されたい。この実例では、502において、特定のタイプの結果を返すために実施されるべき特定の推論タスクなど、特定の自然言語処理(NLP)関係動作に関連付けられたエンドポイントへの要求が受信される。この実例における要求は、JSON又は同様のフォーマットのテキストなど、構造化されたテキストを含み得る。504において、存在する場合、構造化されたテキストは、そのエンドポイントに固有のマーシャリング/アンマーシャリングプロセスを使用することなどによって、自然言語フォーマット(又はターゲット言語モデルによって使用される他のテキスト・フォーマット)の構造化されていないテキストにコンバートされ得る。エンドポイントはまた、506において、1つ又は複数のガイダンス機構に対応する1つ又は複数の英数字プレフィックスを、処理されるべきテキスト・ストリングのプレフィックス(又は他の追加)として追加することができる。本明細書で説明されるように、これは、特定のタイプの推論結果を取得するために何らかのやり方で大規模言語の動作を命令又は修正する1つ又は複数の英数字ストリングを追加することを含むことができる。このテキスト要求は、処理又は推論のために、大規模言語モデル(又は、たとえば、そのモデルをホストする推論サービス)にフォワーディングされ得、ここで、その要求がフォワーディングされるモデルは、エンドポイントに関連付けられた特定のサイズのインスタンスであり得る。次いで、510において、大規模言語モデルは、1つ又は複数のガイダンス機構によって指示されるように要求中のテキスト・ストリングについて推論を実施することを引き起こされ得る。次いで、512において、推論結果がエンドポイントに受信され得、エンドポイントは、514において、必要な場合、テキストを、構造化されたフォーマットにコンバートすることができる。次いで、516において、結果は、要求のソースとは異なるか又はそれと同じであり得る、結果についてのターゲット受信側又は宛先にフォワーディングされ得る。上述のように、いくつかの実施例では、この要求は、他の要求とともにバッチ処理されるか、又は単一の結果ストリームに追加され得、これは、動作効率を改善するのを助けることができる。
【0030】
図6は、様々な実施例による、実施され得る、訓練されたモデルについてタスク固有エンドポイントを生成するための例示的なプロセス600を示す。この実例では、602において、大規模言語モデルを使用して実施されるべきタイプの自然言語タスクについてカスタム・エンドポイントを生成するために、(開発者スタジオ或いは他のそのようなシステム又はサービスへの)要求が受信される。エンドポイントでは、いくつかの動作が実施され得、それらの動作は、順次示されているが、同時にも又は適宜に他の順序でも実施され得る。ある動作では、604において、構造化されていない自然言語フォーマットなど、言語モデルについてのターゲット・フォーマットで、入って来る要求をフォーマットするために適用されるべき、マーシャリング・ルール(或いは他のフォーマット又は処理ルール)があるかどうかが決定され得る。他のフォーマット又はルールが、他のタイプのモデル又はタスクのために使用され得る。所与のタイプのタスクの場合、606において、実施されるべき推論のタイプ及び/或いは返されるべきタイプ又は結果を指示することができる、プロンプト・トークンが決定され得る。いくつかの事例では、これは、ターゲット・タスクを実施する際に言語モデルをガイドすることができるトークンを提供し得る生成及び/又は訓練プロセスを伴い得る。プロンプト・トークンは、いくつかの異なる形式のいずれかをとることができるが、言語処理モデルでは、言語モデルが、ターゲット・タイプのタスクを実施するために理解することができる、コードを提供する英数字ストリングの形式をとることができる。608において、特定のファクト・セットがタスクのために使用されるべきである場合、推論のためにどのファクト・セットが使用されるべきであるかをモデルに指示することができる、取出しセット・タグが決定され得る。上述のように、そのようなタグは、実施されるべき処理に影響を及ぼさないが、代わりに、質問に対する答えを決定するためになど、推論を実施するときにモデルがそこからプルする(pull)べきである、データ又はコンテンツのセットを指示する。この訓練プロセス中に、言語モデルの動作の何らかの軽微な修正が必要とされる又は少なくとも有利であることも学習され得、ここで、その修正は、モデルの1つ又は複数のネットワーク重み又はネットワーク層を効果的に修正することができる、1つ又は複数のアダプタ重みの導入を通して実施され得る。610において、そうである場合、これらの重みは、訓練プロセスを通して決定又は学習され、エンドポイントを生成する際に使用するために提供され得る。いくつかの事例では、エンドポイントがそれについて訓練されている、特定のモデル、タイプのモデル、及び/又はサイズのモデルがあることになり、そうである場合、612において、このモデルは識別され得、したがって、エンドポイントは、その特定のモデル・インスタンスに関して機能するように訓練される。この情報を用いて、614において、この訓練又は生成プロセス中にカスタム・エンドポイントが生成され得、そのカスタム・エンドポイントは、提供されたマーシャリング(又は他の)ルールに従って、入って来る要求を変換し、言語モデルの指示されたインスタンスが、ガイダンス機構についてのテキスト・ストリングを、そのカスタム・エンドポイントによって作り出された要求にプリペンドすることなどによって、識別されたガイダンス機構に従って推論を実施することを引き起こすことができる。次いで、616において、そのカスタム・エンドポイントは、大規模言語モデルを再訓練するか又は新しいモデルを生成する必要なしに、その言語モデル(或いは他のそのようなモデル又はネットワーク)が、特定のタイプの推論を実施すること、又は特定のタイプの結果を返すことを引き起こす際に使用するために、提供され得る。そのエンドポイントは、少なくともいくつかの実施例では、そのエンドポイントを生成したエンティティに関連付けられた名前空間に導入され得る。
【0031】
説明されたように、本明細書で提示される様々な手法は、パーソナル・コンピュータ又はゲーミング・コンソールなどのクライアント・デバイス上でリアル・タイムで又はほぼリアル・タイムで実行するのに十分軽量である。そのような処理は、少なくとも1つのネットワークを介して受信されるストリーミング・コンテンツなど、そのクライアント・デバイス上で生成されたか又は外部ソースから受信されたコンテンツに対して実施され得る。ソースは、他のオプションの中でも、ゲーム・ホスト、ストリーミング・メディア・プロバイダ、サード・パーティ・コンテンツ・プロバイダ、又は他のクライアント・デバイスなど、任意の適切なソースであり得る。いくつかの事例では、このコンテンツの処理及び/又はレンダリングは、これらの他のデバイス、システム、又はエンティティのうちの1つによって実施され、次いで、提示又は別のそのような用途のためにクライアント・デバイス(又は別のそのような受信側)に提供され得る。
【0032】
一実例として、
図7は、コンテンツを提供、生成、修正、符号化、及び/又は送信するために使用され得る例示的なネットワーク構成700を示す。少なくとも1つの実施例では、クライアント・デバイス702が、クライアント・デバイス702上のコンテンツ・アプリケーション704の構成要素と、そのクライアント・デバイスにローカルに記憶されたデータとを使用するセッションのためのコンテンツを生成又は受信することができる。少なくとも1つの実施例では、コンテンツ・サーバ720(たとえば、クラウド・サーバ又はエッジ・サーバ)上で実行しているコンテンツ・アプリケーション724(たとえば、テキスト処理アプリケーション)が、セッション・マネージャとユーザ・データベース734に記憶されたユーザ・データとを使用し得るような、少なくともクライアント・デバイス702に関連付けられたセッションを始動し得、コンテンツ732がコンテンツ・マネージャ726によって決定されることを引き起こすことができる。コンテンツ生成又は管理アプリケーション726は、サーバ上のリソースを使用してホストされた推論サービスを通して提供され得るような、処理のために大規模言語モデル730に渡され得る、NLP関係処理を実施するための要求を生成又は受信することができる。いくつかの実施例では、その要求は、特定のタイプのタスクに関連付けられたカスタム・エンドポイント728にダイレクトされ得、そのタスクは、次いで、モデルによって実施され得る。生成されたコンテンツ(たとえば、推論の結果、又はカスタム・エンドポイントのためのデータ)の少なくとも一部分が、ダウンロード、ストリーミング、又は別のそのような送信チャネルによって送出するために、適切な送信マネージャ722を使用してクライアント・デバイス702に送信され得る。クライアント・デバイス702に送信する前にこのデータの少なくとも一部を符号化及び/又は圧縮するために、エンコーダが使用され得る。少なくとも1つの実施例では、そのようなコンテンツを受信するクライアント・デバイス702は、このコンテンツを対応するコンテンツ・アプリケーション704に提供することができ、コンテンツ・アプリケーション704は、他のオプションの中でも、カスタム・エンドポイントを生成する際に使用するためのコンテンツ・マネージャ710、カスタム・エンドポイント712、又は開発者スタジオ714を同じく又は代替的に含み得る。ディスプレイ706を通した画像又はビデオ・コンテンツ、並びに、スピーカー又はヘッドフォンなどの少なくとも1つのオーディオ再生デバイス708を通した音及び音楽などのオーディオなど、クライアント・デバイス702を介した提示のために(1つ又は複数の)ネットワーク740を介して受信されたデータを復号するために、デコーダも使用され得る。少なくとも1つの実施例では、このコンテンツの少なくとも一部がすでに、そのコンテンツが前にダウンロードされたか或いはハード・ドライブ又は光ディスク上にローカルに記憶されていることがある場合など、ネットワーク740を介した送信がコンテンツの少なくともその部分のために必要とされないように、クライアント・デバイス702に記憶されるか、クライアント・デバイス702上でレンダリングされるか、又はクライアント・デバイス702にとってアクセス可能であり得る。少なくとも1つの実施例では、このコンテンツを、サーバ720、又はユーザ・データベース734から、クライアント・デバイス702に転送するために、データ・ストリーミングなどの送信機構が使用され得る。少なくとも1つの実施例では、このコンテンツの少なくとも一部分が、コンテンツを生成又は提供するためのコンテンツ・アプリケーション762をも含み得るサード・パーティ・サービス760など、別のソースから取得されるか又はストリーミングされ得る。少なくとも1つの実施例では、この機能性の部分は、複数のコンピューティング・デバイスを使用して、又は、CPUとGPUとの組合せを含み得るものなど、1つ又は複数のコンピューティング・デバイス内の複数のプロセッサを使用して、実施され得る。
【0033】
この実例では、これらのクライアント・デバイスは、デスクトップ・コンピュータ、ノートブック・コンピュータ、セット・トップ・ボックス、ストリーミング・デバイス、ゲーミング・コンソール、スマートフォン、タブレット・コンピュータ、VRヘッドセット、ARゴーグル、MRヘッドセット/ゴーグル・ウェアラブル・コンピュータ、又はスマート・テレビジョンを含み得るような、任意の適切なコンピューティング・デバイスを含むことができる。各クライアント・デバイスは、他のオプションの中でも、インターネット、イーサネット、ローカル・エリア・ネットワーク(LAN:local area network)、又はセルラー・ネットワークを含み得るような、少なくとも1つのワイヤード又はワイヤレス・ネットワークにわたって要求をサブミットすることができる。この実例では、これらの要求は、データ・センタ又はサーバ・ファームを含み得るものなど、クラウド・プロバイダ環境における1つ又は複数の電子リソースを動作させるか又は制御し得る、クラウド・プロバイダに関連付けられたアドレスにサブミットされ得る。少なくとも1つの実施例では、要求は、ネットワーク・エッジ上に位置し、クラウド・プロバイダ環境に関連付けられた少なくとも1つのセキュリティ層の外側にある、少なくとも1つのエッジ・サーバによって受信されるか又は処理され得る。このようにして、クライアント・デバイスが、より近接しているサーバと対話することを可能にしながら、クラウド・プロバイダ環境におけるリソースのセキュリティをも改善することによって、レイテンシが低減され得る。
【0034】
少なくとも1つの実施例では、そのようなシステムは、グラフィカル・レンダリング動作を実施するために使用され得る。他の実施例では、そのようなシステムは、自律機械アプリケーションをテスト又は検証するために画像又はビデオ・コンテンツを提供するために、或いは深層学習動作を実施するためになど、他の目的のために使用され得る。少なくとも1つの実施例では、そのようなシステムは、エッジ・デバイスを使用して実装され得るか、又は、1つ又は複数の仮想機械(VM:Virtual Machine)を組み込み得る。少なくとも1つの実施例では、そのようなシステムは、少なくとも部分的にデータ・センタにおいて、又は少なくとも部分的にクラウド・コンピューティング・リソースを使用して、実装され得る。
【0035】
推論及び訓練論理
図8Aは、1つ又は複数の実施例に関連付けられた推論及び/又は訓練動作を実施するために使用される推論及び/又は訓練論理815を示す。推論及び/又は訓練論理815に関する詳細は、
図8A及び/又は
図8Bと併せて以下で提供される。
【0036】
少なくとも1つの実施例では、推論及び/又は訓練論理815は、限定はしないが、1つ又は複数の実施例の態様において推論するために訓練及び/又は使用されるニューラル・ネットワークのニューロン又は層を構成するための順方向及び/若しくは出力の重み及び/又は入力/出力データ、並びに/或いは他のパラメータを記憶するためのコード及び/又はデータ・ストレージ801を含み得る。少なくとも1つの実施例では、訓練論理815は、タイミング及び/又は順序を制御するためのグラフ・コード又は他のソフトウェアを記憶するためのコード及び/又はデータ・ストレージ801を含むか、又はそれに結合され得、コード及び/又はデータ・ストレージ801において、整数及び/又は浮動小数点ユニット(総称して、算術論理ユニット(ALU:arithmetic logic unit))を含む論理を構成するために、重み及び/又は他のパラメータ情報がロードされるべきである。少なくとも1つの実施例では、グラフ・コードなどのコードは、コードが対応するニューラル・ネットワークのアーキテクチャに基づいて、重み又は他のパラメータ情報をプロセッサALUにロードする。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ801は、1つ又は複数の実施例の態様を使用する訓練及び/又は推論中の入力/出力データ及び/又は重みパラメータの順方向伝搬中に1つ又は複数の実施例と併せて訓練又は使用されるニューラル・ネットワークの各層の重みパラメータ及び/又は入力/出力データを記憶する。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ801の任意の部分は、プロセッサのL1、L2、又はL3キャッシュ或いはシステム・メモリを含む、他のオンチップ又はオフチップ・データ・ストレージとともに含められ得る。
【0037】
少なくとも1つの実施例では、コード及び/又はデータ・ストレージ801の任意の部分は、1つ又は複数のプロセッサ或いは他のハードウェア論理デバイス又は回路の内部又は外部にあり得る。少なくとも1つの実施例では、コード及び/又はコード及び/又はデータ・ストレージ801は、キャッシュ・メモリ、動的なランダムにアドレス指定可能なメモリ(「DRAM」:dynamic randomly addressable memory)、静的なランダムにアドレス指定可能なメモリ(「SRAM」:static randomly addressable memory)、不揮発性メモリ(たとえば、フラッシュ・メモリ)、又は他のストレージであり得る。少なくとも1つの実施例では、コード及び/又はコード及び/又はデータ・ストレージ801が、たとえばプロセッサの内部にあるのか外部にあるのか、或いは、DRAM、SRAM、フラッシュ又は何らかの他のストレージ・タイプからなるかどうかの選定が、利用可能なストレージ、オンチップ対オフチップ、実施されている訓練及び/又は推論機能のレイテンシ要件、ニューラル・ネットワークの推論及び/又は訓練において使用されるデータのバッチ・サイズ、或いはこれらのファクタの何らかの組合せに依存し得る。
【0038】
少なくとも1つの実施例では、推論及び/又は訓練論理815は、限定はしないが、1つ又は複数の実施例の態様において推論するために訓練及び/又は使用されるニューラル・ネットワークのニューロン又は層に対応する逆方向及び/若しくは出力の重み及び/又は入力/出力データを記憶するためのコード及び/又はデータ・ストレージ805を含み得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ805は、1つ又は複数の実施例の態様を使用する訓練及び/又は推論中の入力/出力データ及び/又は重みパラメータの逆方向伝搬中に1つ又は複数の実施例と併せて訓練又は使用されるニューラル・ネットワークの各層の重みパラメータ及び/又は入力/出力データを記憶する。少なくとも1つの実施例では、訓練論理815は、タイミング及び/又は順序を制御するためのグラフ・コード又は他のソフトウェアを記憶するためのコード及び/又はデータ・ストレージ805を含むか、又はそれに結合され得、コード及び/又はデータ・ストレージ801において、整数及び/又は浮動小数点ユニット(総称して、算術論理ユニット(ALU))を含む論理を構成するために、重み及び/又は他のパラメータ情報がロードされるべきである。少なくとも1つの実施例では、グラフ・コードなどのコードは、コードが対応するニューラル・ネットワークのアーキテクチャに基づいて、重み又は他のパラメータ情報をプロセッサALUにロードする。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ805の任意の部分は、プロセッサのL1、L2、又はL3キャッシュ或いはシステム・メモリを含む、他のオンチップ又はオフチップ・データ・ストレージとともに含められ得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ805の任意の部分は、1つ又は複数のプロセッサ或いは他のハードウェア論理デバイス又は回路の内部又は外部にあり得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ805は、キャッシュ・メモリ、DRAM、SRAM、不揮発性メモリ(たとえば、フラッシュ・メモリ)、又は他のストレージであり得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ805が、たとえばプロセッサの内部にあるのか外部にあるのか、或いは、DRAM、SRAM、フラッシュ又は何らかの他のストレージ・タイプからなるかどうかの選定が、利用可能なストレージ、オンチップ対オフチップ、実施されている訓練及び/又は推論機能のレイテンシ要件、ニューラル・ネットワークの推論及び/又は訓練において使用されるデータのバッチ・サイズ、或いはこれらのファクタの何らかの組合せに依存し得る。
【0039】
少なくとも1つの実施例では、コード及び/又はデータ・ストレージ801と、コード及び/又はデータ・ストレージ805とは、別個のストレージ構造であり得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ801と、コード及び/又はデータ・ストレージ805とは、同じストレージ構造であり得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ801と、コード及び/又はデータ・ストレージ805とは、部分的に同じストレージ構造であり、部分的に別個のストレージ構造であり得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ801並びにコード及び/又はデータ・ストレージ805の任意の部分は、プロセッサのL1、L2、又はL3キャッシュ或いはシステム・メモリを含む、他のオンチップ又はオフチップ・データ・ストレージとともに含められ得る。
【0040】
少なくとも1つの実施例では、推論及び/又は訓練論理815は、限定はしないが、訓練及び/又は推論コード(たとえば、グラフ・コード)に少なくとも部分的に基づく、又はそれによって指示される論理演算及び/又は数学演算を実施するための、整数及び/又は浮動小数点ユニットを含む、1つ又は複数の算術論理ユニット(「ALU」)810を含み得、その結果が、アクティブ化ストレージ820に記憶されるアクティブ化(たとえば、ニューラル・ネットワーク内の層又はニューロンからの出力値)を作り出し得、それらのアクティブ化は、コード及び/又はデータ・ストレージ801並びに/或いはコード及び/又はデータ・ストレージ805に記憶される入力/出力及び/又は重みパラメータ・データの関数である。少なくとも1つの実施例では、アクティブ化ストレージ820に記憶されるアクティブ化は、命令又は他のコードを実施したことに応答して(1つ又は複数の)ALU810によって実施される線形代数及び又は行列ベースの数学に従って生成され、コード及び/又はデータ・ストレージ805並びに/或いはコード及び/又はデータ・ストレージ801に記憶された重み値は、バイアス値、勾配情報、運動量値などの他の値、或いは他のパラメータ又はハイパーパラメータとともにオペランドとして使用され、これらのいずれか又はすべてが、コード及び/若しくはデータ・ストレージ805又はコード及び/若しくはデータ・ストレージ801、或いはオンチップ又はオフチップの別のストレージに記憶され得る。
【0041】
少なくとも1つの実施例では、(1つ又は複数の)ALU810は、1つ又は複数のプロセッサ或いは他のハードウェア論理デバイス又は回路内に含まれるが、別の実施例では、(1つ又は複数の)ALU810は、それらを使用するプロセッサ或いは他のハードウェア論理デバイス又は回路(たとえば、コプロセッサ)の外部にあり得る。少なくとも1つの実施例では、ALU810は、プロセッサの実行ユニット内に含まれるか、或いはさもなければ、同じプロセッサ内にあるか又は異なるタイプの異なるプロセッサ(たとえば、中央処理ユニット、グラフィックス処理ユニット、固定機能ユニットなど)間で分散されているかのいずれかであるプロセッサの実行ユニットによってアクセス可能なALUのバンク内に含まれ得る。少なくとも1つの実施例では、コード及び/又はデータ・ストレージ801と、コード及び/又はデータ・ストレージ805と、アクティブ化ストレージ820とは、同じプロセッサ或いは他のハードウェア論理デバイス又は回路上にあり得るが、別の実施例では、それらは、異なるプロセッサ又は他のハードウェア論理デバイス若しくは回路中にあるか、或いは、同じプロセッサ又は他のハードウェア論理デバイス若しくは回路と、異なるプロセッサ又は他のハードウェア論理デバイス若しくは回路との何らかの組合せ中にあり得る。少なくとも1つの実施例では、アクティブ化ストレージ820の任意の部分は、プロセッサのL1、L2、又はL3キャッシュ或いはシステム・メモリを含む、他のオンチップ又はオフチップ・データ・ストレージとともに含められ得る。さらに、推論及び/又は訓練コードが、プロセッサ或いは他のハードウェア論理又は回路にアクセス可能な他のコードとともに記憶され、プロセッサのフェッチ、復号、スケジューリング、実行、退去(retirement)及び/又は他の論理回路を使用してフェッチ及び/又は処理され得る。
【0042】
少なくとも1つの実施例では、アクティブ化ストレージ820は、キャッシュ・メモリ、DRAM、SRAM、不揮発性メモリ(たとえば、フラッシュ・メモリ)、又は他のストレージであり得る。少なくとも1つの実施例では、アクティブ化ストレージ820は、完全に又は部分的に、1つ又は複数のプロセッサ又は他の論理回路内にあるか、又はその外部にあり得る。少なくとも1つの実施例では、アクティブ化ストレージ820が、たとえばプロセッサの内部にあるのか外部にあるのか、或いは、DRAM、SRAM、フラッシュ又は何らかの他のストレージ・タイプからなるかどうかの選定が、利用可能なストレージ、オンチップ対オフチップ、実施されている訓練及び/又は推論機能のレイテンシ要件、ニューラル・ネットワークの推論及び/又は訓練において使用されるデータのバッチ・サイズ、或いはこれらのファクタの何らかの組合せに依存し得る。少なくとも1つの実施例では、
図8aに示されている推論及び/又は訓練論理815は、GoogleからのTensorflow(登録商標)処理ユニット、Graphcore(商標)からの推論処理ユニット(IPU:inference processing unit)、又はIntel CorpからのNervana(登録商標)(たとえば、「Lake Crest」)プロセッサなど、特定用途向け集積回路(「ASIC」:application-specific integrated circuit)と併せて使用され得る。少なくとも1つの実施例では、
図8aに示されている推論及び/又は訓練論理815は、中央処理ユニット(「CPU」:central processing unit)ハードウェア、グラフィックス処理ユニット(「GPU」:graphics processing unit)ハードウェア、又は、フィールド・プログラマブル・ゲート・アレイ(「FPGA」:field programmable gate array)などの他のハードウェアと併せて使用され得る。
【0043】
図8bは、少なくとも1つ又は複数の実施例による、推論及び/又は訓練論理815を示す。少なくとも1つの実施例では、推論及び/又は訓練論理815は、限定はしないが、ハードウェア論理を含み得、このハードウェア論理において、算出リソース(computational resource)が専用であるか、或いはさもなければ、ニューラル・ネットワーク内のニューロンの1つ又は複数の層に対応する重み値又は他の情報と併せてのみ使用される。少なくとも1つの実施例では、
図8bに示されている推論及び/又は訓練論理815は、GoogleからのTensorflow(登録商標)処理ユニット、Graphcore(商標)からの推論処理ユニット(IPU)、又はIntel CorpからのNervana(登録商標)(たとえば、「Lake Crest」)プロセッサなど、特定用途向け集積回路(ASIC)と併せて使用され得る。少なくとも1つの実施例では、
図8bに示されている推論及び/又は訓練論理815は、中央処理ユニット(CPU)ハードウェア、グラフィックス処理ユニット(GPU)ハードウェア、又は、フィールド・プログラマブル・ゲート・アレイ(FPGA)などの他のハードウェアと併せて使用され得る。少なくとも1つの実施例では、推論及び/又は訓練論理815は、限定はしないが、コード及び/又はデータ・ストレージ801とコード及び/又はデータ・ストレージ805とを含み、それらは、コード(たとえば、グラフ・コード)、重み値、並びに/或いは、バイアス値、勾配情報、運動量値、及び/又は他のパラメータ若しくはハイパーパラメータ情報を含む他の情報を記憶するために使用され得る。
図8bに示されている少なくとも1つの実施例では、コード及び/又はデータ・ストレージ801並びにコード及び/又はデータ・ストレージ805の各々は、それぞれ、算出ハードウェア802及び算出ハードウェア806など、専用算出リソースに関連付けられる。少なくとも1つの実施例では、算出ハードウェア802及び算出ハードウェア806の各々は、線形代数関数などの数学関数を、それぞれコード及び/又はデータ・ストレージ801並びにコード及び/又はデータ・ストレージ805に記憶された情報に対してのみ実施する1つ又は複数のALUを備え、その結果が、アクティブ化ストレージ820に記憶される。
【0044】
少なくとも1つの実施例では、コード及び/又はデータ・ストレージ801及び805の各々と、対応する算出ハードウェア802及び806とは、それぞれ、ニューラル・ネットワークの異なる層に対応し、それにより、コード及び/又はデータ・ストレージ801と算出ハードウェア802との1つの「ストレージ/算出ペア801/802」から生じたアクティブ化は、ニューラル・ネットワークの概念的組織化をミラーリングするために、コード及び/又はデータ・ストレージ805と算出ハードウェア806との「ストレージ/算出ペア805/806」への入力として提供される。少なくとも1つの実施例では、ストレージ/算出ペア801/802及び805/806の各々は、2つ以上のニューラル・ネットワーク層に対応し得る。少なくとも1つの実施例では、ストレージ算出ペア801/802及び805/806の後に、又はそれらと並列に、追加のストレージ/算出ペア(図示せず)が、推論及び/又は訓練論理815中に含められ得る。
【0045】
データ・センタ
図9は、少なくとも1つの実施例が使用され得る例示的なデータ・センタ900を示す。少なくとも1つの実施例では、データ・センタ900は、データ・センタ・インフラストラクチャ層910と、フレームワーク層920と、ソフトウェア層930と、アプリケーション層940とを含む。
【0046】
少なくとも1つの実施例では、
図9に示されているように、データ・センタ・インフラストラクチャ層910は、リソース・オーケストレータ912と、グループ化されたコンピューティング・リソース914と、ノード・コンピューティング・リソース(「ノードC.R.」:node computing resource)916(1)~916(N)とを含み得、ここで、「N」は、任意のすべての正の整数を表す。少なくとも1つの実施例では、ノードC.R.916(1)~916(N)は、限定はしないが、任意の数の中央処理ユニット(「CPU」)又は(アクセラレータ、フィールド・プログラマブル・ゲート・アレイ(FPGA)、グラフィックス・プロセッサなどを含む)他のプロセッサ、メモリ・デバイス(たとえば、動的読取り専用メモリ)、ストレージ・デバイス(たとえば、ソリッド・ステート又はディスク・ドライブ)、ネットワーク入力/出力(「NW I/O」:network input/output)デバイス、ネットワーク・スイッチ、仮想機械(「VM」)、電力モジュール、及び冷却モジュールなどを含み得る。少なくとも1つの実施例では、ノードC.R.916(1)~916(N)の中からの1つ又は複数のノードC.R.は、上述のコンピューティング・リソースのうちの1つ又は複数を有するサーバであり得る。
【0047】
少なくとも1つの実施例では、グループ化されたコンピューティング・リソース914は、1つ又は複数のラック(図示せず)内に格納されたノードC.R.の別個のグループ化、又は様々な地理的ロケーション(同じく図示せず)においてデータ・センタ中に格納された多くのラックを含み得る。グループ化されたコンピューティング・リソース914内のノードC.R.の別個のグループ化は、1つ又は複数のワークロードをサポートするように構成されるか又は割り振られ得る、グループ化されたコンピュート・リソース、ネットワーク・リソース、メモリ・リソース、又はストレージ・リソースを含み得る。少なくとも1つの実施例では、CPU又はプロセッサを含むいくつかのノードC.R.は、1つ又は複数のワークロードをサポートするためのコンピュート・リソースを提供するために1つ又は複数のラック内でグループ化され得る。少なくとも1つの実施例では、1つ又は複数のラックはまた、任意の数の電力モジュール、冷却モジュール、及びネットワーク・スイッチを、任意の組合せで含み得る。
【0048】
少なくとも1つの実施例では、リソース・オーケストレータ912は、1つ又は複数のノードC.R.916(1)~916(N)及び/又はグループ化されたコンピューティング・リソース914を構成するか、又はさもなければ、制御し得る。少なくとも1つの実施例では、リソース・オーケストレータ912は、データ・センタ900のためのソフトウェア設計インフラストラクチャ(「SDI」:software design infrastructure)管理エンティティを含み得る。少なくとも1つの実施例では、リソース・オーケストレータは、ハードウェア、ソフトウェア、又はそれらの何らかの組合せを含み得る。
【0049】
少なくとも1つの実施例では、
図9に示されているように、フレームワーク層920は、ジョブ・スケジューラ922と、構成マネージャ924と、リソース・マネージャ926と、分散型ファイル・システム928とを含む。少なくとも1つの実施例では、フレームワーク層920は、ソフトウェア層930のソフトウェア932、及び/又はアプリケーション層940の1つ又は複数のアプリケーション942をサポートするためのフレームワークを含み得る。少なくとも1つの実施例では、ソフトウェア932又は(1つ又は複数の)アプリケーション942は、それぞれ、アマゾン・ウェブ・サービス、Google Cloud、及びMicrosoft Azureによって提供されるものなど、ウェブ・ベースのサービス・ソフトウェア又はアプリケーションを含み得る。少なくとも1つの実施例では、フレームワーク層920は、限定はしないが、大規模データ処理(たとえば、「ビック・データ」)のために分散型ファイル・システム928を使用し得るApache Spark(商標)(以下「Spark」)など、無料でオープンソースのソフトウェア・ウェブ・アプリケーション・フレームワークのタイプであり得る。少なくとも1つの実施例では、ジョブ・スケジューラ922は、データ・センタ900の様々な層によってサポートされるワークロードのスケジューリングを容易にするために、Sparkドライバを含み得る。少なくとも1つの実施例では、構成マネージャ924は、ソフトウェア層930、並びに大規模データ処理をサポートするためのSpark及び分散型ファイル・システム928を含むフレームワーク層920など、異なる層を構成することが可能であり得る。少なくとも1つの実施例では、リソース・マネージャ926は、分散型ファイル・システム928及びジョブ・スケジューラ922をサポートするようにマッピングされたか又は割り振られた、クラスタ化された又はグループ化されたコンピューティング・リソースを管理することが可能であり得る。少なくとも1つの実施例では、クラスタ化された又はグループ化されたコンピューティング・リソースは、データ・センタ・インフラストラクチャ層910において、グループ化されたコンピューティング・リソース914を含み得る。少なくとも1つの実施例では、リソース・マネージャ926は、リソース・オーケストレータ912と協調して、これらのマッピングされた又は割り振られたコンピューティング・リソースを管理し得る。
【0050】
少なくとも1つの実施例では、ソフトウェア層930中に含まれるソフトウェア932は、ノードC.R.916(1)~916(N)、グループ化されたコンピューティング・リソース914、及び/又はフレームワーク層920の分散型ファイル・システム928の少なくとも部分によって使用されるソフトウェアを含み得る。1つ又は複数のタイプのソフトウェアは、限定はしないが、インターネット・ウェブ・ページ検索ソフトウェアと、電子メール・ウイルス・スキャン・ソフトウェアと、データベース・ソフトウェアと、ストリーミング・ビデオ・コンテンツ・ソフトウェアとを含み得る。
【0051】
少なくとも1つの実施例では、アプリケーション層940中に含まれる(1つ又は複数の)アプリケーション942は、ノードC.R.916(1)~916(N)、グループ化されたコンピューティング・リソース914、及び/又はフレームワーク層920の分散型ファイル・システム928の少なくとも部分によって使用される1つ又は複数のタイプのアプリケーションを含み得る。1つ又は複数のタイプのアプリケーションは、限定はしないが、任意の数のゲノミクス・アプリケーション、コグニティブ・コンピュート、及び、訓練又は推論ソフトウェア、機械学習フレームワーク・ソフトウェア(たとえば、PyTorch、TensorFlow、Caffeなど)を含む、機械学習アプリケーション、又は、1つ又は複数の実施例と併せて使用される他の機械学習アプリケーションを含み得る。
【0052】
少なくとも1つの実施例では、構成マネージャ924、リソース・マネージャ926、及びリソース・オーケストレータ912のいずれかが、任意の技術的に実現可能な様式で獲得された任意の量及びタイプのデータに基づいて、任意の数及びタイプの自己修正アクションを実装し得る。少なくとも1つの実施例では、自己修正アクションは、データ・センタ900のデータ・センタ・オペレータを、不良の恐れのある構成を判定し、十分に使用されていない及び/又は性能の低いデータ・センタの部分を場合によっては回避することから解放し得る。
【0053】
少なくとも1つの実施例では、データ・センタ900は、1つ又は複数の機械学習モデルを訓練するか、或いは、本明細書で説明される1つ又は複数の実施例による1つ又は複数の機械学習モデルを使用して情報を予測又は推論するためのツール、サービス、ソフトウェア又は他のリソースを含み得る。たとえば、少なくとも1つの実施例では、機械学習モデルは、データ・センタ900に関して上記で説明されたソフトウェア及びコンピューティング・リソースを使用して、ニューラル・ネットワーク・アーキテクチャに従って重みパラメータを計算することによって、訓練され得る。少なくとも1つの実施例では、1つ又は複数のニューラル・ネットワークに対応する訓練された機械学習モデルは、本明細書で説明される1つ又は複数の訓練技法を通して計算された重みパラメータを使用することによって、データ・センタ900に関して上記で説明されたリソースを使用して、情報を推論又は予測するために使用され得る。
【0054】
少なくとも1つの実施例では、データ・センタは、上記で説明されたリソースを使用して訓練及び/又は推論を実施するために、CPU、特定用途向け集積回路(ASIC)、GPU、FPGA、又は他のハードウェアを使用し得る。その上、上記で説明された1つ又は複数のソフトウェア及び/又はハードウェア・リソースは、画像認識、音声認識、又は他の人工知能サービスなど、ユーザが、情報を訓練するか又は情報の推論を実施することを可能にするためのサービスとして構成され得る。
【0055】
1つ又は複数の実施例に関連付けられた推論及び/又は訓練動作を実施するために、推論及び/又は訓練論理815が使用される。推論及び/又は訓練論理815に関する詳細は、
図8a及び/又は
図8bと併せて以下で提供される。少なくとも1つの実施例では、推論及び/又は訓練論理815は、本明細書で説明されるニューラル・ネットワーク訓練動作、ニューラル・ネットワーク機能及び/又はアーキテクチャ、或いはニューラル・ネットワーク使用事例を使用して計算された重みパラメータに少なくとも部分的に基づいて、推論又は予測動作のために
図9のシステムにおいて使用され得る。
【0056】
そのような構成要素は、大規模言語モデルなど、同じモデルを再訓練する必要なしに、そのモデルを使用してカスタム・タスクが実施されることを可能にするために使用され得る。
【0057】
コンピュータ・システム
図10は、例示的なコンピュータ・システムを示すブロック図であり、例示的なコンピュータ・システムは、少なくとも1つの実施例による、命令を実行するための実行ユニットを含み得るプロセッサとともに形成された、相互接続されたデバイス及び構成要素、システム・オン・チップ(SOC:system-on-a-chip)又はそれらの何らかの組合せをもつシステム1000であり得る。少なくとも1つの実施例では、コンピュータ・システム1000は、限定はしないが、本明細書で説明される実施例などにおいて、本開示による、プロセス・データのためのアルゴリズムを実施するための論理を含む実行ユニットを採用するための、プロセッサ1002などの構成要素を含み得る。少なくとも1つの実施例では、コンピュータ・システム1000は、カリフォルニア州サンタ・クララのIntel Corporationから入手可能なPENTIUM(登録商標)プロセッサ・ファミリー、Xeon(商標)、Itanium(登録商標)、XScale(商標)及び/又はStrongARM(商標)、Intel(登録商標)Core(商標)、又はIntel(登録商標)Nervana(商標)マイクロプロセッサなどのプロセッサを含み得るが、(他のマイクロプロセッサ、エンジニアリング・ワークステーション、セット・トップ・ボックスなどを有するPCを含む)他のシステムも使用され得る。少なくとも1つの実施例では、コンピュータ・システム1000は、ワシントン州レドモンドのMicrosoft Corporationから入手可能なWINDOWS(登録商標)オペレーティング・システムのあるバージョンを実行し得るが、他のオペレーティング・システム(たとえば、UNIX(登録商標)及びLinux(登録商標))、組み込みソフトウェア、及び/又はグラフィカル・ユーザ・インターフェースも使用され得る。
【0058】
実施例は、ハンドヘルド・デバイス及び組み込みアプリケーションなど、他のデバイスにおいて使用され得る。ハンドヘルド・デバイスのいくつかの実例は、セルラー・フォン、インターネット・プロトコル・デバイス、デジタル・カメラ、パーソナル・デジタル・アシスタント(「PDA」:personal digital assistant)、及びハンドヘルドPCを含む。少なくとも1つの実施例では、組み込みアプリケーションは、マイクロコントローラ、デジタル信号プロセッサ(「DSP」:digital signal processor)、システム・オン・チップ、ネットワーク・コンピュータ(「NetPC」:network computer)、セット・トップ・ボックス、ネットワーク・ハブ、ワイド・エリア・ネットワーク(「WAN」:wide area network)スイッチ、又は少なくとも1つの実施例による1つ又は複数の命令を実施し得る任意の他のシステムを含み得る。
【0059】
少なくとも1つの実施例では、コンピュータ・システム1000は、限定はしないが、プロセッサ1002を含み得、プロセッサ1002は、限定はしないが、本明細書で説明される技法による機械学習モデル訓練及び/又は推論を実施するための1つ又は複数の実行ユニット1008を含み得る。少なくとも1つの実施例では、コンピュータ・システム1000は、シングル・プロセッサ・デスクトップ又はサーバ・システムであるが、別の実施例では、コンピュータ・システム1000は、マルチプロセッサ・システムであり得る。少なくとも1つの実施例では、プロセッサ1002は、限定はしないが、複合命令セット・コンピュータ(「CISC」:complex instruction set computer)マイクロプロセッサ、縮小命令セット・コンピューティング(「RISC」:reduced instruction set computing)マイクロプロセッサ、超長命令語(「VLIW」:very long instruction word)マイクロプロセッサ、命令セットの組合せを実装するプロセッサ、又は、たとえばデジタル信号プロセッサなど、任意の他のプロセッサ・デバイスを含み得る。少なくとも1つの実施例では、プロセッサ1002は、プロセッサ・バス1010に結合され得、プロセッサ・バス1010は、プロセッサ1002とコンピュータ・システム1000中の他の構成要素との間でデータ信号を送信し得る。
【0060】
少なくとも1つの実施例では、プロセッサ1002は、限定はしないが、レベル1(「L1」)の内部キャッシュ・メモリ(「キャッシュ」)1004を含み得る。少なくとも1つの実施例では、プロセッサ1002は、単一の内部キャッシュ又は複数のレベルの内部キャッシュを有し得る。少なくとも1つの実施例では、キャッシュ・メモリは、プロセッサ1002の外部に存在し得る。他の実施例は、特定の実装形態及び必要性に応じて、内部キャッシュと外部キャッシュの両方の組合せをも含み得る。少なくとも1つの実施例では、レジスタ・ファイル1006は、限定はしないが、整数レジスタ、浮動小数点レジスタ、ステータス・レジスタ、及び命令ポインタ・レジスタを含む様々なレジスタに、異なるタイプのデータを記憶し得る。
【0061】
少なくとも1つの実施例では、限定はしないが、整数演算及び浮動小数点演算を実施するための論理を含む実行ユニット1008も、プロセッサ1002中に存在する。少なくとも1つの実施例では、プロセッサ1002は、いくつかのマクロ命令のためのマイクロコードを記憶するマイクロコード(「uコード」)読取り専用メモリ(「ROM」:read only memory)をも含み得る。少なくとも1つの実施例では、実行ユニット1008は、パック命令セット1009に対処するための論理を含み得る。少なくとも1つの実施例では、パック命令セット1009を、命令を実行するための関連する回路要素とともに汎用プロセッサ1002の命令セットに含めることによって、多くのマルチメディア・アプリケーションによって使用される演算が、汎用プロセッサ1002中のパック・データを使用して実施され得る。1つ又は複数の実施例では、多くのマルチメディア・アプリケーションが、パック・データの演算を実施するためにプロセッサのデータ・バスの全幅を使用することによって加速され、より効率的に実行され得、これは、一度に1つのデータ要素ずつ1つ又は複数の演算を実施するために、プロセッサのデータ・バスにわたってより小さい単位のデータを転送する必要をなくし得る。
【0062】
少なくとも1つの実施例では、実行ユニット1008はまた、マイクロコントローラ、組み込みプロセッサ、グラフィックス・デバイス、DSP、及び他のタイプの論理回路において使用され得る。少なくとも1つの実施例では、コンピュータ・システム1000は、限定はしないが、メモリ1020を含み得る。少なくとも1つの実施例では、メモリ1020は、ダイナミック・ランダム・アクセス・メモリ(「DRAM」:Dynamic Random Access Memory)デバイス、スタティック・ランダム・アクセス・メモリ(「SRAM」:Static Random Access Memory)デバイス、フラッシュ・メモリ・デバイス、又は他のメモリ・デバイスとして実装され得る。少なくとも1つの実施例では、メモリ1020は、プロセッサ1002によって実行され得るデータ信号によって表される(1つ又は複数の)命令1019及び/又はデータ1021を記憶し得る。
【0063】
少なくとも1つの実施例では、システム論理チップが、プロセッサ・バス1010及びメモリ1020に結合され得る。少なくとも1つの実施例では、システム論理チップは、限定はしないが、メモリ・コントローラ・ハブ(「MCH」:memory controller hub)1016を含み得、プロセッサ1002は、プロセッサ・バス1010を介してMCH1016と通信し得る。少なくとも1つの実施例では、MCH1016は、命令及びデータ・ストレージのための、並びにグラフィックス・コマンド、データ及びテクスチャのストレージのための、高帯域幅メモリ経路1018をメモリ1020に提供し得る。少なくとも1つの実施例では、MCH1016は、プロセッサ1002と、メモリ1020と、コンピュータ・システム1000中の他の構成要素との間でデータ信号をダイレクトし、プロセッサ・バス1010と、メモリ1020と、システムI/O1022との間でデータ信号をブリッジし得る。少なくとも1つの実施例では、システム論理チップは、グラフィックス・コントローラに結合するためのグラフィックス・ポートを提供し得る。少なくとも1つの実施例では、MCH1016は、高帯域幅メモリ経路1018を通してメモリ1020に結合され得、グラフィックス/ビデオ・カード1012は、アクセラレーテッド・グラフィックス・ポート(「AGP」:Accelerated Graphics Port)相互接続1014を介してMCH1016に結合され得る。
【0064】
少なくとも1つの実施例では、コンピュータ・システム1000は、MCH1016をI/Oコントローラ・ハブ(「ICH」:I/O controller hub)1030に結合するためのプロプライエタリ・ハブ・インターフェース・バスである、システムI/O1022を使用し得る。少なくとも1つの実施例では、ICH1030は、ローカルI/Oバスを介していくつかのI/Oデバイスに直接接続を提供し得る。少なくとも1つの実施例では、ローカルI/Oバスは、限定はしないが、周辺機器をメモリ1020、チップセット、及びプロセッサ1002に接続するための高速I/Oバスを含み得る。実例は、限定はしないが、オーディオ・コントローラ1029と、ファームウェア・ハブ(「フラッシュBIOS」)1028と、ワイヤレス・トランシーバ1026と、データ・ストレージ1024と、ユーザ入力及びキーボード・インターフェース1025を含んでいるレガシーI/Oコントローラ1023と、ユニバーサル・シリアル・バス(「USB」:Universal Serial Bus)などのシリアル拡張ポート1027と、ネットワーク・コントローラ1034とを含み得る。データ・ストレージ1024は、ハード・ディスク・ドライブ、フロッピー・ディスク・ドライブ、CD-ROMデバイス、フラッシュ・メモリ・デバイス、又は他の大容量ストレージ・デバイスを備え得る。
【0065】
少なくとも1つの実施例では、
図10は、相互接続されたハードウェア・デバイス又は「チップ」を含むシステムを示すが、他の実施例では、
図10は、例示的なシステム・オン・チップ(「SoC」)を示し得る。少なくとも1つの実施例では、デバイスは、プロプライエタリ相互接続、標準相互接続(たとえば、PCIe)又はそれらの何らかの組合せで相互接続され得る。少なくとも1つの実施例では、コンピュータ・システム1000の1つ又は複数の構成要素は、コンピュート・エクスプレス・リンク(CXL:compute express link)相互接続を使用して相互接続される。
【0066】
1つ又は複数の実施例に関連付けられた推論及び/又は訓練動作を実施するために、推論及び/又は訓練論理815が使用される。推論及び/又は訓練論理815に関する詳細は、
図8a及び/又は
図8bと併せて以下で提供される。少なくとも1つの実施例では、推論及び/又は訓練論理815は、本明細書で説明されるニューラル・ネットワーク訓練動作、ニューラル・ネットワーク機能及び/又はアーキテクチャ、或いはニューラル・ネットワーク使用事例を使用して計算された重みパラメータに少なくとも部分的に基づいて、推論又は予測動作のために
図10のシステムにおいて使用され得る。
【0067】
そのような構成要素は、大規模言語モデルなど、同じモデルを再訓練する必要なしに、そのモデルを使用してカスタム・タスクが実施されることを可能にするために使用され得る。
【0068】
図11は、少なくとも1つの実施例による、プロセッサ1110を利用するための電子デバイス1100を示すブロック図である。少なくとも1つの実施例では、電子デバイス1100は、たとえば、限定はしないが、ノートブック、タワー・サーバ、ラック・サーバ、ブレード・サーバ、ラップトップ、デスクトップ、タブレット、モバイル・デバイス、電話、組み込みコンピュータ、又は任意の他の好適な電子デバイスであり得る。
【0069】
少なくとも1つの実施例では、システム1100は、限定はしないが、任意の好適な数又は種類の構成要素、周辺機器、モジュール、又はデバイスに通信可能に結合されたプロセッサ1110を含み得る。少なくとも1つの実施例では、プロセッサ1110は、1℃バス、システム管理バス(「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)バスなど、バス又はインターフェースを使用して結合した。少なくとも1つの実施例では、
図11は、相互接続されたハードウェア・デバイス又は「チップ」を含むシステムを示すが、他の実施例では、
図11は、例示的なシステム・オン・チップ(「SoC」)を示し得る。少なくとも1つの実施例では、
図11に示されているデバイスは、プロプライエタリ相互接続、標準相互接続(たとえば、PCIe)又はそれらの何らかの組合せで相互接続され得る。少なくとも1つの実施例では、
図11の1つ又は複数の構成要素は、コンピュート・エクスプレス・リンク(CXL)相互接続を使用して相互接続される。
【0070】
少なくとも1つの実施例では、
図11は、ディスプレイ1124、タッチ・スクリーン1125、タッチ・パッド1130、ニア・フィールド通信ユニット(「NFC」:Near Field Communication)1145、センサ・ハブ1140、熱センサ1146、エクスプレス・チップセット(「EC」:Express Chipset)1135、トラステッド・プラットフォーム・モジュール(「TPM」:Trusted Platform Module)1138、BIOS/ファームウェア/フラッシュ・メモリ(「BIOS、FWフラッシュ」:BIOS/firmware/flash memory)1122、DSP1160、ソリッド・ステート・ディスク(「SSD」:Solid State Disk)又はハード・ディスク・ドライブ(「HDD」:Hard Disk Drive)などのドライブ1120、ワイヤレス・ローカル・エリア・ネットワーク・ユニット(「WLAN」:wireless local area network)1150、Bluetoothユニット1152、ワイヤレス・ワイド・エリア・ネットワーク・ユニット(「WWAN」:Wireless Wide Area Network)1156、全地球測位システム(GPS:Global Positioning System)1155、USB3.0カメラなどのカメラ(「USB3.0カメラ」)1154、及び/或いは、たとえばLPDDR3規格において実装された低電力ダブル・データ・レート(「LPDDR」:Low Power Double Data Rate)メモリ・ユニット(「LPDDR3」)1115を含み得る。これらの構成要素は、各々、任意の好適な様式で実装され得る。
【0071】
少なくとも1つの実施例では、上記で説明された構成要素を通して、他の構成要素がプロセッサ1110に通信可能に結合され得る。少なくとも1つの実施例では、加速度計1141と、周囲光センサ(「ALS」:Ambient Light Sensor)1142と、コンパス1143と、ジャイロスコープ1144とが、センサ・ハブ1140に通信可能に結合され得る。少なくとも1つの実施例では、熱センサ1139と、ファン1137と、キーボード1146と、タッチ・パッド1130とが、EC1135に通信可能に結合され得る。少なくとも1つの実施例では、スピーカー1163と、ヘッドフォン1164と、マイクロフォン(「mic」)1165とが、オーディオ・ユニット(「オーディオ・コーデック及びクラスdアンプ」)1162に通信可能に結合され得、オーディオ・ユニット1162は、DSP1160に通信可能に結合され得る。少なくとも1つの実施例では、オーディオ・ユニット1164は、たとえば、限定はしないが、オーディオ・コーダ/デコーダ(「コーデック」)及びクラスD増幅器を含み得る。少なくとも1つの実施例では、SIMカード(「SIM」)1157は、WWANユニット1156に通信可能に結合され得る。少なくとも1つの実施例では、WLANユニット1150及びBluetoothユニット1152などの構成要素、並びにWWANユニット1156は、次世代フォーム・ファクタ(「NGFF」:Next Generation Form Factor)において実装され得る。
【0072】
1つ又は複数の実施例に関連付けられた推論及び/又は訓練動作を実施するために、推論及び/又は訓練論理815が使用される。推論及び/又は訓練論理815に関する詳細は、
図8a及び/又は
図8bと併せて以下で提供される。少なくとも1つの実施例では、推論及び/又は訓練論理815は、本明細書で説明されるニューラル・ネットワーク訓練動作、ニューラル・ネットワーク機能及び/又はアーキテクチャ、或いはニューラル・ネットワーク使用事例を使用して計算された重みパラメータに少なくとも部分的に基づいて、推論又は予測動作のために
図10のシステムにおいて使用され得る。
【0073】
そのような構成要素は、大規模言語モデルなど、同じモデルを再訓練する必要なしに、そのモデルを使用してカスタム・タスクが実施されることを可能にするために使用され得る。
【0074】
図12は、少なくとも1つの実施例による、処理システムのブロック図である。少なくとも1つの実施例では、システム1200は、1つ又は複数のプロセッサ1202と1つ又は複数のグラフィックス・プロセッサ1208とを含み、単一プロセッサ・デスクトップ・システム、マルチプロセッサ・ワークステーション・システム、或いは多数のプロセッサ1202又はプロセッサ・コア1207を有するサーバ・システムであり得る。少なくとも1つの実施例では、システム1200は、モバイル・デバイス、ハンドヘルド・デバイス、又は組み込みデバイスにおいて使用するためのシステム・オン・チップ(SoC)集積回路内に組み込まれた処理プラットフォームである。
【0075】
少なくとも1つの実施例では、システム1200は、サーバ・ベースのゲーミング・プラットフォーム、ゲーム及びメディア・コンソールを含むゲーム・コンソール、モバイル・ゲーミング・コンソール、ハンドヘルド・ゲーム・コンソール、又はオンライン・ゲーム・コンソールを含むことができるか、或いはそれらの内部に組み込まれ得る。少なくとも1つの実施例では、システム1200は、モバイル・フォン、スマート・フォン、タブレット・コンピューティング・デバイス又はモバイル・インターネット・デバイスである。少なくとも1つの実施例では、処理システム1200はまた、スマート・ウォッチ・ウェアラブル・デバイス、スマート・アイウェア・デバイス、拡張現実デバイス、又は仮想現実デバイスなどのウェアラブル・デバイスを含むことができるか、それらと結合することができるか、又はそれらの内部に組み込まれ得る。少なくとも1つの実施例では、処理システム1200は、1つ又は複数のプロセッサ1202と、1つ又は複数のグラフィックス・プロセッサ1208によって生成されるグラフィカル・インターフェースとを有するテレビ又はセット・トップ・ボックス・デバイスである。
【0076】
少なくとも1つの実施例では、1つ又は複数のプロセッサ1202は、各々、実行されたときにシステム及びユーザ・ソフトウェアのための動作を実施する命令を処理するための1つ又は複数のプロセッサ・コア1207を含む。少なくとも1つの実施例では、1つ又は複数のプロセッサ・コア1207の各々は、特定の命令セット1209を処理するように構成される。少なくとも1つの実施例では、命令セット1209は、複合命令セット・コンピューティング(CISC:Complex Instruction Set Computing)、縮小命令セット・コンピューティング(RISC)、又は超長命令語(VLIW)を介したコンピューティングを容易にし得る。少なくとも1つの実施例では、プロセッサ・コア1207は、各々、異なる命令セット1209を処理し得、命令セット1209は、他の命令セットのエミュレーションを容易にするための命令を含み得る。少なくとも1つの実施例では、プロセッサ・コア1207はまた、デジタル信号プロセッサ(DSP)などの他の処理デバイスを含み得る。
【0077】
少なくとも1つの実施例では、プロセッサ1202はキャッシュ・メモリ1204を含む。少なくとも1つの実施例では、プロセッサ1202は、単一の内部キャッシュ又は複数のレベルの内部キャッシュを有することができる。少なくとも1つの実施例では、キャッシュ・メモリは、プロセッサ1202の様々な構成要素の間で共有される。少なくとも1つの実施例では、プロセッサ1202はまた、外部キャッシュ(たとえば、レベル3(L3)キャッシュ又はラスト・レベル・キャッシュ(LLC:Last Level Cache))(図示せず)を使用し、外部キャッシュは、知られているキャッシュ・コヒーレンシ技法を使用してプロセッサ・コア1207の間で共有され得る。少なくとも1つの実施例では、追加として、レジスタ・ファイル1206がプロセッサ1202中に含まれ、レジスタ・ファイル1206は、異なるタイプのデータを記憶するための異なるタイプのレジスタ(たとえば、整数レジスタ、浮動小数点レジスタ、ステータス・レジスタ、及び命令ポインタ・レジスタ)を含み得る。少なくとも1つの実施例では、レジスタ・ファイル1206は、汎用レジスタ又は他のレジスタを含み得る。
【0078】
少なくとも1つの実施例では、1つ又は複数のプロセッサ1202は、アドレス、データ、又は制御信号などの通信信号を、プロセッサ1202とシステム1200中の他の構成要素との間で送信するために、1つ又は複数のインターフェース・バス1210と結合される。少なくとも1つの実施例では、1つの実施例におけるインターフェース・バス1210は、ダイレクト・メディア・インターフェース(DMI:Direct Media Interface)バスのバージョンなどのプロセッサ・バスであり得る。少なくとも1つの実施例では、インターフェース1210は、DMIバスに限定されず、1つ又は複数の周辺構成要素相互接続バス(たとえば、PCI、PCI Express)、メモリ・バス、又は他のタイプのインターフェース・バスを含み得る。少なくとも1つの実施例では、(1つ又は複数の)プロセッサ1202は、統合されたメモリ・コントローラ1216と、プラットフォーム・コントローラ・ハブ1230とを含む。少なくとも1つの実施例では、メモリ・コントローラ1216は、メモリ・デバイスとシステム1200の他の構成要素との間の通信を容易にし、プラットフォーム・コントローラ・ハブ(PCH:platform controller hub)1230は、ローカルI/Oバスを介してI/Oデバイスへの接続を提供する。
【0079】
少なくとも1つの実施例では、メモリ・デバイス1220は、ダイナミック・ランダム・アクセス・メモリ(DRAM)デバイス、スタティック・ランダム・アクセス・メモリ(SRAM)デバイス、フラッシュ・メモリ・デバイス、相変化メモリ・デバイス、又はプロセス・メモリとして働くのに好適な性能を有する何らかの他のメモリ・デバイスであり得る。少なくとも1つの実施例では、メモリ・デバイス1220は、1つ又は複数のプロセッサ1202がアプリケーション又はプロセスを実行するときの使用のためのデータ1222及び命令1221を記憶するために、システム1200のためのシステム・メモリとして動作することができる。少なくとも1つの実施例では、メモリ・コントローラ1216はまた、随意の外部グラフィックス・プロセッサ1212と結合し、外部グラフィックス・プロセッサ1212は、グラフィックス動作及びメディア動作を実施するために、プロセッサ1202中の1つ又は複数のグラフィックス・プロセッサ1208と通信し得る。少なくとも1つの実施例では、ディスプレイ・デバイス1211は、(1つ又は複数の)プロセッサ1202に接続することができる。少なくとも1つの実施例では、ディスプレイ・デバイス1211は、モバイル電子デバイス又はラップトップ・デバイスの場合のような内部ディスプレイ・デバイス、或いは、ディスプレイ・インターフェース(たとえば、DisplayPortなど)を介して取り付けられた外部ディスプレイ・デバイスのうちの1つ又は複数を含むことができる。少なくとも1つの実施例では、ディスプレイ・デバイス1211は、仮想現実(VR:virtual reality)アプリケーション又は拡張現実(AR:augmented reality)アプリケーションにおいて使用するための立体ディスプレイ・デバイスなどの頭部装着型ディスプレイ(HMD:head mounted display)を含むことができる。
【0080】
少なくとも1つの実施例では、プラットフォーム・コントローラ・ハブ1230は、周辺機器が高速I/Oバスを介してメモリ・デバイス1220及びプロセッサ1202に接続することを可能にする。少なくとも1つの実施例では、I/O周辺機器は、限定はしないが、オーディオ・コントローラ1246と、ネットワーク・コントローラ1234と、ファームウェア・インターフェース1228と、ワイヤレス・トランシーバ1226と、タッチ・センサ1225と、データ・ストレージ・デバイス1224(たとえば、ハード・ディスク・ドライブ、フラッシュ・メモリなど)とを含む。少なくとも1つの実施例では、データ・ストレージ・デバイス1224は、ストレージ・インターフェース(たとえば、SATA)を介して、又は周辺構成要素相互接続バス(たとえば、PCI、PCI Express)などの周辺バスを介して、接続することができる。少なくとも1つの実施例では、タッチ・センサ1225は、タッチ・スクリーン・センサ、圧力センサ、又は指紋センサを含むことができる。少なくとも1つの実施例では、ワイヤレス・トランシーバ1226は、Wi-Fiトランシーバ、Bluetoothトランシーバ、或いは3G、4G、又はロング・ターム・エボリューション(LTE:Long Term Evolution)トランシーバなどのモバイル・ネットワーク・トランシーバであり得る。少なくとも1つの実施例では、ファームウェア・インターフェース1228は、システム・ファームウェアとの通信を可能にし、たとえば、ユニファイド・エクステンシブル・ファームウェア・インターフェース(UEFI:unified extensible firmware interface)であり得る。少なくとも1つの実施例では、ネットワーク・コントローラ1234は、ワイヤード・ネットワークへのネットワーク接続を可能にすることができる。少なくとも1つの実施例では、高性能ネットワーク・コントローラ(図示せず)は、インターフェース・バス1210と結合する。少なくとも1つの実施例では、オーディオ・コントローラ1246は、マルチチャネル高精細度オーディオ・コントローラである。少なくとも1つの実施例では、システム1200は、レガシー(たとえば、パーソナル・システム2(PS/2:Personal System 2))デバイスをシステムに結合するための随意のレガシーI/Oコントローラ1240を含む。少なくとも1つの実施例では、プラットフォーム・コントローラ・ハブ1230は、キーボードとマウス1243との組合せ、カメラ1244、又は他のUSB入力デバイスなど、1つ又は複数のユニバーサル・シリアル・バス(USB)コントローラ1242接続入力デバイスにも接続することができる。
【0081】
少なくとも1つの実施例では、メモリ・コントローラ1216及びプラットフォーム・コントローラ・ハブ1230のインスタンスが、外部グラフィックス・プロセッサ1212などの慎重な外部グラフィックス・プロセッサに組み込まれ得る。少なくとも1つの実施例では、プラットフォーム・コントローラ・ハブ1230及び/又はメモリ・コントローラ1216は、1つ又は複数のプロセッサ1202の外部にあり得る。たとえば、少なくとも1つの実施例では、システム1200は、外部のメモリ・コントローラ1216とプラットフォーム・コントローラ・ハブ1230とを含むことができ、それらは、(1つ又は複数の)プロセッサ1202と通信しているシステム・チップセット内のメモリ・コントローラ・ハブ及び周辺コントローラ・ハブとして構成され得る。
【0082】
1つ又は複数の実施例に関連付けられた推論及び/又は訓練動作を実施するために、推論及び/又は訓練論理815が使用される。推論及び/又は訓練論理815に関する詳細は、
図8a及び/又は
図8bと併せて以下で提供される。少なくとも1つの実施例では、推論及び/又は訓練論理815の部分又はすべてが、グラフィックス・プロセッサ1500に組み込まれ得る。たとえば、少なくとも1つの実施例では、本明細書で説明される訓練及び/又は推論技法は、グラフィックス・プロセッサにおいて具体化されたALUのうちの1つ又は複数を使用し得る。その上、少なくとも1つの実施例では、本明細書で説明される推論及び/又は訓練動作は、
図8A又は
図8Bに示されている論理以外の論理を使用して行われ得る。少なくとも1つの実施例では、重みパラメータは、本明細書で説明される1つ又は複数の機械学習アルゴリズム、ニューラル・ネットワーク・アーキテクチャ、使用事例、又は訓練技法を実施するためのグラフィックス・プロセッサのALUを構成する(示されている又は示されていない)オンチップ又はオフチップ・メモリ及び/又はレジスタに記憶され得る。
【0083】
そのような構成要素は、大規模言語モデルなど、同じモデルを再訓練する必要なしに、そのモデルを使用してカスタム・タスクが実施されることを可能にするために使用され得る。
【0084】
図13は、少なくとも1つの実施例による、1つ又は複数のプロセッサ・コア1302A~1302Nと、統合されたメモリ・コントローラ1314と、統合されたグラフィックス・プロセッサ1308とを有するプロセッサ1300のブロック図である。少なくとも1つの実施例では、プロセッサ1300は、破線ボックスによって表される追加コア1302Nまでの追加コアを含むことができる。少なくとも1つの実施例では、プロセッサ・コア1302A~1302Nの各々は、1つ又は複数の内部キャッシュ・ユニット1304A~1304Nを含む。少なくとも1つの実施例では、各プロセッサ・コアはまた、1つ又は複数の共有キャッシュド・ユニット1306へのアクセスを有する。
【0085】
少なくとも1つの実施例では、内部キャッシュ・ユニット1304A~1304Nと共有キャッシュ・ユニット1306とは、プロセッサ1300内のキャッシュ・メモリ階層を表す。少なくとも1つの実施例では、キャッシュ・メモリ・ユニット1304A~1304Nは、各プロセッサ・コア内の命令及びデータ・キャッシュの少なくとも1つのレベル、及びレベル2(L2)、レベル3(L3)、レベル4(L4)などの共有中間レベル・キャッシュの1つ又は複数のレベル、又はキャッシュの他のレベルを含み得、ここで、外部メモリの前の最高レベルのキャッシュは、LLCとして分類される。少なくとも1つの実施例では、キャッシュ・コヒーレンシ論理は、様々なキャッシュ・ユニット1306及び1304A~1304N間でコヒーレンシを維持する。
【0086】
少なくとも1つの実施例では、プロセッサ1300は、1つ又は複数のバス・コントローラ・ユニット1316とシステム・エージェント・コア1310とのセットをも含み得る。少なくとも1つの実施例では、1つ又は複数のバス・コントローラ・ユニット1316は、1つ又は複数のPCI又はPCIエクスプレス・バスなどの周辺バスのセットを管理する。少なくとも1つの実施例では、システム・エージェント・コア1310は、様々なプロセッサ構成要素のための管理機能性を提供する。少なくとも1つの実施例では、システム・エージェント・コア1310は、様々な外部メモリ・デバイス(図示せず)へのアクセスを管理するための1つ又は複数の統合されたメモリ・コントローラ1314を含む。
【0087】
少なくとも1つの実施例では、プロセッサ・コア1302A~1302Nのうちの1つ又は複数は、同時マルチスレッディングのサポートを含む。少なくとも1つの実施例では、システム・エージェント・コア1310は、マルチスレッド処理中にコア1302A~1302Nを協調させ、動作させるための構成要素を含む。少なくとも1つの実施例では、システム・エージェント・コア1310は、追加として、電力制御ユニット(PCU:power control unit)を含み得、PCUは、プロセッサ・コア1302A~1302N及びグラフィックス・プロセッサ1308の1つ又は複数の電力状態を調節するための論理及び構成要素を含む。
【0088】
少なくとも1つの実施例では、プロセッサ1300は、追加として、グラフィックス処理動作を実行するためのグラフィックス・プロセッサ1308を含む。少なくとも1つの実施例では、グラフィックス・プロセッサ1308は、共有キャッシュ・ユニット1306、及び1つ又は複数の統合されたメモリ・コントローラ1314を含むシステム・エージェント・コア1310と結合する。少なくとも1つの実施例では、システム・エージェント・コア1310は、1つ又は複数の結合されたディスプレイへのグラフィックス・プロセッサ出力を駆動するためのディスプレイ・コントローラ1311をも含む。少なくとも1つの実施例では、ディスプレイ・コントローラ1311はまた、少なくとも1つの相互接続を介してグラフィックス・プロセッサ1308と結合された別個のモジュールであり得るか、又はグラフィックス・プロセッサ1308内に組み込まれ得る。
【0089】
少なくとも1つの実施例では、プロセッサ1300の内部構成要素を結合するために、リング・ベースの相互接続ユニット1312が使用される。少なくとも1つの実施例では、ポイントツーポイント相互接続、切替え相互接続、又は他の技法などの代替相互接続ユニットが使用され得る。少なくとも1つの実施例では、グラフィックス・プロセッサ1308は、I/Oリンク1313を介してリング相互接続1312と結合する。
【0090】
少なくとも1つの実施例では、I/Oリンク1313は、様々なプロセッサ構成要素と、eDRAMモジュールなどの高性能組み込みメモリ・モジュール1318との間の通信を容易にするオン・パッケージI/O相互接続を含む、複数の種類のI/O相互接続のうちの少なくとも1つを表す。少なくとも1つの実施例では、プロセッサ・コア1302A~1302Nの各々と、グラフィックス・プロセッサ1308とは、共有ラスト・レベル・キャッシュとして組み込みメモリ・モジュール1318を使用する。
【0091】
少なくとも1つの実施例では、プロセッサ・コア1302A~1302Nは、共通の命令セット・アーキテクチャを実行する同種のコアである。少なくとも1つの実施例では、プロセッサ・コア1302A~1302Nは、命令セット・アーキテクチャ(ISA:instruction set architecture)という観点から異種であり、ここで、プロセッサ・コア1302A~1302Nのうちの1つ又は複数は、共通の命令セットを実行し、プロセッサ・コア1302A~1302Nのうちの1つ又は複数の他のコアは、共通の命令セットのサブセット、又は異なる命令セットを実行する。少なくとも1つの実施例では、プロセッサ・コア1302A~1302Nは、マイクロアーキテクチャという観点から異種であり、ここで、電力消費量が比較的高い1つ又は複数のコアは、電力消費量がより低い1つ又は複数の電力コアと結合する。少なくとも1つの実施例では、プロセッサ1300は、1つ又は複数のチップ上に、又はSoC集積回路として実装され得る。
【0092】
1つ又は複数の実施例に関連付けられた推論及び/又は訓練動作を実施するために、推論及び/又は訓練論理815が使用される。推論及び/又は訓練論理815に関する詳細は、
図8a及び/又は
図8bと併せて以下で提供される。少なくとも1つの実施例では、推論及び/又は訓練論理815の部分又はすべてが、プロセッサ1300に組み込まれ得る。たとえば、少なくとも1つの実施例では、本明細書で説明される訓練及び/又は推論技法は、グラフィックス・プロセッサ1312、(1つ又は複数の)グラフィックス・コア1302A~1302N、又は
図13中の他の構成要素において具体化されたALUのうちの1つ又は複数を使用し得る。その上、少なくとも1つの実施例では、本明細書で説明される推論及び/又は訓練動作は、
図8A又は
図8Bに示されている論理以外の論理を使用して行われ得る。少なくとも1つの実施例では、重みパラメータは、本明細書で説明される1つ又は複数の機械学習アルゴリズム、ニューラル・ネットワーク・アーキテクチャ、使用事例、又は訓練技法を実施するためのグラフィックス・プロセッサ1300のALUを構成する(示されている又は示されていない)オンチップ又はオフチップ・メモリ及び/又はレジスタに記憶され得る。
【0093】
そのような構成要素は、大規模言語モデルなど、同じモデルを再訓練する必要なしに、そのモデルを使用してカスタム・タスクが実施されることを可能にするために使用され得る。
【0094】
仮想化されたコンピューティング・プラットフォーム
図14は、少なくとも1つの実施例による、画像処理及び推論パイプラインを生成及び導入するプロセス1400のための例示的なデータ・フロー図である。少なくとも1つの実施例では、プロセス1400は、1つ又は複数の施設1402において、撮像デバイス、処理デバイス、及び/又は他のデバイス・タイプとともに使用するために導入され得る。プロセス1400は、訓練システム1404及び/又は導入システム1406内で実行され得る。少なくとも1つの実施例では、訓練システム1404は、導入システム1406における使用のための機械学習モデル(たとえば、ニューラル・ネットワーク、物体検出アルゴリズム、コンピュータ・ビジョン・アルゴリズムなど)の訓練、導入、及び実装を実施するために使用され得る。少なくとも1つの実施例では、導入システム1406は、施設1402におけるインフラストラクチャ要件を低減するために、処理及びコンピュート・リソースを分散型コンピューティング環境の間でオフロードするように構成され得る。少なくとも1つの実施例では、パイプライン中の1つ又は複数のアプリケーションは、アプリケーションの実行中に導入システム1406のサービス(たとえば、推論、視覚化、コンピュート、AIなど)を使用するか、又はコールし得る。
【0095】
少なくとも1つの実施例では、先進処理及び推論パイプラインにおいて使用されるアプリケーションのいくつかは、1つ又は複数の処理ステップを実施するために機械学習モデル又は他のAIを使用し得る。少なくとも1つの実施例では、機械学習モデルは、施設1402において生成された(及び、施設1402において1つ又は複数のピクチャ・アーカイブ及び通信システム(PACS:picture archiving and communication system)サーバに記憶された)(撮像データなどの)データ1408を使用して、施設1402において訓練され得るか、(1つ又は複数の)別の施設からの撮像又はシーケンシング・データ1408を使用して訓練され得るか、或いはそれらの組合せであり得る。少なくとも1つの実施例では、訓練システム1404は、導入システム1406のための実用的で導入可能な機械学習モデルを生成するためのアプリケーション、サービス、及び/又は他のリソースを提供するために使用され得る。
【0096】
少なくとも1つの実施例では、モデル・レジストリ1424は、バージョン管理及び物体メタデータをサポートし得る物体ストレージによってバックアップされ得る。少なくとも1つの実施例では、物体ストレージは、たとえば、クラウド・プラットフォーム内から、クラウド・ストレージ(たとえば、
図12のクラウド1226)互換アプリケーション・プログラミング・インターフェース(API:application programming interface)を通してアクセス可能であり得る。少なくとも1つの実施例では、モデル・レジストリ1424内の機械学習モデルは、システムの開発者又はパートナーがAPIと対話することによって、アップロード、リスト化、修正、又は削除され得る。少なくとも1つの実施例では、APIは、適切な資格をもつユーザがモデルをアプリケーションに関連付けることを可能にする方法へのアクセスを提供し得、それにより、モデルは、アプリケーションのコンテナ化されたインスタンス化の実行の一部として実行され得る。
【0097】
少なくとも1つの実施例では、訓練パイプライン1404(
図14)は、施設1402がそれ自体の機械学習モデルを訓練しているか、或いは、最適化又は更新される必要がある既存の機械学習モデルを有するシナリオを含み得る。少なくとも1つの実施例では、(1つ又は複数の)撮像デバイス、シーケンシング・デバイス、及び/又は他のデバイス・タイプによって生成された撮像データ1408が受信され得る。少なくとも1つの実施例では、撮像データ1408が受信されると、機械学習モデルについてのグランド・トゥルース・データとして使用されるべき撮像データ1408に対応するアノテーションを生成するのを補助するために、AI支援アノテーション1410が使用され得る。少なくとも1つの実施例では、AI支援アノテーション1410は、1つ又は複数の機械学習モデル(たとえば、畳み込みニューラル・ネットワーク(CNN:convolutional neural network))を含み得、1つ又は複数の機械学習モデルは、(たとえば、いくつかのデバイスからの)いくつかのタイプの撮像データ1408に対応するアノテーションを生成するように訓練され得る。少なくとも1つの実施例では、次いで、AI支援アノテーション1410は、グランド・トゥルース・データを生成するために、直接使用され得るか、或いは、アノテーション・ツールを使用して調整又は微調整され得る。少なくとも1つの実施例では、AI支援アノテーション1410、ラベル付きクリニック・データ1412、又はそれらの組合せが、機械学習モデルを訓練するためのグランド・トゥルース・データとして使用され得る。少なくとも1つの実施例では、訓練された機械学習モデルは出力モデル1416と呼ばれることがあり、本明細書で説明されるように、導入システム1406によって使用され得る。
【0098】
少なくとも1つの実施例では、訓練パイプライン1204(
図12)は、施設1402が、導入システム1406中の1つ又は複数のアプリケーションのための1つ又は複数の処理タスクを実施する際に使用するための機械学習モデルを必要とするが、施設1402は現在そのような機械学習モデルを有しないことがある(或いは、そのような目的のために最適化された、効率的な、又は有効なモデルを有しないことがある)シナリオを含み得る。少なくとも1つの実施例では、既存の機械学習モデルが、モデル・レジストリ1424から選択され得る。少なくとも1つの実施例では、モデル・レジストリ1424は、撮像データに対して様々な異なる推論タスクを実施するように訓練された機械学習モデルを含み得る。少なくとも1つの実施例では、モデル・レジストリ1424中の機械学習モデルは、施設1402とは異なる施設(たとえば、離れた場所にある施設)からの撮像データに関して訓練されていることがある。少なくとも1つの実施例では、機械学習モデルは、1つのロケーション、2つのロケーション、又は任意の数のロケーションからの撮像データに関して訓練されていることがある。少なくとも1つの実施例では、特定のロケーションからの撮像データに関して訓練されているとき、訓練は、そのロケーションにおいて行われ得るか、或いは少なくとも、撮像データの機密性を保護するか又は撮像データが構外へ転送されるのを制限する様式で、行われ得る。少なくとも1つの実施例では、1つのロケーションにおいてモデルが訓練されると、又は部分的に訓練されると、機械学習モデルはモデル・レジストリ1424に追加され得る。少なくとも1つの実施例では、次いで、機械学習モデルは、任意の数の他の施設において再訓練又は更新され得、再訓練又は更新されたモデルが、モデル・レジストリ1424において利用可能にされ得る。少なくとも1つの実施例では、次いで、機械学習モデルは、モデル・レジストリ1424から選択され得、出力モデル1416と呼ばれることがあり、導入システムの1つ又は複数のアプリケーションのための1つ又は複数の処理タスクを実施するために導入システム1406において使用され得る。
【0099】
少なくとも1つの実施例では、訓練パイプライン1204(
図12)、シナリオは、施設1402が、導入システム1406中の1つ又は複数のアプリケーションのための1つ又は複数の処理タスクを実施する際に使用するための機械学習モデルを必要とすることを含み得るが、施設1402は現在そのような機械学習モデルを有しないことがある(或いは、そのような目的のために最適化された、効率的な、又は有効なモデルを有しないことがある)。少なくとも1つの実施例では、モデル・レジストリ1424から選択された機械学習モデルは、母集団、機械学習モデルを訓練するために使用される訓練データのロバストネス、訓練データの異常の多様性、及び/又は訓練データに伴う他の問題における差異のために、施設1402において生成される撮像データ1408のために微調整又は最適化されないことがある。少なくとも1つの実施例では、機械学習モデルを再訓練又は更新するためのグランド・トゥルース・データとして使用されるべき撮像データ1408に対応するアノテーションを生成するのを補助するために、AI支援アノテーション1410が使用され得る。少なくとも1つの実施例では、ラベル付きデータ1412が、機械学習モデルを訓練するためのグランド・トゥルース・データとして使用され得る。少なくとも1つの実施例では、機械学習モデルを再訓練又は更新することは、モデル訓練1414と呼ばれることがある。少なくとも1つの実施例では、モデル訓練1414、たとえばAI支援アノテーション1410、ラベル付きクリニック・データ1412、又はそれらの組合せは、機械学習モデルを再訓練又は更新するためのグランド・トゥルース・データとして使用され得る。少なくとも1つの実施例では、訓練された機械学習モデルは出力モデル1416と呼ばれることがあり、本明細書で説明されるように、導入システム1406によって使用され得る。
【0100】
少なくとも1つの実施例では、導入システム1406は、ソフトウェア1418、サービス1420、ハードウェア1422、並びに/又は他の構成要素、特徴、及び機能性を含み得る。少なくとも1つの実施例では、導入システム1406は、ソフトウェア「スタック」を含み得、それにより、ソフトウェア1418は、サービス1420の上に築かれ得、サービス1420を使用して処理タスクのいくつか又はすべてを実施し得、サービス1420及びソフトウェア1418は、ハードウェア1422の上に築かれ、ハードウェア1422を使用して、導入システム1406の処理、ストレージ、及び/又は他のコンピュート・タスクを実行し得る。少なくとも1つの実施例では、ソフトウェア1418は、任意の数の異なるコンテナを含み得、各コンテナは、アプリケーションのインスタンス化を実行し得る。少なくとも1つの実施例では、各アプリケーションは、先進処理及び推論パイプライン中の1つ又は複数の処理タスク(たとえば、推論、物体検出、特徴検出、セグメント化、画像強調、キャリブレーションなど)を実施し得る。少なくとも1つの実施例では、先進処理及び推論パイプラインは、(たとえば、使用可能なデータ・タイプに出力をコンバートするために)パイプラインを通して処理した後に、各コンテナによる使用及び/又は施設1402による使用のための撮像データを受信及び構成するコンテナに加えて、撮像データ1408を処理するために所望されるか又は必要とされる異なるコンテナの選択に基づいて、定義され得る。少なくとも1つの実施例では、(たとえば、パイプラインを作り上げる)ソフトウェア1418内のコンテナの組合せは、(本明細書でより詳細に説明されるように)仮想機器と呼ばれることがあり、仮想機器は、サービス1420及びハードウェア1422を活用して、コンテナにおいてインスタンス化されたアプリケーションのいくつか又はすべての処理タスクを実行し得る。
【0101】
少なくとも1つの実施例では、データ処理パイプラインは、推論要求(たとえば、導入システム1406のユーザからの要求)に応答して、特定のフォーマットで入力データ(たとえば、撮像データ1408)を受信し得る。少なくとも1つの実施例では、入力データは、1つ又は複数の撮像デバイスによって生成される1つ又は複数の画像、ビデオ、及び/又は他のデータ表現を表し得る。少なくとも1つの実施例では、データは、1つ又は複数のアプリケーションによる処理のためにデータを準備するために、データ処理パイプラインの一部としての事前処理を受け得る。少なくとも1つの実施例では、次のアプリケーションのための出力データを準備するために、並びに/或いは、(たとえば、推論要求への応答としての)ユーザによる送信及び/又は使用のための出力データを準備するために、パイプラインの1つ又は複数の推論タスク又は他の処理タスクの出力に対して後処理が実施され得る。少なくとも1つの実施例では、推論タスクは、訓練システム1404の出力モデル1416を含み得る、訓練された又は導入されたニューラル・ネットワークなど、1つ又は複数の機械学習モデルによって実施され得る。
【0102】
少なくとも1つの実施例では、データ処理パイプラインのタスクは、(1つ又は複数の)コンテナ中にカプセル化され得、(1つ又は複数の)コンテナは、各々、アプリケーションの個別の完全に機能的なインスタンス化と、機械学習モデルを参照することが可能である仮想化コンピューティング環境とを表す。少なくとも1つの実施例では、コンテナ又はアプリケーションは、(本明細書でより詳細に説明される)コンテナ・レジストリのプライベート(たとえば、アクセスの制限された)エリアに公開され得、訓練された又は導入されたモデルは、モデル・レジストリ1424に記憶され、1つ又は複数のアプリケーションに関連付けられ得る。少なくとも1つの実施例では、アプリケーションの画像(たとえば、コンテナ画像)は、コンテナ・レジストリにおいて利用可能であり得、パイプラインにおける導入のためにユーザによってコンテナ・レジストリから選択されると、画像は、ユーザのシステムによる使用のためのアプリケーションのインスタンス化のためのコンテナを生成するために使用され得る。
【0103】
少なくとも1つの実施例では、開発者(たとえば、ソフトウェア開発者、臨床医、医師など)は、供給されたデータに対して画像処理及び/又は推論を実施するためのアプリケーションを(たとえばコンテナとして)開発、公開、及び記憶し得る。少なくとも1つの実施例では、開発、公開、及び/又は記憶は、(たとえば、開発されたアプリケーション及び/又はコンテナがシステムに準拠するか又はシステムと互換性があることを確実にするために)システムに関連付けられたソフトウェア開発キット(SDK:software development kit)を使用して実施され得る。少なくとも1つの実施例では、開発されたアプリケーションは、システム(たとえば、
図12のシステム1200)としてサービス1420のうちの少なくともいくつかをサポートし得るSDKを用いて、ローカルに(たとえば、第1の施設において、第1の施設からのデータに対して)テストされ得る。少なくとも1つの実施例では、DICOM物体は、1つから数百個の画像又は他のデータ・タイプをどこにでも含んでいることがあるので、及びデータの変動により、開発者は、入って来るデータの抽出及び準備を管理すること(たとえば、アプリケーションのための構築物を設定すること、事前処理をアプリケーションに組み込むことなど)について責任を負うことがある。少なくとも1つの実施例では、システム1400によって(たとえば、精度について)検証されると、アプリケーションは、ユーザの施設(たとえば、第2の施設)におけるデータに対して1つ又は複数の処理タスクを実施するために、ユーザによる選択及び/又は実装のためにコンテナ・レジストリにおいて利用可能になり得る。
【0104】
少なくとも1つの実施例では、次いで、開発者は、アプリケーション又はコンテナを、システム(たとえば、
図14のシステム1400)のユーザによるアクセス及び使用のためにネットワークを通して共有し得る。少なくとも1つの実施例では、完成した及び検証されたアプリケーション又はコンテナは、コンテナ・レジストリに記憶され得、関連する機械学習モデルは、モデル・レジストリ1424に記憶され得る。少なくとも1つの実施例では、推論又は画像処理要求を提供する要求元エンティティは、アプリケーション、コンテナ、データセット、機械学習モデルなどについてコンテナ・レジストリ及び/又はモデル・レジストリ1424をブラウズし、データ処理パイプライン中に含めるための要素の所望の組合せを選択し、撮像処理要求をサブミットし得る。少なくとも1つの実施例では、要求は、要求を実施するために必要である入力データ(及び、いくつかの実例では、関連する患者データ)を含み得、並びに/或いは、要求を処理する際に実行されるべき(1つ又は複数の)アプリケーション及び/又は機械学習モデルの選択を含み得る。少なくとも1つの実施例では、次いで、要求は、データ処理パイプラインの処理を実施するために導入システム1406(たとえば、クラウド)の1つ又は複数の構成要素に渡され得る。少なくとも1つの実施例では、導入システム1406による処理は、コンテナ・レジストリ及び/又はモデル・レジストリ1424からの選択された要素(たとえば、アプリケーション、コンテナ、モデルなど)を参照することを含み得る。少なくとも1つの実施例では、パイプラインによって結果が生成されると、結果は、参照のために(たとえば、ローカルの、構内のワークステーション又は端末上で実行している視聴アプリケーション・スイートにおいて視聴するために)ユーザに返され得る。
【0105】
少なくとも1つの実施例では、パイプラインにおけるアプリケーション又はコンテナの処理又は実行を補助するために、サービス1420が活用され得る。少なくとも1つの実施例では、サービス1420は、コンピュート・サービス、人工知能(AI:artificial intelligence)サービス、視覚化サービス、及び/又は他のサービス・タイプを含み得る。少なくとも1つの実施例では、サービス1420は、ソフトウェア1418中の1つ又は複数のアプリケーションに共通である機能性を提供し得、したがって、機能性は、アプリケーションによってコール又は活用され得るサービスに対して抽象化され得る。少なくとも1つの実施例では、サービス1420によって提供される機能性は、動的に及びより効率的に稼働し得、また、(たとえば、並列コンピューティング・プラットフォーム1230(
図12)を使用して)アプリケーションが並列にデータを処理することを可能にすることによって、良好にスケーリングし得る。少なくとも1つの実施例では、サービス1420によって与えられる同じ機能性を共有する各アプリケーションが、サービス1420のそれぞれのインスタンスを有することを必要とされるのではなく、サービス1420は、様々なアプリケーション間で及びそれらの間で共有され得る。少なくとも1つの実施例では、サービスは、非限定的な実例として、検出又はセグメント化タスクを実行するために使用され得る推論サーバ又はエンジンを含み得る。少なくとも1つの実施例では、機械学習モデル訓練及び/又は再訓練能力を提供し得るモデル訓練サービスが含まれ得る。少なくとも1つの実施例では、GPU加速データ(たとえば、DICOM、RIS、CIS、REST準拠、RPC、生など)抽出、リサイジング、スケーリング、及び/又は他の拡張を提供し得るデータ拡張サービスがさらに含まれ得る。少なくとも1つの実施例では、2次元(2D:two-dimensional)及び/又は3次元(3D:three-dimensional)のモデルにリアル感を追加するために、レイ・トレーシング、ラスタ化、ノイズ除去、鮮鋭化などの画像レンダリング効果を追加し得る視覚化サービスが使用され得る。少なくとも1つの実施例では、仮想機器のパイプライン内の他のアプリケーションについてビーム形成、セグメント化、推論、撮像、及び/又はサポートを提供する仮想機器サービスが含まれ得る。
【0106】
少なくとも1つの実施例では、サービス1420がAIサービス(たとえば、推論サービス)を含む場合、1つ又は複数の機械学習モデルは、(1つ又は複数の)機械学習モデル、又はその処理を、アプリケーション実行の一部として実行するように推論サービス(たとえば、推論サーバ)を(たとえば、APIコールとして)コールすることによって、実行され得る。少なくとも1つの実施例では、セグメント化タスクのための1つ又は複数の機械学習モデルを別のアプリケーションが含む場合、アプリケーションは、セグメント化タスクに関連付けられた処理動作のうちの1つ又は複数を実施するための機械学習モデルを実行するように、推論サービスをコールし得る。少なくとも1つの実施例では、セグメント化アプリケーションと異常検出アプリケーションとを含む先進処理及び推論パイプラインを実装するソフトウェア1418は、1つ又は複数の推論タスクを実施するために各アプリケーションが同じ推論サービスをコールし得るので、合理化され得る。
【0107】
少なくとも1つの実施例では、ハードウェア1422は、GPU、CPU、グラフィックス・カード、AI/深層学習システム(たとえば、NVIDIAのDGXなどのAIスーパーコンピュータ)、クラウド・プラットフォーム、又はそれらの組合せを含み得る。少なくとも1つの実施例では、異なるタイプのハードウェア1422が、導入システム1406中のソフトウェア1418及びサービス1420の効率的で専用のサポートを提供するために使用され得る。少なくとも1つの実施例では、画像処理及び生成の効率、精度、及び有効性を改善するために、AI/深層学習システム内、クラウド・システム中、及び/又は導入システム1406の他の処理構成要素中で、ローカルで(たとえば、施設1402において)処理するためのGPU処理の使用が実装され得る。少なくとも1つの実施例では、ソフトウェア1418及び/又はサービス1420は、非限定的な実例として、深層学習、機械学習、及び/又は高性能コンピューティングに関するGPU処理のために最適化され得る。少なくとも1つの実施例では、導入システム1406及び/又は訓練システム1404のコンピューティング環境の少なくとも一部は、データセンタの1つ又は複数のスーパーコンピュータ又は高性能コンピューティング・システムにおいて、GPU最適化ソフトウェア(たとえば、NVIDIAのDGXシステムのハードウェアとソフトウェアとの組合せ)を用いて実行され得る。少なくとも1つの実施例では、ハードウェア1422は、任意の数のGPUを含み得、それらのGPUは、本明細書で説明されるように、データの並列処理を実施するためにコールされ得る。少なくとも1つの実施例では、クラウド・プラットフォームは、深層学習タスク、機械学習タスク、又は他のコンピューティング・タスクのGPU最適化実行のためのGPU処理をさらに含み得る。少なくとも1つの実施例では、クラウド・プラットフォーム(たとえば、NVIDIAのNGC)は、(たとえば、NVIDIAのDGXシステム上で提供される)(1つ又は複数の)AI/深層学習スーパーコンピュータ及び/又はGPU最適化ソフトウェアを、ハードウェア抽象化及びスケーリング・プラットフォームとして使用して、実行され得る。少なくとも1つの実施例では、クラウド・プラットフォームは、シームレスなスケーリング及びロード・バランシングを可能にするために、複数のGPUに対するアプリケーション・コンテナ・クラスタリング・システム又はオーケストレーション・システム(たとえば、KUBERNETES)を統合し得る。
【0108】
図15は、少なくとも1つの実施例による、撮像導入パイプラインを生成及び導入するための例示的なシステム1500のためのシステム図である。少なくとも1つの実施例では、システム1500は、
図14のプロセス1400、並びに/又は先進処理及び推論パイプラインを含む他のプロセスを実装するために使用され得る。少なくとも1つの実施例では、システム1500は、訓練システム1404と導入システム1406とを含み得る。少なくとも1つの実施例では、訓練システム1404及び導入システム1406は、本明細書で説明されるように、ソフトウェア1418、サービス1420、及び/又はハードウェア1422を使用して実装され得る。
【0109】
少なくとも1つの実施例では、システム1500(たとえば、訓練システム1404及び/又は導入システム1406)は、(たとえば、クラウド1526を使用する)クラウド・コンピューティング環境において実装され得る。少なくとも1つの実施例では、システム1500は、ヘルスケア・サービス施設に関してローカルに、又はクラウド・コンピューティング・リソースとローカル・コンピューティング・リソースの両方の組合せとして、実装され得る。少なくとも1つの実施例では、クラウド1526中のAPIへのアクセスは、制定されたセキュリティ対策又はプロトコルを通して、許可されたユーザに限定され得る。少なくとも1つの実施例では、セキュリティ・プロトコルはウェブ・トークンを含み得、ウェブ・トークンは、認証(たとえば、AuthN、AuthZ、Glueconなど)サービスによって署名され得、適切な許可を持ち得る。少なくとも1つの実施例では、(本明細書で説明される)仮想機器のAPI、又はシステム1500の他のインスタンス化は、対話について検査又は許可されたパブリックIPのセットに限定され得る。
【0110】
少なくとも1つの実施例では、システム1500の様々な構成要素は、ワイヤード及び/又はワイヤレス通信プロトコルを介して、限定はしないがローカル・エリア・ネットワーク(LAN)及び/又はワイド・エリア・ネットワーク(WAN)を含む様々な異なるネットワーク・タイプのいずれかを使用して、互いの間で通信し得る。少なくとも1つの実施例では、(たとえば、推論要求を送信するための、推論要求の結果を受信するためのなど)施設とシステム1500の構成要素との間の通信は、(1つ又は複数の)データ・バス、ワイヤレス・データ・プロトコル(Wi-Fi)、ワイヤード・データ・プロトコル(たとえば、イーサネット)などを介して通信され得る。
【0111】
少なくとも1つの実施例では、訓練システム1404は、
図14に関して本明細書で説明されたものと同様の訓練パイプライン1504を実行し得る。少なくとも1つの実施例では、1つ又は複数の機械学習モデルが導入システム1406によって導入パイプライン1510において使用されるべきである場合、訓練パイプライン1504は、1つ又は複数の(たとえば、事前訓練された)モデルを訓練又は再訓練し、並びに/或いは、事前訓練されたモデル1506のうちの1つ又は複数を(たとえば、再訓練又は更新の必要なしに)実装するために、使用され得る。少なくとも1つの実施例では、訓練パイプライン1504の結果として、(1つ又は複数の)出力モデル1416が生成され得る。少なくとも1つの実施例では、訓練パイプライン1504は、限定はしないが、撮像データ(又は他の入力データ)コンバージョン又は適応など、任意の数の処理ステップを含み得る。少なくとも1つの実施例では、導入システム1406によって使用される異なる機械学習モデルについて、異なる訓練パイプライン1504が使用され得る。少なくとも1つの実施例では、
図14に関して説明された第1の実例と同様の訓練パイプライン1504は、第1の機械学習モデルのために使用され得、
図14に関して説明された第2の実例と同様の訓練パイプライン1504は、第2の機械学習モデルのために使用され得、
図14に関して説明された第3の実例と同様の訓練パイプライン1504は、第3の機械学習モデルのために使用され得る。少なくとも1つの実施例では、各それぞれの機械学習モデルについて何が必要とされるかに応じて、訓練システム1404内のタスクの任意の組合せが使用され得る。少なくとも1つの実施例では、機械学習モデルのうちの1つ又は複数は、すでに訓練され、導入の準備ができていることがあり、したがって、機械学習モデルは、訓練システム1404によるいかなる処理をも受けないことがあり、導入システム1406によって実装され得る。
【0112】
少なくとも1つの実施例では、(1つ又は複数の)出力モデル1416及び/又は(1つ又は複数の)事前訓練されたモデル1506は、実装形態又は実施例に応じて任意のタイプの機械学習モデルを含み得る。少なくとも1つの実施例では、及び限定はしないが、システム1500によって使用される機械学習モデルは、線形回帰、ロジスティック回帰、判定ツリー、サポート・ベクター・マシン(SVM:support vector machine)、単純ベイズ、k近傍法(Knn:k-nearest neighbor)、k平均クラスタリング、ランダム・フォレスト、次元低減アルゴリズム、勾配ブースティング・アルゴリズム、ニューラル・ネットワーク(たとえば、オート・エンコーダ、畳み込み、リカレント、パーセプトロン、長/短期メモリ(LSTM:Long/Short Term Memory)、ホップフィールド、ボルツマン、深層信念、逆畳み込み、敵対的生成、液体状態機械など)を使用する(1つ又は複数の)機械学習モデル、及び/又は他のタイプの機械学習モデルを含み得る。
【0113】
少なくとも1つの実施例では、訓練パイプライン1504は、少なくとも
図15Bに関して本明細書でより詳細に説明されるように、AI支援アノテーションを含み得る。少なくとも1つの実施例では、ラベル付きデータ1412(たとえば、従来のアノテーション)は、任意の数の技法によって生成され得る。少なくとも1つの実施例では、ラベル又は他のアノテーションは、描画プログラム(たとえば、アノテーション・プログラム)、コンピュータ支援設計(CAD:computer aided design)プログラム、ラベル付けプログラム、グランド・トゥルースのためのアノテーション又はラベルを生成するのに好適な別のタイプのプログラム内で生成され得、及び/或いは、いくつかの実例では、手書きされ得る。少なくとも1つの実施例では、グランド・トゥルース・データは、合成的に作り出され(たとえば、コンピュータ・モデル又はレンダリングから生成され)、現実的に作り出され(たとえば、実世界のデータから設計され、作り出され)、(たとえば、データから特徴を抽出し、次いでラベルを生成するために、特徴分析及び学習を使用して)機械自動化され、人間によりアノテーション付けされ(たとえば、ラベラ、又はアノテーション専門家が、ラベルのロケーションを定義し)、及び/又はそれらの組合せであり得る。少なくとも1つの実施例では、撮像データ1408の各インスタンス(又は機械学習モデルによって使用される他のデータ・タイプ)について、訓練システム1404によって生成される対応するグランド・トゥルース・データがあり得る。少なくとも1つの実施例では、訓練パイプライン1504中に含まれるAI支援アノテーションに加えて、又はその代わりにのいずれかで、導入パイプライン1510の一部としてAI支援アノテーションが実施され得る。少なくとも1つの実施例では、システム1500は多層プラットフォームを含み得、多層プラットフォームは、1つ又は複数の医療撮像及び診断機能を実施し得る診断アプリケーション(又は他のアプリケーション・タイプ)のソフトウェア層(たとえば、ソフトウェア1418)を含み得る。少なくとも1つの実施例では、システム1500は、1つ又は複数の施設のPACSサーバ・ネットワークに、(たとえば、暗号化リンクを介して)通信可能に結合され得る。少なくとも1つの実施例では、システム1500は、機械学習モデルを訓練すること、機械学習モデルを導入すること、画像処理、推論、及び/又は他の動作などの動作を実施するために、PACSサーバからのデータにアクセスし、それを参照するように構成され得る。
【0114】
少なくとも1つの実施例では、ソフトウェア層は、セキュアな、暗号化された、及び/又は認証されたAPIとして実装され得、このAPIを通して、アプリケーション又はコンテナが、(1つ又は複数の)外部環境(たとえば、施設1402)から呼び出され(たとえば、コールされ)得る。少なくとも1つの実施例では、次いで、アプリケーションは、それぞれのアプリケーションに関連付けられたコンピュート、AI、又は視覚化タスクを実施するために1つ又は複数のサービス1420をコール又は実行し得、ソフトウェア1418及び/又はサービス1420は、ハードウェア1422を活用して、処理タスクを有効で効率的な様式で実施し得る。
【0115】
少なくとも1つの実施例では、導入システム1406は、導入パイプライン1510を実行し得る。少なくとも1つの実施例では、導入パイプライン1510は任意の数のアプリケーションを含み得、それらのアプリケーションは、上記で説明されたように、AI支援アノテーションを含む、撮像デバイス、シーケンシング・デバイス、ゲノミクス・デバイスなどによって生成された撮像データ(及び/又は他のデータ・タイプ)に連続的に、非連続的に、又は他のやり方で適用され得る。少なくとも1つの実施例では、本明細書で説明されるように、個々のデバイスのための導入パイプライン1510は、デバイスのための仮想機器(たとえば、仮想超音波機器、仮想CTスキャン機器、仮想シーケンシング機器など)と呼ばれることがある。少なくとも1つの実施例では、デバイスによって生成されるデータから所望される情報に応じて、単一のデバイスについて、2つ以上の導入パイプライン1510があり得る。少なくとも1つの実施例では、異常の検出がMRIマシンから所望される場合、第1の導入パイプライン1510があり得、画像強調がMRIマシンの出力から所望される場合、第2の導入パイプライン1510があり得る。
【0116】
少なくとも1つの実施例では、画像生成アプリケーションは、機械学習モデルの使用を含む処理タスクを含み得る。少なくとも1つの実施例では、ユーザは、ユーザ自身の機械学習モデルを使用すること、又はモデル・レジストリ1424から機械学習モデルを選択することを所望し得る。少なくとも1つの実施例では、ユーザは、処理タスクを実施するために、ユーザ自身の機械学習モデルを実装するか、又はアプリケーション中に含めるための機械学習モデルを選択し得る。少なくとも1つの実施例では、アプリケーションは選択可能及びカスタマイズ可能であり得、アプリケーションの構築を定義することによって、特定のユーザのためのアプリケーションの導入及び実装が、よりシームレスなユーザ・エクスペリエンスとして提示される。少なくとも1つの実施例では、サービス1420及びハードウェア1422など、システム1500の他の特徴を活用することによって、導入パイプライン1510は、なお一層ユーザ・フレンドリになり、より容易な統合を提供し、より正確で、効率的で、タイムリーな結果を作り出し得る。
【0117】
少なくとも1つの実施例では、導入システム1406はユーザ・インターフェース1514(たとえば、グラフィカル・ユーザ・インターフェース、ウェブ・インターフェースなど)を含み得、ユーザ・インターフェース1514は、(1つ又は複数の)導入パイプライン1510中に含めるためのアプリケーションを選択し、アプリケーションを配置し、アプリケーション又はそのパラメータ若しくは構築を修正又は変更し、セットアップ及び/又は導入中に(1つ又は複数の)導入パイプライン1510を使用し、それと対話し、並びに/或いは他のやり方で導入システム1406と対話するために使用され得る。少なくとも1つの実施例では、訓練システム1404に関して示されていないが、ユーザ・インターフェース1514(又は異なるユーザ・インターフェース)は、導入システム1406における使用のためのモデルを選択するために、訓練システム1404において訓練又は再訓練するためのモデルを選択するために、及び/或いは訓練システム1404と他のやり方で対話するために使用され得る。
【0118】
少なくとも1つの実施例では、(1つ又は複数の)導入パイプライン1510のアプリケーション又はコンテナと、サービス1420及び/又はハードウェア1422との間で対話を管理するために、アプリケーション・オーケストレーション・システム1528に加えてパイプライン・マネージャ1512が使用され得る。少なくとも1つの実施例では、パイプライン・マネージャ1512は、アプリケーションからアプリケーションへの対話、アプリケーションからサービス1420への対話、及び/或いはアプリケーション又はサービスからハードウェア1422への対話を容易にするように構成され得る。少なくとも1つの実施例では、ソフトウェア1418中に含まれるように示されているが、これは限定を意図しておらず、(たとえば、
図12ccに示されている)いくつかの実例では、パイプライン・マネージャ1512は、サービス1420中に含まれ得る。少なくとも1つの実施例では、アプリケーション・オーケストレーション・システム1528(たとえば、Kubernetes、DOCKERなど)は、コンテナ・オーケストレーション・システムを含み得、コンテナ・オーケストレーション・システムは、アプリケーションを、協調、管理、スケーリング、及び導入のための論理ユニットとして、コンテナにグループ化し得る。少なくとも1つの実施例では、(1つ又は複数の)導入パイプライン1510からのアプリケーション(たとえば、再構築アプリケーション、セグメント化アプリケーションなど)を個々のコンテナに関連付けることよって、各アプリケーションは、自己完結型環境(たとえば、カーネル・レベル)において実行して、スピード及び効率を向上させ得る。
【0119】
少なくとも1つの実施例では、各アプリケーション及び/又はコンテナ(又はその画像)は、個々に開発、修正、及び導入され得(たとえば、第1のユーザ又は開発者が、第1のアプリケーションを開発、修正、及び導入し得、第2のユーザ又は開発者が、第1のユーザ又は開発者とは別に第2のアプリケーションを開発、修正、及び導入し得)、これは、(1つ又は複数の)別のアプリケーション又は(1つ又は複数の)コンテナのタスクに邪魔されることなしに単一のアプリケーション及び/又は(1つ又は複数の)コンテナのタスクに集中し、注意を払うことを可能にし得る。少なくとも1つの実施例では、異なるコンテナ間又はアプリケーション間の通信、及び協調が、パイプライン・マネージャ1512及びアプリケーション・オーケストレーション・システム1528によって補助され得る。少なくとも1つの実施例では、各コンテナ又はアプリケーションの予想される入力及び/又は出力が、(たとえば、アプリケーション又はコンテナの構築に基づいて)システムによって知られている限り、アプリケーション・オーケストレーション・システム1528及び/又はパイプライン・マネージャ1512は、アプリケーション又はコンテナの各々の間の通信、及びそれらの間のリソースの共有を容易にし得る。少なくとも1つの実施例では、(1つ又は複数の)導入パイプライン1510中のアプリケーション又はコンテナのうちの1つ又は複数は、同じサービス及びリソースを共有し得るので、アプリケーション・オーケストレーション・システム1528は、様々なアプリケーション又はコンテナの間でサービス又はリソースをオーケストレートし、ロード・バランシングを行い、共有を決定し得る。少なくとも1つの実施例では、アプリケーション又はコンテナのリソース要件、これらのリソースの現在の使用量又は計画された使用量、及びリソースの利用可能性を追跡するために、スケジューラが使用され得る。少なくとも1つの実施例では、したがって、スケジューラは、異なるアプリケーションにリソースを割り振り、システムの要件及び利用可能性を考慮してアプリケーションの間でリソースを分散させ得る。いくつかの実例では、スケジューラ(及び/又はアプリケーション・オーケストレーション・システム1528の他の構成要素)は、サービス品質(QoS:quality of service)、(たとえば、リアルタイム処理を実行すべきなのか遅延処理を実行すべきなのかを決定するための)データ出力を必要とする緊急度など、システムに課される制約(たとえば、ユーザ制約)に基づいて、リソースの利用可能性及び分散を決定し得る。
【0120】
少なくとも1つの実施例では、導入システム1406中のアプリケーション又はコンテナによって活用及び共有されるサービス1420は、コンピュート・サービス1516、AIサービス1518、視覚化サービス1520、及び/又は他のサービス・タイプを含み得る。少なくとも1つの実施例では、アプリケーションは、サービス1420のうちの1つ又は複数をコール(たとえば、実行)して、アプリケーションのための処理動作を実施し得る。少なくとも1つの実施例では、コンピュート・サービス1516は、スーパーコンピューティング又は他の高性能コンピューティング(HPC:high-performance computing)タスクを実施するために、アプリケーションによって活用され得る。少なくとも1つの実施例では、アプリケーションのうちの1つ又は複数を通してデータを、及び/又は単一のアプリケーションの1つ又は複数のタスクを実質的に同時に処理するための(たとえば、並列コンピューティング・プラットフォーム1530を使用する)並列処理を実施するために、(1つ又は複数の)コンピュート・サービス1516が活用され得る。少なくとも1つの実施例では、並列コンピューティング・プラットフォーム1530(たとえば、NVIDIAのCUDA)は、GPU(たとえば、GPU1522)上での汎用コンピューティング(GPGPU:general purpose computing on GPUs)を可能にし得る。少なくとも1つの実施例では、並列コンピューティング・プラットフォーム1530のソフトウェア層は、コンピュート・カーネルの実行のために、仮想命令セット及びGPUの並列算出要素へのアクセスを提供し得る。少なくとも1つの実施例では、並列コンピューティング・プラットフォーム1530はメモリを含み得、いくつかの実施例では、メモリは、複数のコンテナの間で、及び/又は単一のコンテナ内の異なる処理タスクの間で共有され得る。少なくとも1つの実施例では、(たとえば、アプリケーションの複数の異なる段階又は複数のアプリケーションが同じ情報を処理している場合)並列コンピューティング・プラットフォーム1530のメモリの共有セグメントからの同じデータを使用するために、複数のコンテナについて及び/又はコンテナ内の複数のプロセスについて、プロセス間通信(IPC:inter-process communication)コールが生成され得る。少なくとも1つの実施例では、データのコピーをとり、データをメモリ中の異なるロケーションに移動すること(たとえば、読取り/書込み動作)ではなく、メモリの同じロケーション中の同じデータが、任意の数の処理タスクのために(たとえば、同じ時間、異なる時間などに)使用され得る。少なくとも1つの実施例では、データが使用されて、処理の結果として新しいデータが生成されるとき、データの新しいロケーションのこの情報は、様々なアプリケーション間で記憶及び共有され得る。少なくとも1つの実施例では、データのロケーションと、更新された又は修正されたデータのロケーションとは、コンテナ内でペイロードがどのように理解されるかの定義の一部であり得る。
【0121】
少なくとも1つの実施例では、AIサービス1518は、アプリケーションに関連付けられた(たとえば、アプリケーションの1つ又は複数の処理タスクを実施する役割を課された)(1つ又は複数の)機械学習モデルを実行するための推論サービスを実施するために活用され得る。少なくとも1つの実施例では、AIサービス1518は、AIシステム1524を活用して、セグメント化、再構築、物体検出、特徴検出、分類、及び/又は他の推論タスクのための(1つ又は複数の)機械学習モデル(たとえば、CNNなどのニューラル・ネットワーク)を実行し得る。少なくとも1つの実施例では、(1つ又は複数の)導入パイプライン1510のアプリケーションは、訓練システム1404からの出力モデル1416及び/又はアプリケーションの他のモデルのうちの1つ又は複数を使用して、撮像データに関して推論を実施し得る。少なくとも1つの実施例では、アプリケーション・オーケストレーション・システム1528(たとえば、スケジューラ)を使用する推論の2つ又はそれ以上の実例が利用可能であり得る。少なくとも1つの実施例では、第1のカテゴリは、緊急時の至急の要求に関して推論を実施するための、又は診断時の放射線医のためのなど、より高いサービス・レベルの合意を達成し得る高優先度/低レイテンシ経路を含み得る。少なくとも1つの実施例では、第2のカテゴリは、至急でないことがある要求のために、又は分析が後で実施され得る場合に使用され得る標準優先度経路を含み得る。少なくとも1つの実施例では、アプリケーション・オーケストレーション・システム1528は、AIサービス1518の異なる推論タスクのための優先度経路に基づいて、リソース(たとえば、サービス1420及び/又はハードウェア1422)を分散させ得る。
【0122】
少なくとも1つの実施例では、共有ストレージが、システム1500内でAIサービス1518に取り付けられ得る。少なくとも1つの実施例では、共有ストレージは、キャッシュ(又は他のストレージ・デバイス・タイプ)として動作し得、アプリケーションからの推論要求を処理するために使用され得る。少なくとも1つの実施例では、推論要求がサブミットされたとき、要求は、導入システム1406のAPIインスタンスのセットによって受信され得、要求を処理するために、1つ又は複数のインスタンスが(たとえば、最良な適合のために、ロード・バランシングのためになど)選択され得る。少なくとも1つの実施例では、要求を処理するために、要求がデータベースに入れられ得、機械学習モデルは、まだキャッシュにない場合、モデル・レジストリ1424から位置特定され得、検証ステップは、適切な機械学習モデルがキャッシュ(たとえば、共有ストレージ)にロードされ、及び/又はモデルのコピーがキャッシュに保存され得ることを確実にし得る。少なくとも1つの実施例では、アプリケーションがまだ稼働していない場合又はアプリケーションの十分なインスタンスがない場合、(たとえば、パイプライン・マネージャ1512の)スケジューラが、要求において参照されたアプリケーションを起動するために使用され得る。少なくとも1つの実施例では、モデルを実行するための推論サーバがまだ起動されていない場合、推論サーバが起動され得る。任意の数の推論サーバがモデルごとに起動され得る。少なくとも1つの実施例では、推論サーバがクラスタ化されたプル・モデルにおいて、ロード・バランシングが有利であるときはいつでもモデルがキャッシュされ得る。少なくとも1つの実施例では、推論サーバは、対応する分散型サーバに静的にロードされ得る。
【0123】
少なくとも1つの実施例では、推論は、コンテナ中で稼働する推論サーバを使用して実施され得る。少なくとも1つの実施例では、推論サーバのインスタンスは、モデル(随意に、モデルの複数のバージョン)に関連付けられ得る。少なくとも1つの実施例では、モデルに対して推論を実施するための要求が受信されたとき、推論サーバのインスタンスが存在しない場合、新しいインスタンスがロードされ得る。少なくとも1つの実施例では、推論サーバを開始するとき、モデルが推論サーバに渡され得、それにより、推論サーバが異なるインスタンスとして稼働している限り、異なるモデルにサービスするために同じコンテナが使用され得る。
【0124】
少なくとも1つの実施例では、アプリケーション実行中、所与のアプリケーションについての推論要求が受信され得、(たとえば、推論サーバのインスタンスをホストする)コンテナが(まだロードされていない場合)ロードされ得、開始プロシージャがコールされ得る。少なくとも1つの実施例では、コンテナ中の前処理論理が、(たとえば、(1つ又は複数の)CPU及び/又は(1つ又は複数の)GPUを使用して)入って来るデータに対する任意の追加の前処理をロード、復号、及び/又は実施し得る。少なくとも1つの実施例では、推論のためにデータが準備されると、コンテナは、必要に応じてデータに関して推論を実施し得る。少なくとも1つの実施例では、これは、1つの画像(たとえば、手のX線)に対する単一の推論コールを含み得るか、又は何百もの画像(たとえば、胸のCT)に関する推論を必要とし得る。少なくとも1つの実施例では、アプリケーションは、完了する前に結果を要約し得、これは、限定はしないが、単一の信頼性スコア、ピクセル・レベル・セグメント化、ボクセル・レベル・セグメント化、視覚化を生成すること、又は所見を要約するためにテキストを生成することを含み得る。少なくとも1つの実施例では、異なるモデル又はアプリケーションは、異なる優先度を割り当てられ得る。たとえば、リアルタイム(TAT<1分)の優先度を有するモデルもあれば、低優先度(たとえば、TAT<10分)を有するモデルもある。少なくとも1つの実施例では、モデル実行時間は、要求元の機関又はエンティティから測定され得、パートナー・ネットワーク・トラバーサル時間、並びに推論サービスに対する実行を含み得る。
【0125】
少なくとも1つの実施例では、サービス1420と推論アプリケーションとの間での要求の転送は、ソフトウェア開発キット(SDK)の後ろに隠され得、キューを通してロバストなトランスポートが提供され得る。少なくとも1つの実施例では、個々のアプリケーション/テナントIDの組合せについて、要求がAPIを介してキューに入れられ、SDKは、キューから要求をプルし、要求をアプリケーションに与える。少なくとも1つの実施例では、SDKが要求をピックアップする環境において、キューの名称が提供され得る。少なくとも1つの実施例では、キューを通した非同期通信は、その通信が、ワークが利用可能になったときに、アプリケーションの任意のインスタンスがそのワークをピックアップすることを可能にし得るので、有用であり得る。結果は、データが失われないことを確実にするために、キューを通して返送され得る。少なくとも1つの実施例では、最高優先度のワークは、アプリケーションのほとんどのインスタンスがキューに接続された、キューに進み得、一方で、最低優先度のワークは、単一のインスタンスがキューに接続された、受信された順番にタスクを処理するキューに進み得るので、キューは、ワークをセグメント化するアビリティをも提供し得る。少なくとも1つの実施例では、アプリケーションは、クラウド1526において生成されたGPU加速インスタンス上で稼働し得、推論サービスは、GPU上で推論を実施し得る。
【0126】
少なくとも1つの実施例では、視覚化サービス1520が、アプリケーション及び/又は(1つ又は複数の)導入パイプライン1510の出力を見るための視覚化を生成するために活用され得る。少なくとも1つの実施例では、視覚化を生成するために視覚化サービス1520によってGPU1522が活用され得る。少なくとも1つの実施例では、レイ・トレーシングなどのレンダリング効果が、より高品質の視覚化を生成するために視覚化サービス1520によって実装され得る。少なくとも1つの実施例では、視覚化は、限定はしないが、2D画像レンダリング、3Dボリューム・レンダリング、3Dボリューム再構築、2Dトモグラフィ・スライス、仮想現実表示、拡張現実表示などを含み得る。少なくとも1つの実施例では、仮想化された環境が、システムのユーザ(たとえば、医師、看護師、放射線医など)による対話のための仮想インタラクティブ表示又は環境(たとえば、仮想環境)を生成するために使用され得る。少なくとも1つの実施例では、視覚化サービス1520は、内部ビジュアライザ、シネマティクス、及び/或いは他のレンダリング又は画像処理能力又は機能性(たとえば、レイ・トレーシング、ラスタ化、内部光学など)を含み得る。
【0127】
少なくとも1つの実施例では、ハードウェア1422は、GPU1522、AIシステム1524、クラウド1526、並びに/或いは訓練システム1404及び/又は導入システム1406を実行するために使用される任意の他のハードウェアを含み得る。少なくとも1つの実施例では、GPU1522(たとえば、NVIDIAのTESLA及び/又はQUADRO GPU)は、任意の数のGPUを含み得、任意の数のGPUは、コンピュート・サービス1516、AIサービス1518、視覚化サービス1520、他のサービス、及び/或いはソフトウェア1418の特徴又は機能性のいずれかの処理タスクを実行するために使用され得る。たとえば、AIサービス1518に関して、GPU1522が、撮像データ(又は機械学習モデルによって使用される他のデータ・タイプ)に対する前処理、機械学習モデルの出力に対する後処理を実施するために、及び/又は推論を実施するために(たとえば、機械学習モデルを実行するために)使用され得る。少なくとも1つの実施例では、クラウド1526、AIシステム1524、及び/又はシステム1500の他の構成要素は、GPU1522を使用し得る。少なくとも1つの実施例では、クラウド1526は、深層学習タスクのためのGPU最適化プラットフォームを含み得る。少なくとも1つの実施例では、AIシステム1524は、GPUを使用し得、クラウド1526、或いは深層学習又は推論の役割を課された少なくとも一部分は、1つ又は複数のAIシステム1524を使用して実行され得る。したがって、ハードウェア1422は個別構成要素として示されているが、これは、限定を意図しておらず、ハードウェア1422の任意の構成要素が、ハードウェア1422の任意の他の構成要素と組み合わせられ、又はそれらによって活用され得る。
【0128】
少なくとも1つの実施例では、AIシステム1524は、推論、深層学習、機械学習、及び/又は他の人工知能タスクのために構成された専用のコンピューティング・システム(たとえば、スーパーコンピュータ又はHPC)を含み得る。少なくとも1つの実施例では、AIシステム1524(たとえば、NVIDIAのDGX)は、GPU最適化ソフトウェア(たとえば、ソフトウェア・スタック)を含み得、GPU最適化ソフトウェアは、CPU、RAM、ストレージ、及び/又は他の構成要素、特徴、又は機能性に加えて、複数のGPU1522を使用して実行され得る。少なくとも1つの実施例では、1つ又は複数のAIシステム1524は、システム1500のAIベースの処理タスクのいくつか又はすべてを実施するために、(たとえば、データ・センタにおいて)クラウド1526において実装され得る。
【0129】
少なくとも1つの実施例では、クラウド1526は、GPU加速インフラストラクチャ(たとえば、NVIDIAのNGC)を含み得、GPU加速インフラストラクチャは、システム1500の処理タスクを実行するためのGPU最適化プラットフォームを提供し得る。少なくとも1つの実施例では、クラウド1526は、システム1500のAIベースのタスクのうちの1つ又は複数を実施するための(1つ又は複数の)AIシステム1524を(たとえば、ハードウェア抽象化及びスケーリング・プラットフォームとして)含み得る。少なくとも1つの実施例では、クラウド1526は、アプリケーションとサービス1420との間でシームレスなスケーリング及びロード・バランシングを可能にするために、複数のGPUを活用してアプリケーション・オーケストレーション・システム1528と統合し得る。少なくとも1つの実施例では、クラウド1526は、本明細書で説明されるように、コンピュート・サービス1516、AIサービス1518、及び/又は視覚化サービス1520を含む、システム1500のサービス1420の少なくともいくつかを実行する役割を課され得る。少なくとも1つの実施例では、クラウド1526は、大小のバッチ推論(たとえば、NVIDIAのTENSOR RTを実行すること)を実施し、加速並列コンピューティングAPI及びプラットフォーム1530(たとえば、NVIDIAのCUDA)を提供し、アプリケーション・オーケストレーション・システム1528(たとえば、KUBERNETES)を実行し、(たとえば、より高品質のシネマティクスを作り出すためのレイ・トレーシング、2Dグラフィックス、3Dグラフィックス、及び/又は他のレンダリング技法のための)グラフィックス・レンダリングAPI及びプラットフォームを提供し得、及び/又はシステム1500のための他の機能性を提供し得る。
【0130】
図15Aは、少なくとも1つの実施例による、機械学習モデルを訓練、再訓練、又は更新するためのプロセス1500のデータ・フロー図を示す。少なくとも1つの実施例では、プロセス1500は、
図15のシステム1500を非限定的な実例として使用して、実行され得る。少なくとも1つの実施例では、プロセス1500は、本明細書で説明されるように、システム1500のサービス1420及び/又はハードウェア1422を活用し得る。少なくとも1つの実施例では、プロセス1500によって生成される改良されたモデル1512は、導入パイプライン1510中の1つ又は複数のコンテナ化アプリケーションのために、導入システム1406によって実行され得る。
【0131】
少なくとも1つの実施例では、モデル訓練1414は、新しい訓練データ(たとえば、顧客データセット1506、及び/又は入力データに関連付けられた新しいグランド・トゥルース・データなどの新しい入力データ)を使用して、初期モデル1504(たとえば、事前訓練されたモデル)を再訓練又は更新することを含み得る。少なくとも1つの実施例では、初期モデル1504を再訓練又は更新するために、初期モデル1504の(1つ又は複数の)出力又は損失層がリセット又は削除され得、及び/或いは、(1つ又は複数の)更新された又は新しい出力又は損失層と置き換えられ得る。少なくとも1つの実施例では、初期モデル1504は、前に微調整された、以前の訓練から残っているパラメータ(たとえば、重み及び/又はバイアス)を有し得、したがって、訓練又は再訓練1414は、最初からモデルを訓練するほど長い時間がかからないか、又は多くの処理を必要としないことがある。少なくとも1つの実施例では、モデル訓練1414中に、初期モデル1504の(1つ又は複数の)リセットされた又は置き換えられた出力又は損失層を有することによって、パラメータは、新しい顧客データセット1506(たとえば、
図14の画像データ1408)に関して予測を生成する際の(1つ又は複数の)出力又は損失層の精度に関連付けられた損失計算に基づいて、新しいデータ・セットのために更新及び再調整され得る。
【0132】
少なくとも1つの実施例では、事前訓練されたモデル1506は、データ・ストア又はレジストリ(たとえば、
図14のモデル・レジストリ1424)に記憶され得る。少なくとも1つの実施例では、事前訓練されたモデル1506は、少なくとも部分的に、プロセス1500を実行する施設以外の1つ又は複数の施設において訓練されていることがある。少なくとも1つの実施例では、異なる施設の患者、対象者、又は顧客のプライバシー及び権利を保護するために、事前訓練されたモデル1506は、構内で生成された顧客又は患者データを使用して、構内で訓練されていることがある。少なくとも1つの実施例では、事前訓練されたモデル1506は、クラウド1526及び/又は他のハードウェア1422を使用して訓練され得るが、プライバシー保護された機密の患者データは、クラウド1526(又は他の構外のハードウェア)の任意の構成要素に転送されないか、それらの構成要素によって使用されないか、又はそれらの構成要素にとってアクセス不可能であり得る。少なくとも1つの実施例では、事前訓練されたモデル1506が2つ以上の施設からの患者データを使用して訓練される場合、事前訓練されたモデル1506は、各施設について個々に訓練されてから、別の施設からの患者又は顧客データに関して訓練され得る。少なくとも1つの実施例では、顧客又は患者データが(たとえば、権利放棄によって、実験での使用のために、など)プライバシー問題から解放された場合、或いは、顧客又は患者データがパブリック・データ・セット中に含まれる場合など、任意の数の施設からの顧客又は患者データが、データセンタ又は他のクラウド・コンピューティング・インフラストラクチャなど、構内及び/又は構外で事前訓練されたモデル1506を訓練するために使用され得る。
【0133】
少なくとも1つの実施例では、導入パイプライン1510における使用のためのアプリケーションを選択するとき、ユーザは、特定のアプリケーションのために使用されるべき機械学習モデルをも選択し得る。少なくとも1つの実施例では、ユーザは、使用のためのモデルを有しないことがあり、したがって、ユーザは、アプリケーションとともに使用するために事前訓練されたモデル1506を選択し得る。少なくとも1つの実施例では、事前訓練されたモデル1506は、(たとえば、患者の多様性、人口統計、使用される医療撮像デバイスのタイプなどに基づいて)ユーザの施設の顧客データセット1506に関して正確な結果を生成するために最適化されないことがある。少なくとも1つの実施例では、事前訓練されたモデル1506を、(1つ又は複数の)アプリケーションとともに使用するために導入パイプライン1510に導入する前に、事前訓練されたモデル1506は、それぞれの施設において使用するために更新、再訓練、及び/又は微調整され得る。
【0134】
少なくとも1つの実施例では、ユーザは、更新、再訓練、及び/又は微調整されるべきである事前訓練されたモデル1506を選択し得、事前訓練されたモデル1506は、プロセス1500内の訓練システム1404のための初期モデル1504と呼ばれることがある。少なくとも1つの実施例では、顧客データセット1506(たとえば、施設におけるデバイスによって生成された撮像データ、ゲノミクス・データ、シーケンシング・データ、又は他のデータ・タイプ)が、初期モデル1304に関して(限定はしないが、転移学習(transfer learning)を含み得る)モデル訓練1414を実施して、改良されたモデル1512を生成するために、使用され得る。少なくとも1つの実施例では、顧客データセット1506に対応するグランド・トゥルース・データが、訓練システム1404によって生成され得る。少なくとも1つの実施例では、グランド・トゥルース・データは、(たとえば、
図14のラベル付きクリニック・データ1412として)施設において臨床医、科学者、医師、開業医によって、少なくとも部分的に生成され得る。
【0135】
少なくとも1つの実施例では、グランド・トゥルース・データを生成するために、AI支援アノテーション1410がいくつかの実例において使用され得る。少なくとも1つの実施例では、(たとえば、AI支援アノテーションSDKを使用して実装された)AI支援アノテーション1410は、機械学習モデル(たとえば、ニューラル・ネットワーク)を活用して、顧客データセットについて示唆又は予測されるグランド・トゥルース・データを生成し得る。少なくとも1つの実施例では、ユーザ1510は、コンピューティング・デバイス1508上のユーザ・インターフェース(グラフィカル・ユーザ・インターフェース(GUI:graphical user interface))内でアノテーション・ツールを使用し得る。
【0136】
少なくとも1つの実施例では、ユーザ1510は、コンピューティング・デバイス1508を介してGUIと対話して、(自動)アノテーションを編集又は微調整し得る。少なくとも1つの実施例では、ポリゴン編集特徴が、ポリゴンの頂点をより正確なロケーション又は微調整されたロケーションに移動するために使用され得る。
【0137】
少なくとも1つの実施例では、顧客データセット1506が、関連するグランド・トゥルース・データを有すると、(たとえば、AI支援アノテーション、手動ラベル付けなどからの)グランド・トゥルース・データが、改良されたモデル1512を生成するために、モデル訓練1414中によって使用され得る。少なくとも1つの実施例では、顧客データセット1506は、初期モデル1504に任意の回数適用され得、グランド・トゥルース・データは、改良されたモデル1512について、許容可能なレベルの精度が達成されるまで、初期モデル1504のパラメータを更新するために使用され得る。少なくとも1つの実施例では、改良されたモデル1512が生成されると、改良されたモデル1512は、医療撮像データに対して1つ又は複数の処理タスクを実施するために、施設において1つ又は複数の導入パイプライン1510内で導入され得る。
【0138】
少なくとも1つの実施例では、改良されたモデル1512は、別の施設によって選択されるべきモデル・レジストリ1424において事前訓練されたモデル1506にアップロードされ得る。少なくとも1つの実施例では、彼のプロセスは任意の数の施設において完了され得、それにより、改良されたモデル1512は、より普遍的なモデルを生成するように新しいデータセットに関して任意の回数さらに改良され得る。
【0139】
図15Bは、少なくとも1つの実施例による、事前訓練されたアノテーション・モデルを用いてアノテーション・ツールを拡張するためのクライアントサーバ・アーキテクチャ1532の例示的な図である。少なくとも1つの実施例では、AI支援アノテーション・ツール1536は、クライアントサーバ・アーキテクチャ1532に基づいてインスタンス化され得る。少なくとも1つの実施例では、撮像アプリケーション中のアノテーション・ツール1536は、放射線医が、たとえば、器官及び異常を識別するのを補助し得る。少なくとも1つの実施例では、撮像アプリケーションは、非限定的な実例として、(たとえば、3D MRI又はCTスキャンにおける)生画像1534において、関心のある特定の器官上の数個の極値点をユーザ1510が識別するのを助け、特定の器官のすべての2Dスライスについて自動アノテーション付けされた結果を受信する、ソフトウェア・ツールを含み得る。少なくとも1つの実施例では、結果は、訓練データ1538としてデータ・ストアに記憶され、(たとえば、限定はしないが)訓練のためのグランド・トゥルース・データとして使用され得る。少なくとも1つの実施例では、コンピューティング・デバイス1508が、AI支援アノテーション1410のために極値点を送出するとき、たとえば、深層学習モデルがこのデータを入力として受信し、セグメント化された器官又は異常の推論結果を返し得る。少なくとも1つの実施例では、
図15B中のAI支援アノテーション・ツール1536Bなどの事前インスタンス化されたアノテーション・ツールは、たとえばアノテーション・モデル・レジストリに記憶された、事前訓練されたモデル1542のセットを含み得るアノテーション支援サーバ1540などのサーバに、APIコール(たとえば、APIコール1544)を行うことによって、拡張され得る。少なくとも1つの実施例では、アノテーション・モデル・レジストリは、特定の器官又は異常に対してAI支援アノテーションを実施するように事前訓練された、事前訓練されたモデル1542(たとえば、深層学習モデルなどの機械学習モデル)を記憶し得る。これらのモデルは、訓練パイプライン1504を使用することによって、さらに更新され得る。少なくとも1つの実施例では、事前インストールされたアノテーション・ツールは、新しいラベル付きクリニック・データ1412が追加されるにつれて、経時的に改善され得る。
【0140】
そのような構成要素は、大規模言語モデルなど、同じモデルを再訓練する必要なしに、そのモデルを使用してカスタム・タスクが実施されることを可能にするために使用され得る。
【0141】
図16Aは、少なくとも1つの実施例による、機械学習モデルを訓練、再訓練、又は更新するためのプロセス1600のデータ・フロー図を示す。少なくとも1つの実施例では、プロセス1600は、
図15のシステム1500を非限定的な実例として使用して、実行され得る。少なくとも1つの実施例では、プロセス1600は、本明細書で説明されるように、サービス及び/又はハードウェアを活用し得る。少なくとも1つの実施例では、プロセス1600によって生成される改良されたモデル1612は、導入パイプライン中の1つ又は複数のコンテナ化アプリケーションのために、導入システムによって実行され得る。
【0142】
少なくとも1つの実施例では、モデル訓練1614は、新しい訓練データ(たとえば、顧客データセット1606、及び/又は入力データに関連付けられた新しいグランド・トゥルース・データなどの新しい入力データ)を使用して、初期モデル1604(たとえば、事前訓練されたモデル)を再訓練又は更新することを含み得る。少なくとも1つの実施例では、初期モデル1604を再訓練又は更新するために、初期モデル1604の(1つ又は複数の)出力又は損失層がリセット又は削除され得、及び/或いは、(1つ又は複数の)更新された又は新しい出力又は損失層と置き換えられ得る。少なくとも1つの実施例では、初期モデル1604は、前に微調整された、以前の訓練から残っているパラメータ(たとえば、重み及び/又はバイアス)を有し得、したがって、訓練又は再訓練1614は、最初からモデルを訓練するほど長い時間がかからないか、又は多くの処理を必要としないことがある。少なくとも1つの実施例では、モデル訓練1614中に、初期モデル1604の(1つ又は複数の)リセットされた又は置き換えられた出力又は損失層を有することによって、パラメータは、新しい顧客データセット1606に関して予測を生成する際の(1つ又は複数の)出力又は損失層の精度に関連付けられた損失計算に基づいて、新しいデータ・セットのために更新及び再調整され得る。
【0143】
少なくとも1つの実施例では、事前訓練されたモデル1606は、データ・ストア又はレジストリに記憶され得る。少なくとも1つの実施例では、事前訓練されたモデル1606は、少なくとも部分的に、プロセス1600を実行する施設以外の1つ又は複数の施設において訓練されていることがある。少なくとも1つの実施例では、異なる施設の患者、対象者、又は顧客のプライバシー及び権利を保護するために、事前訓練されたモデル1606は、構内で生成された顧客又は患者データを使用して、構内で訓練されていることがある。少なくとも1つの実施例では、事前訓練されたモデル1406は、クラウド及び/又は他のハードウェアを使用して訓練され得るが、プライバシー保護された機密の患者データは、クラウド(又は他の構外のハードウェア)の任意の構成要素に転送されないか、それらの構成要素によって使用されないか、又はそれらの構成要素にとってアクセス不可能であり得る。少なくとも1つの実施例では、事前訓練されたモデル1606が2つ以上の施設からの患者データを使用して訓練される場合、事前訓練されたモデル1606は、各施設について個々に訓練されてから、別の施設からの患者又は顧客データに関して訓練され得る。少なくとも1つの実施例では、顧客又は患者データが(たとえば、権利放棄によって、実験での使用のために、など)プライバシー問題から解放された場合、或いは、顧客又は患者データがパブリック・データ・セット中に含まれる場合など、任意の数の施設からの顧客又は患者データが、データセンタ又は他のクラウド・コンピューティング・インフラストラクチャなど、構内及び/又は構外で事前訓練されたモデル1606を訓練するために使用され得る。
【0144】
少なくとも1つの実施例では、導入パイプラインにおける使用のためのアプリケーションを選択するとき、ユーザは、特定のアプリケーションのために使用されるべき機械学習モデルをも選択し得る。少なくとも1つの実施例では、ユーザは、使用のためのモデルを有しないことがあり、したがって、ユーザは、アプリケーションとともに使用するために事前訓練されたモデルを選択し得る。少なくとも1つの実施例では、事前訓練されたモデルは、(たとえば、患者の多様性、人口統計、使用される医療撮像デバイスのタイプなどに基づいて)ユーザの施設の顧客データセット1606に関して正確な結果を生成するために最適化されないことがある。少なくとも1つの実施例では、事前訓練されたモデルを、(1つ又は複数の)アプリケーションとともに使用するために導入パイプラインに導入する前に、事前訓練されたモデルは、それぞれの施設において使用するために更新、再訓練、及び/又は微調整され得る。
【0145】
少なくとも1つの実施例では、ユーザは、更新、再訓練、及び/又は微調整されるべきである事前訓練されたモデルを選択し得、この事前訓練されたモデルは、プロセス1600内の訓練システムのための初期モデル1604と呼ばれることがある。少なくとも1つの実施例では、顧客データセット1606(たとえば、施設におけるデバイスによって生成された撮像データ、ゲノミクス・データ、シーケンシング・データ、又は他のデータ・タイプ)が、初期モデル1604に関して(限定はしないが、転移学習を含み得る)モデル訓練を実施して、改良されたモデル1612を生成するために、使用され得る。少なくとも1つの実施例では、顧客データセット1606に対応するグランド・トゥルース・データが、訓練システム1304によって生成され得る。少なくとも1つの実施例では、グランド・トゥルース・データは、施設において臨床医、科学者、医師、開業医によって、少なくとも部分的に生成され得る。
【0146】
少なくとも1つの実施例では、グランド・トゥルース・データを生成するために、AI支援アノテーションがいくつかの実例において使用され得る。少なくとも1つの実施例では、(たとえば、AI支援アノテーションSDKを使用して実装された)AI支援アノテーションは、機械学習モデル(たとえば、ニューラル・ネットワーク)を活用して、顧客データセットについて示唆又は予測されるグランド・トゥルース・データを生成し得る。少なくとも1つの実施例では、ユーザは、コンピューティング・デバイス上のユーザ・インターフェース(グラフィカル・ユーザ・インターフェース(GUI))内でアノテーション・ツールを使用し得る。
【0147】
少なくとも1つの実施例では、ユーザ1610は、コンピューティング・デバイス1608を介してGUIと対話して、(自動)アノテーションを編集又は微調整し得る。少なくとも1つの実施例では、ポリゴン編集特徴が、ポリゴンの頂点をより正確なロケーション又は微調整されたロケーションに移動するために使用され得る。
【0148】
少なくとも1つの実施例では、顧客データセット1606が、関連するグランド・トゥルース・データを有すると、(たとえば、AI支援アノテーション、手動ラベル付けなどからの)グランド・トゥルース・データが、改良されたモデル1612を生成するために、モデル訓練中によって使用され得る。少なくとも1つの実施例では、顧客データセット1606は、初期モデル1604に任意の回数適用され得、グランド・トゥルース・データは、改良されたモデル1612について、許容可能なレベルの精度が達成されるまで、初期モデル1604のパラメータを更新するために使用され得る。少なくとも1つの実施例では、改良されたモデル1612が生成されると、改良されたモデル1612は、医療撮像データに対して1つ又は複数の処理タスクを実施するために、施設において1つ又は複数の導入パイプライン内で導入され得る。
【0149】
少なくとも1つの実施例では、改良されたモデル1612は、別の施設によって選択されるべきモデル・レジストリにおいて事前訓練されたモデルにアップロードされ得る。少なくとも1つの実施例では、彼のプロセスは任意の数の施設において完了され得、それにより、改良されたモデル1612は、より普遍的なモデルを生成するように新しいデータセットに関して任意の回数さらに改良され得る。
【0150】
図16Bは、少なくとも1つの実施例による、事前訓練されたアノテーション・モデルを用いてアノテーション・ツールを拡張するためのクライアントサーバ・アーキテクチャ1632の例示的な図である。少なくとも1つの実施例では、AI支援アノテーション・ツール1636は、クライアントサーバ・アーキテクチャ1632に基づいてインスタンス化され得る。少なくとも1つの実施例では、撮像アプリケーション中のアノテーション・ツール1636は、放射線医が、たとえば、器官及び異常を識別するのを補助し得る。少なくとも1つの実施例では、撮像アプリケーションは、非限定的な実例として、(たとえば、3D MRI又はCTスキャンにおける)生画像1634において、関心のある特定の器官上の数個の極値点をユーザ1610が識別するのを助け、特定の器官のすべての2Dスライスについて自動アノテーション付けされた結果を受信する、ソフトウェア・ツールを含み得る。少なくとも1つの実施例では、結果は、訓練データ1638としてデータ・ストアに記憶され、(たとえば、限定はしないが)訓練のためのグランド・トゥルース・データとして使用され得る。少なくとも1つの実施例では、コンピューティング・デバイス1608が、AI支援アノテーションのために極値点を送出するとき、たとえば、深層学習モデルがこのデータを入力として受信し、セグメント化された器官又は異常の推論結果を返し得る。少なくとも1つの実施例では、
図16B中のAI支援アノテーション・ツール1636Bなどの事前インスタンス化されたアノテーション・ツールは、たとえばアノテーション・モデル・レジストリに記憶された、事前訓練されたモデル1642のセットを含み得るアノテーション支援サーバ1640などのサーバに、APIコール(たとえば、APIコール1644)を行うことによって、拡張され得る。少なくとも1つの実施例では、アノテーション・モデル・レジストリは、特定の器官又は異常に対してAI支援アノテーションを実施するように事前訓練された、事前訓練されたモデル1642(たとえば、深層学習モデルなどの機械学習モデル)を記憶し得る。これらのモデルは、訓練パイプラインを使用することによって、さらに更新され得る。少なくとも1つの実施例では、事前インストールされたアノテーション・ツールは、新しいラベル付きデータが追加されるにつれて、経時的に改善され得る。
【0151】
他の変形形態は、本開示の趣旨内にある。したがって、開示される技法は、様々な修正及び代替構築が可能であるが、それらのいくつかの例示的な実施例が図面に示され、上記で詳細に説明された。しかしながら、特定の1つ又は複数の開示された形態に本開示を限定する意図はなく、その反対に、添付の特許請求の範囲において定義されるように、開示の趣旨及び範囲に入るすべての修正形態、代替構築、及び等価物を網羅することを意図していることが理解されるべきである。
【0152】
開示される実施例を説明する文脈において(特に、以下の特許請求の範囲の文脈において)「a」及び「an」及び「the」という用語、並びに同様の指示語を使用することは、本明細書に別段の記載のない限り、又は文脈によって明らかに否定されない限り、単数と複数の両方を網羅すると解釈されるべきであり、用語の定義であると解釈されるべきではない。「含む、備える(comprising)」、「有する(having)」、「含む(including)」、及び「含んでいる(containing)」という用語は、別段の記載のない限り、オープンエンドの用語(「限定はしないが、~を含む(including, but not limited to,)」を意味する)と解釈されるべきである。「接続される」という用語は、修飾されず、物理的接続を指しているとき、何か介在するものがある場合でも、部分的に又は完全に中に含まれているか、取り付けられるか、又は互いに接合されるものとして解釈されるべきである。本明細書で値の範囲を詳述することは、本明細書に別段の記載のない限り、及び各別個の値が、本明細書に個々に詳述されているかのように明細書に組み込まれていない限り、範囲内に入る各別個の値を個々に参照する簡潔な方法として働くことを単に意図しているにすぎない。「セット」(たとえば、「項目のセット」)又は「サブセット」という用語の使用は、文脈によって別段の記載がないか又は否定されない限り、1つ又は複数の部材を備える空ではない集合として解釈されるべきである。さらに、文脈によって別段の記載がないか又は否定されない限り、対応するセットの「サブセット」という用語は、対応するセットの厳密なサブセットを必ずしも指すとは限らず、サブセットと、対応するセットとは、等しくなり得る。
【0153】
「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}。したがって、そのような結合語は、いくつかの実施例が、Aのうちの少なくとも1つ、Bのうちの少なくとも1つ、及びCのうちの少なくとも1つの各々が存在することを必要とすることを全体的に暗示するものではない。さらに、別段の記載がないか又は文脈によって否定されない限り、「複数(plurality)」という用語は、複数である状態を指示する(たとえば、「複数の項目(a plurality of items)」は複数の項目(multiple items)を指示する)。複数(plurality)は、少なくとも2つの項目であるが、明示的に、又は文脈によってのいずれかでそのように指示されているとき、それよりも多いことがある。さらに、別段の記載がないか又はさもなければ文脈から明らかでない限り、「~に基づいて」という言い回しは、「少なくとも部分的に~に基づいて」を意味し、「~のみに基づいて」を意味しない。
【0154】
本明細書で説明されるプロセスの動作は、本明細書に別段の記載がないか又はさもなければ文脈によって明確に否定されない限り、任意の好適な順序で実施され得る。少なくとも1つの実施例では、本明細書で説明されるプロセス(又はその変形形態及び/又は組合せ)などのプロセスは、実行可能命令で構成された1つ又は複数のコンピュータ・システムの制御下で実施され、1つ又は複数のプロセッサ上で、ハードウェアによって、又はそれらの組合せによって集合的に実行するコード(たとえば、実行可能命令、1つ又は複数のコンピュータ・プログラム、又は1つ又は複数のアプリケーション)として実装される。少なくとも1つの実施例では、コードは、たとえば、1つ又は複数のプロセッサによって実行可能な複数の命令を備えるコンピュータ・プログラムの形態で、コンピュータ可読記憶媒体に記憶される。少なくとも1つの実施例では、コンピュータ可読記憶媒体は、一時的信号(たとえば、伝搬する一時的な電気又は電磁送信)を除外するが、一時的信号のトランシーバ内の非一時的データ・ストレージ回路要素(たとえば、バッファ、キャッシュ、及びキュー)を含む非一時的コンピュータ可読記憶媒体である。少なくとも1つの実施例では、コード(たとえば、実行可能コード又はソース・コード)は、1つ又は複数の非一時的コンピュータ可読記憶媒体のセットに記憶され、この記憶媒体は、コンピュータ・システムの1つ又は複数のプロセッサによって実行されたときに(すなわち、実行された結果として)、コンピュータ・システムに本明細書で説明される動作を実施させる実行可能命令を記憶している(又は、実行可能命令を記憶するための他のメモリを有する)。非一時的コンピュータ可読記憶媒体のセットは、少なくとも1つの実施例では、複数の非一時的コンピュータ可読記憶媒体を備え、複数の非一時的コンピュータ可読記憶媒体の個々の非一時的記憶媒体のうちの1つ又は複数は、コードのすべてがないが、複数の非一時的コンピュータ可読記憶媒体は、集合的にコードのすべてを記憶している。少なくとも1つの実施例では、実行可能命令は、異なる命令が異なるプロセッサによって実行されるように実行され、たとえば、非一時的コンピュータ可読記憶媒体は命令を記憶し、メイン中央処理ユニット(「CPU」)は命令のいくつかを実行し、グラフィックス処理ユニット(「GPU」)は他の命令を実行する。少なくとも1つの実施例では、コンピュータ・システムの異なる構成要素は、別個のプロセッサを有し、異なるプロセッサが命令の異なるサブセットを実行する。
【0155】
したがって、少なくとも1つの実施例では、コンピュータ・システムは、本明細書で説明されるプロセスの動作を単独で又は集合的に実施する1つ又は複数のサービスを実装するように構成され、そのようなコンピュータ・システムは、動作の実施を可能にする適用可能なハードウェア及び/又はソフトウェアで構成される。さらに、本開示の少なくとも1つの実施例を実装するコンピュータ・システムは、単一のデバイスであり、別の実施例では、分散型コンピュータ・システムが本明細書で説明される動作を実施するように、及び単一のデバイスがすべての動作を実施しないように、異なるやり方で動作する複数のデバイスを備える分散型コンピュータ・システムである。
【0156】
本明細書で提供されるあらゆる実例、又は例示的な言葉(たとえば、「など、などの(such as)」)の使用は、本開示の実施例をより明らかにすることのみを意図しており、別段の主張のない限り、本開示の範囲に制限を加えるものではない。本明細書のいかなる言葉も、特許請求されていない任意の要素を、本開示の実践に不可欠なものとして示すと解釈されるべきではない。
【0157】
本明細書で引用される出版物、特許出願、及び特許を含むすべての参考文献は、各参考文献が参照により組み込まれることが個別に明確に指示され、その全体が本明細書に記載されたかのように、それと同程度まで参照により本明細書に組み込まれる。
【0158】
明細書及び特許請求の範囲において、「結合される」及び「接続される」という用語が、その派生語とともに使用され得る。これらの用語は、互いに同義語として意図されていないことがあることが理解されるべきである。むしろ、特定の実例では、「接続される」又は「結合される」は、2つ又はそれ以上の要素が物理的又は電気的に互いに直接又は間接的に接触していることを指示するために使用され得る。「結合される」はまた、2つ又はそれ以上の要素が直接互いに接触していないが、それでもなお互いに連動又は対話することを意味し得る。
【0159】
別段の具体的な記載がない限り、明細書全体を通して、「処理する(processing)」、「算出する(computing)」、「計算する(calculating)」、又は「決定する(determining)」などの用語は、コンピューティング・システムのレジスタ及び/又はメモリ内の、電子的などの物理的な量として表されるデータを、コンピューティング・システムのメモリ、レジスタ又は他のそのような情報ストレージ、送信、若しくはディスプレイ・デバイス内の物理的な量として同様に表される他のデータになるように操作及び/又は変換する、コンピュータ又はコンピューティング・システム、或いは同様の電子コンピューティング・デバイスのアクション及び/又はプロセスを指すことが諒解され得る。
【0160】
同様に、「プロセッサ」という用語は、レジスタ及び/又はメモリからの電子データを処理し、その電子データを、レジスタ及び/又はメモリに記憶され得る他の電子データに変換する任意のデバイス、又はデバイスの一部分を指し得る。非限定的な実例として、「プロセッサ」は、CPU又はGPUであり得る。「コンピューティング・プラットフォーム」は、1つ又は複数のプロセッサを備え得る。本明細書で使用される「ソフトウェア」プロセスは、たとえば、タスク、スレッド、及び知的エージェントなど、経時的にワークを実施するソフトウェア及び/又はハードウェア・エンティティを含み得る。また、各プロセスは、命令を直列で又は並列で、連続的に又は断続的に行うための複数のプロセスを指し得る。「システム」及び「方法」という用語は、1つ又は複数の方法をシステムが具体化し得、方法がシステムと考えられ得る場合に限り、本明細書において交換可能に使用される。
【0161】
本明細書では、アナログ・データ又はデジタル・データを取得すること、獲得すること、受信すること、或いはそれらをサブシステム、コンピュータ・システム、又はコンピュータ実装機械に入力することに言及し得る。アナログ・データ及びデジタル・データを取得すること、獲得すること、受信すること、又は入力することは、関数コール、又はアプリケーション・プログラミング・インターフェースへのコールのパラメータとしてデータを受信することによってなど、様々なやり方で実現され得る。いくつかの実装形態では、アナログ・データ又はデジタル・データを取得する、獲得する、受信する、又は入力するプロセスは、直列又は並列インターフェースを介してデータを転送することによって実現され得る。別の実装形態では、アナログ・データ又はデジタル・データを取得する、獲得する、受信する、又は入力するプロセスは、提供するエンティティから獲得するエンティティにコンピュータ・ネットワークを介してデータを転送することによって実現され得る。アナログ・データ又はデジタル・データを提供すること、出力すること、送信すること、送出すること、又は提示することにも言及し得る。様々な実例では、アナログ・データ又はデジタル・データを提供する、出力する、送信する、送出する、又は提示するプロセスは、関数コールの入力又は出力パラメータ、アプリケーション・プログラミング・インターフェース又はプロセス間通信機構のパラメータとしてデータを転送することによって実現され得る。
【0162】
上記の説明は、説明された技法の例示的な実装形態について述べているが、他のアーキテクチャが、説明された機能性を実装するために使用され得、本開示の範囲内にあることが意図される。さらに、説明を目的として、責任の具体的な分散が上記で定義されたが、様々な機能及び責任は、状況に応じて異なるやり方で分散及び分割され得る。
【0163】
さらに、主題は、構造的特徴及び/又は方法論的行為に特有の言語で説明されたが、添付の特許請求の範囲で特許請求される主題は、説明された特有の特徴又は行為に必ずしも限定されるとは限らないことが理解されるべきである。むしろ、特有の特徴及び行為は、特許請求の範囲を実装する例示的な形態として開示される。
【外国語明細書】