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

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7513359勾配降下法のセキュアな連合方法、システム、プログラム
<>
  • 特許-勾配降下法のセキュアな連合方法、システム、プログラム 図1
  • 特許-勾配降下法のセキュアな連合方法、システム、プログラム 図2
  • 特許-勾配降下法のセキュアな連合方法、システム、プログラム 図3
  • 特許-勾配降下法のセキュアな連合方法、システム、プログラム 図4
  • 特許-勾配降下法のセキュアな連合方法、システム、プログラム 図5
  • 特許-勾配降下法のセキュアな連合方法、システム、プログラム 図6
  • 特許-勾配降下法のセキュアな連合方法、システム、プログラム 図7
  • 特許-勾配降下法のセキュアな連合方法、システム、プログラム 図8
  • 特許-勾配降下法のセキュアな連合方法、システム、プログラム 図9
  • 特許-勾配降下法のセキュアな連合方法、システム、プログラム 図10
  • 特許-勾配降下法のセキュアな連合方法、システム、プログラム 図11
  • 特許-勾配降下法のセキュアな連合方法、システム、プログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-01
(45)【発行日】2024-07-09
(54)【発明の名称】勾配降下法のセキュアな連合方法、システム、プログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240702BHJP
   G06N 3/098 20230101ALI20240702BHJP
   G09C 1/00 20060101ALI20240702BHJP
【FI】
G06N20/00
G06N3/098
G09C1/00 650Z
【請求項の数】 20
(21)【出願番号】P 2022525956
(86)(22)【出願日】2020-11-05
(65)【公表番号】
(43)【公表日】2023-01-18
(86)【国際出願番号】 IB2020060418
(87)【国際公開番号】W WO2021094879
(87)【国際公開日】2021-05-20
【審査請求日】2023-04-24
(31)【優先権主張番号】16/684,806
(32)【優先日】2019-11-15
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ラーダークリシュナン、ジャヤラム、カッラパラヤム
(72)【発明者】
【氏名】トーマス、ゲギ
(72)【発明者】
【氏名】ヴェルマ、アシシュ
【審査官】渡辺 一帆
(56)【参考文献】
【文献】米国特許出願公開第2019/0312772(US,A1)
【文献】国際公開第2016/061635(WO,A1)
【文献】特開2019-121256(JP,A)
【文献】PHONG, LT et al.,"Privacy-Preserving Deep Learning via Additively Homomorphic Encryption",IEEE Transactions on Information Forensics and Security [online],IEEE,2017年,Vol. 13, No. 3,pp. 1333-1345,[retrieved on 2024.03.04], Retrieved from the Internet: <URL: https://ieeexplore.ieee.org/document/8241854>,<DOI: 10.1109/TIFS.2017.2787987>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00-20/20
G06N 3/02-3/10
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
メモリに動作的に結合された処理ユニットと、
前記処理ユニットと通信する人工知能(AI)プラットフォームであって、機械学習モデルを訓練する、前記人工知能プラットフォームと、を備えたシステムであって、前記AIプラットフォームが、
コラボラティブな関係で参加エンティティを登録し、登録済みエンティティをトポロジに配置し、トポロジ通信方向を確立する登録マネージャと、
公開加法準同型暗号化(AHE)鍵を生成し、それを各登録済みエンティティに配布する暗号化マネージャと、
対応する配布AHE鍵によるエンティティ局所機械学習モデル重みの暗号化を局所的に指示し、その暗号化局所機械学習モデル重みを選択的に集約し、その選択的集約暗号化重みを、前記トポロジ通信方向に応じて、前記トポロジにおける1つまたは複数のエンティティに配布するエンティティ・マネージャと、を備え、
前記暗号化マネージャが、前記暗号化局所機械学習モデル重みの集約和を、対応する秘密AHE鍵による暗号解読の対象とし、その暗号解読集約和を前記トポロジにおける各エンティティに配布する、システム。
【請求項2】
1つの参加エンティティが2つ以上の内部エンティティから成り、前記エンティティ・マネージャが、
前記2つ以上の内部エンティティに局所的に結合された1つまたは複数の機械学習モデルからの重みを集約することと、
その集約重みを前記AHE鍵で局所的に暗号化することとを行うようにさらに構成され、前記集約重みが準同型データ型に相当する、請求項1に記載のシステム。
【請求項3】
前記エンティティ・マネージャが、前記暗号化マネージャから前記暗号解読集約和を受信し、前記集約和を前記2つ以上の局所結合機械学習モデルに伝えるようにさらに構成されている、請求項2に記載のシステム。
【請求項4】
前記トポロジがリングトポロジであり、前記登録マネージャが、前記トポロジにおける各参加エンティティにランクを割り当て、前記トポロジにおけるその割り当てランクに応じて、第1のトポロジ方向に機械学習モデル重みを徐々に暗号化し、集約するようにさらに構成されている、請求項1に記載のシステム。
【請求項5】
前記登録マネージャが、使用可能な通信帯域幅に応じて前記第1のトポロジ方向を修正するようにさらに構成されている、請求項4に記載のシステム。
【請求項6】
前記登録マネージャが、前記参加エンティティを完全連結型トポロジに配置するようにさらに構成され、
前記エンティティ・マネージャが、各参加エンティティが前記暗号化局所機械学習モデル重みを前記トポロジにわたって一斉送信し、前記選択的集約には、各参加エンティティが、受信した一斉送信暗号化重みを局所的に集約することがさらに含まれる、というプロードキャスティングプロトコルを採用し、
前記暗号化マネージャが各局所集約を参加検証の対象とするようにさらに構成されている、請求項1に記載のシステム。
【請求項7】
前記エンティティ・マネージャが、重み配列として前記局所機械学習モデル重みを表すことと、その暗号化配列を複数の2つ以上のチャンクに分けることであって、チャンク数が前記登録済み参加者数に相当する整数である、前記分けることと、各チャンクを前記AHE鍵で局所的に暗号化することと、並行してかつ前記トポロジに応じて、前記チャンクを同期して集約することと、を行うようにさらに構成されている、請求項1に記載のシステム。
【請求項8】
機械学習モデルを訓練するプログラム・コードを含むコンピュータ・プログラムであって、前記プログラム・コードが、プロセッサに、
コラボラティブな関係で参加エンティティを登録し、その登録済みエンティティをトポロジに配置し、トポロジ通信方向を確立することと、
公開加法準同型暗号化(AHE)鍵を生成し、それを各登録済みエンティティに配布することと、
対応する配布AHE鍵によるエンティティ局所機械学習モデル重みの暗号化を局所的に指示し、その暗号化局所機械学習モデル重みを選択的に集約し、その選択的集約暗号化重みを前記トポロジ通信方向に応じて、前記トポロジにおける1つまたは複数のエンティティに配布することと、
前記暗号化局所機械学習モデル重みの集約和を、対応する秘密AHE鍵による暗号解読の対象とし、その暗号解読集約和を前記トポロジにおける各エンティティに配布することと、を実行させる、コンピュータ・プログラム。
【請求項9】
1つの参加エンティティが2つ以上の内部エンティティから成り、プログラム・コードが、前記プロセッサに、
前記2つ以上の内部エンティティに局所的に結合された1つまたは複数の機械学習モデルからの重みを集約することと、
その集約重みを前記AHE鍵で局所的に暗号化することとを実行させるようにさらに構成され、前記集約重みが準同型データ型に相当する、請求項8に記載のコンピュータ・プログラム。
【請求項10】
プログラム・コードが、前記プロセッサに、前記暗号解読集約和を受信し、前記集約和を前記2つ以上の内部エンティティに伝えることを実行させるようにさらに構成されている、請求項9に記載のコンピュータ・プログラム。
【請求項11】
前記トポロジがリングトポロジであり、プログラム・コードが、前記プロセッサに、前記トポロジにおける各参加エンティティにランクを割り当て、前記トポロジにおけるその割り当てランクに応じて、第1のトポロジ方向に機械学習モデル重みを徐々に暗号化し、集約することを実行させるようにさらに構成されている、請求項8に記載のコンピュータ・プログラム。
【請求項12】
前記プログラム・コードが、前記プロセッサに、使用可能な通信帯域幅に応じて前記第1のトポロジ方向を修正することを実行させるようにさらに構成されている、請求項11に記載のコンピュータ・プログラム。
【請求項13】
プログラム・コードが、前記プロセッサに、重み配列として前記局所機械学習モデル重みを表すことと、その暗号化配列を複数の2つ以上のチャンクに分けることであって、チャンク数が前記登録済み参加者数に相当する整数である、前記分けることと、各チャンクを前記AHE鍵で局所的に暗号化することと、並行してかつ前記トポロジに応じて、前記チャンクを同期して集約することと、を実行させるようにさらに構成されている、請求項8に記載のコンピュータ・プログラム。
【請求項14】
前記トポロジが完全連結型であり、プログラム・コードが、前記プロセッサに、
前記暗号化局所機械学習モデル重みを前記トポロジにわたって一斉送信することと、
受信した一斉送信暗号化重みを局所的に集約することと、
各局所集約をエンティティ参加検証の対象とすることと、を実行させるようにさらに構成されている、請求項8に記載のコンピュータ・プログラム。
【請求項15】
コンピュータの情報処理によって実行される方法であって、
参加エンティティを、機械学習モデルを訓練するコラボラティブな関係で登録することと、
その登録済み参加エンティティをトポロジに配置して、トポロジ通信方法を確立することと、
各登録済み参加エンティティが、公開加法準同型暗号化(AHE)鍵を受信し、局所機械学習モデル重みをその受信した鍵で暗号化することと、
その暗号化局所機械学習モデル重みを選択的に集約して、その選択的集約暗号化重みを、前記トポロジ通信方向に応じて、前記トポロジにおける1つまたは複数の参加エンティティに配布することと、
前記暗号化局所機械学習モデル重みの集約和を、対応する秘密AHE鍵による暗号解読の対象とし、その暗号解読集約和を前記登録済みエンティティに配布することと、を含む、方法。
【請求項16】
1つの参加エンティティが2つ以上の内部エンティティから成り、
前記2つ以上の内部エンティティに局所的に結合された1つまたは複数の機械学習モデルからの重みを集約することと、
その集約重みを前記AHE鍵で局所的に暗号化することであって、前記集約重みが準同型データ型に相当する、暗号化することと、
前記1つの参加エンティティが前記暗号解読集約和を受信し、その集約和を前記2つ以上の内部エンティティに伝えることと、をさらに含む、請求項15に記載の方法。
【請求項17】
前記トポロジがリングトポロジであり、前記トポロジにおける各参加エンティティにランクを割り当て、前記トポロジにおけるその割り当てランクに応じて、第1のトポロジ方向に機械学習モデル重みを徐々に暗号化し、集約すること、をさらに含む、請求項15に記載の方法。
【請求項18】
重み配列として前記局所機械学習モデル重みを表すことと、その暗号化配列を複数の2つ以上のチャンクに分けることであって、チャンク数が前記登録済み参加者数に相当する整数である、前記分けることと、各チャンクを前記AHE鍵で局所的に暗号化することと、並行してかつ前記トポロジに応じて、前記チャンクを同期して集約することと、をさらに含む、請求項15に記載の方法。
【請求項19】
各参加エンティティが1つの集約チャンクを受信すると同期集約を完結させることと、前記1つの集約チャンクを暗号解読エンティティに送信することと、その送信チャンクを対応するAHE秘密鍵による暗号解読の対象とすることと、その暗号解読チャンクを連結させることと、その連結暗号解読チャンクを前記登録済み参加エンティティに配布することと、をさらに含む、請求項18に記載の方法。
【請求項20】
前記トポロジが完全連結型であり、前記方法が、
各参加エンティティが前記暗号化局所機械学習モデル重みを前記トポロジにわたって一斉送信することであって、
前記選択的集約には、各参加エンティティが、受信した一斉送信暗号化重みを局所的に集約することがさらに含まれる、前記一斉送信することと、
各局所集約をエンティティ参加検証の対象とすることと、をさらに含む、請求項15に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、深層ニューラル・ネットワークを含む機械学習モデルを勾配降下法に基づき訓練することに関するものである。より具体的には、本実施形態は、繰り返しアルゴリズムに基づき、分散型で、連合式に、非公開かつセキュアに、機械学習モデルを訓練するコラボレーションに関するものである。
【背景技術】
【0002】
人工知能(AI:Artificial Intelligence)は、人間に関係するコンピュータおよびコンピュータ挙動を対象とするコンピュータ科学分野に関わっている。AIは、マシンが、所与の主題において成功のチャンスを最大限にする情報に基づき判断を下すことができ知能のことである。より具体的には、AIは、問題を解くように設定されたデータから学習し、該当する推奨事項を与えることができる。例えば、人工知能コンピュータ・システム分野では、自然言語システム(IBM Watson(R)人工知能コンピュータ・システムなどの自然言語質疑応答システムなど)は、システム取得知識に基づき自然言語を処理する。自然言語を処理する際、このシステムは、知識のデータベースすなわちコーパスから導出したデータで訓練されるが、その結果としての成果が、様々な理由で、不正確か不確かである場合がある。
【0003】
人工知能(AI)の一部である機械学習(ML:Machine Larning)は、データから学習し、このデータに基づいて先見を作成するアルゴリズムを利用する。MLは、はっきりとはプログラムされていないタスクを行うことによって、学習挙動を実演することができるニューラル・ネットワークを含む、モデル作成を通したAIアプリケーションである。深層学習は、システムが、前の層の出力に基づき、複数の選択層によって複雑なタスクを果たし、結果を益々賢明に概念的にすることができる、類のMLである。深層学習では、本明細書では人工ニューラル・ネットワークとしているニューラル・ネットワークを採用して、入力と出力との複雑な関係をモデル化して、そこにあるパターンを特定する。
【0004】
AIとその関連の論理的思考の核心には、類似性の概念がある。自然言語とその対象を理解する過程では、困難である場合がある関係の視点からの論理的思考が必要になる。静的構造および動的構造を含む構造は、判断入力が何であれ、判断出力すなわち判断行動を決定付ける。より具体的には、判断出力すなわち判断行動は、構造内の表現すなわち固有の関係に基づく。決まった場合や条件では、この仕組みで十分とすることができる。しかし、分かっていることであるが、動的構造が、本質的に変わりやすいものであり、出力すなわち行動もそれに従って変わりやすくなり得る。
【発明の概要】
【0005】
本発明のある態様において、機械学習モデルを訓練するのに人工知能(AI)プラットフォームを使用するシステムを提供する。処理ユニットが、メモリに動作的に結合され、登録マネージャ、暗号化マネージャ、およびエンティティ・マネージャの形態でツールが埋め込まれているAIプラットフォームと通信する。登録マネージャは、参加エンティティをコラボラティブな関係で登録し、トポロジに登録済みエンティティを配置し、トポロジ通信方向を確立するように機能する。暗号化マネージャは、公開加法準同型暗号化(AHE:Additive Homomorphic Encryption)鍵を生成し、それを各登録済みエンティティに配布するように機能する。エンティティ・マネージャは、エンティティ局所機械学習モデル重みの対応する配布AHE鍵による暗号化を局所的に指示するように機能する。エンティティ・マネージャは、暗号化局所機械学習重みを選択的に集約し、その集約重みを、トポロジ通信方向に応じて、トポロジにおける1つまたは複数のエンティティに配布するように機能する。暗号化マネージャは、暗号化局所機械学習モデル重みの集約和を、対応する秘密AHE鍵による暗号解読の対象とし、集約和をトポロジにおける各エンティティに配布する。暗号化マネージャはさらに、暗号化局所機械学習モデル重みの暗号解読集約和を、登録済み参加エンティティ同士で共有させるように機能する。
【0006】
別の態様において、機械学習モデルを訓練するコンピュータ・プログラム製品を提供する。コンピュータ・プログラム製品としては、プログラム・コードを具現化したコンピュータ可読記憶媒体が挙げられ、プログラム・コードは、コラボラティブな関係で参加エンティティを登録し、登録済みエンティティをトポロジに配置し、トポロジ通信方向を確立するようにプロセッサによって実行可能である。公開加法準同型暗号化(AHE:Additive Homomorphic Encryption)鍵を生成して、各登録済みエンティティに配布するプログラム・コードを提供する。プログラム・コードは、エンティティ局所機械学習モデル重みの対応する配布AHE鍵による暗号化を局所的に指示する。局所機械学習モデル重みは、選択的に集約され、集約重みは、トポロジ通信方向に応じてトポロジにおける1つまたは複数のエンティティに配布される。さらに、暗号化局所機械学習モデル重みの集約和を対応する秘密AHE鍵による暗号解読の対象とするプログラム・コードを提供する。暗号解読集約和は、トポロジにおける各エンティティに配布され、そこでは、暗号化局所機械学習モデル重みの暗号解読集約和が、登録済み参加エンティティ同士で共有される。
【0007】
また別の態様において、機械学習モデルを訓練する方法を提供する。参加エンティティがコラボラティブな関係で登録される。登録済み参加エンティティは、トロポジで配置され、トポロジ通信方向が確立される。各登録済み参加エンティティは、公開加法準同型暗号化(AHE)鍵を受信し、局所機械学習モデル重みが受信した鍵で暗号化される。暗号化局所機械学習モデル重みは、選択的に集約され、選択的集約暗号化重みは、トポロジ通信方向に応じてトポロジにおける1つまたは複数の参加エンティティに配布される。暗号化局所機械学習モデル重みの集約和は、対応する秘密AHE鍵による暗号解読の対象となる。暗号化局所機械学習モデル重みの暗号解読集約和は、登録済み参加エンティティ同士で共有される。
【0008】
添付図面と絡めて、以下の本開示の好ましい実施形態の詳細な説明から、これらなどの特徴および利点が分かってくるであろう。
【0009】
本明細書における図面参照は、本明細書の一部を成す。図面に示す特徴は、そうではないとはっきり示していない限り、すべての実施形態ではなく、いくつかの実施形態のみの理解を助けるものである。
【図面の簡単な説明】
【0010】
図1】分散型確率的勾配降下法のセキュアな連合をサポートする、ネットワーク環境において接続されたシステムの良い例となるフローチャートの描写である。
図2図1において示し説明した人工知能プラットフォームおよびツール、またその対応するアプリケーションプログラムインターフェースの良い例となるブロック図の描写である。
図3】管理ドメインおよびドメイン内集約の良い例となるブロック図の描写である。
図4】管理ドメインへドメイン内集約を伝達する工程の良い例となるフローチャートの描写である。
図5】MLプログラムのドメイン間コラボレーションおよび訓練の工程の良い例と成るフローチャートの描写である。
図6図5において示し説明した工程をサポートするリングトポロジ例を示すブロック図の描写である。
図7】完全連結型トポロジにエンティティを配置し、そのトポロジにわたってブロードキャスト通信プロトコルを採用する工程の良い例となるフローチャートの描写である。
図8】そのメンバーシップが動的に変わる、チャネル・グループまたはブロードキャスト・グループにわたって重み暗号化および重み集約をサポートし、可能にする工程の良い例となるフローチャートの描写である。
図9】局所重み配列を暗号化すると同時に、並行してその配列のチャンクを集約する工程の良い例となるフローチャートの描写である。
図10図1~9に関してこれまで述べたシステムおよび工程を具体化する、クラウド・ベースのサポート・システムのコンピュータ・システム/サーバの例を示すブロック図の描写である。
図11】クラウド・コンピュータ環境の良い例となるブロック図の描写である。
図12】クラウド・コンピューティング環境によって与えられた一連の機能抽象化モデル層の良い例となるブロック図の描写である。
【発明を実施するための形態】
【0011】
本明細書の図で大まかに説明し、示すように、本実施形態の構成要素が、多種多様な構成で配置、設計されてもよい、ということがすぐに分かるであろう。それ故、図に提示する、以下の本実施形態の装置、システム、およびコンピュータ・プログラム製品の実施形態の詳細な説明は、請求項に記載の本実施形態の範囲を限ることを目的とするものではなく、単に、選択した実施形態を表すものに過ぎない。
【0012】
本明細書全体を通して、「選択実施形態」、「ある実施形態」、または「一実施形態」と言うとき、それは、その実施形態との絡みで述べる特定の特徴、構造、または特性が少なくとも1つの実施形態に含まれる、ということを意味する。それ故、本明細書全体を通して様々な個所で「選択実施形態において」、「ある実施形態において」、または「一実施形態において」と言った言い回しが出てきたときには、必ずしも、同じ実施形態のことを言っているわけではない。
【0013】
図示の実施形態は、全体を通して同じ部分が同じ番号で示されている図面を参照すると、一番良く分かるであろう。以下の説明は、単に例としてのものに過ぎず、本明細書において請求の対象となる実施形態と一致するデバイス、システム、および工程の特定の選択実施形態の良い例と成るものに過ぎない。
【0014】
深層学習は、繰り返し、データから学習するように連続する層にニューラル・ネットワークを組み込む機械学習法である。ニューラル・ネットワークは、人間の脳が情報を処理するやり方のモデルである。ニューラル・ネットワークの基本単位は、ニューロンと言われ、このニューロンは、通常、層にまとめられている。ニューラル・ネットワークは、抽象バージョンのニューロンに似ている多数の相互接続処理単位をシミュレートすることによって働く。ニューラル・ネットワークには、通常、単位が入力フィールドに相当する入力層、1つまたは複数の隠れ層、および1つまたは複数の単位がターゲット・フィールドに相当する出力層、の3つのパートがある。単位は、様々な接続強度または接続重みで接続されている。第1の層には入力データが提示され、値が各ニューロンから、次の層にあるあらゆるニューロンに伝えられる。最終的に、出力層から結果が導き出される。深層学習複合ニューラル・ネットワークは、人間の脳がどのように働くかをエミュレートするように考案されているので、コンピュータは、不完全定義の抽象化および問題に対応するように訓練され得る。ニューラル・ネットワークおよび深層学習は、画像認識、発話、およびコンピュータ・バージョン・アプリケーションに使用されることが多い。
【0015】
ニューラル・ネットワークは、相互接続層とその対応するアルゴリズム、さらに調整式重みで構成されている。重みを調整する最適化関数は、勾配降下法とも言われる。より具体的には、勾配降下法は、負の勾配によって定義される最も急な降下方向に繰り返し動くことによって関数を最小限に抑えるのに使用される最適化アルゴリズムである。MLでは、勾配降下法を使用して、ニューラル・ネットワークとその対応するニューラル・モデルのパラメータを更新する。1つの物理マシンに対する訓練の際や1つのエンティティ内のコンピュータにわたる訓練の際、これは、簡単である。しかし、複数のエンティティが関わっている場合、通信限界が原因でも、法律上の理由でも(HIPAAのような規則など)データが共有できないことがあり得る。そのため、1つの解決策は、各参加エンティティからの重みおよび洞察を共有することである。当技術分野では分かっていることであるが、データからの洞察を共有することで、望ましいまたは向上したニューラル・モデルを作り出すことにつなげることができる。しかし、データ共有は、他の参加エンティティが共有洞察からデータをリバース・エンジニアリングする、例えば再構成するのに起因する守秘義務違反やプライバシ侵害などの他の問題につながる。したがって、本明細書において示し説明する通り、プレーン・テキスト、例えばクリア・テキストでデータまたは重みを共有することなく、暗号化モデルパラメータを共有することによって、暗号化重みをマージするシステム、コンピュータ・プログラム製品、および方法を提供する。
【0016】
本明細書において示し説明する通り、暗号化鍵とその対応する暗号化プラットフォームを用いて、共有する対象である重みを暗号化し、アルゴリズムまたは工程を用いて、暗号化重みの集約をサポートし、可能にする。暗号化プラットフォームでは、加法準同型暗号化(AHE)、例えば、公開鍵とその対応する秘密鍵を用いる、ある類の鍵ペアベースの暗号法である、Paillier暗号化を活用する。あらゆるエンティティが同じ公開鍵を使用して、訓練ジョブごとに準同型をサポートし、可能にする。AHEは、メッセージまたは対応するデータが、暗号形態である間に加え合わされ、さらに対応する秘密鍵による加法暗号化形態の正しい暗号解読をサポートするのを可能にする加法準同型をもたらす。本明細書において示し説明する通り、AHEをMLに適用して、対応するニューラル・ネットワークの重みを暗号化し、対応するデータを暗号化することも共有することもなく、コラボラティブな環境の登録済み参加エンティティ同士で暗号化重みを共有する。
【0017】
図1では、分散型確率的勾配降下法のセキュアな連合の良い例となる概略図(100)を提供する。見ての通り、複数のコンピューティング・デバイス(180)、(182)、(184)、(186)、(188)、および(190)と、ネットワーク接続(105)にわたって通信するサーバ(110)を提供する。サーバ(110)は、バス(114)にわたってメモリ(116)と通信する処理ユニット(112)で構成されている。サーバ(110)は、分散型で、連合式に、非公開のセキュアな環境で、繰り返し最適化アルゴリズムに基づき、機械学習モデルを訓練するコラボレーションをサポートする人工知能(AI)プラットフォーム(150)を備えて示されている。サーバ(110)は、コンピューティング・デバイス(180)、(182)、(184)、(186)、(188)、および(190)のうちの1つまたは複数とネットワーク(105)上で通信する。より具体的には、コンピューティング・デバイス(180)、(182)、(184)、(186)、(188)、および(190)は、互いに、また他のデバイスまたは構成要素と1つまたは複数の有線データ通信リンクまたは無線通信リンクあるいはその両方を介して通信し、各通信リンクは、電線、ルータ、スイッチ、送信機、受信機などのうちの1つまたは複数で構成され得る。このネットワーク化構成では、サーバ(110)およびネットワーク接続(105)が、通信方向、認識、および分解能を可能にする。サーバ(110)の他の実施形態では、本明細書で描写されているもの以外の構成要素、システム、サブシステム、またはデバイス、あるいはその組合せが使用されてもよい。
【0018】
本明細書では、様々な源から入力(102)を受信するように構成されたAIプラットフォーム(150)を示している。例えば、AIプラットフォーム(150)は、ネットワーク(105)から入力を受信して、本明細書ではコーパスまたは知識ベースとも言われるデータ源(160)を活用して、出力または応答コンテンツを作成することができる。見ての通り、データ源(160)は、1つのライブラリ(162)で、ある実施形態では、複数のライブラリで、すなわち、モデル(164)、モデル(164)、モデル(164)、およびモデル(164)を含む、本明細書ではニューラル・モデルとしている、1つまたは複数の深層ニューラル・ネットワークを含むライブラリ(162)で構成されている。ある実施形態において、ライプラリ(162)は、減らしたモデルや増やしたモデルを含み得る。同様に、ある実施形態において、データ源(160)におけるライブラリは、共通の主題すなわちテーマでまとめられてもよいが、これは、要件ではない。ライブラリにポピュレートされたモデルは、同様の源からのものでも似ていない源からのものであってもよい。
【0019】
AIプラットフォーム(150)には、機械学習コラボレーションをサポートし、可能にするツールが与えられている。ネットワーク(105)と通信する様々なコンピューティング・デバイス(180)、(182)、(184)、(186)、(188)、(190)は、データ源(160)のモデルへのアクセス・ポイントを含み得る。AIプラットフォーム(150)は、洞察またはデータを共有しないでも、コラボレーションを可能にし、サポートするプラットフォームとして機能する。本明細書において示し説明する通り、コラボレーションでは、重み暗号化および集約からAHE鍵生成を分ける公開鍵基盤(PKI:Public Key Infrastructure)を採用する。より具体的には、本明細書で詳しく述べる通り、加法準同型暗号化を活用して、特定されたまたは選択されたエンティティが、データを共有しないでも、暗号化形態でニューラル・モデル重みを共有することを可能にする。望ましい正確さを備えるニューラル・モデルの形態の応答出力(132)が、得られ、コラボレーションに及び、参加するエンティティ同士で共有される。ある実施形態において、AIプラットフォーム(150)は、応答出力(132)を、ネットワーク(105)にわたってサーバ(110)またはコンピューティング・デバイス(180)~(190)のうちの1つまたは複数に動作的に結合された、図6および図7において示し説明するものなどのコラボラティブなトポロジのメンバーに伝える。
【0020】
ネットワーク(105)としては、AIプラットフォーム(150)が局所および大域を含むどのような規模の環境でも働くことができるような、様々な実施形態のローカル・ネットワーク接続およびリモート接続、例えばインターネットを挙げることができる。AIプラットフォーム(150)は、コラボレーションをサポートするバックエンド・システムとしての役割を果たす。このように、いくつかの工程では、AIプラットフォーム(150)をポピュレートし、この場合、AIプラットフォーム(150)は、リクエストを受信し、それに応じて応答する入力インターフェースも含む。
【0021】
本明細書では、登録マネージャ(152)、暗号化マネージャ(154)、およびエンティティ・マネージャ(156)を含む、ニューラル・モデルコラボレーションをサポートするいくつかのツールを備えるAIプラットフォーム(150)を示している。登録マネージャ(152)は、トポロジへの登録済みエンティティの配置、通信方向の確立、およびトポロジにおける登録済みエンティティ同士の通信プロトコルを含む、コラボラティブな関係に参加エンティティを登録するように機能する。例えば、ある実施形態において、また以下に示し説明する通り、登録済みエンティティは、リングトポロジに配置される。しかし、通信プロトコルが変わる可能性がある。プロトコルの例としては、線形方向プロトコル、ブロードキャスト・プロトコル、AII-Reduceプロトコルが挙げられるが、これらに限られるわけではない。本明細書においてさらに示し説明する通り、ニューラル・モデル重みの共有およびコラボレーションに加法準同型PKI暗号化プラットフォームが採用される。本明細書では、登録マネージャ(152)に動作的に結合された暗号化マネージャ(154)は、登録済みエンティティに対する訓練ジョブのたびに、公開加法準同型暗号化(AHE)鍵を生成し、配布するように機能する。配布は、通常、機械学習訓練ジョブのたびになされるが、繰り返しのたびになされてもよい。対応する秘密AHE鍵が生成されるが、配布されることはない。公開鍵は、対応する受け手エンティティが保持する。配布公開AHE鍵のそれぞれに対応している、これ以降秘密鍵としている秘密AHE鍵は、受け手エンティティ、例えば参加エンティティのいずれでも共有されることはない。したがって、登録マネージャ(152)および暗号化マネージャ(154)は、コラボレーションで参加エンティティを登録し、通信方向を確立し、AHE公開暗号化鍵を生成し、配布するように機能する。
【0022】
見ての通り、エンティティ・マネージャ(156)は、それぞれ、登録マネージャ(152)と暗号化マネージャ(154)とに動作的に結合さている。エンティティ・マネージャ(156)は、対応する配布AHE鍵によるエンティティ局所機械学習モデル重みの暗号化を局所的に指示して、その後集約するように機能する。例えば、ある実施形態において、本明細書ではモデル(164)、モデル(164)、モデル(164)、モデル(164)として示すモデルのそれぞれが、それぞれのエンティティ集合に対応している。ある実施形態において、エンティティとは、サーバ(110)に動作的に結合された計算機(180)~(190)のいずれであってもよい。各モデルには、コラボレーションの対象である1つまたは複数の対応する重みが付いている。例えば、ある実施形態において、モデルA(164)には対応する重み(166)が付いており、モデルB(164)には対応する重み(166)が付いており、モデル(164)には対応する重み(166)が付いており、モデル(164)には対応する重み(166)が付いている。エンティティ・マネージャ(156)は、暗号化局所機械学習モデル重みを対応する公開鍵で選択的に集約する。線形伝送、ブロードキャスト、およびAII-Reduceを含むが、これらに限るわけではない様々な集約プロトコルおよびコラボレーション・プロトコルが採用され得る。コラボレーション・プロトコルに関わらず、各エンティティモデル重みは、対応する公開AHE鍵によるコラボレーションおよび集約工程のある時点で暗号化される。本明細書で示す通り、重み(166)は、対応するAHE公開鍵(168)で暗号化され、重み(166)は、対応するAHE公開鍵(168)で暗号化され、重み(166)は、対応するAHE公開鍵(168)で暗号化され、重み(166)は、対応するAHE公開鍵(168)で暗号化される。したがって、重みのそれぞれは、同じ対応するAHE公開鍵(168)で、別々に暗号化される。
【0023】
当技術分野では分かっていることだが、AHEは、加法性をサポートする。これにより、対応するモデルの重みが暗号化形態である間に集約されることが可能になる。通信プロトコルおよびコラボラティブなプロトコルに応じて、暗号化重みは、様々な段階で集約の対象となる。例えば、線形リングトポロジでは、登録マネージャ(152)が、トポロジにおける各参加エンティティにランクを割り当てる。モデル重みのそれぞれは、それらの対応するランクと確立された通信方向に基づき、徐々に暗号化され、集約される。エンティティ・マネージャ(156)が、その重みを局所配布AHE公開鍵、例えば公開鍵(168)で暗号化し、その暗号化重みを隣接して位置付けられたエンティティに集約に向けて伝える。より具体的には、エンティティ・マネージャ(156)が、暗号解読を促進することも可能にすることもなく、トポロジに沿ってAHE暗号化重みを集約する。登録マネージャ(152)が通信方向を確立し、ある実施形態では、通信方向を変更する。例えば、リングトポロジでは、登録マネージャが、時計回りの通信方向でも反時計回りの通信方向でも確立することができ、方向を変えることができる。例えば、ある実施形態において、登録マネージャ(152)は、使用可能な帯域幅に基づき、方向を変えることができる。ブロードキャスト・プロトコルでは、登録マネージャ(152)が、重みの局所暗号化と、各エンティティから他のエンティティおよびAIプラットフォームへの暗号化重みの伝達とを確立する。したがって、エンティティ・マネージャ(156)が、トポロジ方向および通信プロトコルに基づき、すなわちそれに応じて暗号化重みの集約および配布をサポートし、可能にする。
【0024】
公開AHE鍵は、参加エンティティ同士で共有することのない対応する秘密鍵を有する。ある実施形態において、秘密鍵、例えばKey(168)は、AIプラットフォーム(150)の暗号化マネージャ(154)に対してローカルに保持される。分かっていることだが、集約暗号化重みは、通信プロトコルに基づき暗号解読の対象となる。暗号解読が適切であるこのような時点では、暗号化マネージャ(154)が、暗号化重みの集約暗号化和(166P、E)を秘密鍵、例えばKey(168)による暗号解読の対象とすることによって、暗号解読重みの集約和(166P、UE)を生み出す。暗号化マネージャ(154)が、参加し関与するエンティティのそれぞれに局所重みの集約暗号解読和(166P、UE)を配布するか他の方法で共有する。したがって、集約に関与する各エンティティは、集約暗号解読和を受信する。
【0025】
分かっていることだが、参加エンティティは、1つのサブエンティティで成っていても、またはある実施形態では、複数の内部サブエンティティで成っていてもよい。ある実施形態において、各エンティティには、ネットワーク・ドメインに対する1セットのセキュリティおよび構成ポリシがある。複数の内部サブエンティティで成るエンティティ例の提示については、図3を参照のこと。エンティティ・マネージャ(156)は、1つのサブエンティティまたは複数のサブエンティティに基づき、重みのコラボラティブな集約をサポートし、可能にするように構成されている。より具体的には、エンティティ・マネージャ(156)は、各内部サブエンティティからの準同型データ型に相当する重みのエンティティ内集約を行い、そのエンティティ内集約をエンティティAHE公開鍵による暗号化の対象とする。したがって、集約をAHE暗号化の対象とする前に、エンティティ内集約が行われる。
【0026】
エンティティ・マネージャ(156)が、エンティティ内集約を局所公開AHE暗号化鍵による暗号化の対象とする。その後、暗号化集約は、トロポジにわたるエンティティ間配布の対象となる。これまで述べた通り、エンティティ内配布には、暗号化重みの集約が含まれる。エンティティ間の重みの集約、および対応する秘密鍵による暗号解読に続いて、エンティティ・マネージャ(156)が、集約和を内部サブエンティティのそれぞれに伝える。したがって、各参加エンティティとその対応する内部サブエンティティは、コラボレーションから恩恵を受け、コラボレーションに参加する。
【0027】
登録マネージャ(152)が、トポロジおよび通信プロトコルを確立することを担っている。ある実施形態において、登録マネージャ(152)は、メッシュトポロジとしても知られている完全連結型トポロジと、各参加エンティティが、トポロジにわたって、またトポロジにおける他の参加エンティティごとに直にそれらの暗号化局所重みを送る、例えば一斉送信する、対応するプロードキャスト・プロトコルと、を確立する。エンティティ・マネージャ(156)はさらに、この実施形態では、各参加エンティティに及ぶ選択的集約をサポートし、可能にし、すべての受信した一斉送信暗号化重みを局所的に集約する。暗号化マネージャ(154)が、各局所集約を参加検証の対象とする。この集約の到達点は、参加エンティティごとに、他の参加エンティティの暗号化重みを受信し、それから恩恵を受けることである。しかし、トポロジにおけるエンティティのうちの1つまたは複数が重み集約に関与したかまたは関与しているかを特定するのには課題が多い。メッシュトポロジでは、各参加メンバー・エンティティは、暗号化マネージャ(154)と直に通信することができ、このように、暗号化マネージャ(154)は、それがトポロジのメンバーごとの異なる集約重み値の受信であるかどうかを見極めるように構成されている。例えば、4つの参加エンティティがある場合、そのエンティティのうちの3つの集約重み値が同じであり、そのエンティティのうちの1つの集約重み値がそれとは異なる場合、暗号化マネージャ(154)が非関与エンティティを特定することができる。ある実施形態において、暗号化マネージャ(154)は、関与エンティティ同士での暗号解読集約重み和の共有を制限するか、トポロジの参加メンバーのそれぞれにそれらの暗号化局所重みを一斉送信するよう特定した非関与エンティティに要求することがあり得る。したがって、本明細書において示し説明する通り、メッシュトポロジでは、連合機械学習をサポートするのにブロードキャスト・プロトコルを採用し、またある実施形態では、エンティティ参加検証を採用する。
【0028】
図1において示し説明した通り、登録マネージャ(152)は、コラボレーションに向けてAII-Reduceアルゴリズムまたはプロトコルを実施することができる。この実施形態では、エンティティ・マネージャ(156)が、重み配列として各エンティティの重みを表す。エンティティ・マネージャ(156)が、この配列を対応するエンティティAHE公開鍵で暗号化し、暗号化配列を2つ以上のチャンクに分け、並行してかつトポロジに応じて、そのチャンクを同期して集約する。エンティティ・マネージャ(156)は、コラボレーション関係にある各参加エンティティが1つの集約チャンクを受信すると、同期集約を終了させる。各集約チャンクは、暗号化マネージャ(154)による対応する秘密鍵による暗号解読の対象となり、その後、暗号解読チャンクの連結、連結暗号解読チャンクの登録済み参加エンティティへの配布が続く。したがって、AII-Reduceプロトコルは、本明細書では、並行して、まとめて効率的に採用されるアルゴリズムである。
【0029】
いくつかの理解を助ける実施形態では、サーバ(110)は、以下に述べる理解を助ける実施形態の機構により増強されたニューヨーク州アーモンクのInternational Business Machines Corporationから入手できるIBM Watson(R)であってもよい。本明細書において示し説明するIBM Watson(R)システムとしては、繰り返し最適化アルゴリズムに基づき連合機械学習を実施するツールが挙げられる。このツールにより、基礎となるデータを共有しなくても暗号化モデル重みの選択的集約が可能になり、それにより、データを内密にすなわち非公開のままにすることができる。
【0030】
これ以降、総じてAIツールまたはAIプラットフォーム・ツールとしている登録マネージャ(152)、暗号化マネージャ(154)、およびエンティティ・マネージャ(156)は、サーバ(110)のAIプラットフォーム(150)内に具体化されたまたは組み込まれたとして示している。AIツールは、ネットワーク(105)にわたってサーバ(110)に接続されている別個のコンピューティング・システム(例えば、190)において具体化され得る。具体化されれば必ず、AIツールは、基礎となるデータを共有しなくても開示しなくても、局所モデル重みの暗号化および参加エンティティ同士の暗号化局所モデル重みの共有を含む、繰り返して連合機械学習をサポートし、可能にするように機能する。出力コンテンツ(132)は、エンティティ間通信の対象である暗号解読フォーマットの集約重みの形態であってもよい。
【0031】
AIプラットフォーム(150)を活かすことのできる類の情報取り扱いシステムは、ハンドヘルド・コンピュータ/携帯電話などの小型ハンドヘルドデバイス(180)からメインフレーム・コンピュータ(182)などの大型メインフレーム・システムに及ぶ。ハンドヘルド・コンピュータ(180)の例としては、携帯情報端末(PDA:Personal Digital Assistant)、MP4プレーヤなどのパーソナル・エンターテインメント・デバイス、ポータブル・テレビ、およびコンパクトディスク・プレーヤが挙げられる。情報取り扱いシステムの他の例としては、ペンまたはタブレット・コンピュータ(184)、ラップトップまたはノートブック・コンピュータ(186)、パーソナル・コンピュータ・システム(188)、およびサーバ(190)が挙げられる。見ての通り、様々な情報取り扱いシステムがコンピュータ・ネットワーク(105)を使用して互いにネットワーク化され得る。様々な情報取り扱いシステムを相互接続するのに使用される類のコンピュータ・ネットワーク(105)としては、ローカル・エリア・ネットワーク(LAN:Local Area Network)、無線ローカル・エリア・ネットワーク(WLAN:Wireless Local Area Network)、インターネット、パブリック・スイッチド・テレフォン・ネットワーク(PSTN:Public Switched Telephone Network)などの無線ネットワーク、また情報取り扱いシステムを相互接続するのに使用される他の如何なるネットワークト・ポロジも挙げられる。情報取り扱いシステムの多くは、ハードデデバイスまたは不揮発性メモリあるいはその両方などの不揮発性データ・ストアを含む。情報取り扱いシステムのうちのいくつかでは、別々の不揮発性データ・ストアを使用することができる(例えば、サーバ(190)が不揮発性データ・ストア(190)を利用し、メインフレーム・コンピュータ(182)が不揮発性データ・ストア(182)を利用する)。不揮発性データ・ストア(182)は、様々な情報取り扱いシステムの外部であるか、情報取り扱いシステムのうちの1つの内部であってもよい構成要素とすることができる。
【0032】
AIプラットフォーム(150)をサポートするのに採用される情報取り扱いシステムは、多くの形態を取ってもよく、そのうちのいくつかを図1に示す。例えば、情報取り扱いシステムは、デスクトップ、サーバ、ポータブル、ラップトップ、ノートブックなどのフォーム・ファクタ・コンピュータまたはデータ処理システムの形態を取ってもよい。さらに、情報取り扱いシステムは、携帯情報端末(PDA)、ゲーム機、ATM機、ポータブル電話機、通信デバイス、またはプロセッサおよびメモリを含む他のデバイスなどの他のフォームファクタを取ってもよい。また、情報取り扱いシステムは、当然のことながら他のアークテクチャも採用されるので、ノースブリッジ/サウスブリッジ・コントローラ・アーキテクチャを具体化することを必ずしも必要としない。
【0033】
アプリケーション・プログラム・インターフェース(API:Application Program Interface)は、当技術分野では、2つ以上のアプリケーション間のソフトウェア仲介役として理解されている。図1において示し説明したAIプラットフォーム(150)に関して、ツール(152)~(156)とそれらの対応する機能のうちの1つまたは複数をサポートするのに、1つまたは複数のAPIが利用され得る。図2では、ツール(152)~(156)とそれらの対応するAPIの良い例となるブロック図(200)を提供する。見ての通り、複数のツールが、AIプラットフォーム(205)内に埋め込まれ、この場合ツールとしては、API(212)に対応している登録マネージャ(252)、API(222)に対応している暗号化マネージャ(254)、およびAPI(232)に対応しているエンティティ・マネージャ(256)が挙げられる。APIのそれぞれは、1つまたは複数の言語およびインターフェース仕様で具体化され得る。API(212)は、参加エンティティを登録し、トポロジを構成し、通信プロトコルを確立する機能サポートを提供し、API(222)は、公開AHE鍵を生成し、それを登録済みエンティティのそれぞれに配布し、対応する秘密鍵による集約重みの暗号解読を管理し、暗号解読重みの配布を管理する機能サポートを提供し、API(232)は、トポロジに応じて、エンティティ内集約およびエンティティ間集約を指示する機能サポートを提供する。見ての通り、API(212)、(222)、および(232)のそれぞれは、別々のAPIを互いに透過的にスレッド化させる抽象化層として機能することが当技術分野では分かっている、オーケストレーション層としても知られているAPIオーケストレータ(260)に動作的に結合されている。ある実施形態において、別々のAPIの機能がつなぎ合わされても組み合わされてもよい。したがって、本明細書で示すAPIの構成は、限定として考えるべきではない。したがって、本明細書で示す通り、ツールの機能は、それらのそれぞれのAPIによって具体化されても、それに対応していてもよい。
【0034】
図3では、管理ドメインおよびドメイン内集約の良い例となるブロック図(300)を提供する。登録済み参加エンティティ(310)は、本明細書では、1つまたは複数のローカル・コンピューティング・エンティティに動作的に結合されているローカル・アグリゲータ(LA:Local Aggregator)と言われる。本明細書に示す例では、エンティティ(320)、エンティティ(330)、エンティティ(340)、およびエンティティ(350)を含む、4つのローカル・コンピューティング・エンティティがある。各コンピューティング・エンティティは、動作的に結合されたデータが対応している、本明細書ではラーナーとしている、1つまたは複数の機械学習プログラムを含むかそれを利用する。ここで示す通り、エンティティ(320)は、ラーナー(322)および動作的に結合されたデータ(324)で示され、エンティティ(330)は、ラーナー(332)および動作的に結合されたデータ(334)で示され、エンティティ(340)は、ラーナー(342)および動作的に結合されたデータ(344)で示され、エンティティ(350)は、ラーナー(352)および動作的に結合されたデータ(354)で示されている。各機械学習プログラム、例えば、ラーナーは、ローカルデータを引き出し、それを処理して、対応するローカルニューラル・モデルにする。
【0035】
同じ分類に由来するデータは、同じデータ分類をビルドしたまたは利用した様々なニューラル・モデルに適用され得る。本明細書に示す例では、ラーナー(322)、(332)、(342)、および(352)のそれぞれは、例えば準同型データ分類だがデータが異なる、データ型が同じであれば機械学習プログラムも同じであるという機械学習プログラムに相当する。LA(310)は、基礎となるデータを共有するしないに関わらず、ラーナーが重みを共有することをサポートし、可能にする。LA(310)は、受信した重みの集約を行い、ある実施形態では、AHE暗号化を行わずに受信した重みを平均化する。したがって、本明細書において示し説明する管理ドメインは、ある実施形態では、重みの内部集約、例えば、ドメインの内部の処理からのエンティティ内集約をサポートするビジネス・エンティティまたはビジネス・ドメインであってもよいエンティティに相当する。
【0036】
図4では、管理ドメインに対してドメイン内集約を行う工程の良い例と成るフローチャート(400)を提供する。変数XTotalは、ドメイン(402)内のコンピューティング・エンティティ数に相当する。このドメインは、1つのコンピューティング・エンティティで成っていても、複数のコンピューティング・エンティティで成っていてもよい。図3に示す通り、各コンピューティング・エンティティは、機械学習プログラムおよび局所結合データを備え、各機械学習プログラムは、準同型データ・クラスに相当する。変数YTotalは、局所結合データ(404)にある可能性があるデータ型数に相当する。ある実施形態において、データ型の値は、機械学習プログラム数と合わせられる。データ型カウンタ変数Yが初期化される(406)。コンピューティング・エンティティXごとに、データ型に対応するMLプログラムにおける重み、例えば重みが特定され、集約される(408)。重みを集約する工程は、データ型によって異なるMLプログラムに適用され得る。見ての通り、続くステップ(408)では、データ型カウンタ変数Yをインクリメントして(410)、次のMLプログラムを説明し、データ型のそれぞれが重み集約に向けて処理されたかどうかが判断される(412)。この判断に対する負の応答に続いて、ステップ(408)に戻り、この判断に対する正の応答は、集約を終了させる。ある実施形態において、データ型が指定され、集約が指定のデータ型に限られ得る。したがって、重みのエンティティ内集約がAHE暗号化を何ら行うことも採用することもなく、指定のまたは規定のドメインに常駐する2つ以上のコンピューティング・エンティティにわたって行われ得る。
【0037】
複数のドメインが規定のトポロジに配置され得る。各ドメインは、1つまたは複数のエンティティとその対応するMLプログラムに動作的に結合された対応するLAを備える。MLプログラムからの重みは、データを共有しなくてもドメイン間単位で共有され得る。より具体的には、重みは、暗号化を維持しながら集約をサポートするように暗号化される。重みのドメイン間共有は、MLプログラムのコラボレーションと強化訓練をサポートし、可能にする。図5では、MLプログラムのドメイン間コラボレーションおよび訓練の工程の良い例と成るフローチャート(500)を提供する。変数NTotalは、コラボレーションの対象であるLA数に割り当てられる(502)。分かっていることであるが、各LAは、アドレス可能であり、対応するアドレス識別子を持っている。LAのそれぞれは、トポロジに配置され、そのそれぞれのトポロジにおける位置に応じてランクが割り当てられる(504)。また、通信プロトコルが、トポロジ内のドメイン間通信に対して確立される。説明上、本明細書で採用するトポロジは、LAがリング状に接続され、リング構造におけるそれらの隣接近接に応じて、指定の方向、例えば、時計回りまたは反時計回りに、互いに情報を通信する、という線形リングトポロジである。図6において示し説明し、ある実施形態では、中央サーバ(110)に対してローカルなAIプラットフォーム(150)である、第三者コーディネータとも言われる、中央サーバ(620)などのサーバを提供し、このサーバは、トポロジおよびトポロジに割り当てられたLAと通信し、暗号化鍵を生成し割り当てるように機能する。トポロジにおける各LAには暗号化鍵が割り当てられる。見ての通り、AIプラットフォーム(150)が、公開暗号化鍵を生成し、それをトポロジにおける各LAに送る(506)。公開鍵には、中央サーバが保持する秘密鍵が対応している。中央サーバによって利用される暗号化プラットフォームでは、加法準同型暗号化(AHE)、例えばPaillier暗号化を活用する。したがって、トポロジおよび通信プロトコルは、トポロジにポピュレートされた3つ以上のLAにより確立される。
【0038】
図3および図4において示し説明した通り、各MLプログラムは、具体的なデータ型に相当するものである。各LAは、1つまたは複数のMLプログラムを備えることができ、プログラムにより異なるデータ型が対応付けられるか割り当てられる。データ型数に相当する変数YTOTALが割り当てられ(508)、データ型カウンタ変数とLAカウンタ変数とは、個々に(510)、(512)において初期化される。その後、重み集約工程が開始される。見ての通り、LAが特定され、データ型の場合のLAに対してローカルなMLプログラムに対する重みが集約され、公開暗号化鍵で暗号化される(514)。ある実施形態において、LAが、データ型の場合、MLプログラムが1つだけに限られる。続くステップ(514)では、LAカウンタ変数がインクリメントされ(516)、続いて、重み集約の対象とならなかったLAがトポロジにあるかどうかを判断する(518)。ステップ(518)における判断に対する負の応答に続いて、LAN-1がMLプログラムY、N-1に対する重みをLAに送る(520)。この重みの受信に続いて、データ型の場合のLAに対してローカルなMLプログラムに対する重みが局所的に集約され、公開暗号化鍵で暗号化される(522)。LAN-1から受信した暗号化重みが、MLプログラムY、Nに対する暗号化重みと集約される(524)。LAにおける集約が完了したのを受けて、工程は、ステップ(516)に戻る。したがって、重みの集約は、ドメイン内、またドメイン間単位で行われる。
【0039】
ステップ(518)における判断に対する負の応答は、トポロジにおけるLAのそれぞれがリングの一巡を完了したという表れである。本明細書で示す通り、LAのそれぞれの重みは、暗号化形態で完了し、各関与LAの重みの公開暗号化鍵は同じである。集約暗号化重みは、LAN Totalから中央サーバに送信される(526)。集約が完了しているエンティティだけがLANTotalである。中央サーバは、トポロジに配布された公開鍵に対応している秘密鍵を活用して、データ型に対する暗号化重みの集約を暗号解読する(528)。中央サーバがデータ型に対する暗号解読集約をトポロジにおける各LAに配布する(530)。中央サーバからの暗号解読集約の受信を受けて、それぞれのLAがこの重みを下流の内部ラーナー工程に伝える(532)。その後、データ型計数係数がインクリメントされ(534)、データ型、例えば図4において示し説明したMLプログラムのそれぞれが重み集約に対して処理されているかどうかが判断される(536)。この判断に対する負の応答に続いて、ステップ(514)に戻り、正の応答により、集約工程が完結する。したがって、本明細書において示し説明する集約は、対応するMLプログラムにおける重みに限られ、対応しているデータには及ばない。
【0040】
図6では、図5において示し説明した工程をサポートするリングトポロジ例を示すブロック図(600)を提供する。見ての通り、本明細書では第三者コーディネータとも言われる中央サーバ(620)が、配布対象の公開鍵とローカルに保持される秘密鍵(680)とを生成する鍵生成器(622)で構成されるか、鍵生成器(622)を備えている。この例では、LA(630)、LA(640)、LA(650)、およびLA(660)を含む、トポロジ(610)で表される4つのLAがあるが、LA数は、説明上のもので、それに限ると考えるべきではない。それぞれ個々のLAは、図3に示す通り、1つのラーナーだけで成っていても複数のラーナーで成っていてもよく、内部ドメインを形成する。中央サーバ(620)が、トポロジ構造における各LAに動作的に結合されている。より具体的には、中央サーバ(620)は、各LA(630)、(640)、(650)、および(660)用の公開鍵を作り出し、この公開鍵をそれぞれの通信チャネルをわたって伝える。本明細書で示す通り、サーバ(620)は、通信チャネル(634)をわたって公開鍵(632)をLA(630)に伝える。同様に、サーバ(620)は、通信チャネル(644)をわたって公開鍵(642)をLA(640)に伝え、通信チャネル(654)をわたって公開鍵(652)をLA(650)に伝え、通信チャネル(664)をわたって公開鍵(662)をLA(660)に伝える。公開鍵(632)、(642)、(652)、および(662)は、各LAには同じ公開鍵であり、AHE暗号化をサポートする。
【0041】
本明細書に示す通り、この例における重みの暗号化は、LA(630)から始まる。具体的なデータ型またデータ分類に対するLA(630)における局所モデルの重みがコンピュータで計算され、鍵(632)で暗号化され、通信チャネル0、1(670)をわたってLA(640)に伝えられる。LA(630)に対する暗号化重みは、本明細書では重み(636)とされる。LA(630)からの重み(636)の受信に続いて、同じ具体的なデータ型またはデータ分類に対するLA(640)における局所モデルの重みが、コンピュータで計算され、鍵(642)で暗号化される。LA(640)に対する暗号化重みは、本明細書では重み(646)としている。局所モデルLA(640)の暗号化重みである重み(646)は、局所モデルLA(630)の暗号化重みである重み(636)と集約される。この集約は、本明細書では、1回目の集約、例えば、集約(648)ともされる。暗号化および集約の工程は、確立方向でリングトポロジにわたって続く。見ての通り、集約(648)は、通信チャネル1、2(672)をわたってLA(650)に伝えられる。LA(640)からの集約(648)の受信に続いて、同じ具体的なデータ型またはデータ分類に対するLA(650)における局所モデルの重みがコンピュータで計算され、鍵(652)で暗号化される。LA(650)に対する暗号化重みは、本明細書では重み(656)とする。局所モデルLA(650)の暗号化重みである重み(656)がLA(640)から受信した集約(648)と集約される。この集約は、本明細書では、2回目の集約、例えば集約(656)ともする。見ての通り、集約(658)は、通信チャネル2、3(674)をわたってLA(660)に伝えられる。LA(650)からの集約(658)の受信に続き、同じ具体的なデータ型またはデータ分類に対するLA(660)における局所モデルの重みが、コンピュータで計算され、鍵(662)で暗号化される。LA(660)に対する暗号化重みは、本明細書では重み(666)とする。局所モデルLA(660)の暗号化重みである重み(666)は、LA(650)から受信した集約(658)と集約される。この集約は、明細書では、3回目の集約、例えば集約(668)とする。したがって、重みが、暗号化され、指定の方向にトポロジにわたって集約される。
【0042】
LA(660)における集約の完了に続いて、集約(668)が中央サーバ(620)、例えば第三者コーディネータに、通信チャネル(664)をわたって伝えられる。中央サーバ(620)には集約重みやこの集約を構成している個々の重みに対応している基礎となるデータがない。中央サーバ(620)は、公開鍵に対応している秘密鍵(680)を所有している。中央サーバ(620)は、集約、例えば集約(668)を秘密鍵(680)で暗号解読し、この暗号解読集約をトポロジのメンバーである各LAに送る。本明細書に示す通り、暗号解読集約は、通信チャネル(634)をわたってLA(630)に伝えられ、さらに、通信チャネル(644)をわたってLA(640)に、通信チャネル(654)をわたってLA(650)に、通信チャネル(664)をわたってLA(660)に伝えられる。したがって、リングトポロジに関して本明細書において示し説明する準同型暗号化プラットフォームが、対応するデータのプライバシおよび機密性を維持しながら各ニューラル・モデルに対応している重みの加法暗号化をサポートする。
【0043】
図6において示し説明した暗号化プラットフォームは、準同型データ型、例えば、単一データ型に対するリングトポロジを対象とするものである。ある実施形態において、プラットフォームにおいてサポートされる集約および暗号化が、第2のすなわちそれとは異なるデータ型に活用され、各データ型に対する暗号化および集約は、順次または並行して行われる。
【0044】
図1において示し説明した通り、トポロジとその対応する通信プロトコルは、リングトポロジに限られるわけではない。図7では、完全連結型トポロジにエンティティを配置し、そのトポロジにわたってブロードキャスト通信プロトコルを採用する工程の良い例となるフローチャート(700)を提供する。変数NTotalは、トポロジにおけるエンティティ数に相当する(702)。エンティティは、本明細書ではメッシュトポロジともしている完全連結型トポロジに配置されている(704)。ある実施形態において、各参加エンティティとしては、LAが挙げられるか、各参加エンティティは、LAの形態である。各参加エンティティには、局所暗号化重みが付いており、各参加エンティティは、それらの局所暗号化重み、例えばAHE暗号化重みをトポロジにおける各参加エンティティに直に送る(706)。AHE暗号化重みの集約は、局所的に行われる。より具体的には、各参加エンティティは、受信した暗号化重みをすべて集約する。各参加エンティティは、暗号解読器、例えば第三者コーディネータに動作的に結合され、それらの集約重みを対応する秘密鍵による暗号解読に向けて暗号解読器に送る(708)。
【0045】
トポロジおよび確立通信プロトコルに基づき、暗号解読器は、各参加エンティティ同士で暗号解読を共有するように構成され、ある実施形態では、参加を検証することができる。ステップ(708)に続き、検証プロトコルが行われるべきかどうかが判断される(710)。この判断に対する負の応答に続いて、各参加エンティティが暗号解読集約を受信するように、暗号解読集約を参加エンティティに戻す(712)。当技術分野では分かっていることだが、帯域幅制約がある可能性がある。ある実施形態において、暗号化集約和の送信に向けて暗号解読器と通信するのに1つの参加エンティティしか指定されないことがあり得る。同様に、ある実施形態において、各参加エンティティは、暗号化集約和の送信および暗号解読集約和の受信に向けて暗号解読器と選択的に通信することができる。ある実施形態において、参加エンティティには、他の参加エンティティの知識も詳細もなく、それにより、暗号解読器が、重みの暗号解読集約の送信を担う。
【0046】
理論上、参加エンティティのそれぞれでは、同一の暗号化集約があるはずである。ステップ(710)における判断に対する正の応答に続いて、検証プロトコルが行われる。各参加エンティティから受信した暗号解読集約重みを比較し、非参加エンティティを特定する(714)。ある実施形態において、ステップ(714)では、受信した暗号化重み集約の回数が必要とされる暗号解読の回数と比較される。同様に、ある実施形態において、ステップ(714)では、受信した暗号化重み集約の値を比較し、外れ値があるかどうか確かめる。ステップ(716)において、非参加エンティティが特定されると、暗号解読集約の戻しは、参加エンティティに限られ得る(716)。同様に、ステップ(718)において、非参加として特定されたエンティティが何もなければ、暗号解読集約は、登録済み参加エンティティ(720)のそれぞれに伝えられる。したがって、本明細書において示し説明するトポロジは、非参加エンティティの特定をサポートし、可能にする。
【0047】
集約プロトコルは、トポロジ内のメンバーシップ、例えば、ローカル・アグリゲータのメンバーシップの動的修正をサポートするように、改正または修正され得る。図8では、そのメンバーシップが動的に変わるチャネル・グループまたはブロードキャスト・グループ上の重み暗号化および重み集約をサポートし、可能にする工程の良い例となるフローチャート(800)を提供する。サーバすなわち第三者コーディネータは、Paillier公開鍵とそれに対応する秘密鍵を生成し、トポロジにおけるLAと公開鍵を共有する準備をする(802)。変数NTotalが、トポロジにおけるLAの数に、またはある実施形態ではその初期数に割り当てられる(804)。生成されたPaillier公開鍵は、トポロジにおける各LA同士で共有される(806)。ある実施形態において、LAが、本明細書では内部連結型LAグループともしているトポロジに加入すると、サーバすなわち第三者コーディネータが、Paillier公開鍵とそれに対応する秘密鍵を生成し、この公開鍵をそれぞれの加わるまたは加わったLA同士で共有させるか、それまでに生成されたPaillier公開鍵をトポロジに加わるLA同士で共有させる。したがって、トポロジのメンバーである各LAは、重み暗号化に向けて、中央サーバと通信し、Paillier公開鍵を受信する。
【0048】
LAは、あるグループから暗号化鍵を受信する。しかし、形成グループ内の各LAは、他のLAについて知らなくても済む。本明細書において示す通り、本明細書ではLAとしているグループ内のLAは、その重みを公開鍵で暗号化し、次に、暗号化重みをグループ内の他のすべてのLAに一斉送信する(808)。ステップ(808)におけるLAからの暗号化重みの一斉送信に続いて、LAがグループのメンバーである他のすべてのLAから暗号化重みを受信する(810)。LAは、その暗号化重みを、これ以降集約暗号化重みとする、受信した暗号化重みのそれぞれに加え(812)、その集約暗号化重みを中央サーバ、例えば第三者コーディネータに送る(814)。中央サーバは、秘密鍵を採用して、集約暗号化重みを暗号解読し(816)、その暗号解読集約重みをメンバーLAのそれぞれに配布する(818)。したがって、本明細書において示す工程では、一斉送信の場合、暗号化鍵を活用する。
【0049】
AIおよびMLの技術分野では分かっていることであるが、図6において示し説明したトポロジ、例えばリングトポロジのメンバーである1つまたは複数のLAには、局所集約の結果に対応する大きな重み配列が付いている可能性がある。図9では、局所重み配列を暗号化し、並行してその配列のチャンクを同期して集約する工程の良い例となるフローチャート(900)を提供する。図6において示し説明した通り、複数のLAがリングトポロジに配置され、通信方向が確立される(902)。変数NTotalがトポロジのメンバーであるLAの数に割り当てられる(904)。各LA、例えばLAでは、Paillier公開鍵を使用して、その局所重み配列を暗号化する(906)。リング式でも一斉送信式でも、トポロジにわたってそれらのエンティティに重み配列を送る代わりに、各LAは、暗号化配列を、各LA配列にあるチャンク数がトポロジのメンバーであるLAの数NTotalに等しい、本明細書ではチャンクとしている区画に分ける(908)。リングAII-Reduceアルゴリズムが、LAおよびチャンクカウンタ変数Nを初期化することによって呼び出される(910)。LAがチャンクをリング内の次のLA、例えばLAN+1に送る一方、それは、例えばLAは、通信方向に応じて、トポロジにおける前のLAからチャンクN-1を同期して受信する(912)。次に、トポロジにおける各LAがその受信したチャンクN-1とそれ自身の対応するチャンクN-1とを集約し、集約チャンクN-1をリング内の次のLA、例えばLAN+1に送る(914)。その後、カウンタ変数Nがインクリメントされ(916)、続いて、NがNTotalより1つを超えて小さいかどうか判断される(918)。ステップ(918)における判断に対する負の応答に続いて、ステップ(912)に戻り、正の応答は、各LAには重みの集約チャンクが付いているという表れである。チャンクは、リングトポロジにわたって並行して、同期に集約される。したがって、各LAは、その局所チャンクを受信したチャンクに加え、それを通信方向に応じて次のLAに送る。
【0050】
ステップ(918)における判断に対する正の応答に続いて、トポロジにおける各LAにはPaillier暗号化された集約重みチャンクが付く。4つのLAの場合の例では、LAには集約チャンクが付き、LAには集約チャンクが付き、LAには集約チャンクが付き、LAには集約チャンクが付く。各LAは、その集約チャンクを第三者コーディネータに送り(920)、第三者コーディネータは、各LAから来た集約暗号化重みを暗号解読するように機能する(922)。第三者コーディネータは、暗号解読重みを連結させ、それを、トポロジ内のLAのそれぞれに配布する(924)。したがって、本明細書において示し説明する工程では、トポロジに配置されたLA間の重みの効率的でセキュアな集約にAII-reduceアルゴリズムを適合させている。
【0051】
機能ツール(152)~(156)とそれらの対応する機能の態様が一か所にあるコンピュータ・システム/サーバにおいて具体化されてもよく、またはある実施形態において、クラウド・ベースのシステム共有コンピューティング・リソースにおいて構成されてもよい。図10を参照すると、クラウド・ベースのサポート・システムと通信して、図1~9関してこれまで述べた工程を実施する、これ以降ホスト(1002)とするコンピュータ・システム/サーバ(1002)の例を示すブロック図(1000)を提供している。ホスト(1002)は、多くの他の汎用または特殊目的のコンピューティング・システム環境または構成で使用可能である。ホスト(1002)で使用するのに適していると思われる、よく知られているコンピューティング・システム、環境、または構成、あるいはその組合せの例としては、これまで述べたシステム、デバイス、およびそれらの同等物のいずれも含む、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シンクライアント、ティッククライアント、ハンドヘルド・デバイスもしくはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル家電製品、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、およびファイル・システム(例えば、分散型ストレージ環境および分散型クラウド・コンピューティング環境)が挙げられるが、これらに限るわけではない。
【0052】
ホスト(1002)は、コンピューティング・システムによって実行される、プログラム・モジュールなどのコンピュータ実行式命令の一般的背景において描写することができる。通常、プログラム・モジュールとしては、特定のタスクを果たすか特定の抽象データ型を具体化する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを挙げることができる。ホスト(1002)は、タスクが、通信ネットワークを通してつなげられているリモート処理デバイスによって行われる、分散型クラウド・コンピューティング環境(1080)において実施され得る。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、記憶素子デバイスを含むローカル・コンピュータ・システム記憶媒体にもリモート・コンピュータ・システム記憶媒体にも位置していてよい。
【0053】
図10において示す通り、ホスト(1002)は、汎用コンピューティング・デバイスの形態で示されている。ホスト(1002)の構成要素としては、1つまたは複数のプロセッサすなわち処理ユニット(1004)、例えばハードウェアプロセッサと、システムメモリ(1006)と、システムメモリ(1006)を含む様々なシステム構成要素をプロセッサ(1004)につなげるバス(1008)と、を挙げることができるが、これらに限られるわけではない。バス(1008)は、様々なバス・アーキテクチャのいずれでも使用する、メモリバスまたはメモリコントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、およびプロセッサまたはローカル・バスを含む、様々な型式のバス構造のいずれでものうちの1つまたは複数に相当する。限定ではなく例として、このようなアーキテクチャとしては、業界標準アーキテクチャ(ISA:Industry Standard Architecture)バス、マイクロチャネル・アーキテクチャ(MCA:Micro Channel Architecture)バス、拡張ISA(EISA:Enhanced ISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA:Videio Electronics Standards Association)ローカル・バス、および周辺機器相互接続(PCI:Peripheral Component Interconnects)バスが挙げられる。ホスト(1002)は、通常、様々なコンピュータ・システム可読媒体を含む。このような媒体は、ホスト(1002)がアクセスすることができる使用可能などのような媒体であってもよく、媒体としては、揮発性媒体と不揮発性媒体の両方、リム―バブル媒体、および非リムーバブル媒体が挙げられる。
【0054】
メモリ(1006)としては、ランダム・アクセス・メモリ(RAM:Random Access Memory)(1030)またはキャッシュ・メモリ(1032)あるいはその両方をなど、揮発性メモリの形態のコンピュータ・システム可読媒体を挙げることができる。単に例として、非リムーバブル不揮発性磁気媒体から読み取り、それらに書き込むのにストレージ・システム(1034)が提供され得る(図示しないが、通常、「ハード・ドライブ」と呼ばれる)。図示していないが、リムーバブル不揮発性磁気ディスク(例えば、「フロッピディスク」)から読み取り、それらに書き込む磁気ディスク・ドライブと、CD-ROM、DVD-ROMなどの光媒体などのリムーバブル不揮発性光ディスクから読み取り、それらに書き込む光ディスク・ドライブと、を提供することができる。このような場合、それぞれが、1つまたは複数のデータ媒体インターフェースによってバス(1008)に接続され得る。
【0055】
一連の(少なくとも1つの)プログラム・モジュール(1042)を有するプログラム/ユーティリティ(1040)だけではなく、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データも、限るわけではなく例としてメモリ(1006)に格納され得る。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはその任意の組合せのそれぞれとしては、ネットワーク化環境の実装形態を挙げることができる。プログラム・モジュール(1042)は、通常、通信評価質疑を動的に特定し処理する、実施形態の機能または方法あるいはその両方を実施する。例えば、一連のプログラム・モジュール(1042)としては、図1において述べたツール(152)~(156)を挙げることができる。
【0056】
ホスト(1002)は、キーボード、ポインティング・デバイスなどの1つまたは複数の外部デバイス(1014)、ディスプレイ(1024)、ユーザにホスト(1002)と相互作用することを可能にさせる1つまたは複数のデバイス、またはホスト(1002)に1つまたは複数の他のコンピューティング・デバイスと通信することを可能にさせる如何なるデバイスでも(例えば、ネットワーク・カード、モデムなど)、あるいはその組合せとも通信することができる。このような通信は、入力/出力(I/O:Input/Output)インターフェース(1022)を介して行うことができる。またさらに、ホスト(1002)は、ローカル・エリア・ネットワーク(LAN)、汎用広域エリア・ネットワーク(WAN)、または公衆網(例えば、インターネット)、あるいはその組合せなどの1つまたは複数のネットワークとネットワーク・アダプタ(1020)を介して通信することができる。描写の通り、ネットワーク・アダプタ(1020)は、ホスト(1002)の他の構成要素とバス(1008)を介して通信する。ある実施形態において、分散型ファイルシステム(図示せず)の複数のノードがホスト(1002)とI/Oインターフェース(1022)を介して、またはネットワーク・アダプタ(1020)を介して通信している。理解すべきことは、図示していないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方がホスト(1002)と併用されてもよい、ということである。この例としては、マイクロコード、デバイス・デバイダ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・デバイス、およびデータ・アーカイブ記憶システムなどが挙げられるがこれらに限るわけではない。
【0057】
本明細書では、「コンピュータ・プログラム媒体」、「コンピュータ使用可能媒体」、および「コンピュータ可読媒体」と言った用語が、概して、RAM(1030)を含むメイン・メモリ(1006)、キャッシュ(1032)、またリムーバブル・ストレージ・ドライブおよびハードディスク・ドライブに取り付けられたハードディスクなどのストレージ・システム(1034)などの媒体のことを言うのに使用している。
【0058】
コンピュータ・プログラム(コンピュータ制御ロジックとも言われる)が、メモリ(1006)に格納されている。コンピュータ・プログラムはまた、ネットワーク・アダプタ(1020)などの通信インターフェースを介して受信され得る。このようなコンピュータ・プログラムは、立ち上がると、コンピュータ・システムに、本明細書で述べる本実施形態の機能を果たすことを可能にさせる。具体的には、コンピュータ・プログラムは、立ち上がると、処理ユニット(1004)に、コンピュータ・システムの機能を果たすことを可能にさせる。したがって、このようなコンピュータ・プログラムは、コンピュータ・システムのコントローラに相当する。
【0059】
コンピュータ可読記憶媒体は、命令実行デバイスが使用する命令を保持し、格納することができる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶素子、磁気記憶素子、光記憶素子、電磁記憶素子、半導体記憶素子、またはこれらの適切な如何なる組合せでもあり得るが、これらに限るわけではではない。コンピュータ可読記憶媒体のより具体的な例の非網羅例リストには、ポータブル・コンピュータ・ディスケット、ハードディスク、ダイナミックもしくはスタティックのランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPRPMまたはフラッシュメモリ)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリスティック、フロッピディスク、パンチカードすなわち命令が記録されている溝内の隆起構造体などの機械式符号化デバイス、およびこれらの適切な如何なる組合せも含まれる。コンピュータ可読記憶媒体は、本明細書で使用する際、電波などの自由に伝播する電磁波、導波路などの透過媒体を伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、または電線を通して伝送される電気信号など、本質的に一時的な信号であると捉えるべきではない。
【0060】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、またはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組合せを介して、外部コンピュータまたは外部記憶素子にダウンロードされ得る。ネットワークは、銅伝送ケーブル、光ファイバ伝送、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せで構成され得る。各コンピューティング/処理デバイスにあるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、このコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体への格納に向けて、転送する。
【0061】
本実施形態の工程を行うよう求めるコンピュータ可読プログラム命令は、アセンブラ命令、命令-セット-アーキテクチャ(ISA:Instruction-Set-Architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、ステート-設定データ、またはソースコードでもオブジェクトコードでもあってもよく、これらは、Java(R)、Smalltalk、C++などオブジェクト指向プログラミング言語と、「C」プログラミング言語または同様のプログラミング言語などの従来の手続プログラミング言語と、を含む、1つまたは複数のプログラミング言語の如何なる組合せにおいても書き込まれる。コンピュータ可読プログラム命令は、スタンドアローン・ソフトウェア・パッケージとしてユーザのコンピュータ上ですべて実行されても、ユーザのコンピュータ上で一部実行されても、また一部ユーザのコンピュータ上で、一部リモート・コンピュータ上で実行されても、すべてリモート・コンピュータもしくはサーバもしくはサーバ・クラスタ上で実行されてもよい。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む、如何なる類のネットワークでも通してユーザのコンピュータに接続され、または、外部コンピュータに接続することができる(例えば、インターネット・サービス・プロバイダを使用するインターネットを通して)。実施形態によっては、例えば、プログラマブル・ロジック回路機構、フィールド・プログラマブル・ゲートアレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA:Programmable Logic Array)を含む電子回路機構が、本発明の態様を行うために、電子回路機構をパーソナライズするよう求めるコンピュータ可読プログララム命令の状態情報を活かすことにより、コンピュータ可読プログラム命令を実行することができる。
【0062】
ある実施形態において、ホスト(1002)がクラウド・コンピューティング環境のノードである。当技術分野では知られていることであるが、クラウド・コンピューティングは、管理努力やサービスのプロバイダとのやり取りを最小限に抑えて、すぐに使えるように設定することができ、取り外すことができる構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶域、アプリケーション、仮想マシン、およびサービス)の共有プールへの都合の良いオンデマンド・ネットワーク・アクセスを可能にするサービス配信モデルである。このクラウド・モデルとしては、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの展開モデルを挙げることができる。このような特性の例は、以下の通りである。
【0063】
オンデマンド・セルフサービス:クラウド消費者が、サービスのプロバイダとの人間のやり取りがなくても、必要に応じて自動的に、サーバタイムやネットワーク・ストレージなどのコンピューティング能力を一方的に使えるように設定することができる。
【0064】
広域ネットワークアクセス:能力が、ネットワーク上で使用可能であり、不均一なシンクライアント・プラットフォームまたはティッククライアント・フラットフォームによる使用を促進する標準機構(例えば、携帯電話、ラップトップ、およびPDA)を通してアクセスされる。
【0065】
リソースプーリング:マルチテナント・モデルを使用する複数の消費者を扱うようにプロバイダのコンピューティング・リソースがプールされ、要求に応じて、様々な物理リソースおよび仮想リソースが動的に割り当てられ、割り当てし直される。消費者は、通常、与えられたリソースの正確な場所を管理することもそれを知ることもないが、高次の抽象化層において場所(例えば、国、州、またはデータセンタ)を明らかにすることができるという、場所非依存の意味合いがある。
【0066】
素早い順応性:素早くスケールアウトし、また迅速に取り外して素早くスケールインするように、場合によっては自動的に、能力を素早く、順応して使用できるように設定することができる。消費者には、使用できるように設定するのに使用可能な能力が限られているように見えることが多いが、いつでも幾つでも能力を購入することができる。
【0067】
測定サービス:クラウド・システムは、そのサービスタイプ(例えば、ストレージ、処理、帯域幅、および有効なユーザアカウント)に相応しい何らかの抽象化層における計量能力を活かすことにより、リソース使用を自動的に制御し、最適化する。リソース使用量をモニタし、制御し、報告して、利用したサービスのプロバイダにも消費者にも透明性を与えることができる。
【0068】
サービスモデルは、以下の通りである。
【0069】
サービスとしてのソフトウェア(SaaS:Software as a Service):消費者に与えられるこの能力は、クラウド基盤上で進行するプロバイダのアプリケーションを使用することである。このアプリケーションは、webブラウザ(例えば、webベースの電子メール)などのシンクライアント・インターフェースを通して、様々なクライアントデバイスからアクセス可能である。消費者は、場合によっては限られたユーザ特有のアプリケーション構成設定を除いて、ネットワーク、サーバ、オペレーティング・システム、記憶域、または個々のアプリケーション能力までも含む基礎となるクラウド基盤を管理することも制御することもない。
【0070】
サービスとしてのプラットフォーム(PaaS:Platform as a Service):消費者に与えられるこの能力は、プロバイダが対応しているプログラミング言語およびツールを使用して作り出された消費者作成のまたは消費者取得のアプリケーションをクラウド基盤上で展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、または記憶域を含む基礎となるクラウド基盤を管理することも制御することもないが、展開したアプリケーション、また場合によっては、アプリケーションホスト型環境構成を制御する。
【0071】
サービスとしてのインフラストラクチャ(IaaS:Infrastructure as a Service):消費者に与えられるこの能力は、消費者が、オペレーティング・システムおよびアプリケーションを含んでもよい自由気ままなソフトウェアを展開し、進行させることができる、処理、記憶域、ネットワークなどの基本的なコンピューティング・リソースを使用できるように設定することである。消費者は、基礎となるクラウド基盤を管理することも制御することもないが、オペレーティング・システム、記憶域、展開したアプリケーションを制御し、また場合によっては、選択ネットワーキング・コンポーネント(例えば、ホスト・ファイアウォール)の制御を制限する。
【0072】
展開モデルは、以下の通りである。
【0073】
プライベート・クラウド:このクラウド基盤は、1つの組織のためにのみ運用される。クラウド基盤は、この組織や第三者によって管理されてもよく、構内にでも構外にでもあってもよい。
【0074】
コミュニティ・クラウド:このクラウド基盤は、いくつかの組織によって共有され、共通の懸念(例えば、任務、セキュリティ要件、方針、およびコンプライアンス配慮)を抱える具体的なコミュニティを支える。このクラウド基盤は、組織や第三者によって管理されてもよく、構内にでも構外にでもあってもよい。
【0075】
パブリック・クラウド:このクラウド基盤は、一般大衆や大規模産業グループが使用できるように作られ、クラウド・サービスを販売する組織が所有する。
【0076】
ハイブリッド・クラウド:このクラウド基盤は、2つ以上のクラウド(プライベート・クラウド、コミュニティ・クラウド、またはパブリック・クラウド)の複合体であり、唯一の実体を維持するが、データおよびアプリケーションの可搬性(例えば、クラウド間の負荷バランシングのためのクラウド・バースティング)を可能にする標準化技術または専有技術によって互いに結び付いている。
【0077】
クラウド・コンピューティング環境は、ステートレス化、低結合、モジュール化、および意味的相互運用性に的を絞るサービス指向型である。クラウド・コンピューティングの核心には、相互接続ノードネットワークを含む基盤がある。
【0078】
ここで図11を参照すると、理解を助けるクラウド・コンピューティング・ネットワーク(1100)が描かれている。見ての通り、クラウド・コンピューティング・ネットワーク(1100)には、クラウド消費者が使用するローカル・コンピューティング・デバイスが通信することができる1つまたは複数のコンピューティング・ノード(1110)があるクラウド・コンピューティング環境(1150)が含まれる。これらのローカル・コンピューティング・デバイスの例としては、携帯情報端末(PDA)すなわちセルラ電話(1154A)、デスクトップコンピュータ(1154B)、ラップトップ・コンピュータ(1154C)、または自動車コンピュータ・システム(1154N)、あるいはその組合せなど、が挙げられるが、これらに限るわけではない。ノード(1110)内の個々のノードは、さらに互いに通信することができる。このノードは、これまで述べたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはその組合せなど、1つまたは複数のネットワークにおいて、物理的にでも仮想上にでもグループ化されてもよい(図示せず)。これにより、クラウド・コンピューティング環境(1100)が、クラウド消費者がローカル・コンピューティング・デバイス上でリソースを維持しなくても済むサービスとして、基盤、プラットフォーム、またはソフトウェア、あるいはその組合せを提供することができる。分かることだが、図11に示すこの種のコンピューティング・デバイス(1154A~N)は、単に理解を助けるためのものであり、クラウド・コンピューティング環境(1150)は、如何なる類のネットワークまたはネットワークアドレス可能な接続あるいはその両方の上で如何なる類のコンピュータ化デバイスとも通信することができる(例えば、webブラウザを使用して)。
【0079】
ここで図12を参照すると、図11のクラウド・コンピューティング・ネットワークによってもたらされた一連の機能抽象化層(1200)が示されている。図12に示す構成要素、層、および機能が単に理解を助けるためのもので、本発明の実施形態がそれに限られるわけではない、ということを前もって理解すべきである。描写の通り、ハードウェアおよびソフトウェア層(1210)、仮想化層(1220)、管理層(1230)、およびワークロード層(1240)の層とその対応する機能を提供する。
【0080】
ハードウェアおよびソフトウェア層(1210)としては、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントが挙げられる。ハードウェア・コンポーネントの例としては、メインフレーム、ある例ではIBM(R)zSeries(R)システム、RISC(Reduced Instruction Set Computer(縮小命令セットコンピュータ))アーキテクチャベースのサーバ、ある例ではIBMpSeries(R)システム、IBMxSeries(R)システム、IBM BladeCenter(R)システム、記憶素子、ネットワーク・ネットワーキングコンポーネントが挙げられる。ソフトウェア・コンポーネントの例としては、ネットワーク・アプリケーション・サーバ・ソフトウェア、ある例ではIBM WebSphere(R)アプリケーション・サーバ・ソフトウェア、およびデータベース・ソフトウェア、ある例ではIBM DB2(R)データベース・ソフトウェア(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere、およびDB2は、世界中の多くの管轄区域で登録されたInternational Business Machines Corporationの商標である)が挙げられる。
【0081】
仮想化(1220)は、抽象化層をもたらし、この層から、仮想サーバ、仮想記憶域、仮想プライベートネットワークを含む仮想ネットワーク、仮想アプリケーション・オペレーティング・システム、および仮想クライアントと言った、仮想エンティティの例がもたらされ得る。
【0082】
ある例では、管理層(1230)は、リソース・プロビジョニング、メータリングおよびプライシング、ユーザ・ポータル、サービス層管理、およびSLAプランニングおよびフルフィルメントと言った機能をもたらすことができる。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを行うのに利用されるコンピューティング・リソースなどのリソースのダイナミックプロキュアメントをもたらす。メータリングおよびプライシングは、リソースがクラウド・コンピューティング環境内で利用されるのに従った原価管理と、これらのリソースの消費に対する課金および請求書作成とをもたらす。ある例では、これらのリソースとしては、アプリケーション・ソフトウェア・ライセンスを挙げることができる。セキュリティにより、クラウド消費者およびタスクに対する同一性確認がもたらされ、データなどのリソースに対する保護も与えられる。ユーザ・ポータルによって、消費者およびシステム管理者がクラウド・コンピューティング環境にアクセスできるようになる。サービス層管理により、必要なサービス層が満たされるようなクラウド・コンピューティング・リソース割り当ておよび管理がもたらされる。サービス・レベル合意書(SLA:Service Level Agreement)プランニングおよびフルフィルメントにより、今後の要件がSLAに従って見込まれるクラウド・コンピューティング・リソースに対する事前合意がもたらされ、クラウド・コンピューティング・リソースのプロキュアメントがもたらされる。
【0083】
ワークロード層(1240)は、クラウド・コンピューティング環境が利用される機能の例をもたらす。この層からもたらされるワークロードおよび機能の例としては、マッピングおよびナビゲーション、ソフトウェア展開およびライフサイクル管理、仮想教室教育配信、データ解析処理、トランザクション処理、ならびに連合機械学習が挙げられるが、これらに限られるわけではない。
【0084】
分かってくるであろうが、本明細書には、自然言語入力を見極め、対応する通信時に質疑を検出し、検出した質疑を回答またはサポートするコンテンツあるいはその両方で解決するシステム、方法、装置、およびコンピュータ・プログラム製品を開示している。
【0085】
本発明の特定の実施形態を示し、説明してきたが、当業者であれば、本明細書の教示に基づき、本実施形態とそのより広い態様から外れない限り、変更や修正がなされることが明らかであろう。それ故、添付の特許請求の範囲は、このような変更や修正を実施形態の真の範囲にあるとして、その範囲に含めるものである。また、理解すべきことは、本実施形態が、添付の特許請求の範囲によってしか定義されない、ということである。当業者であれば、特定の数の導入請求項要素が意図されている場合、このような意図が請求項に明らかに挙げられ、このような列挙がないときには、このような制限が何もない、ということが分かるであろう。非限定例では、理解を助けるものとして、以下の添付の特許請求の範囲には、請求項要素を導入する「少なくとも1つ」や「1つまたは複数の」と言った前書き表現の使用が含まれる。しかし、このような表現の使用は、同じ請求項が前置き表現「1つまたは複数の」または「少なくとも1つの」、およびこのような「a」または「an」の不定冠詞を含むとしても、不定冠詞「a」または「an」による請求項要素の紹介が、このような導入請求項要素を含む特定の如何なる請求項もこのような要素を1つしか含まない実施形態に限る、ということを暗に示すと考えるべきではなく、同じことが、定冠詞の請求項での使用にも言える。
【0086】
本実施形態は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せである場合がある。また、本開示の選択態様は、全部ハードウェアの実施形態、全部ソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、または、本明細書では、すべて、大抵、「回路」、「モジュール」、または「システム」としていることもある、ソフトウェア態様またはハードウェア態様あるいはその両方を組み合わせた実施形態の形態を取ることがあり得る。また、本実施形態の態様は、プロセッサに本実施形態の態様を行わせるコンピュータ可読プログラム命令を格納しているコンピュータ可読記憶媒体(複数可)において具体化されたコンピュータ・プログラム製品の形態を取ることがあり得る。このように具体化されると、本開示のシステム、方法、またはコンピュータ・プログラム製品、あるいはその組合せは、意思表示と表示した意思に関わる対応する応答により質疑を解決するように、人工知能プラットフォームの機能および働きを向上させるのに使用することができる。
【0087】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用対象の命令を保持し、格納することができる有形デバイスである場合がある。コンピュータ可読記憶媒体は、例えば、電子記憶素子、磁気記憶素子、光記憶素子、電磁記憶素子、半導体記憶素子、またはそれらの適した如何なる組合せであってもよいが、これらに限られるわけではない。コンピュータ可読記憶媒体の非包括的なより具体的な例リストには、ポータブル・コンピュータ・ディスケット、ハードディスク、ダイナミックもしくはスタティックのランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュメモリ)、磁気記憶素子、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリスティック、フロッピディスク、またパンチカードすなわち命令が記録されている溝内の隆起構造体などの機械式符号化デバイス、およびその適切な如何なる組合せも含まれる。コンピュータ可読記憶媒体は、本明細書で使用する際、電波などの自由に伝播する電磁波、導波路などの伝送媒体を伝播する電磁波(例えば、光ファイバケーブルを通る光パルス)、または電線を通して伝送される電気信号などの本質的に一時的な信号として捉えるべきではない。
【0088】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワークを介して、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくは無線ネットワーク、またはその組合せを介して外部コンピュータまたは外部記憶素子に、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せで構成され得る。各コンピューティング/処理デバイスにあるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、このコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体への格納に向けて転送する。
【0089】
本実施形態の工程を行うよう求めるコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、ステート設定データであっても、ソースコードでもオブジェクトコードでもあってもよく、これらは、Java(R)、Smalltalk、C++などのオブジェクト指向プログラミング言語と、「C」プログラミング言語または同様のプログラミング言語などの従来の手続プログラミング言語と、を含む、1つまたは複数のプログラミング言語の如何なる組合せにおいても書き込まれる。コンピュータ可読プログラム命令は、スタンドアローン・ソフトウェア・パッケージとしてユーザのコンピュータ上ですべて実行されても、ユーザのコンピュータ上で一部実行されても、また一部ユーザのコンピュータ上で、一部リモート・コンピュータ上で実行されても、すべてリモート・コンピュータもしくはサーバもしくはサーバ・クラスタ上で実行されてもよい。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)や広域ネットワーク(WAN)を含む如何なる類のネットワークでも通してユーザのコンピュータに接続され、または外部コンピュータに接続される(例えば、インターネット・サービス・プロバイダを使用してインターネットを通して)。実施形態によっては、例えば、プログラマブル・ロジック回路機構、フィールド・プログラマブル・ゲートアレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路機構は、本実施形態の態様を行うために、電子回路機構をパーソナライズするよう求めるコンピュータ可読プログラム命令の状態情報を活かすことにより、コンピュータ可読プログラム命令を実行することができる。
【0090】
本発明の態様については、実施形態による、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して述べている。フローチャート図またはブロック図あるいはその両方の各ブロック、またフローチャート図またはブロック図あるいはその両方のブロックの組合せがコンピュータ可読プログラム命令によって具体化される、ということが分かるであろう。
【0091】
コンピュータなどのプログラマブル・データ処理装置のプロセッサによって実行されると、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに明示された機能/作用を具体化する手段を生み出すように、コンピュータ可読プログラム命令が、汎用コンピュータ、特殊用途コンピュータなどのプログラマブル・データ処理装置のプロセッサに与えられてマシンを生み出し得る。命令を格納しているコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに明示される機能/作用の態様を具体化する命令を含む製造品を含むように、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはその組合せに、特定の方式で命令することができるこれらのコンピュータ可読プログラム命令はまた、コンピュータ可読記憶媒体に格納され得る。
【0092】
コンピュータ、他のプログラマブル装置、または他のデバイス上で実行されると、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに明示される機能/作用を具体化するような、コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに読み込まれ、一連の操作段階をコンピュータ、他のプログラマブル装置、または他のデバイス上で行わせ、コンピュータ実施式工程をもたらすことができる。
【0093】
図中のフローチャートおよびブロック図は、本実施形態の様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品のあり得る実装形態のアーキテクチャ、機能、および工程の良い例となるものである。この点では、フローチャートやブロック図の各ブロックは、モジュール、セグメント、または明示された論理機能を具体化するよう求める1つまたは複数の実行可能命令で構成されている命令部分に相当すると言える。代替の実装形態によっては、ブロックに示す機能は、図に示す順番以外で行われ得る。例えば、連続して示される2つのブロックは、関わる機能に依って、実際には、ほぼ同時に実行されてもよく、またはこれらのブロックが、逆の順番で実行される場合があり得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、またブロック図またはフローチャート図あるいはその両方のブロック組合せが、明示された機能や作用を果たす、または特殊用途ハードウェア命令とコンピュータ命令との組合せを実施する、特殊用途ハードウェア・ベースのシステムによって具体化される、ということにも気付くであろう。
【0094】
分かってくるであろうが、本明細書では、理解を助けるために、具体的な実施形態について述べてきたが、本発明の範囲を外れない限り、様々な修正がなされてもよい。したがって、本実施形態の保護範囲は、以下の特許請求の範囲とその均等物にしか限られない。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12