Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7780203B2 - SYSTEM AND METHOD FOR PROVIDING A PRIVATE MULTIMODAL ARTIFICIAL INTELLIGENCE PLATFORM - Patent application - Google Patents
[go: Go Back, main page]

JP7780203B2 - SYSTEM AND METHOD FOR PROVIDING A PRIVATE MULTIMODAL ARTIFICIAL INTELLIGENCE PLATFORM - Patent application - Google Patents

SYSTEM AND METHOD FOR PROVIDING A PRIVATE MULTIMODAL ARTIFICIAL INTELLIGENCE PLATFORM - Patent application

Info

Publication number
JP7780203B2
JP7780203B2 JP2022567077A JP2022567077A JP7780203B2 JP 7780203 B2 JP7780203 B2 JP 7780203B2 JP 2022567077 A JP2022567077 A JP 2022567077A JP 2022567077 A JP2022567077 A JP 2022567077A JP 7780203 B2 JP7780203 B2 JP 7780203B2
Authority
JP
Japan
Prior art keywords
client
data
server
side network
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022567077A
Other languages
Japanese (ja)
Other versions
JP2023524289A (en
Inventor
ストーム,グレッグ
ガリビ,ガリブ
ダス,リッディマン
Original Assignee
トリプルブラインド ホールディングス,インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/180,475 external-priority patent/US12149510B1/en
Application filed by トリプルブラインド ホールディングス,インク. filed Critical トリプルブラインド ホールディングス,インク.
Publication of JP2023524289A publication Critical patent/JP2023524289A/en
Application granted granted Critical
Publication of JP7780203B2 publication Critical patent/JP7780203B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/098Distributed learning, e.g. federated learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Analysis (AREA)

Description

優先権主張
本出願は、2020年5月6日に出願された米国仮出願第63/020,930号(整理番号213-0104P)に対する優先権を主張し、その内容は参照により本明細書に組み込まれる。本出願は、2019年12月13日に出願された米国仮出願第62/948,105号に対する優先権を主張する、2020年3月24日に出願された米国出願第16/828,085号(整理番号213-0100)の一部継続出願であり、その内容は参照により本明細書に組み込まれる。本出願は、2019年12月13日に出願された米国仮出願第62/948,105号に対する優先権を主張する、2020年3月24日に出願された米国出願第16/828,216号(整理番号213-0101)の一部継続出願であり、その内容は参照により本明細書に組み込まれる。本出願は、2021年2月16日に出願された米国出願第17/176,530号(213-0102-CON)の一部継続出願であり、これは2020年3月24日に出願された米国出願第16/828,354号(213-0102)の継続であって、現在はそれが2021年2月16日に発行された米国特許第10,924,460号であり、2019年12月13日に出願された米国仮出願第62/948,105号に対する優先権を主張しており、その内容は参照により本明細書に組み込まれる。本出願は、2020年3月24日に出願された米国出願第16/828,420号(整理番号213-0103)の一部継続出願であり、2019年12月13日に出願された米国仮出願第62/948,105号に対する優先権を主張しており、その内容は参照により本明細書に組み込まれる。
PRIORITY CLAIM This application claims priority to U.S. Provisional Application No. 63/020,930 (Docket No. 213-0104P), filed May 6, 2020, the contents of which are incorporated herein by reference. This application is a continuation-in-part of U.S. Application No. 16/828,085 (Docket No. 213-0100), filed March 24, 2020, which claims priority to U.S. Provisional Application No. 62/948,105, filed December 13, 2019, the contents of which are incorporated herein by reference. This application is a continuation-in-part of U.S. Application No. 16/828,216 (Docket No. 213-0101), filed March 24, 2020, which claims priority to U.S. Provisional Application No. 62/948,105, filed December 13, 2019, the contents of which are incorporated herein by reference. This application is a continuation-in-part of U.S. Application No. 17/176,530 (213-0102-CON) filed February 16, 2021, which is a continuation-in-part of U.S. Application No. 16/828,354 (213-0102) filed March 24, 2020, now U.S. Patent No. 10,924,460, issued February 16, 2021, and claims priority to U.S. Provisional Application No. 62/948,105, filed December 13, 2019, the contents of which are incorporated herein by reference. This application is a continuation-in-part of U.S. Application No. 16/828,420 (Docket No. 213-0103), filed March 24, 2020, and claims priority to U.S. Provisional Application No. 62/948,105, filed December 13, 2019, the contents of which are incorporated herein by reference.

本開示は、概して、ニューラルネットワークのトレーニングに関し、様々なソースからのトレーニングデータが発見可能でないように保護する方法で、ニューラルネットワークまたは他のトレーニング済みモデルをトレーニングおよび展開するための新しい技術を紹介する。 This disclosure generally relates to training neural networks and introduces new techniques for training and deploying neural networks or other trained models in a manner that protects training data from various sources from being discoverable.

ニューラルネットワークをトレーニングするための既存のアプローチがあり、連合トレーニングアプローチまたは集中型トレーニングアプローチを使用する。ニューラルネットワークをトレーニングするための既存の各アプローチは、様々なクライアントから受け取ったデータに基づいている。このコンテキストでデータを共有するプロセスにより、データが漏洩したり、発見可能になったりする可能性がある。 There are existing approaches for training neural networks that use federated or centralized training approaches. Each existing approach for training neural networks relies on data received from various clients. The process of sharing data in this context can lead to the data being leaked or becoming discoverable.

例えば、ヘルスケアのコンテキストでの深層学習や機械学習では、診断に意味のあるトレーニング済みモデルで十分な精度を生み出すために、大規模なデータセットが必要になる場合がある。このようなデータには、複数の患者または患者カテゴリにわたるX線またはMRIに関するデータを含めることができる。このようなモデルをトレーニングするための1つのアプローチは、生データをプールすることであり、分析は、プールされたデータの中央リポジトリにアクセスして、大規模なデータセットに対して機械学習を実行できる。しかしながら、このアプローチには、単一点障害や保護要件などの他の問題だけでなく、倫理的な問題やプライバシーの問題もある。 For example, deep learning and machine learning in healthcare contexts may require large datasets to produce sufficient accuracy in trained models to be diagnostically meaningful. Such data can include data on X-rays or MRIs across multiple patients or patient categories. One approach to training such models is to pool the raw data, and analytics can access a central repository of the pooled data to perform machine learning on large datasets. However, this approach presents ethical and privacy concerns, as well as other issues such as single points of failure and protection requirements.

本開示の上記および他の利点および特徴を得ることができる方法を説明するために、上で簡単に説明した原理のより具体的な説明を、添付の図面に示されている特定の実施形態を参照して行う。これらの図面は、本開示の例示的な実施形態のみを示しており、したがって、その範囲を限定するものと見なされるべきではないことを理解して、本明細書の原理は、添付の図面を使用することにより、追加の具体性および詳細とともに記述および説明される。 To explain how the above-mentioned and other advantages and features of the present disclosure can be obtained, a more particular description of the principles briefly described above will be rendered by reference to specific embodiments that are illustrated in the accompanying drawings. With the understanding that these drawings depict only exemplary embodiments of the present disclosure and therefore should not be considered limiting of its scope, the principles herein will be described and explained with additional specificity and detail through the use of the accompanying drawings.

図1は、連合学習モデルのトレーニングアプローチを示す。Figure 1 shows the training approach for the associative learning model. 図2は、分割学習集中型モデルトレーニングアプローチを示す。FIG. 2 illustrates the split-learning focused model training approach. 図3は、分割学習ピアツーピアアプローチを示す。FIG. 3 illustrates a partitioned learning peer-to-peer approach. 図4は、連合分割学習アプローチを示す。FIG. 4 illustrates the federated split learning approach. 図5は、ブラインド学習に関する実施形態を示す。FIG. 5 shows an embodiment for blind learning. 図7は、ブラインド相関が複数のクライアントにわたってどのように機能するかを示す。FIG. 7 shows how blind correlation works across multiple clients. 図8は、方法の実施形態を示す。FIG. 8 illustrates an embodiment of the method. 図9は、方法の実施形態を示す。FIG. 9 illustrates an embodiment of the method. 図10は、方法の実施形態を示す。FIG. 10 illustrates an embodiment of the method. 図11は、システムの実施形態を示す。FIG. 11 shows an embodiment of the system.

本開示の特定の態様および実施形態を以下に提供する。当業者には明らかであるように、これらの態様および実施形態のいくつかは独立して適用されてもよく、それらのいくつかは組み合わせて適用されてもよい。以下の説明では、説明の目的で、本出願の実施形態の完全な理解を提供するために特定の詳細が示される。しかしながら、これらの具体的な詳細なしに様々な実施形態を実施できることは明らかであろう。図および説明は、限定を意図するものではない。 Specific aspects and embodiments of the present disclosure are provided below. As will be apparent to one of ordinary skill in the art, some of these aspects and embodiments may be applied independently, and some of them may be applied in combination. In the following description, for purposes of explanation, specific details are set forth in order to provide a thorough understanding of the embodiments of the present application. However, it will be apparent that various embodiments may be practiced without these specific details. The figures and description are not intended to be limiting.

以下の説明は、例示的な実施形態のみを提供するものであり、本開示の範囲、適用可能性、または構成を限定することを意図するものではない。むしろ、例示的な実施形態の以下の説明は、例示的な実施形態を実施するための有効な説明を当業者に提供する。添付の特許請求の範囲に記載された本出願の趣旨および範囲から逸脱することなく、要素の機能および構成に様々な変更を加えることができることを理解されたい。 The following description provides only exemplary embodiments and is not intended to limit the scope, applicability, or configuration of the present disclosure. Rather, the following description of exemplary embodiments will provide those skilled in the art with an effective description for implementing the exemplary embodiments. It should be understood that various changes can be made in the function and arrangement of elements without departing from the spirit and scope of the present application, as set forth in the appended claims.

当技術分野で必要とされているのは、モデルがトレーニングされたデータを非公開に保つニューラルネットワークモデルをトレーニングするために、既知のアプローチを組み合わせた方法およびシステムである。以前のアプローチでは、トレーニングデータが漏洩したり、トレーニングプロセスの一部として発見されたりする可能性がある。本明細書で開示される改善されたアプローチは、保護上の問題などの他の問題にも対処し、単一障害点の問題を取り除くことができる。この開示では、最初に既知のアプローチについて説明し、次に新しいアプローチを紹介する。一態様では、特定のプラットフォームを使用して、ニューラルネットワークモデルの連合開発またはトレーニングを可能にする。このようにモデルをトレーニングするための開示されたプラットフォームの使用は、本明細書の別の実施形態として開示される。さらに別の実施形態では、データは、サーバと1つまたは複数のクライアントデバイスとの間で渡されるときに暗号化される。様々なタイプの連合学習(図1に示す)、分割学習(図2に示す)、および分割学習ピアツーピア(図3に示す)が本明細書に開示される。この開示により、従来のアプローチに対していくつかの新しい改善が提供される。 What is needed in the art is a method and system that combines known approaches for training neural network models that keeps the data on which the models are trained private. Previous approaches have the potential for training data to be leaked or discovered as part of the training process. The improved approach disclosed herein addresses other issues, such as protection concerns, and can eliminate single points of failure. This disclosure first describes known approaches and then introduces new approaches. In one aspect, a particular platform is used to enable federated development or training of neural network models. Use of the disclosed platform for training models in this manner is disclosed as another embodiment herein. In yet another embodiment, data is encrypted as it passes between a server and one or more client devices. Various types of federated learning (shown in FIG. 1), partitioned learning (shown in FIG. 2), and partitioned learning peer-to-peer (shown in FIG. 3) are disclosed herein. This disclosure provides several novel improvements over conventional approaches.

典型的な連合学習では、クライアントデータを使用したトレーニングのために、モデル全体をサーバからクライアントデバイスに渡す。このプロセスには、トレーニング目的で、それぞれがそれぞれのデータを備えた複数の異なるクライアントを使用することが含まれ得る。このアプローチは通常、モデル全体がデータとともに第1のクライアントに送信され、第1のクライアントでトレーニングした後、モデル全体がサーバに返されて「平均化」されるという、線形かつ反復的な方法で実行される。次に、更新されたモデル全体が、追加処理用のデータとともに第2のクライアントに送信される。次に、追加の「平均化」のためにその更新されたモデルがサーバに送り返される、などが行われる。分割学習アプローチでは、モデルが分割され、一部が各クライアントに送信されるが、非効率的な線形でインタラクティブなトレーニングプロセスが依然として存在する。ピアクライアントが線形プロセスでデータを共有するため、分割学習ピアツーピアアプローチも線形に実行される。データのプライバシーを維持し、トレーニングプロセスを効率化するための改善が必要である。 In typical federated learning, an entire model is passed from a server to a client device for training using client data. This process may involve using multiple different clients, each with its own data, for training purposes. This approach is typically performed in a linear, iterative manner, where the entire model is sent along with its data to a first client, and after training on the first client, the entire model is returned to the server for "averaging." The entire updated model is then sent to a second client along with its data for further processing. The updated model is then sent back to the server for further "averaging," and so on. In a partitioned learning approach, the model is partitioned and a portion is sent to each client, but there is still an inefficient, linear, iterative training process. Partitioned learning peer-to-peer approaches also perform linearly, as peer clients share data in a linear process. Improvements are needed to maintain data privacy and streamline the training process.

この開示では、連合学習と分割学習に対する2つの主な改善点について説明する。第1には、クライアント側の処理が他のクライアントとは独立して並行して行われる連合分割学習アプローチ(図4~5に示す)である。第2の開示されたアプローチ(図6~10に示される)は、異なるクライアントからの異なるタイプのデータを処理するためのマルチモーダル人工知能(multi-modal artificial intelligence、MMAI)トレーニングアプローチに関する。 This disclosure describes two main improvements to federated and split learning. The first is a federated split learning approach (shown in Figures 4-5) in which client-side processing occurs in parallel, independent of other clients. The second disclosed approach (shown in Figures 6-10) relates to a multi-modal artificial intelligence (MMAI) training approach for processing different types of data from different clients.

上述のように、連合分割学習アプローチは、上記の典型的な連合学習アプローチの変形として開示されている。この点に関する方法は、サーバでニューラルネットワークを第1の部分と第2の部分に分割し、第2の部分を第1のクライアントと第2のクライアントに別々に送信することを含む。クライアントはデータ(MRI、患者データ、顧客の銀行データなど)を有することができ、それぞれがニュートラルネットワークの一部(カットレイヤまでのネットワークの特定の数のレイヤ)を受け取る。この方法は、閾値が満たされるまで以下の操作、(1)第1のクライアントおよび第2のクライアントで、同時に第2の部分に順方向ステップを実行して、データSA1とSA2を生成すること(図1~4を参照)、(2)第1のクライアントと第2のクライアントからSA1とSA2をサーバに送信すること、(3)サーバで、第1クライアントと第2クライアントの損失値を計算すること、(4)サーバで、第1クライアントと第2クライアントにわたる平均損失を計算すること、(5)サーバで、平均損失を使用して逆伝播を実行し、勾配を計算すること、および、(6)サーバから勾配を第1のクライアントおよび第2のクライアントに送信すること、を実行することを含む。このアプローチは、クライアント側(または「データサーバ」側)での処理を互いに独立して並行して動作させることにより、連合学習アプローチと分割学習アプローチに対する改善を提供する。このアプローチは、分割学習のピアツーピアアプローチとも異なる。独立したデータサーバは、そのアクティベーションをサーバ側に送信し、サーバ側は、最終的なトレーニング済みモデルを取得するためのネットワーク要件に応じて、データを集計、平均化、またはその他の方法で処理する。 As mentioned above, a federated split learning approach is disclosed as a variation of the exemplary federated learning approach described above. The method in this regard includes splitting a neural network into a first portion and a second portion at a server and separately transmitting the second portion to a first client and a second client. The clients may have data (MRIs, patient data, customer banking data, etc.), and each receives a portion of the neural network (a certain number of layers of the network up to the cut layer). The method includes performing the following operations until a threshold is met: (1) simultaneously performing a forward step on the second portion at the first client and the second client to generate data SA1 and SA2 (see FIGS. 1-4 ); (2) sending SA1 and SA2 from the first client and the second client to the server; (3) calculating loss values for the first client and the second client at the server; (4) calculating an average loss across the first client and the second client at the server; (5) performing backpropagation using the average loss to calculate gradients at the server; and (6) sending the gradients from the server to the first client and the second client. This approach offers an improvement over federated and partitioned learning approaches by allowing client-side (or “data server”) processing to operate independently and in parallel. This approach also differs from the peer-to-peer approach of partitioned learning. The independent data server sends the activations to the server side, which aggregates, averages, or otherwise processes the data depending on the network requirements to obtain the final trained model.

本開示の別の態様は、トレーニングに使用するために複数の異なるモードのデータまたはデータのタイプを利用できる人工知能モデルの開発における改善に関する。例えば、クライアントごとにデータのタイプが異なる場合がある。あるクライアントにはX線やMRIの画像があり、別のクライアントには患者の健康状態を説明するテキストがある場合がある。これに関して、方法は、ニューラルネットワークを第1のクライアント側ネットワーク、第2のクライアント側ネットワーク、およびサーバ側ネットワークに分割し、第1のクライアント側ネットワークを第1のクライアントに送信することを含むことができる。第1のクライアント側ネットワークは、第1のクライアントからの第1のデータを処理するように構成され、第1のデータは第1のタイプを有する。第1のクライアント側ネットワークは、少なくとも1つの第1のクライアント側レイヤを含むことができる。この方法は、第2のクライアント側ネットワークを第2のクライアントに送信することを含む。第2のクライアント側ネットワークは、第2のクライアントからの第2のデータを処理するように構成され、第2のデータは第2のタイプを有する。第2のクライアント側ネットワークは、少なくとも1つの第2のクライアント側レイヤを含むことができ、第1のタイプと第2のタイプは共通の関連付けを有する。 Another aspect of the present disclosure relates to improvements in developing artificial intelligence models that can utilize multiple different modes or types of data for training. For example, different clients may have different types of data. One client may have X-ray or MRI images, while another client may have text describing a patient's health condition. In this regard, a method may include dividing a neural network into a first client-side network, a second client-side network, and a server-side network, and transmitting the first client-side network to the first client. The first client-side network is configured to process first data from the first client, the first data having a first type. The first client-side network may include at least one first client-side layer. The method may include transmitting a second client-side network to a second client. The second client-side network is configured to process second data from the second client, the second data having a second type. The second client-side network may include at least one second client-side layer, the first type and the second type having a common association.

この方法は、サーバ側ネットワークで、第1のクライアントからの第1のデータに関する第1のクライアント側ネットワークのトレーニングからの第1のアクティベーションを受信することと、サーバ側ネットワークで、第2のクライアントからの第2のデータに関する第2のクライアント側ネットワークのトレーニングからの第2のアクティベーションを受信することと、第1のアクティベーションおよび第2のアクティベーションに基づいてサーバ側ネットワークの少なくとも1つのサーバ側レイヤをトレーニングして勾配を生成することと、勾配をサーバ側ネットワークから第1のクライアント側ネットワークおよび第2のクライアント側ネットワークに送信することと、をさらに含むことができる。このようにして、単一の患者または単一のタイプもしくはカテゴリの患者に関連するなどの共通の関係を有する複数の異なるタイプのデータを使用して、モデルをトレーニングする。 The method may further include receiving, at the server-side network, first activations from training a first client-side network on first data from a first client; receiving, at the server-side network, second activations from training a second client-side network on second data from a second client; training at least one server-side layer of the server-side network based on the first activations and the second activations to generate gradients; and transmitting the gradients from the server-side network to the first client-side network and the second client-side network. In this manner, a model is trained using multiple different types of data that have a common relationship, such as relating to a single patient or a single type or category of patients.

この概要は、請求する主題の主要な特徴あるいは必須の特徴を確認することを意図するものではなく、また請求する主題の範囲を決定するために単独で使用することを意図するものでもない。この主題は、本特許の明細書全体、いずれかまたはすべての図面、および各請求項の適切な部分を参照することによって理解されるべきである。 This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used alone to determine the scope of the claimed subject matter. This subject matter should be understood by reference to the entire specification of this patent, any or all drawings, and appropriate portions of each claim.

上記は、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付の図面を参照することにより、より明らかになるであろう。 The above, together with other features and embodiments, will become more apparent with reference to the following specification, claims, and accompanying drawings.

本明細書に開示されるのは、新しいシステム、プラットフォーム、コンピューティング環境、クラウド環境、マーケットプレイス、またはニューラルネットワークをトレーニングするための改善されたアプローチを可能にするシステムのその他の特徴付けである。一態様では、このアプローチは、既知のアプローチの機能を組み合わせるが、様々なクライアントデバイスからモデルをトレーニングするために使用されるデータのプライバシーを維持するトレーニングプロセスを提供する、連合分割学習アプローチと呼ばれる。この開示では、最初に連合学習アプローチをより詳細に説明し、続いて分割学習アプローチと分割学習ピアツーピアアプローチを説明し、次に新規の連合分割学習アプローチを紹介する。さらに、様々なタイプのデータに対するマルチモーダル人工知能(MMAI)学習アプローチも導入されている。新奇な連合分割学習アプローチとMMAIアプローチは、上記のモデルを含むいくつかのモデルに基づいている。本出願では、これらの最初のアプローチをより詳細に確認し、次に2つの新奇な学習技術を紹介する。 Disclosed herein is a new system, platform, computing environment, cloud environment, marketplace, or other characterization of a system that enables an improved approach to training neural networks. In one aspect, this approach, referred to as a federated partitioned learning approach, combines features of known approaches but provides a training process that maintains the privacy of data used to train the model from various client devices. This disclosure first describes the federated learning approach in more detail, followed by a partitioned learning approach and a partitioned learning peer-to-peer approach, and then introduces a novel federated partitioned learning approach. Additionally, a multimodal artificial intelligence (MMAI) learning approach for various types of data is also introduced. The novel federated partitioned learning and MMAI approaches are based on several models, including those described above. This application reviews these first approaches in more detail and then introduces two novel learning techniques.

連合学習
図1は、連合学習アプローチ100を示す。これは現在、主要企業が採用しているアプローチである。このアプローチの欠点は、並行ではなく、一度に1つのデータプロバイダに「線形に」進むことである。示されているニューラルネットワークの例は、連合学習アプローチを使用してトレーニングされている、完全に接続された順伝播型ニューラルネットワークである。この場合のトレーニングプロセスは、モデル104を作成し、モデル106A、108A、および110Aをそれぞれのクライアント106、108、110と線形の形で共有するサーバ102を含む。クライアントは、順番にモデルを受け取るとそれぞれのモデル106A、108A、110Aを別々にトレーニングし、図示のように、トレーニング済みモデルデータをサーバ102にそれぞれ送り返す。サーバ102は、モデルを平均化し、更新された重みを有する新しいモデル104(別名、トレーニング済みモデル)を生成する。サーバ102は、新しいモデルまたは重みをそれぞれのクライアント106、108、110に線形に送信する。このプロセスは、何回か反復的に、またが特定の精度が達成されるまで、繰り返される。
Federated Learning. Figure 1 illustrates a federated learning approach 100, which is currently being adopted by major companies. A drawback of this approach is that it proceeds "linearly," one data provider at a time, rather than in parallel. The example neural network shown is a fully connected, forward-propagation neural network being trained using a federated learning approach. The training process in this case involves a server 102 creating a model 104 and sharing models 106A, 108A, and 110A in a linear fashion with each of the clients 106, 108, and 110. The clients train each of the models 106A, 108A, and 110A separately as they receive them in turn, and each sends the trained model data back to the server 102, as shown. The server 102 averages the models and generates a new model 104 with updated weights (also known as the trained model). The server 102 then sends the new model or weights to each of the clients 106, 108, and 110 in a linear fashion. This process is repeated iteratively a number of times and until a particular accuracy is achieved.

各反復において、サーバ102は、すべての参加モデルを平均して、トレーニング済みモデルBを作成する。したがって、サーバは、任意の時点で完全にトレーニング済みのモデル104を有する。「グローバルモデル」という用語は、トレーニングプロセスの結果として得られるモデルを指す。グローバルモデルは、推論タスクに使用されるトレーニング済みオブジェクトである。推論タスクは、医療画像を評価して、患者が癌、骨折、またはその他の病状にかかっているかどうかを分類することである。 In each iteration, the server 102 averages all participating models to create a trained model B. Thus, at any point in time, the server has a fully trained model 104. The term "global model" refers to the model resulting from the training process. The global model is the trained object that is used for the inference task. The inference task is to evaluate medical images to classify whether a patient has cancer, a fracture, or some other pathology.

このアプローチが使用されている例として、電子時計やモバイルデバイスなどのデバイス、例えば夜間に充電し、Wi-Fiネットワークに接続されているデバイスでは、プロセッサを使用してニューラルネットワークモデルをトレーニングすることができる。したがって、クライアント1(106)はApple Watchである可能性があり、クライアント2(108)は別の人のiPhone(登録商標)である可能性がある。モデルの例としては、Appleが提供するSiri音声処理サービスがある。すべてのデバイスは同じモデルをトレーニングしているが、唯一の違いは、それぞれのクライアントがローカルのデータでトレーニングしていることである。モデルまたはデータはサーバ102に送り返され、サーバはモデルを一緒に平均化する。欠点は、クライアント1(106)などのそれぞれのクライアントがだまされて、モデルのトレーニングに使用されているデータについて何かを共有する可能性があることである。これはプライバシーデータの漏洩であり、上記の問題が発生する。連合学習アプローチの課題は、モデル全体がクライアントからクライアントに渡されるため、モデルのプライバシーがないことである。各クライアントがモデル全体を処理するための計算コストが高く、モデル全体が何度も送信されるため通信オーバーヘッドが大きくなる。再構築攻撃が、トレーニングデータを脆弱なものにすることもできる。 An example of how this approach is used is when devices such as electronic watches or mobile devices, e.g., devices that are charged overnight and connected to a Wi-Fi network, use their processors to train neural network models. Thus, Client 1 (106) could be an Apple Watch, while Client 2 (108) could be someone else's iPhone. An example of a model is the Siri voice processing service provided by Apple. All devices train the same model; the only difference is that each client trains it with local data. The model or data is sent back to the server 102, which averages the models together. The drawback is that each client, such as Client 1 (106), could be tricked into sharing something about the data used to train the model. This is a privacy data leak, resulting in the problems mentioned above. The challenge with the federated learning approach is the lack of model privacy, since the entire model is passed from client to client. It is computationally expensive for each client to process the entire model, and communication overhead is significant because the entire model is sent multiple times. Reconstruction attacks can also make the training data vulnerable.

分割学習
図2は、分割学習集中型アプローチを示す。モデル(ニューラルネットワーク)204は、2つの部分に分割され、一方の部分(206A、208A、210A)は、それぞれのクライアント側206、208、210に存在し、モデルへの入力レイヤと、オプションでカットレイヤまでの他のレイヤを含むみ、他の部分(B)は、サーバ側202に存在し、多くの場合、出力レイヤを含む。分割レイヤ(S)とは、AとBが分割されたレイヤ(カットレイヤ)を指す。図2において、SAはAからBに送信される分割レイヤまたはデータを表し、SBはBからAに送信される分割レイヤを表す。
Partition Learning Figure 2 shows a partition learning-focused approach. A model (neural network) 204 is partitioned into two parts: one part (206A, 208A, 210A) resides on the client side 206, 208, 210, respectively, and includes only the input layer to the model and optionally other layers up to the cut layer; the other part (B) resides on the server side 202, and often includes the output layer. The partition layer (S) refers to the layer where A and B are partitioned (the cut layer). In Figure 2, SA represents the partition layer or data sent from A to B, and SB represents the partition layer sent from B to A.

一例では、B204とクライアント1(206)との間のニューラルネットワークは、B部分204にA1部分(206A)を加えたものであり、データSB1(206C)およびSA1(206B)の通信によりニューラルネットワーク全体が完成する。このモデルでは、トレーニングプロセスは次のようになる。サーバ202は、AおよびBを作成し、それぞれのモデルA(206A、208A、210A)をそれぞれのクライアント206、208、210に送信する。すべてのクライアントについて、操作には、いくつかの条件が発生するまで、クライアントのグループ全体で線形または反復的な方法で以下を繰り返すことが含まれる。それぞれのクライアント206、208、210は、順番に、サーバ202から最新のモデルAをダウンロードする(このステップは、図2と図3に示されるアプローチとの間で異なることに留意されたい)。クライアント206、208、210は、それぞれ順番に、モデルAに対して順方向ステップを実行し、Aの出力(すなわち、SのみまたはSA1(206B)、SA2(208B)、SAN210B)でのアクティベーション)をサーバ202に必要なラベルに加えて送信する。サーバ202は、それぞれのクライアント206、208、210から受信したSAを使用して、Bに対して順方向ステップを行う。サーバ202は損失関数を計算し、サーバ202は逆伝播を行い、Sレイヤで勾配を計算する。サーバ202は、Sの勾配のみ(すなわち、SB1(206C)、SB2(208C)、SBN(210C))をそれぞれのクライアント206、208、210に送信する。このプロセスは、最初にクライアント206、次にクライアント208、次にクライアント210に対して操作が発生するように、異なるクライアントにわたって線形に実行される。クライアント206、208、210は、サーバ202から受信したSB勾配を使用して逆伝播を行い、クライアント206、208、210は、更新されたA(SA1(206B)、SA2(208B)、SAN(210B))をサーバ202と共有する。 In one example, the neural network between B 204 and client 1 (206) is the B portion 204 plus the A1 portion (206A), with the communication of data SB1 (206C) and SA1 (206B) completing the entire neural network. For this model, the training process is as follows: Server 202 creates A and B and sends their respective models A (206A, 208A, 210A) to each client 206, 208, 210. For all clients, the operation involves repeating the following in a linear or iterative manner across the group of clients until some condition occurs: Each client 206, 208, 210, in turn, downloads the latest model A from server 202 (note that this step differs between the approaches shown in Figures 2 and 3). Each client 206, 208, 210, in turn, performs a forward step on model A and sends the output of A (i.e., S only or activations at SA1 (206B), SA2 (208B), and SA1 (210B)) to server 202 along with the necessary labels. Server 202 performs a forward step on B using the SA received from each client 206, 208, 210. Server 202 computes the loss function, and server 202 performs backpropagation and computes gradients at the S layer. Server 202 sends only the gradients of S (i.e., SB1 (206C), SB2 (208C), and SB1 (210C)) to each client 206, 208, 210. This process is performed linearly across the different clients, such that operations occur first for client 206, then client 208, and then client 210. Clients 206, 208, and 210 perform backpropagation using the SB gradients received from server 202, and clients 206, 208, and 210 share the updated A (SA1 (206B), SA2 (208B), SAN (210B)) with server 202.

図2の横軸は、クライアントからクライアントへとラウンドロビン方式のように処理が行われる時間である。 The horizontal axis in Figure 2 represents the time it takes for processing to be carried out from client to client in a round-robin fashion.

一例では、クライアント1上のネットワークA1 206Aは、畳み込みレイヤおよびアクティベーションレイヤを含むことができる。データを処理すると、クライアント1(206)は、そのレイヤフォワード(SA1(206B))の結果を、サーバ202にあるネットワーク内の次のレイヤに送信し、サーバ202は上記で概説したように逆伝播などを計算する。Bネットワークは、異なるクライアント206、208、210からの異なるデータを(ラウンドロビン方式で)繰り返し処理する。最終的には、それはネットワークを平均的に反映したものに到達する。すべてのクライアント206、208、210からのすべてのデータで同時にネットワークをトレーニングすることはない。これはデータをより高速に処理でき、構築時にデータ全体でBが平均化されるという利点がある。最終的なアルゴリズムは、すべてのデータを確認していない。モデルBは、すべてのデータでトレーニングされたことがないため、だまされてそのデータを明らかにすることはできない。 In one example, network A1 206A on client 1 may include a convolutional layer and an activation layer. Once it processes the data, client 1 (206) sends the results of its layer forward (SA1 (206B)) to the next layer in the network at server 202, which computes backpropagation, etc., as outlined above. The B network repeatedly processes different data from different clients 206, 208, 210 (in a round-robin fashion). Eventually, it arrives at an average reflection of the network. The network is not trained on all data from all clients 206, 208, 210 simultaneously. This has the advantage of processing the data faster and averaging B across the data as it is built. The final algorithm has not seen all the data. Model B cannot be tricked into revealing that data because it has never been trained on all the data.

ピアツーピア環境での分割学習
図3は、分割学習ピアツーピアアプローチを示している。モデル(ニューラルネットワーク)は2つの部分に分割され、一方の部分(A)はクライアント側に存在し、入力レイヤを含み、もう一方の部分(B)はサーバ側に存在し、多くの場合出力レイヤを含む。図3では、クライアント側部分(A)は、クライアント306ではA1(306A)、クライアント308ではA2(308A)、クライアント310ではAN(310A)としてそれぞれ示されている。分割レイヤ(S)とは、AとBが分割されたレイヤを指す。図3において、SAはAからBに送信される分割レイヤを表し、SBはBからAに送信される分割レイヤを表す。
Partitioned Learning in a Peer-to-Peer Environment Figure 3 illustrates a partitioned learning peer-to-peer approach. The model (neural network) is partitioned into two parts: one part (A) resides on the client side and includes an input layer, and the other part (B) resides on the server side and often includes an output layer. In Figure 3, the client-side part (A) is shown as A1 (306A) on client 306, A2 (308A) on client 308, and AN (310A) on client 310. The partitioned layer (S) refers to the layer in which A and B are partitioned. In Figure 3, SA represents the partitioned layer sent from A to B, and SB represents the partitioned layer sent from B to A.

一例では、Bとクライアント1 306との間のニューラルネットワークは、B部分にA1部分306Aを加えたものであり、データSB1 306CおよびSA1 306Bの通信によりニューラルネットワーク全体が完成する。このモデルでは、トレーニングプロセスは次のようになる。サーバ302は、AおよびBを作成し、Aをクライアント306、308、310に送信する。すべてのクライアントについて、プロセスには、いくつかの条件が発生するまで以下を繰り返すことが含まれる。まず、このプロセスには、以前のクライアントから最新のAをダウンロードすることが含まれる。 In one example, the neural network between B and client 1 306 is part B plus part A1 306A, with the communication of data SB1 306C and SA1 306B completing the entire neural network. In this model, the training process is as follows: Server 302 creates A and B and sends A to clients 306, 308, and 310. For all clients, the process involves repeating the following until some condition occurs: First, the process involves downloading the latest A from the previous client.

このステップは、他の図に示されているアプローチとは異なることに注意されたい。次いで、プロセスは、Aに対して順方向ステップを実行し、必要なラベルに加えてAの出力(すなわち、Sでのアクティベーションのみ)をサーバ302に送信することを含む。サーバ302は、それぞれのクライアント306、308、310から受信したSAを使用して、Bに対して順方向ステップを実行する。サーバ302は、損失関数を計算し、逆伝播を実行し、Sにおける勾配を計算する。サーバ302は、Sの勾配(すなわち、SB)のみをそれぞれのクライアント306、308、310に送信する。クライアントは、サーバ302から受信したSB勾配を使用して逆伝播を行う。クライアントは、それらの更新されたAをサーバ302と共有する。 Note that this step differs from the approach shown in other figures. The process then involves performing a forward step on A and sending the output of A (i.e., only the activations at S) along with the necessary labels to the server 302. The server 302 performs a forward step on B using the SA received from each client 306, 308, 310. The server 302 calculates the loss function, performs backpropagation, and calculates the gradient at S. The server 302 sends only the gradient of S (i.e., SB) to each client 306, 308, 310. The clients perform backpropagation using the SB gradients received from the server 302. The clients share their updated A with the server 302.

ピアツーピアアプローチでは、一般に、それぞれのクライアントが、Aモデルを、最後にトレーニングされたクライアントから直接ダウンロードするか、より広くは、以前にトレーニングされたクライアントによって更新することが含まれる。この点に関して、クライアントをトレーニングするプロセスは、クライアントが順番にトレーニングされるラウンドロビン方式で行うことができる。例えば、クライアント1 306が最初にトレーニングされる場合、ピアツーピアモデルでは、クライアント2 308がサーバ302または別の信頼できるサーバからクライアント側モデルA2を更新するのではなく、クライアント2 308がそのクライアントモデルA2を、クライアント1 306からクライアント側モデルA1をダウンロードすることによって更新する。以前にトレーニングされたモデルは、最新のトレーニングされたクライアントモデルである場合もあれば、いくつかの基準に基づいて、以前にトレーニングされた他のクライアントのモデルである場合もある。例えば、クライアント1 306およびクライアント2 308は、それぞれのモデルをトレーニングすることができる。クライアント3 310は、クライアント側モデルの更新を必要とし、クライアント1 306とクライアント2 308の間でどのクライアント側モデルをダウンロードするかを決定するアルゴリズムまたはプロセスを実装する場合がある。以下の開示は、ここで適用できるマルチモデルの人工知能トレーニングプロセスを実装していることに注意されたい。クライアント1 306が画像を処理し、そのモデルA1が画像処理に焦点を合わせ、クライアント2 308がテキストを処理し、そのモデルA2がテキスト処理に焦点を合わせ、クライアント3 310が画像を処理する場合、アルゴリズムまたはプロセスにより、ピアツーピア環境において、クライアント側モデルA1のクライアント3 310へその更新としてのダウンロードが行われる。 A peer-to-peer approach generally involves each client downloading model A directly from the most recently trained client, or more broadly, updated by a previously trained client. In this regard, the process of training clients can be performed in a round-robin fashion, with clients trained in turn. For example, if client 1 306 is trained first, in a peer-to-peer model, client 2 308 updates its client model A2 by downloading client-side model A1 from client 1 306, rather than client 2 308 updating client-side model A2 from server 302 or another trusted server. The previously trained model may be the most recently trained client model, or it may be another client's model previously trained based on some criteria. For example, client 1 306 and client 2 308 may train their respective models. Client 3 310 may need to update its client-side model and may implement an algorithm or process to determine which client-side model to download between client 1 306 and client 2 308. Note that the following disclosure implements a multi-model artificial intelligence training process applicable here. If client 1 306 processes images and its model A1 focuses on image processing, client 2 308 processes text and its model A2 focuses on text processing, and client 3 310 processes images, an algorithm or process would download client-side model A1 to client 3 310 as an update in a peer-to-peer environment.

あるシナリオでは、ニューラルネットワークの適切なトレーニングを達成するために、分割学習からの十分な情報がない。このモデルでは、適切なトレーニングアプローチは、AとBが、サーバ302でそれら(AとB)を単純にスタックすることによってプレーンテキストに集約することであり得ると想定される。 In some scenarios, there is not enough information from the split learning to achieve proper training of the neural network. In this model, it is assumed that an appropriate training approach would be to aggregate A and B into plain text by simply stacking them (A and B) on server 302.

連合分割学習
図4は、本明細書に開示されたニューラルネットワークに対するトレーニングの改善を示している。この改善は、連合分割学習アプローチとして特徴付けることができ、上記で開示したアプローチのいくつかの欠陥に対処する。図4は、並列処理アプローチを紹介する。並列処理と独立処理により、モデルのトレーニングは上記の他のモデルよりも速いペースで行われる。
Federated and Partitioned Learning Figure 4 illustrates the training improvement to neural networks disclosed herein. This improvement can be characterized as a federated and partitioned learning approach, and addresses some of the deficiencies of the approaches disclosed above. Figure 4 introduces a parallel processing approach. Parallel and independent processing allows the model to train at a faster pace than the other models discussed above.

連合分割学習アプローチは、上記のラウンドロビン処理を実行しない。サーバ402は、ネットワーク定義コードに挿入されたユーザパラメータである「分割レイヤ」でネットワークを分割する。ネットワークの「最上部」はサーバ402に保持され、「最下部」はそれぞれのデータプロバイダまたはクライアント406、408、410に送信される(クライアントとデータプロバイダという用語は、本明細書では同じ意味で使用される)。トレーニングは、データに最も近いレイヤである最下位のネットワークレイヤから始まる。各レイヤは、(最初のレイヤからの)データまたは前のレイヤ(他のすべてのレイヤ)の出力を読み取る。 The federated partitioning learning approach does not perform the round-robin process described above. The server 402 partitions the network by "partition layers," which are user parameters inserted into the network definition code. The "top" of the network is kept on the server 402, and the "bottom" is sent to the respective data provider or client 406, 408, 410 (the terms client and data provider are used interchangeably herein). Training begins with the lowest network layer, which is the layer closest to the data. Each layer reads either the data (from the first layer) or the output of the previous layer (all other layers).

レイヤは、任意の有効なネットワークアーキテクチャコマンド(畳み込み、ドロップアウト、バッチ正規化、レイヤの平坦化など)とアクティベーション関数(relu、tanhなど)に基づいて、それらの出力(これらはアクティベーション関数から得られるので「アクティベーション」という用語が使われる)を計算することができる。データ側の最後のレイヤ406、408、410がその適切なアクティベーション(つまり、出力)を計算すると、それらの出力は「分割の反対側」の最初のレイヤ、つまりサーバ側402の最初のレイヤに送信される。 Layers can compute their outputs (hence the term "activations") based on any valid network architecture command (convolution, dropout, batch normalization, layer flattening, etc.) and activation function (relu, tanh, etc.). Once the last layer 406, 408, 410 on the data side computes its appropriate activations (i.e., outputs), those outputs are sent to the first layer on the "other side of the split," i.e., the first layer on the server side 402.

次のアプローチでは、以前と同様にモデルを分割することが含まれる。モデルは2つの部分、(A)クライアント側で入力レイヤを含む、および、(B)サーバ側で多くの場合出力レイヤを含む、に分割される。(S)は分割レイヤである。クライアントまたはデータプロバイダ406、408、410は独立して動作し、回答がある場合はそれを送り返す。サーバ402上のコードはデータを処理し、その出力をSB(406C、408C、410C)としてすべてのクライアントに均等に送り返す。 The next approach involves splitting the model as before. The model is split into two parts: (A) on the client side, containing the input layer, and (B) on the server side, often containing the output layer. (S) is the split layer. Clients or data providers 406, 408, 410 operate independently and send back answers, if any. Code on the server 402 processes the data and sends its output back to all clients equally as SBs (406C, 408C, 410C).

トレーニングプロセスの例は次のとおりである。サーバ402は、AおよびBを作成し、部分A(406A、408A、410A)をクライアント406、408、410に送信する。以下のステップは、条件(例えば、精度)が満たされるまで繰り返される。すべてのクライアント406、408、410は、Aに対して同時に順方向ステップを実行する。この時点まで、クライアント406、408、410でのすべての計算は独立したサーバで行われており、1つのデータサーバから別のデータサーバへの依存関係はない。このアプローチは、本明細書で開示されたイノベーションの1つを強調している。クライアント/データプロバイダ406、408、410によるこれらすべての計算は、すべて同時に並行して動作することができる。これは、前述の線形または「ラウンドロビン」方式とは対照的である。 An example training process is as follows: Server 402 creates A and B and sends part A (406A, 408A, 410A) to clients 406, 408, 410. The following steps are repeated until a condition (e.g., accuracy) is met. All clients 406, 408, 410 simultaneously perform forward steps on A. Up until this point, all computations at clients 406, 408, 410 have been performed on independent servers, with no dependencies from one data server to another. This approach highlights one of the innovations disclosed herein: all these computations by clients/data providers 406, 408, 410 can all run simultaneously in parallel. This is in contrast to the linear or "round robin" approach described above.

クライアント406、408、410はそれぞれ、ニューラルネットワークの部分A(406A、408A、410A)を実行し、Aのそれぞれの出力(すなわち、SA(406B、408B、410B))を生成し、出力をサーバ402に送信する。サーバ402は、アクティベーションの3つの異なる「バージョン」を受信する(SA1、SA2、SA3のそれぞれから1つ)。この時点で、サーバ402はそれらのアクティベーションを「適切に」処理する。これは、サーバ402が場合に応じて異なる操作を行うことを意味し得る。例えば、サーバ402は各クライアント406、408、410の損失値を計算し、サーバ402は全クライアントにわたる平均損失を計算する。サーバ402は、平均損失を使用して逆伝播を実行し、Sにおける勾配を計算する。サーバ402は、Sにおける勾配(すなわち、SB(406C、408C、410C))をすべてのクライアント406、408、410に送信する。 Clients 406, 408, 410 each run portion A of the neural network (406A, 408A, 410A), generate a respective output for A (i.e., SA (406B, 408B, 410B)), and send the outputs to server 402. Server 402 receives three different "versions" of the activations (one from each of SA1, SA2, and SA3). At this point, server 402 processes those activations "appropriately." This may mean that server 402 takes different actions in different cases. For example, server 402 calculates a loss value for each client 406, 408, 410, and then server 402 calculates the average loss across all clients. Server 402 performs backpropagation using the average losses to calculate the gradient at S. The server 402 sends the gradient at S (i.e., SB(406C, 408C, 410C)) to all clients 406, 408, and 410.

換言すれば、サーバ側402でのトレーニングは、上で説明したのとほとんど同じように進行する。サーバ側402の第1レイヤが「完了」になると(データプロバイダ406、408、410から受信したものを平均化または集約することにより)、ネットワークの「最上部」に到達するまで順伝播が発生する。本開示で説明される追加のイノベーションは、データプロバイダ406、408、410からのアクティベーションの管理、およびそれらがどのように平均化、集約、またはその他の処理を取得するかにある。システムがモデルの最上部に到達すると、サーバ402は逆伝播に必要な勾配を計算し、図4に示すように分割ネットワークを介してそれらを下方向に送り返す。 In other words, training on the server side 402 proceeds much the same as described above. Once the first layer on the server side 402 is "complete" (by averaging or aggregating what is received from data providers 406, 408, 410), forward propagation occurs until the "top" of the network is reached. An additional innovation described in this disclosure is in the management of activations from data providers 406, 408, 410 and how they get averaged, aggregated, or otherwise processed. Once the system reaches the top of the model, the server 402 calculates the gradients needed for backpropagation and sends them back down through the partitioned network as shown in Figure 4.

上述のように、サーバ402によるアクティベーションの処理および管理は、様々な要因に応じて変化する可能性がある。例えば、3つのデータプロバイダ406、408、410すべてが同じデータ(X線)を供給している場合を想定する。その場合、データは水平方向に組み合わせられ、これは、概念的には、データが他のファイルの上に「積み重ねられる」1つのファイルであることを意味し得る。この場合、発生するアクティベーションは平均化される可能性が高くなる。「各アクティベーションの平均」は、ネットワークの「上半分」に転送される。 As mentioned above, the processing and management of activations by server 402 can vary depending on a variety of factors. For example, consider the case where all three data providers 406, 408, 410 are supplying the same data (x-rays). In that case, the data is combined horizontally, which may conceptually mean that the data is one file "stacked" on top of other files. In this case, the activations that occur are more likely to be averaged out. The "average of each activation" is forwarded to the "top half" of the network.

別のケースでは、データを「垂直に」積み重ねることができるため、クライアント1 406は最初の40列のデータ(例えば、血液検査)を有し、クライアント2 408は次の60列のデータ(例えば、年齢、体重などのデータを含む電子健康記録)を有し、クライアント3 410は最後の100列のデータ(例えば、保険情報-以前の請求など)を有する。この例では、3つのクライアントが、200列の組み合わせられた「レコード」を確立していると見なすことができる(ページ全体で垂直方向に集約される)。この場合、アクティベーションは「垂直に組み合わせられ」、サーバネットワークに転送される。データを組み合わせるためのこのアプローチおよびその他のアプローチを実装できる。以下でより詳細に説明するマルチモーダル人工知能モデルは、アクティベーションを垂直方向に組み合わせることに関して説明しただけの概念に基づいていることに留意されたい。この概念の詳細については、以下で説明する。 In another case, data can be stacked "vertically" so that client 1 406 has the first 40 columns of data (e.g., blood tests), client 2 408 has the next 60 columns of data (e.g., electronic health record containing data such as age, weight, etc.), and client 3 410 has the last 100 columns of data (e.g., insurance information - previous claims, etc.). In this example, the three clients can be thought of as establishing a combined "record" of 200 columns (vertically aggregated across the page). In this case, activations are "vertically combined" and transferred to the server network. This and other approaches to combining data can be implemented. Note that the multimodal artificial intelligence model described in more detail below is based on the concept just described with respect to vertically combining activations. This concept is discussed in more detail below.

上述のように、クライアント406、408、410は、この実施形態では並行して動作する。これにより、すべての処理が並行して行われるため、モデルのトレーニングにかかる時間が短縮される。さらに、このデータは特定のプラットフォームを介して配信される。上記に組み込まれたアプリケーションは、本明細書で開示されるデータを配信するために使用できる特定のプラットフォームの例を提供する。これについては、以下で詳しく説明する。 As mentioned above, clients 406, 408, and 410 operate in parallel in this embodiment. This reduces the time it takes to train the model, as all processing occurs in parallel. Furthermore, this data is delivered via a specific platform. The applications incorporated above provide examples of specific platforms that can be used to deliver the data disclosed herein, which are described in more detail below.

連合分割学習におけるグローバルモデルは、次のように集約できる。トレーニングが完了すると、システムは次のアプローチを使用して、推論タスクに使用されるグローバルモデルを集約する。第1のアプローチでは、サーバはモデルAiの1つを選択し、そのモデルBと統合してグローバルモデルを形成する。Aiの選択は、次のいずれかの方法を使用して行うことができる。例えば、サーバが任意のクライアント406、408、410のモデル(Ai)をランダムに選択するランダム選択を使用することができる。このランダム選択は、現在オンラインで利用可能なクライアント、各クライアントが処理するデータのタイプ(テキストデータ、画像データ、時間データ)など、他の要因の影響を受けるか、または2つのエンティティ間の伝送速度またはネットワーク遅延に基づく可能性がある。次に、サーバはAiとBの両方の部分をスタックして、グローバルモデルを生成する。 The global model in federated partition learning can be aggregated as follows: Once training is complete, the system aggregates a global model to be used for inference tasks using the following approach: In the first approach, the server selects one of the models Ai and merges it with its model B to form the global model. The selection of Ai can be done using one of the following methods: For example, random selection can be used, where the server randomly selects a model (Ai) for any client 406, 408, 410. This random selection may be influenced by other factors, such as the clients currently available online, the type of data each client processes (text data, image data, time data), or may be based on the transmission speed or network latency between the two entities. The server then stacks both parts Ai and B to generate the global model.

別の例では、重み付けクライアント選択を使用できる。この選択基準について、サーバ402は、各クライアントに、それらのデータ、計算能力、およびトレーニングプロセス中に所有および貢献する他の価値ある資産に基づく重要性を反映する重み(すなわち、数値)を割り当てる。例えば、特定のモデルセット(特定の言語のデータ、画像のタイプに関連付けられたデータ、患者セットに関連付けられたデータ、特定の国または地域のデータなど)は、モデル開発で大きく重み付けされる可能性がある。したがって、国が選択されている場合、その国のクライアントデバイスは、他の国のクライアントよりも大きな重みを付けることができる。例えば、日本語ベースのクライアントデバイスは、モデルデータの80%に使用できる。オーストラリアが10%で、カナダが残りの10%である可能性がある。別の例では、インフルエンザやCOVIDの発生に関連する特定の診療所からのデータに、より大きな重みを付けることができる。さらに別の例では、データのタイプもよりも大きな重み付けをされる場合がある。画像データはモデルの70%に使用できるが、テキストデータは20%、時間データは10%である。 In another example, weighted client selection can be used. For this selection criterion, server 402 assigns each client a weight (i.e., a numerical value) that reflects importance based on their data, computing power, and other valuable assets they possess and contribute during the training process. For example, certain model sets (e.g., data in a particular language, data associated with a type of image, data associated with a patient set, data from a particular country or region, etc.) may be weighted more heavily in model development. Thus, if a country is selected, client devices in that country may be weighted more heavily than clients in other countries. For example, Japanese-based client devices may be used for 80% of the model data, while Australia may be 10% and Canada the remaining 10%. In another example, data from a particular clinic related to influenza or COVID outbreaks may be weighted more heavily. In yet another example, types of data may also be weighted more heavily. Image data may be used for 70% of the model, while text data may be 20% and time data may be 10%.

さらに別のモデルは、精度に基づく選択であり得る。この場合、サーバ402は、各クライアントモデルAiから生成された精度をテストし、「最良の」精度を生成するモデルを選択することができる。利害関係者は、機械学習のアプローチなどを通じて、「最良」を特定できる。これらはすべて第1のアプローチのモデルである。 Yet another model selection may be based on accuracy. In this case, the server 402 may test the accuracy generated from each client model Ai and select the model that produces the "best" accuracy. A stakeholder may identify the "best" through a machine learning approach, for example. These are all models of the first approach.

第2のアプローチは、すべてのクライアントのモデルAi{1,N}を平均することによってグローバルモデルを集約することであり得る。各クライアントは、最初に準同型暗号を使用してモデルを暗号化し、次に暗号化されたAi‘データをサーバ402に送信する。サーバ402は、すべての暗号化モデルを加算し、加算結果を復号し、それらの平均を計算する。次に、平均化されたAがBと積み上げられて、グローバルモデルが生成される。1つのアプローチをデフォルトのアプローチにすることも、オプションのアプローチを提供することもできる。復号プロセスと平均化プロセスは、異なるサーバ間で分散することもできる。例えば、1つのプロセスがクライアント側で発生し、別のプロセスがサーバ402によって実行されてグローバルモデルが達成される。 A second approach could be to aggregate a global model by averaging all client models Ai{1,N}. Each client first encrypts its model using homomorphic encryption and then sends the encrypted Ai' data to the server 402. The server 402 adds all encrypted models, decrypts the results, and calculates their average. The averaged A is then stacked with B to generate the global model. One approach could be the default approach, or an optional approach could be provided. The decryption and averaging processes could also be distributed across different servers. For example, one process occurs on the client side and another process is executed by the server 402 to achieve the global model.

アプローチは、モデルの開発を通じて異なってもよい。例えば、デフォルトのアプローチを使用してモデルのトレーニングを開始した後、重み付けアプローチを使用してモデルのトレーニングを完了するようにトレーニングを調整できる。 The approach may vary throughout the development of the model. For example, you can start training the model using the default approach, and then adjust the training to finish training the model using a weighting approach.

方法の例が図5に示され、サーバでニューラルネットワークを第1の部分と第2の部分に分割し(502)、第2の部分を第1のクライアントと第2のクライアントに別々に送信し(504)、閾値が満たされるまで、次の操作を実行することを含み得る。
(1)第1のクライアントおよび第2のクライアントにおいて、第2の部分に対して同時に順方向ステップを実行して、データSA1およびSA2を生成する。
(2)第1のクライアントと第2のクライアントからSA1とSA2をサーバに送信する。
(3)サーバにおいて、第1クライアントと第2クライアントの損失値を計算する。
(4)サーバにおいて、第1クライアントと第2クライアント全体の平均損失を計算する。
(5)サーバにおいて、平均損失を使用して逆伝播を実行し、勾配を計算する。
(6)サーバから勾配を第1のクライアントおよび第2のクライアントに送信する(506)。
An example method is shown in FIG. 5 and may include splitting the neural network into a first portion and a second portion at the server (502), separately transmitting the second portion to the first client and the second client (504), and performing the following operations until a threshold is met:
(1) At the first client and the second client, simultaneously perform a forward step on the second portion to generate data SA1 and SA2.
(2) The first and second clients send SA1 and SA2 to the server.
(3) The server calculates the loss values of the first and second clients.
(4) At the server, the average loss across the first and second clients is calculated.
(5) On the server, perform backpropagation using the average loss to compute the gradient.
(6) The gradients are sent from the server to the first client and the second client (506).

上記の操作を実行する1つまたは複数のコンピューティングデバイス、および実行時にプロセッサにこれらの操作を実行させる命令を格納するコンピュータ可読ストレージデバイスも対象とすることができる。操作は任意の順序で実行でき、方法には1つまたは複数の操作を含めることができる。 Also covered are one or more computing devices that perform the above operations, and computer-readable storage devices that store instructions that, when executed, cause a processor to perform these operations. The operations may be performed in any order, and a method may include one or more operations.

本開示の別の態様では、上記に組み込まれた特許出願に記載されているプラットフォームは、連合モデルのいずれかでデータをやり取りするための基礎を提供することができる。例えば、クライアントおよび/またはサーバのそれぞれは、プラットフォーム、または本明細書に組み込まれるアプリケーションで参照されるプラットフォームのバージョンの1つにログオンする必要がある場合がある。したがって、これらの出願に開示されているように構成されたプラットフォームまたは交換機構を介してこの機能を提供することも、本開示の一態様としてカバーされる。 In another aspect of the present disclosure, the platform described in the above-incorporated patent applications can provide the basis for exchanging data in any of the federated models. For example, each of the clients and/or servers may need to log on to the platform or one of the versions of the platform referenced in the applications incorporated herein. Thus, providing this functionality via a platform or exchange mechanism configured as disclosed in these applications is also covered as an aspect of the present disclosure.

別の態様では、顧客は、伝播する必要がある重み付けを表すSA、SBライン(ベクトルと数値)を選択できる。サーバはデータについて何も知らずにクライアントがデータをロックダウンしたい場合、そのデータは準同型暗号化できる。暗号化プロセス(任意の暗号化プロセスを含むことができる)は、上で開示した任意のアプローチで使用することができる。 Alternatively, the customer can select the SA and SB lines (vectors and numbers) that represent the weights that need to be propagated. If the client wants to lock down the data without the server knowing anything about it, the data can be homomorphically encrypted. The encryption process (which can include any encryption process) can be used with any of the approaches disclosed above.

上記の組み込まれた特許出願は、クライアントデバイスおよび/またはサーバがログインできる、または本明細書で開示されている連合分割学習アプローチを実行するためにログインする必要があるプラットフォームの例を提供する。 The above-incorporated patent applications provide examples of platforms to which client devices and/or servers can or must log in to implement the federated partitioned learning approach disclosed herein.

一態様では、本明細書で開示されるステップは「システム」によって実施できることに留意されたい。システムには、サーバと1つまたは複数のクライアントを一緒に含めることも、サーバによって機能的に実行されるだけでもよい。システムはまた、特定の地理的エリア内のクライアント、または本明細書で開示されるクライアントベースの機能を実行している何らかの方法でのクライアントグループなどの、クライアントまたはクライアントのグループであり得る。一態様では、「サーバ」は、サーバ側のコンピューティングデバイス(物理的または仮想的)、およびクライアント側のコンピューティングデバイス(物理的または仮想的)でもあり得る。一例では、サーバはクライアント側にあり、それぞれのクライアント側モデルAiの逆伝播出力を受け取ることができ、トレーニングのラウンドでクライアント側グローバルモデルを同期させることができる。 Note that in one aspect, the steps disclosed herein can be performed by a "system." A system can include a server and one or more clients together, or can simply be functionally performed by a server. A system can also be a client or a group of clients, such as clients in a particular geographic area, or a group of clients in some manner performing the client-based functionality disclosed herein. In one aspect, a "server" can be a server-side computing device (physical or virtual) and a client-side computing device (physical or virtual). In one example, the server is on the client side and can receive the backpropagation output of each client-side model Ai and can synchronize the client-side global model across training rounds.

したがって、サーバ側システムおよびクライアント側システムのそれぞれは、本明細書に開示された操作のうちの任意の1つまたは複数を実行することができる。本明細書に開示される任意の装置の観点から生じるステップを概説する請求項を含めることができる。例えば、データの送信、計算、および受信のステップは、対象となる実施形態に応じて、サーバデバイス、クライアントデバイス、またはクライアントデバイスのグループの観点から請求することができる。個々のコンポーネントまたはデバイスの観点からのそのような通信はすべて、そのデバイスに焦点を当てた特定の実施形態の範囲内に含めることができる。 As such, each of the server-side system and the client-side system may perform any one or more of the operations disclosed herein. Claims may be included that recite steps occurring from the perspective of any apparatus disclosed herein. For example, steps of transmitting, computing, and receiving data may be claimed from the perspective of a server device, a client device, or a group of client devices, depending on the embodiment under consideration. All such communications from the perspective of an individual component or device may be included within the scope of a particular embodiment focused on that device.

別の態様では、システムは、参照により組み込まれる特許出願に開示されているプラットフォームを含み、上記で開示した概念と連携してステップを実行することもできる。したがって、本明細書で説明する連合分割学習プロセスを提供するために使用されるプラットフォームも、本開示の実施形態であり、本明細書で説明するデータのプライバシーを維持する方法でモデルをトレーニングするためのそのプラットフォームの使用に関連してステップを列挙することができる。ここで。 In another aspect, the system may include a platform disclosed in the patent applications incorporated by reference and may perform steps in conjunction with the concepts disclosed above. Thus, a platform used to provide the federated partition learning process described herein is also an embodiment of the present disclosure, and steps may be recited relating to the use of that platform to train a model in a manner that maintains data privacy as described herein.

通常、ニューラルネットワークのトレーニングは同様のデータタイプで実行される。例えば、患者の画像または腎臓を受信して癌を識別するようにトレーニングされたニューラルネットワークは、癌性および癌性でない腎臓の画像でトレーニングされる。次に、本明細書で開示される連合分割学習アプローチを使用して、異なるタイプのトレーニングデータを一緒に使用してニューラルネットワークをトレーニングするトレーニングへの新しいアプローチについて説明する。 Typically, neural networks are trained on similar data types. For example, a neural network trained to receive images of patients or kidneys and identify cancer would be trained on images of cancerous and non-cancerous kidneys. Next, we describe a novel approach to training that uses different types of training data together to train a neural network using the federated split learning approach disclosed herein.

マルチモデル人工知能アプローチ
前述のように、MMAIのイノベーションは、連合分割学習の例で説明した「垂直集約」のアイデアに基づいている。この例は、同じタイプのデータ(画像(スタッキング用)または垂直方向に結合される表形式データ)を提供する3つのクライアント406、408、410すべてに関連する。発明者が垂直集計の概念を検討していたとき、これは異なるタイプのデータで実行できることに気付いた。例えば、クライアント1は画像を提供でき、クライアント2は血液検査を提供でき、クライアント3は医師のテキストメモを提供できる。大きな違いは、これらのデータタイプのすべてが異なるネットワークアーキテクチャを必要とすることである。この場合、システムの開発者は1つのネットワークを定義してから、サーバにそれを「分割」させることはできない。したがって、ソリューションの一部は、ユーザが各データプロバイダの「分割前」にネットワークを定義してから、サーバ上でネットワークと集約技術を定義できるようにすることである。このアプローチは、図6~10に示されている。
Multi-Model Artificial Intelligence Approach As mentioned above, MMAI's innovation is based on the idea of "vertical aggregation" described in the federated partitioning learning example. This example involves three clients 406, 408, and 410 all providing the same type of data: images (for stacking) or tabular data that are vertically joined. As the inventors explored the concept of vertical aggregation, they realized that it could be done with different types of data. For example, client 1 could provide images, client 2 could provide blood tests, and client 3 could provide doctor's text notes. The key difference is that all of these data types require different network architectures. In this case, the system developer cannot define one network and then have the server "partition" it. Therefore, part of the solution is to allow users to define the network "before partitioning" for each data provider and then define the network and aggregation techniques on the server. This approach is illustrated in Figures 6-10.

図6は、マルチモーダル人工知能(MMAI)プラットフォームまたは機械学習(ML)プラットフォーム600を示す。MMAIアプローチは、他のアプローチの計算要件と通信オーバーヘッドを削減する。さらに、トレーニング速度ははるかに高速であり、プロセスはモデルが非公開のままであるという事実を含め、データのプライバシーをはるかに高く維持する。 Figure 6 shows a multimodal artificial intelligence (MMAI) or machine learning (ML) platform 600. The MMAI approach reduces the computational requirements and communication overhead of other approaches. Furthermore, training speed is much faster, and the process maintains much higher data privacy, including the fact that the model remains private.

MMAIプラットフォーム600は、1つの大きなAIモデル内の複数のデータタイプにAI/ML技術を適用する。通常、正確な結果を得るには、データのタイプが異なれば、異なるAIネットワークアーキテクチャが必要になる。例えば、画像には通常、特別なフィルター(畳み込み)が必要であるが、テキストや音声には別の「時系列のような」処理が必要であり、表形式のデータは多くの場合、MLまたは順伝播型アーキテクチャで最適に機能する。問題は、画像はすべてのピクセルを一緒に見て様々な方法で「畳み込み」することによって最もよく理解されるのに対し、音声は特定の音の前後にあるもののコンテキストで(つまり、時系列データと同様の方法で)最もよく理解されるということなどである。これらの処理の違いにより、今日の「最先端」システムは通常、1つのデータタイプ(画像、テキスト、音声、表形式など)を処理する。 The MMAI platform 600 applies AI/ML techniques to multiple data types within one large AI model. Different types of data typically require different AI network architectures to achieve accurate results. For example, images typically require special filters (convolutions), while text and audio require different "time-series-like" processing, and tabular data often works best with ML or forward-propagation architectures. The problem is that images are best understood by looking at all the pixels together and "convolving" them in various ways, whereas audio is best understood in the context of what comes before and after a particular sound (i.e., in a manner similar to time-series data), etc. Due to these processing differences, today's "state-of-the-art" systems typically process one data type (image, text, audio, tabular, etc.).

ほとんどのAI研究者は、より独自のデータをモデルに追加することで「次世代」の精度を飛躍的に向上できることを認識している。これは本質的に、ケースの興味深い違いを発見するためのより多くのコンテキストをモデルに提供するために、より多くのデータをモデルに提供することと同じである。この概念の例は、ECG(心電図)データを調べることによって心房細動(A-fib)を診断するモデルである。このモデルは、ECGデータのみに基づいて一定レベルの精度に達することができるが、研究者が年齢、性別、身長、体重をECGデータに追加すると、モデルははるかに正確になる。精度が向上したのは、4つのデータタイプが追加されたことにより、モデルが「同等の」ECGのように見えるものをモデルがよりよく理解できるようになったためである。データの4つの項目または特性を追加すると、データをより細かくすることができる。 Most AI researchers recognize that adding more unique data to a model can dramatically improve its "next generation" accuracy. This is essentially the same as providing the model with more data to give it more context for discovering interesting differences between cases. An example of this concept is a model that diagnoses atrial fibrillation (A-fib) by examining ECG (electrocardiogram) data. This model can reach a certain level of accuracy based on the ECG data alone, but when researchers add age, gender, height, and weight to the ECG data, the model becomes much more accurate. The improvement in accuracy occurs because the addition of four data types gives the model a better understanding of what "equivalent" ECGs look like. Adding four items or characteristics of data allows the data to be more granular.

図6に示されるMMAIプラットフォーム600は、新世代の暗号化ツールセットを導入して、非公開データのトレーニングおよび保護を改善する。MMAIプラットフォーム600は、AI/MLモデルをトレーニングするために通常使用されるよりも多くのデータをモデルに提供し、データを拡張する。このアプローチでは、様々なデータタイプ、例えば、画像と表形式のデータ)を組み合わせることで、大量のデータが追加される。 The MMAI platform 600, shown in Figure 6, introduces a new generation of encryption toolset to improve the training and protection of private data. The MMAI platform 600 augments the data by providing the model with more data than is typically used to train AI/ML models. This approach adds large amounts of data by combining various data types (e.g., images and tabular data).

図6は、Wells Fargo銀行として示される第1の外部データソース602を示す。Wells Fargoのデータ602aは暗号化され(602b)、暗号化されたデータ602cのパッケージは非公開AIインフラストラクチャ603に送信される。第2の外部ソースデータ604は、Citibankとして示されている。Citibankのデータ604aは暗号化され(604b)、暗号化されたデータ604cのパッケージは非公開AIインフラストラクチャ603に送信される。第3の外部ソースデータ606は、Bank of Americaからのものとして示されている。Bank of Americaのデータ606aは暗号化され(606b)、暗号化されたデータ606cのパッケージは非公開AIインフラストラクチャ603に送信される。AIインフラストラクチャ603は、異なるソース602、604、606からのすべてのデータ610を非公開で調査、選択、および前処理する第1のモジュール608を含む。この例では、ソースのすべてが銀行として識別されるが、データの構造は異なり、それぞれのデータも異なる可能性がある。もちろん、データの外部ソース602、604、606のすべてが同じタイプ、すなわち銀行である必要はない。銀行の利用は一例である。外部ソース602、604、606は、例えば、病院、診療所、大学などであり得る。基本的な概念は、様々な異なる外部ソース602、604、606からのデータタイプが異なり得るということである。 Figure 6 shows a first external data source 602, shown as Wells Fargo Bank. Wells Fargo data 602a is encrypted (602b), and a package of encrypted data 602c is sent to a private AI infrastructure 603. A second external source of data 604 is shown as Citibank. Citibank data 604a is encrypted (604b), and a package of encrypted data 604c is sent to a private AI infrastructure 603. A third external source of data 606 is shown as coming from Bank of America. Bank of America data 606a is encrypted (606b), and a package of encrypted data 606c is sent to a private AI infrastructure 603. The AI infrastructure 603 includes a first module 608 that privately examines, selects, and pre-processes all data 610 from different sources 602, 604, 606. In this example, all of the sources are identified as banks, but the data may be structured differently and the respective data may be different. Of course, not all of the external sources of data 602, 604, 606 need to be of the same type, i.e., banks. The use of banks is an example. The external sources 602, 604, 606 could be, for example, hospitals, clinics, universities, etc. The basic concept is that the data types from the various different external sources 602, 604, 606 may be different.

非公開AIインフラストラクチャ603は、トレーニングのために受け取るデータ602c、604c、606cのすべてから関連する特徴を非公開で探索、選択、および前処理するコンポーネントを含むことができる。特徴612は、非公開AIインフラストラクチャ603におけるコンポーネントの処理から生じ得るデータ610のサブセットを表す。操作614、616では、AIインフラストラクチャ603は、選択されたデータ612で新しい深層モデルと統計モデルを非公開でトレーニングし、操作618で、画像、ビデオ、テキスト、および/または他のデータタイプを含む可能性がある任意の非公開データと機密データを予測する。次に、AIインフラストラクチャ603は、操作620で提示される新しいモデルへのアクセスを販売または許可することができる。 The private AI infrastructure 603 may include components that privately search for, select, and preprocess relevant features from all of the data 602c, 604c, and 606c received for training. Features 612 represent a subset of data 610 that may result from processing by components in the private AI infrastructure 603. In operations 614 and 616, the AI infrastructure 603 privately trains new deep and statistical models on the selected data 612, and in operation 618 predicts any private and sensitive data, which may include images, video, text, and/or other data types. The AI infrastructure 603 may then sell or license access to the presented new models in operation 620.

図7は、分割学習技術700の別の変形を示す。このアプローチでは、異なるタイプのデータに基づくトレーニングにブラインド相関プロセスを使用することで、コンピューティング要件と通信オーバーヘッドが低くなり、モデルのトレーニングが改善される。上記のA-fibモデルの例に基づいて構築すると、モデルのさらに多くのデータの別のソースは、モデルが考慮する各ケースの胸部X線を含めることである。残念ながら、X線画像の通常の処理は、表形式のECGデータの通常の処理と一貫性が無い。いくつかのマイナーな技術の追加により、上記で開示された分割連合学習ツールを使用して、この非互換性の問題に対処することができる。つまり、新しい命令をツールに提供して、既存のパイプラインで様々なデータタイプを処理できるようにすることができる。 Figure 7 shows another variation of the split learning technique 700. This approach uses a blind correlation process for training on different types of data, resulting in lower computational requirements and communication overhead, and improved model training. Building on the A-fib model example above, another source of even more data for the model would be to include a chest x-ray for each case considered by the model. Unfortunately, the typical processing of x-ray images is inconsistent with the typical processing of tabular ECG data. With some minor technical additions, the split federated learning tool disclosed above can be used to address this incompatibility issue; new instructions can be provided to the tool to enable it to process different data types within the existing pipeline.

この場合、ネットワークアーキテクチャの「自動」分割ではなく、このアイデアの変形により、ネットワークアーキテクト(つまり、アルゴリズムを開発するデータサイエンティスト)は、各データタイプに必要な特定のネットワークコンポーネントを指定できる。各データタイプには、そのデータタイプに関連するネットワークアーキテクチャレイヤが必要である(つまり、画像の畳み込みレイヤ、音声の再帰レイヤ/長短期記憶レイヤ、表形式データの順伝播型レイヤなど)。問題のデータタイプにそれぞれ固有のこれらの異なるレイヤは、「データサーバ」側で実行されるように指定される(それ自体の中の独立したネットワークとほとんど同じように)。各「独立したネットワーク」の最後のレイヤ(データタイプごと)は、そのアクティベーションを「分割を越えて」「サーバ側」に送信する。アルゴリズムサーバ側には、(データサーバ側からの)入ってくるアクティベーションを適切に処理する1つの一貫した「ネットワーク」がある。いくつかの点で、このアプローチは、(データサーバ側の)「ネットワークのアンサンブル」がアルゴリズムサーバ側で1つの最終的なネットワークに集約されることに似ている(最終的には、ネットワークの「アンサンブル」から最終的な「答え」を生成する)。 In this case, rather than an "automatic" split of the network architecture, a variation on this idea allows the network architect (i.e., the data scientist developing the algorithm) to specify the specific network components needed for each data type. Each data type requires network architecture layers relevant to that data type (i.e., a convolutional layer for images, a recurrent/long short-term memory layer for audio, a forward propagation layer for tabular data, etc.). These different layers, each specific to the data type in question, are specified to run on the "data server" side (much like an independent network within itself). The last layer of each "independent network" (per data type) sends its activations "across the split" to the "server side." On the algorithm server side, there is one coherent "network" that processes the incoming activations (from the data server side) appropriately. In some ways, this approach is similar to an "ensemble of networks" (on the data server side) being aggregated into one final network on the algorithm server side (which ultimately produces the final "answer" from the "ensemble" of networks).

分割ラーニングは、前述のように、深層学習ネットワークまたはニューラルネットワーク(NN)をクライアント側ネットワークAとサーバ側ネットワークBの2つの部分に分割できる協調型深層学習技術である。NNには、重み、バイアス、およびハイパーパラメータが含まれる。図7では、データが存在するクライアント702、704、706はネットワークのクライアント側部分のみにコミットし、サーバ710はネットワークのサーバ側部分にのみコミットする。クライアント側とサーバ側の部分が集合して、完全なネットワークNNを形成する。 As previously mentioned, split learning is a collaborative deep learning technique in which a deep learning network or neural network (NN) can be split into two parts: a client-side network A and a server-side network B. The NN includes weights, biases, and hyperparameters. In Figure 7, clients 702, 704, and 706, where data resides, commit only to the client-side part of the network, and server 710 commits only to the server-side part of the network. The client-side and server-side parts collectively form the complete network NN.

ネットワークのトレーニングは、一連の分散トレーニングプロセスによって行われる。順伝播と逆伝播は次のように行うことができる。生データを用いて、クライアント(例えばクライアント702)は、クライアント側ネットワーク702Aをカットレイヤまたは分割レイヤと呼ぶことができるネットワークの特定のレイヤまでトレーニングし、カットレイヤのアクティベーションをサーバ710に送信する。サーバ710は、クライアント702から受信したアクティベーションを用いて、NNの残りのレイヤをトレーニングする。これで、単一の順伝播ステップが完了する。同様のプロセスが、第2のクライアント704およびそのクライアント側ネットワーク704A、ならびにそのデータおよびサーバ710に送信される生成されたアクティベーションに対して並行して発生する。第3のクライアント706およびそのクライアント側ネットワーク706A、ならびにそのデータおよびサーバ710に送信される生成されたアクティベーションについて、さらに同様のプロセスが並行して発生する。 Network training is accomplished through a series of distributed training processes. Forward and backpropagation can occur as follows: Using raw data, a client (e.g., client 702) trains a client-side network 702A up to a particular layer of the network, which may be called a cut layer or partition layer, and sends the cut layer activations to the server 710. The server 710 uses the activations received from client 702 to train the remaining layers of the NN. This completes a single forward propagation step. A similar process occurs in parallel for a second client 704 and its client-side network 704A, and its data and generated activations, which are sent to the server 710. A further similar process occurs in parallel for a third client 706 and its client-side network 706A, and its data and generated activations, which are sent to the server 710.

次に、サーバ710は、カットレイヤまで逆伝播を実行し、アクティベーションの勾配をそれぞれのクライアント702、704、706に送信する。勾配により、各クライアント702、704、706は残りのネットワーク702A、704A、706A上で逆伝播を実行する。これにより、クライアント702、704、706とサーバ710との間の逆伝播の単一パスが完了する。 The server 710 then performs backpropagation up to the cut layer and sends the activation gradients to each of the clients 702, 704, and 706. Using the gradients, each client 702, 704, and 706 then performs backpropagation over the remaining network 702A, 704A, and 706A. This completes a single pass of backpropagation between the clients 702, 704, and 706 and the server 710.

この順伝播と逆伝播のプロセスは、ネットワークがすべての利用可能なクライアント702、704、706でトレーニングされ、その収束に達するまで続く。分割学習では、アーキテクチャ構成は、メインサーバ710に直接アクセスできる信頼できる当事者によって行われると想定される。この承認された当事者は、学習の開始時に(アプリケーションに基づく)MLモデルと(カットレイヤを見つける)ネットワーク分割を選択する。 This process of forward and backpropagation continues until the network has been trained on all available clients 702, 704, 706 and has reached convergence. In partitioned learning, the architecture configuration is assumed to be performed by a trusted party with direct access to the main server 710. This authorized party selects the ML model (based on the application) and the network partition (to find the cut layer) at the start of learning.

上述のように、本開示で導入される概念は、クライアント702、704、706に関連し、それぞれが異なるタイプのデータを提供するが、異なるタイプのデータが共通の関連付けを有する場合にも関係する。したがって、機械学習モデルの選択は、クライアント側で処理されているデータのタイプに基づくことができ、カットレイヤを見つけるプロセスは、データのタイプまたは異なるタイプのデータの不均衡にも依存する可能性がある。例えば、クライアント702、704、706にわたる広く異なるデータタイプの場合、カットレイヤは、クライアント側ネットワーク702A、704A、706A上に多かれ少なかれレイヤを有するように選択され得る。別の態様では、カットレイヤまたは分割レイヤの前のレイヤの数は、クライアントによって異なり得る。クライアント702は画像を処理しているものであり得、カットレイヤの前に8つのレイヤを必要とし、一方クライアント704はテキストを処理することができ、カットレイヤの前に4つのレイヤしか必要としない。この点に関して、カットレイヤのベクトル、アクティベーションまたはアクティベーションレイヤが、異なるタイプのデータを有する異なるクライアント702、704、706にわたって一貫している限り、クライアント側ネットワーク702A、704A、706Aのレイヤの数が同じであるという要件はない。 As mentioned above, the concepts introduced in this disclosure pertain to clients 702, 704, and 706, each providing different types of data, but also when the different types of data have common associations. Thus, the selection of a machine learning model can be based on the type of data being processed on the client side, and the process of finding a cut layer can also depend on the type of data or the imbalance of different types of data. For example, for widely different data types across clients 702, 704, and 706, the cut layer can be selected to have more or fewer layers on the client-side network 702A, 704A, and 706A. In another aspect, the number of layers before the cut layer or segmentation layer can vary by client. Client 702 may be processing images and require eight layers before the cut layer, while client 704 may be processing text and require only four layers before the cut layer. In this regard, there is no requirement that the number of layers on the client-side networks 702A, 704A, 706A be the same, as long as the cut layer vectors, activations, or activation layers are consistent across different clients 702, 704, 706 with different types of data.

複数のクライアント702、704、706との学習プロセスの同期は、集中型モードまたはピアツーピアモードのいずれかで行うことができる。集中型モードでは、サーバ710でトレーニングを開始する前に、クライアント702、704、706は、最新のトレーニングされたクライアントによってアップロードされた更新済みのクライアント側のモデルを保持する信頼できるサードパーティサーバ710からモデルパラメータをダウンロードすることによって、そのクライアント側モデル702A、704A、706Aを更新する。一方、ピアツーピアモードでは、クライアント702、704、706は、最新のトレーニングされたクライアントから直接ダウンロードすることによって、そのクライアント側モデルを更新する。前述のように、以前にトレーニングされたモデルは、そのモデルを更新する必要がある現在のクライアントとデータタイプが類似したものであり得る。例えば、類似性は、画像、テキストデータ、音声データ、ビデオデータ、時間データなどのデータに基づくことができる。したがって、どの以前にトレーニングされたクライアントモデルを使用してピアからダウンロードにするかについて、インテリジェントな選択があり得る。サーバ710による処理は、場合によっては、サーバ側での一部の処理と、クライアント側の連合サーバでの他の処理との間で分割することもできる。 Synchronization of the learning process with multiple clients 702, 704, 706 can be done in either centralized or peer-to-peer mode. In centralized mode, before initiating training on the server 710, clients 702, 704, 706 update their client-side models 702A, 704A, 706A by downloading model parameters from a trusted third-party server 710 that maintains updated client-side models uploaded by the most recently trained clients. In peer-to-peer mode, clients 702, 704, 706 update their client-side models by downloading directly from the most recently trained clients. As previously mentioned, the previously trained model may be similar in data type to the current client whose model needs to be updated. For example, similarity may be based on image, text data, audio data, video data, time data, etc. Thus, there may be intelligent selection of which previously trained client model to use for download from a peer. Processing by the server 710 may also be split, in some cases, between some processing on the server side and other processing on the client-side federated server.

上で紹介したように、クライアント1 702、クライアント2 704、およびクライアント3 706は、異なるデータタイプを有し得る。サーバ710は、ネットワークの2つの部分を作成し、1つの部分702A、704A、706Aをすべてのクライアント702、704、706に送信する。システムは、すべてのクライアントがネットワークの一部に保有データを送信するなど、精度条件または他の条件が満たされるまで特定のステップを繰り返し、出力をサーバ710に送信する。サーバ710は、各クライアントの損失値と、すべてのクライアントにわたる平均損失を計算する。サーバ710は、逆伝播中に計算した勾配の加重平均を使用してそのモデルを更新し、勾配をすべてのクライアント702、704、706に送り返すことができる。クライアント702、704、706は、サーバ710から勾配を受信し、各クライアント702、704、706は、クライアント側ネットワーク702A、704A、706A上で逆伝播を実行し、各クライアント側ネットワーク702A、704A、706Aについてそれぞれの勾配を計算する。次に、クライアント側ネットワーク702A、704A、706Aからのそれぞれの勾配をサーバ710に送り返すことができ、サーバ710は、クライアント側更新の平均化を行い、グローバルな結果をすべてのクライアント702、704、706に送り返す。 As introduced above, client 1 702, client 2 704, and client 3 706 may have different data types. The server 710 creates two portions of the network and sends one portion 702A, 704A, and 706A to all clients 702, 704, and 706. The system repeats certain steps until accuracy or other conditions are met, such as all clients sending their data to their portion of the network, and sends the output to the server 710. The server 710 calculates a loss value for each client and an average loss across all clients. The server 710 can update its model using a weighted average of the gradients calculated during backpropagation and send the gradients back to all clients 702, 704, and 706. The clients 702, 704, 706 receive the gradients from the server 710, and each client 702, 704, 706 performs backpropagation on the client-side networks 702A, 704A, 706A, calculating a respective gradient for each client-side network 702A, 704A, 706A. The respective gradients from the client-side networks 702A, 704A, 706A can then be sent back to the server 710, which averages the client-side updates and sends a global result back to all clients 702, 704, 706.

サーバ710の機能は、それぞれが異なる操作を実行するいくつかのサーバに分割することもできることに留意されたい(例えば、あるサーバによってそのモデルを更新し、それぞれが異なるエリアに位置する別のサーバによってローカルクライアントの更新を平均化するなど)。図7の場合、クライアント702、704、706はすべて、AIモデルを開発するために通常処理される、または処理されない、異なるタイプのデータを処理する。 Note that the functionality of server 710 could also be split across several servers, each performing different operations (e.g., one server updating the model and other servers each located in a different area averaging updates for local clients). In the case of Figure 7, clients 702, 704, and 706 all process different types of data that may or may not typically be processed to develop AI models.

例示の目的で、上記のA-fibモデルを使用してプロセスを説明できる。クライアント1 702はECGデータを有することができ、クライアント2 704はX線データを有することができ、クライアント3 706は遺伝子データを有することができる。図6に示すような形で、例えば、クライアント1 702は病院である可能性があり、クライアント2704は医療診断画像会社である可能性があり、クライアント3 706は銀行または金融機関である可能性がある。クライアントの1つは、定期的な検査のための病院への訪問と比較した、患者に関する進行的な情報などの時間ベースのデータを有することもできる。 For illustrative purposes, the process can be described using the A-fib model described above. Client 1 702 can have ECG data, Client 2 704 can have X-ray data, and Client 3 706 can have genetic data. As shown in FIG. 6, for example, Client 1 702 could be a hospital, Client 2 704 could be a medical diagnostic imaging company, and Client 3 706 could be a bank or financial institution. One of the clients could also have time-based data, such as progressive information about a patient compared to visits to the hospital for regular checkups.

図7に示されるアプローチは、システムが、レイヤの分割またはカットの前に、またはブラインド無相関化ブロック708に示されるように、ユーザが異なるデータタイプを「正しい」処理と一緒にすることを可能にする新しいユーザ命令をどのように実装できるかを示している。モデルのこれらの各部分は独立したものであり得、独立して動作する。一態様では、ブラインド相関ブロック708によって実行される処理は、サーバ710に転送されるアクティベーションレイヤまたはアクティベーションをもたらす。このアプローチは、クライアント702、704、706間のデータタイプの違いを加えた上で説明したアプローチに類似している。 The approach shown in Figure 7 illustrates how the system can implement new user instructions that allow the user to combine different data types with the "right" processing before splitting or cutting layers, or as shown in the blind decorrelation block 708. Each of these parts of the model can be independent and operate independently. In one aspect, the processing performed by the blind correlation block 708 results in an activation layer or activations that are forwarded to the server 710. This approach is similar to the approach described above with the addition of differences in data types between clients 702, 704, and 706.

サーバ710は、多数の方法のうちの1つでそれらのアクティベーションレイヤを組み合わせる。サーバ710は、それらを平均化することができるが(これも上述した)、それらを1つの長いアクティベーションレイヤに連結することもできる。別の態様では、サーバ710は、任意の数学的関数を適用して、アクティベーションレイヤの所望の組み合わせを達成することができる。次に、サーバ710は、任意の適切なネットワークアーキテクチャをさらに使用して、組み合わされたアクティベーションレイヤを処理することができる。一態様では、クライアント側のサーバは、勾配を受信し、勾配を平均して、様々なクライアント702、704、706のグローバルモデルを生成し、連結またはさらなる処理のためにグローバルモデルをサーバ710に送信できる。 The server 710 combines the activation layers in one of a number of ways. The server 710 can average them (also described above) or concatenate them into one long activation layer. In another aspect, the server 710 can apply any mathematical function to achieve the desired combination of activation layers. The server 710 can then further process the combined activation layers using any suitable network architecture. In one aspect, a client-side server can receive the gradients, average the gradients to generate a global model for the various clients 702, 704, 706, and send the global model to the server 710 for concatenation or further processing.

図6および図7に示されているアイデアは、分割連合学習ツールセットの拡張と適用を表し、異なるデータタイプをまとめてスーパーセットAIモデルにする既製ツールのプラットフォームを提供する。処理はすべて非公開で行うことができ、上記で参照した特許出願に記載されているように、提供物を市場に含めることもできる。 The ideas shown in Figures 6 and 7 represent an extension and application of the Partitioned Federated Learning toolset, providing a platform of off-the-shelf tools for combining different data types into superset AI models. All processing can be done privately, and offerings can also be included in the marketplace, as described in the above-referenced patent applications.

システムは異なるデータタイプを組み合わせることができるだけでなく、異なるAI/ML技術を組み合わせることもできる。例えば、クライアント1 702はCNN(畳み込みニューラルネットワーク)であり得、クライアント2 704はMLルーチン(すなわちXGBoost)であり得、クライアント3 706は異なる技術を適用することもできる。この点で、異なるAI/ML技術は異なるが、カットレイヤで結果として得られるデータが一貫しており、適切に構成されている限り、順伝播と逆伝播を行うことができ、モデルをトレーニングできる。 The system can not only combine different data types, but also different AI/ML techniques. For example, client 1 702 can be a CNN (convolutional neural network), client 2 704 can be an ML routine (i.e., XGBoost), and client 3 706 can apply a different technique. In this respect, different AI/ML techniques differ, but as long as the resulting data at the cut layer is consistent and properly structured, forward and back propagation can be performed to train the model.

MMAIアプローチがどのように機能するかを当業者が理解するのを助けるために、以下は、3つのデータプロバイダ702、704、706から来るデータタイプごとの実際のコマンドの例である。このコードはPythonの番号付け規則を使用しているため、builder0(データプロバイダ1 702からの表形式のデータ)で始まる。この例のbuilder1は、CTスキャンまたは画像データ用である。コマンドは、X線、MRI、および/またはその他の画像に対して同様である。builder2(データプロバイダ704から)はテキストデータである。「長期/短期記憶(long/short term memory)」の略である「lstm」コマンドに留意されたい。「サーバ」ビルダーコマンドは、分割の反対側の「最上部」で他の3つを集約するネットワークを定義する。
builder0=tb.NetworkBuilder()
builder0.add_dense_layer(100,120)
builder0.add_relu()
builder0.add_dense_layer(120,160)
builder0.add_relu()
builder0.add_dropout(0.25)
builder0.add_dense_layer(160,200)
builder0.add_relu()
builder0.add_split()
builder1=tb.NetworkBuilder()
builder1.add_conv2d_layer(1,32,3,1)
builder1.add_batchnorm2d(32)
builder1.add_relu()
builder1.add_max_pool2d_layer(2,2)
builder1.add_conv2d_layer(32,64,3,1)
builder1.add_batchnorm2d(64)
builder1.add_relu()
builder1.add_max_pool2d_layer(2,2)
builder1.add_flatten_layer()
builder1.add_split()
builder2=tb.NetworkBuilder()
builder2.add_lstm_layer(39,100,batch_first=True)
builder2.add_dense_layer(100,39)
builder2.add_split()
server_builder=tb.NetworkBuilder()
server_builder.add_dense_layer(60000,8000),
server_builder.add_relu()
server_builder.add_dense_layer(8000,1000),
server_builder.add_relu()
server_builder.add_dense_layer(1000,128),
server_builder.add_relu()
server_builder.add_dense_layer(128,1)
To help those skilled in the art understand how the MMAI approach works, below is an example of actual commands for each data type coming from the three data providers 702, 704, 706. This code uses Python numbering conventions, so it starts with builder 0 (tabular data from data provider 1 702). Builder 1 in this example is for CT scan or image data. Commands are similar for X-ray, MRI, and/or other images. Builder 2 (from data provider 704) is text data. Note the "lstm" command, which stands for "long/short term memory." The "server" builder command defines a network that aggregates the other three at the "top" on the other side of the split.
builder0=tb. NetworkBuilder()
builder0. add_dense_layer(100,120)
builder0. add_relu()
builder0. add_dense_layer(120,160)
builder0. add_relu()
builder0. add_dropout(0.25)
builder0. add_dense_layer(160,200)
builder0. add_relu()
builder0. add_split()
builder1=tb. NetworkBuilder()
builder1. add_conv2d_layer(1, 32, 3, 1)
builder1. add_batchnorm2d(32)
builder1. add_relu()
builder1. add_max_pool2d_layer(2,2)
builder1. add_conv2d_layer(32,64,3,1)
builder1. add_batchnorm2d(64)
builder1. add_relu()
builder1. add_max_pool2d_layer(2,2)
builder1. add_flatten_layer()
builder1. add_split()
builder2=tb. NetworkBuilder()
builder2. add_lstm_layer(39,100, batch_first=True)
builder2. add_dense_layer(100,39)
builder2. add_split()
server_builder=tb. NetworkBuilder()
server_builder. add_dense_layer(60000,8000),
server_builder. add_relu()
server_builder. add_dense_layer(8000,1000),
server_builder. add_relu()
server_builder. add_dense_layer(1000,128),
server_builder. add_relu()
server_builder. add_dense_layer(128,1)

図8は、クライアントの観点からMMAI概念を提供するための例示的な方法800を示している。この方法は、第1のデータソースから第1のデータタイプを有する第1のデータセットを受信すること(802)、第1のデータセットで第1のクライアント側ネットワークをトレーニングし、第1のアクティベーションを生成すること(804)、第2のデータソースから第2のデータタイプを有する第2のデータセットを受信すること(806)、および、第2のデータセットで第2のクライアント側ネットワークをトレーニングし、第2のアクティベーションを生成すること(808)を含む。 FIG. 8 illustrates an exemplary method 800 for providing an MMAI concept from a client's perspective. The method includes receiving a first data set having a first data type from a first data source (802), training a first client-side network with the first data set and generating first activations (804), receiving a second data set having a second data type from a second data source (806), and training a second client-side network with the second data set and generating second activations (808).

この方法は、第1のアクティベーションおよび第2のアクティベーションを、サーバ側ネットワークであって、勾配を生成するために第1のアクティベーションおよび第2のアクティベーションに基づいてトレーニングされるサーバ側ネットワークに送信すること(810)と、第1のクライアント側ネットワークおよび第2のクライアント側ネットワークで勾配を受信すること(812)と、をさらに含むことができる。第1のデータタイプおよび第2のデータタイプは、一方が画像ベースであり、他方が音声のようにテキストまたは時間ベースであるなど、異なるデータタイプであり得る。 The method may further include sending the first activations and the second activations to a server-side network (810), the server-side network being trained based on the first activations and the second activations to generate gradients, and receiving the gradients at the first client-side network and the second client-side network (812). The first data type and the second data type may be different data types, such as one being image-based and the other being text- or time-based, such as audio.

図9は、サーバ710および1つまたは複数のクライアント702、704、706の両方の観点からの例示的な方法900を示す。この方法は、ニューラルネットワークを第1のクライアント側ネットワーク、第2のクライアント側ネットワーク、およびサーバ側ネットワークに分割すること(902)、第1のクライアント側ネットワークを、第1のクライアントに送信することであって、第1のクライアント側ネットワークは、第1のクライアントからの第1のデータを処理するように構成され、第1のデータは第1のタイプを有し、第1のクライアント側ネットワークは少なくとも1つの第1のクライアント側レイヤを含むことができる、送信すること(904)、および、第2のクライアント側ネットワークを、第2のクライアントに送信することであって、第2のクライアント側ネットワークは、第2のクライアントからの第2のデータを処理するように構成され、第2のデータは第2のタイプを有し、第2のクライアント側ネットワークは少なくとも1つの第2のクライアント側レイヤを含むことができ、第1のタイプと第2のタイプは共通の関連付けを有する、送信すること(906)を含むことができる。 9 illustrates an exemplary method 900 from the perspective of both the server 710 and one or more clients 702, 704, 706. The method may include dividing the neural network into a first client-side network, a second client-side network, and a server-side network (902); transmitting the first client-side network to a first client, where the first client-side network is configured to process first data from the first client, the first data having a first type, and the first client-side network may include at least one first client-side layer (904); and transmitting the second client-side network to a second client, where the second client-side network is configured to process second data from the second client, the second data having a second type, and the second client-side network may include at least one second client-side layer, the first type and the second type having a common association (906).

この方法は、第1のクライアントからの第1のデータで第1のクライアント側ネットワークをトレーニングし、第1のアクティベーションを生成すること(908)、第1のクライアント側ネットワークからサーバ側ネットワークに第1のアクティベーションを送信すること(910)、第2のクライアントからの第2のデータで第2のクライアント側ネットワークをトレーニングし、第2のアクティベーションを生成すること(912)、第2のクライアント側ネットワークからサーバ側ネットワークに第2のアクティベーションを送信すること(914)、第1のアクティベーションおよび第2のアクティベーションに基づいてサーバ側ネットワークの少なくとも1つのサーバ側レイヤをトレーニングして勾配を生成すること(916)、および、勾配をサーバ側ネットワークから第1のクライアント側ネットワークおよび第2のクライアント側ネットワークに送信すること(918)をさらに含むことができる。 The method may further include training a first client-side network with first data from a first client to generate first activations (908), transmitting the first activations from the first client-side network to a server-side network (910), training a second client-side network with second data from a second client to generate second activations (912), transmitting the second activations from the second client-side network to the server-side network (914), training at least one server-side layer of the server-side network based on the first activations and the second activations to generate gradients (916), and transmitting the gradients from the server-side network to the first client-side network and the second client-side network (918).

異なるタイプのデータ間の共通の関連付けには、デバイス、人、消費者、患者、ビジネス、概念、病状、人々のグループ、プロセス、製品、および/またはサービスのうちの少なくとも1つを含めることができる。あらゆる概念、デバイス、または人は、様々なクライアントから取得され、様々な独立したクライアント側ネットワークによってカットまたは分割レイヤまで処理される、様々な異なるタイプのデータの共通の関連付けまたはテーマになる可能性がある。サーバ側ネットワークには、グローバル機械学習モデルを含めることができる。ニューラルネットワークには、重み、バイアス、およびハイパーパラメータを含めることができる。ハイパーパラメータは通常、トポロジパラメータやニューラルネットワークのサイズなど、学習プロセスを制御するために使用される値を持つパラメータに関連している。例えば、学習率、ミニバッチサイズ、クライアント側のレイヤ数、または様々なデータタイプに影響または関連するプロセスの制御に関連するパラメータは、ハイパーパラメータを表すことができる。 The common association between different types of data can include at least one of a device, a person, a consumer, a patient, a business, a concept, a medical condition, a group of people, a process, a product, and/or a service. Any concept, device, or person can be a common association or theme among various different types of data obtained from various clients and processed up to the cutting or splitting layer by various independent client-side networks. The server-side network can include a global machine learning model. The neural network can include weights, biases, and hyperparameters. Hyperparameters typically relate to parameters whose values are used to control the learning process, such as topology parameters or the size of the neural network. For example, the learning rate, mini-batch size, number of client-side layers, or parameters related to controlling processes that affect or relate to various data types can represent hyperparameters.

少なくとも1つの第1のクライアント側レイヤおよび少なくとも1つの第2のクライアント側レイヤはそれぞれ、同じ数のレイヤまたは異なる数のレイヤを含むことができる。それらは独立して動作するため、クライアント側ネットワークは、データを処理して、さらなるトレーニングのためにサーバ側ネットワークに渡すための適切な形式のベクトルまたはアクティベーションを生成する限り、異なる数のレイヤを持つことができる。サーバ側ネットワークと第1のクライアント側ネットワークおよび第2のクライアント側ネットワークとの間にカットレイヤが存在し得る。 The at least one first client-side layer and the at least one second client-side layer can each include the same number of layers or different numbers of layers. Because they operate independently, the client-side networks can have different numbers of layers as long as they process data and generate vectors or activations in the appropriate format to pass to the server-side network for further training. There may be cut layers between the server-side network and the first and second client-side networks.

図10は、サーバ710の観点から例示的な方法1000を示す。方法は、ニューラルネットワークを第1のクライアント側ネットワーク、第2のクライアント側ネットワーク、およびサーバ側ネットワークに分割すること(1002)、第1のクライアント側ネットワークを、第1のクライアントに送信することであって、第1のクライアント側ネットワークは、第1のクライアントからの第1のデータを処理するように構成され、第1のデータは第1のタイプを有し、第1のクライアント側ネットワークは少なくとも1つの第1のクライアント側レイヤを含むことができる、送信すること(1004)、および、第2のクライアント側ネットワークを、第2のクライアントに送信することであって、第2のクライアント側ネットワークは、第2のクライアントからの第2のデータを処理するように構成され、第2のデータは第2のタイプを有し、第2のクライアント側ネットワークは少なくとも1つの第2のクライアント側レイヤを含むことができ、第1のタイプと第2のタイプは共通の関連付けを有する、送信すること(1006)を含むことができる。 10 illustrates an exemplary method 1000 from the perspective of the server 710. The method may include dividing the neural network into a first client-side network, a second client-side network, and a server-side network (1002); transmitting the first client-side network to a first client, where the first client-side network is configured to process first data from the first client, the first data having a first type, and the first client-side network may include at least one first client-side layer (1004); and transmitting the second client-side network to a second client, where the second client-side network is configured to process second data from the second client, the second data having a second type, and the second client-side network may include at least one second client-side layer, and the first type and the second type have a common association (1006).

この方法は、サーバ側ネットワークで、第1のクライアントからの第1のデータでの第1のクライアント側ネットワークのトレーニングからの第1のアクティベーションを受信すること(1008)、サーバ側ネットワークで、第2のクライアントからの第2のデータでの第2のクライアント側ネットワークのトレーニングからの第2のアクティベーションを受信すること(1010)、第1のアクティベーションおよび第2のアクティベーションに基づいてサーバ側ネットワークの少なくとも1つのサーバ側レイヤをトレーニングして勾配を生成すること(1012)、および、勾配をサーバ側ネットワークから第1のクライアント側ネットワークおよび第2のクライアント側ネットワークに送信すること(1014)をさらに含むことができる。 The method may further include receiving, at the server-side network, first activations from training a first client-side network on first data from a first client (1008); receiving, at the server-side network, second activations from training a second client-side network on second data from a second client (1010); training at least one server-side layer of the server-side network based on the first activations and the second activations to generate gradients (1012); and transmitting the gradients from the server-side network to the first client-side network and the second client-side network (1014).

それぞれの場合において、トレーニングに関するサーバ710のプロセスの一部は、サーバ710によって実行することができ、様々なクライアントにわたる値の平均化などの他の部分は、クライアントサイト、別の場所、または異なるクライアントにまたがる可能性がある異なるサーバ(図示せず)によって実行できることに留意されたい。 Note that in each case, some of the server 710's processes related to training may be performed by the server 710, while other parts, such as averaging values across various clients, may be performed by a different server (not shown), which may be at the client site, at another location, or across different clients.

このアプローチにより、連合分割学習ツールセットを新しい方法で使用できるようになり、システムがニューラルネットワークを分割するときに、ブラインド相関708で、システムは、結果のトレーニング済みモデルを取得し、それを分割してトレーニング推論攻撃を適用することをより難しくすることができる。システムは、ニューラルネットワークを半分に(または2つの部分に)、上記の方法で分割することができるため、ニューラルネットワークの部分702A、704A、706Aから交換されるのは、アクティベーションレイヤ番号としても記述される数字の文字列または配列だけである。これらは単に数字または文字の配列であるため、第1のニューラルネットワーク部分702Aで起こることは、第2のニューラルネットワーク部分704Aで起こることとは異なる可能性がある。例えば、第1のニューラルネットワーク部分702Aは2レイヤの深さであり、第2のニューラルネットワーク部分704Aは90レイヤの深さであり得る。各出力が、ニューラルネットワーク710の上部に送信するために適切に構成された数時の列に解決される限り、順伝播と逆伝播が機能することができ、トレーニングが達成され得る。この理解は、ニューラルネットワークの異なる部分702A、704A、706Aで処理される異なるタイプのデータを受信し、モデルをトレーニングするために適切に処理できるという、本明細書で開示する新しい概念への道を開く。システムが異なるクライアントごとに異なる下半分702A、704A、706Aを作成できる場合、クライアント702、704、706は同じタイプのデータ(例えば、テキストと画像の間)を生成または処理する必要はなく、適切にフォーマットされたニューラルネットワーク部分702A、704A、706Aは、その異種データを処理し、サーバ710に送信できる構造化された出力を生成することができる。 This approach allows the federated partition learning toolset to be used in a new way: as the system partitions the neural network, with blind correlation 708, the system can take the resulting trained model and partition it to make it more difficult to apply training inference attacks. Because the system can partition the neural network in half (or into two parts) in the manner described above, all that is exchanged from neural network parts 702A, 704A, and 706A is a string or sequence of numbers, also described as activation layer numbers. Because these are simply sequences of numbers or letters, what happens in the first neural network part 702A can be different from what happens in the second neural network part 704A. For example, the first neural network part 702A may be two layers deep, while the second neural network part 704A may be 90 layers deep. As long as each output resolves to a properly configured sequence of numbers to send to the top of the neural network 710, forward and back propagation can work and training can be accomplished. This understanding paves the way for the novel concept disclosed herein, that different types of data to be processed by different portions 702A, 704A, 706A of the neural network can be received and processed appropriately to train the model. If the system can create different bottom halves 702A, 704A, 706A for different clients, the clients 702, 704, 706 do not need to generate or process the same types of data (e.g., between text and images), and the appropriately formatted neural network portions 702A, 704A, 706A can process that heterogeneous data and generate structured output that can be sent to the server 710.

一例では、クライアント1 702は人のECGを提供することができ、クライアント2 704は心臓の胸部X線を提供することができ、クライアント3 706は患者の血液中の最も関心のある4つのタンパク質の遺伝子プロファイルを提供することができる。ニューラルネットワーク部分702A、704A、706Aが、異なるそれぞれのタイプのデータを出力用の正しいベクトル構造まで処理し、異なるタイプのデータをサーバ710に提供できる場合、サーバ710は適切なニューラルネットワークで構成して、そのすべての情報を組み合わせて、異なるタイプのデータを利用できる診断を行うために使用されるモデルをトレーニングすることができる。 In one example, client 1 702 can provide a person's ECG, client 2 704 can provide a cardiac chest X-ray, and client 3 706 can provide a genetic profile of the four proteins of most interest in the patient's blood. If the neural network portions 702A, 704A, 706A can process each different type of data into the correct vector structure for output and provide the different types of data to server 710, server 710 can configure an appropriate neural network to combine all of that information and train a model that can be used to make a diagnosis that can utilize the different types of data.

一態様では、ニューラルネットワーク部分702A、704A、706Aはそれぞれ異なるタイプのデータを処理するが、データに関連するいくつかの相関因子が存在する。上記の例では、すべてのデータは一般的に同じ人物に関連している可能性があり、一部のデータはECG関連であり、他のデータは遺伝子プロファイルに関連付けられているが、それでもそれらはすべて同じ人物のものである。したがって、本開示の一態様は、データが共通の関連付けを有することである。別の態様では、データは同じ人物に関連していない可能性があるが、共通の関連付けは、年齢、性別、人種、プロジェクト、概念、気候、株式市場、またはその他の要因に関連している可能性がある。例えば、すべてのデータが30~35歳の女性に関連している可能性がある。したがって、共通の関連付けには、適用方法にある程度の柔軟性がある。 In one aspect, although neural network portions 702A, 704A, and 706A each process different types of data, there are some correlation factors associated with the data. In the example above, all of the data may generally relate to the same person; some data may be ECG-related and other data may be associated with genetic profiles, but they are all still from the same person. Thus, one aspect of the present disclosure is that the data have common associations. In another aspect, the data may not relate to the same person, but the common association may relate to age, gender, race, a project, concept, climate, stock market, or other factors. For example, all of the data may relate to women aged 30-35. Thus, the common associations have some flexibility in how they can be applied.

別の例では、データはジェットエンジンストリームのカメラからの画像であり得、別のデータストリームはセンサーデータであり得、他のデータは飛行機の飛行特性であり得、共通の関連付けは飛行機であり得る。別の態様では、共通の関連付けは、あるタイプのデータが購買習慣であり、別のタイプのデータがWebサーフィンパターンであり、別のタイプのデータがユーザが送信する電子メールであり、別のタイプのデータがSiriまたは他の音声処理ツールからの音声であり、別のタイプのデータが、消費者が頻繁に使用する物理的な店舗やユーザの現在の場所などである可能性がある。サーバの出力は、異なるタイプの入力の分析に基づいてユーザに提供する広告である可能性がある。したがって、共通の関連付けは、異なるタイプのデータが概念に関連し得る使用可能な任意の概念に関することができる。 In another example, the data could be images from a camera of a jet engine stream, another data stream could be sensor data, other data could be the flight characteristics of an airplane, and the common association could be the airplane. In another aspect, the common association could be one type of data being purchasing habits, another type of data being web surfing patterns, another type of data being emails sent by a user, another type of data being audio from Siri or other voice processing tools, another type of data being physical stores frequented by consumers, the user's current location, etc. The output of the server could be advertisements served to the user based on an analysis of the different types of input. Thus, the common association can relate to any available concept where different types of data can be related to the concept.

図11は、本明細書に開示されたシステムのいずれかに接続して使用することができるコンピュータ装置の例を示している。この例では、図11は、バスなどの接続1105を使用して互いに電気通信するコンポーネントを含むコンピューティングシステム1100を示している。システム1100は、処理ユニット(CPUまたはプロセッサ)1110と、読み出し専用メモリ(ROM)1120およびランダムアクセスメモリ(RAM)1125などのシステムメモリ1115を含む様々なシステムコンポーネントをプロセッサ1110に結合するシステム接続1105とを含む。システム1100は、プロセッサ1110に直接接続されるか、それと近接してあるか、またはその一部として統合されている、高速メモリのキャッシュを含むことができる。システム1100は、プロセッサ1110による迅速なアクセスのために、メモリ1115および/またはストレージデバイス1130からキャッシュ1112にデータをコピーすることができる。このようにして、キャッシュは、データを待っている間のプロセッサ1110の遅延を回避する性能向上を提供することができる。これらおよび他のモジュールは、プロセッサ1110を制御するか、または制御するように構成されて、様々なアクションを実行することができる。他のシステムメモリ1115も同様に使用可能であり得る。メモリ1115は、異なる性能特性を有する複数の異なるタイプのメモリを含むことができる。プロセッサ1110は、任意の汎用プロセッサと、プロセッサ1110を制御するように構成された、ストレージデバイス1130に格納されたサービス(モジュール)1 1132、サービス(モジュール)2 1134、およびサービス(モジュール)3 1136などの、ハードウェアまたはソフトウェアサービスまたはモジュール、ならびに、ソフトウェア命令が実際のプロセッサ設計に組み込まれている専用プロセッサを含むことができる。プロセッサ1110は、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含む、完全に自己完結型のコンピューティングシステムであり得る。マルチコアプロセッサは、対称または非対称であり得る。 FIG. 11 illustrates an example of a computing device that can be connected to and used with any of the systems disclosed herein. In this example, FIG. 11 illustrates a computing system 1100 including components that communicate electrically with each other using a connection 1105, such as a bus. The system 1100 includes a processing unit (CPU or processor) 1110 and system connections 1105 that couple various system components to the processor 1110, including system memory 1115, such as read-only memory (ROM) 1120 and random access memory (RAM) 1125. The system 1100 can include a cache of high-speed memory directly connected to, in close proximity to, or integrated as part of the processor 1110. The system 1100 can copy data from the memory 1115 and/or storage device 1130 to the cache 1112 for quick access by the processor 1110. In this manner, the cache can provide performance improvements that avoid delays to the processor 1110 while waiting for data. These and other modules can control, or be configured to control, the processor 1110 to perform various actions. Other system memory 1115 may be used as well. Memory 1115 may include multiple different types of memory with different performance characteristics. Processor 1110 may include any general-purpose processor, hardware or software services or modules, such as service (module) 1 1132, service (module) 2 1134, and service (module) 3 1136 stored on storage device 1130, configured to control processor 1110, as well as special-purpose processors in which software instructions are embedded in the actual processor design. Processor 1110 may be a completely self-contained computing system, including multiple cores or processors, buses, memory controllers, caches, etc. Multi-core processors may be symmetric or asymmetric.

デバイス1100とのユーザインタラクションを可能にするために、入力デバイス1145は、音声用のマイクロフォン、ジェスチャまたはグラフィック入力用のタッチ感知スクリーン、キーボード、マウス、モーション入力、音声など、任意の数の入力メカニズムを表すことができる。出力デバイス1135は、当業者に知られている多数の出力メカニズムのうちの1つまたは複数であってもよい。いくつかの例では、マルチモーダルシステムにより、ユーザは、デバイス1100と通信するために複数のタイプの入力を提供できるようになる。通信インタフェース1140は、一般に、ユーザ入力およびシステム出力を統制および管理することができる。特定のハードウェア構成での動作に制限はないため、ここでの基本機能は、開発されてくる改良されたハードウェアまたはファームウェア構成に簡単に置き換えることができる。 To enable user interaction with device 1100, input device 1145 can represent any number of input mechanisms, such as a microphone for audio, a touch-sensitive screen for gesture or graphical input, a keyboard, a mouse, motion input, voice, etc. Output device 1135 may be one or more of numerous output mechanisms known to those skilled in the art. In some examples, a multimodal system allows a user to provide multiple types of input to communicate with device 1100. Communications interface 1140 generally can orchestrate and manage user input and system output. There is no limitation to operation with a particular hardware configuration, and the basic functionality herein can be easily replaced with improved hardware or firmware configurations as they are developed.

ストレージデバイス1130は不揮発性メモリであり、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)1125、読み取り専用メモリ(ROM)1120、およびそれらのハイブリッドなど、コンピュータによってアクセス可能なデータを格納することができるハードディスクまたは他のタイプのコンピュータ可読媒体とすることができる。 Storage device 1130 is non-volatile memory and may be a hard disk or other type of computer-readable medium capable of storing data accessible by a computer, such as a magnetic cassette, a flash memory card, a solid-state memory device, a digital versatile disk, a cartridge, random access memory (RAM) 1125, read-only memory (ROM) 1120, and hybrids thereof.

ストレージデバイス1130は、プロセッサ1110を制御するためのサービスまたはモジュール1132、1134、1136を含むことができる。他のハードウェアまたはソフトウェアモジュールも考えられる。ストレージデバイス1130は、システム接続1105に接続することができる。一態様では、特定の機能を実行するハードウェアモジュールは、プロセッサ1110、接続1105、出力デバイス1135などの必要なハードウェアコンポーネントに関連してコンピュータ可読媒体に格納されたソフトウェアコンポーネントを含むことができ、機能を実行する。 Storage device 1130 may include services or modules 1132, 1134, 1136 for controlling processor 1110. Other hardware or software modules are also contemplated. Storage device 1130 may be connected to system connection 1105. In one aspect, hardware modules that perform specific functions may include software components stored on computer-readable media in association with the necessary hardware components, such as processor 1110, connection 1105, output device 1135, etc., to perform the functions.

いくつかの場合では、そのようなコンピューティングデバイスまたは装置は、プロセッサ、マイクロプロセッサ、マイクロコンピュータ、または上記で開示した方法のステップを実行するように構成されたデバイスの他のコンポーネントを含み得る。いくつかの例では、そのようなコンピューティングデバイスまたは装置は、RF信号を送信および受信するための1つまたは複数のアンテナを含み得る。いくつかの例では、そのようなコンピューティングデバイスまたは装置は、前述のように、RF信号を送信、受信、変調、および復調するためのアンテナおよびモデムを含み得る。 In some cases, such a computing device or apparatus may include a processor, microprocessor, microcomputer, or other component of a device configured to perform the steps of the methods disclosed above. In some examples, such a computing device or apparatus may include one or more antennas for transmitting and receiving RF signals. In some examples, such a computing device or apparatus may include an antenna and modem for transmitting, receiving, modulating, and demodulating RF signals, as described above.

コンピューティングデバイスのコンポーネントは、回路に実装することができる。例えば、コンポーネントは、1つまたは複数のプログラム可能な電子回路(例えば、マイクロプロセッサ、グラフィック処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、中央処理ユニット(CPU)、および/または他の適切な電子回路)を含み得る電子回路または他の電子ハードウェアを含み、および/またはそれらを使用して実装することができ、および/または、コンピュータソフトウェア、ファームウェア、またはそれらの任意の組み合わせを含み、および/またはそれらを使用して実装することができ、本明細書に記載されている様々な操作を実行することができる。コンピューティングデバイスは、ディスプレイ(出力デバイスの一例として、または出力デバイスに加えて)、データを通信および/または受信するように構成されたネットワークインタフェース、それらの任意の組み合わせ、および/または他のコンポーネント(複数可)をさらに含み得る。ネットワークインタフェースは、インターネットプロトコル(IP)ベースのデータまたは他のタイプのデータを通信および/または受信するように構成され得る。 Components of a computing device may be implemented in circuitry. For example, components may include and/or be implemented using electronic circuitry or other electronic hardware, which may include one or more programmable electronic circuits (e.g., a microprocessor, a graphics processing unit (GPU), a digital signal processor (DSP), a central processing unit (CPU), and/or other suitable electronic circuitry), and/or may include and/or be implemented using computer software, firmware, or any combination thereof, to perform the various operations described herein. A computing device may further include a display (as an example of an output device, or in addition to an output device), a network interface configured to communicate and/or receive data, any combination thereof, and/or other component(s). The network interface may be configured to communicate and/or receive Internet Protocol (IP)-based data or other types of data.

上述の方法は、論理フロー図として示され、その操作は、ハードウェア、コンピュータ命令、またはそれらの組み合わせで実装できる一連の操作を表している。コンピュータ命令のコンテキストでは、操作は、1つまたは複数のプロセッサによって実行されると、列挙された操作を実行する、1つまたは複数のコンピュータ可読ストレージ媒体に格納されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令には、特定の機能を実行する、または特定のデータタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。操作が記述される順序は限定として解釈されることを意図しておらず、記述された操作の任意の数を任意の順序でおよび/または並行して組み合わせてプロセスを実装することができる。 The methods described above are illustrated as logical flow diagrams, where the operations represent sequences of operations that can be implemented in hardware, computer instructions, or a combination thereof. In the context of computer instructions, the operations represent computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, etc. that perform particular functions or implement particular data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations can be combined in any order and/or in parallel to implement a process.

さらに、本明細書で開示される方法は、実行可能命令で構成された1つまたは複数のコンピュータシステムの制御下で実行することができ、1つまたは複数のプロセッサ上で集合的に実行されるコード(例えば、実行可能命令、1つまたは複数のコンピュータプログラム、または1つまたは複数のアプリケーション)として、ハードウェアによって、またはそれらの組み合わせで実装することができる。上述のように、コードは、例えば、1つまたは複数のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形式で、コンピュータ可読または機械可読ストレージ媒体に格納され得る。コンピュータ可読または機械可読ストレージ媒体は非一時的であってもよい。 Furthermore, the methods disclosed herein may be executed under the control of one or more computer systems configured with executable instructions and implemented as code (e.g., executable instructions, one or more computer programs, or one or more applications) collectively executed on one or more processors, by hardware, or a combination thereof. As noted above, the code may be stored on a computer-readable or machine-readable storage medium, for example, in the form of a computer program including a plurality of instructions executable by one or more processors. The computer-readable or machine-readable storage medium may be non-transitory.

「コンピュータ可読媒体」という用語は、ポータブルまたは非ポータブルストレージデバイス、光ストレージデバイス、ならびに命令(複数可)および/またはデータを格納、収容、または運ぶことができる様々な他の媒体を含むが、これらに限定されない。コンピュータ可読媒体は、データを格納することができ、無線または有線接続を介して伝播する搬送波および/または一時的な電子信号を含まない非一時的媒体を含むことができる。非一時的媒体の例には、磁気ディスクまたはテープ、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD)などの光ストレージ媒体、フラッシュメモリ、メモリまたはメモリデバイスが含まれ得るが、これらに限定されない。コンピュータ可読媒体は、手順、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または任意の命令、データ構造、またはプログラムステートメントの組み合わせを表すことができるコードおよび/または機械実行可能命令を格納していてもよい。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡し、および/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合することができる。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク伝送などを含む任意の適切な手段を介して受け渡し、転送、または送信することができる。 The term "computer-readable medium" includes, but is not limited to, portable or non-portable storage devices, optical storage devices, and various other media capable of storing, containing, or carrying instruction(s) and/or data. Computer-readable media can also include non-transitory media capable of storing data and that do not involve carrier waves and/or transitory electronic signals propagated via wireless or wired connections. Examples of non-transitory media may include, but are not limited to, magnetic disks or tapes, optical storage media such as compact discs (CDs) or digital versatile discs (DVDs), flash memory, and memory devices. Computer-readable media may store code and/or machine-executable instructions, which may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment can be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. can be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.

いくつかの実施形態では、コンピュータ可読ストレージデバイス、媒体、およびメモリは、ケーブルまたはビットストリームを含むワイヤレス信号などを含むことができる。しかしながら、言及された場合、非一時的なコンピュータ可読ストレージ媒体は、エネルギー、キャリア信号、電磁波、および信号自体などの媒体を明示的に除外する。 In some embodiments, computer-readable storage devices, media, and memories may include cables or wireless signals containing bitstreams, etc. However, when mentioned, non-transitory computer-readable storage media explicitly excludes media such as energy, carrier signals, electromagnetic waves, and signals themselves.

本明細書で提供される実施形態および例の完全な理解を提供するために、具体的な詳細が上記の説明で提供されている。しかしながら、これらの具体的な詳細なしに実施形態を実施できることは、当業者には理解されるであろう。説明を明確にするために、いくつかの例では、本技術は、ソフトウェア、またはハードウェアとソフトウェアの組み合わせで具現化された方法におけるデバイス、デバイスコンポーネント、ステップまたはルーチンを含む個々の機能ブロックを含むものとして提示され得る。図に示され、かつ/または本明細書に記載されたもの以外の追加のコンポーネントが使用されてもよい。例えば、回路、システム、ネットワーク、プロセス、および他のコンポーネントは、不必要な詳細で実施形態を不明瞭にしないために、ブロック図形式のコンポーネントとして示される場合がある。他の例では、周知の回路、プロセス、アルゴリズム、構造、および技術は、実施形態を不明瞭にすることを避けるために、不必要な詳細なしに示される場合がある。 Specific details are provided in the above description to provide a thorough understanding of the embodiments and examples provided herein. However, those skilled in the art will understand that embodiments may be practiced without these specific details. For clarity of explanation, in some instances, the technology may be presented as including individual functional blocks, including devices, device components, steps, or routines in methods embodied in software, or a combination of hardware and software. Additional components other than those shown in the figures and/or described herein may be used. For example, circuits, systems, networks, processes, and other components may be shown as components in block diagram form so as not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail so as to avoid obscuring the embodiments.

個々の実施形態は、フローチャート、フロー図、データフロー図、構造図、またはブロック図として示されるプロセスまたは方法として上記で説明され得る。フローチャートでは操作を順次処理として説明している場合があるが、多くの操作は並行して、または同時に実行できる。さらに、操作の順序を並べ替えることもできる。プロセスは、その操作が完了すると終了するが、図に含まれていない追加のステップを含めることができる。プロセスは、方法、関数、手順、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応する場合、その終了は、呼び出し関数またはメイン関数への関数の戻りに対応し得る。 Particular embodiments may be described above as a process or method that is depicted as a flowchart, flow diagram, data flow diagram, structure diagram, or block diagram. While a flowchart may describe operations as sequential, many operations may be performed in parallel or simultaneously. In addition, the order of operations may be rearranged. A process terminates when its operations are completed, but may include additional steps not included in the diagram. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination may correspond to a return of the function to the calling function or the main function.

上述の例によるプロセスおよび方法は、格納された、またはコンピュータ可読媒体から利用可能なコンピュータ実行可能命令を使用して実施することができる。そのような命令は、例えば、汎用コンピュータ、専用コンピュータ、または処理装置に特定の機能または機能群を実行させる、またはそうでなければ構成する命令およびデータを含むことができる。使用されるコンピュータリソースの一部は、ネットワーク経由でアクセスできる。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語、ファームウェア、ソースコードなどの中間フォーマット命令であり得る。説明された例による方法中に命令、使用される情報、および/または作成された情報を格納するために使用され得るコンピュータ可読媒体の例には、磁気または光ディスク、フラッシュメモリ、不揮発性メモリを備えたUSBデバイス、ネットワーク化されたストレージデバイスなどが含まれる。 The processes and methods according to the above-described examples may be implemented using computer-executable instructions stored on or available from a computer-readable medium. Such instructions may include, for example, instructions and data that cause or otherwise configure a general-purpose computer, special-purpose computer, or processing device to perform a particular function or group of functions. Some of the computer resources used may be accessible over a network. The computer-executable instructions may be, for example, intermediate format instructions such as binary, assembly language, firmware, or source code. Examples of computer-readable media that may be used to store instructions, information used, and/or information created during the methods according to the described examples include magnetic or optical disks, flash memory, USB devices with non-volatile memory, networked storage devices, etc.

これらの開示によるプロセスおよび方法を実装するデバイスは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組み合わせを含むことができ、様々なフォームファクタのいずれかを取ることができる。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装される場合、必要なタスクを実行するためのプログラムコードまたはコードセグメント(例えば、コンピュータプログラム製品)は、コンピュータ可読または機械可読媒体に格納することができる。プロセッサ(複数可)は、必要なタスクを実行できる。フォームファクタの典型的な例には、ラップトップ、スマートフォン、携帯電話、タブレットデバイス、またはその他の小型フォームファクタのパーソナルコンピュータ、携帯情報端末、ラックマウントデバイス、スタンドアロンデバイスなどが含まれる。本明細書で説明する機能は、周辺機器またはアドインカードで具現化することもできる。さらなる例として、そのような機能は、単一のデバイスで実行される異なるチップまたは異なるプロセスの中で回路基板上に実装することもできる。 Devices implementing the processes and methods according to these disclosures may include hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof, and may take any of a variety of form factors. When implemented in software, firmware, middleware, or microcode, the program code or code segments (e.g., a computer program product) to perform the necessary tasks may be stored on a computer-readable or machine-readable medium. A processor(s) may perform the necessary tasks. Typical examples of form factors include laptops, smartphones, mobile phones, tablet devices, or other small form factor personal computers, personal digital assistants, rack-mounted devices, standalone devices, etc. The functionality described herein may also be embodied in a peripheral device or an add-in card. As a further example, such functionality may be implemented on a circuit board among different chips or different processes executed on a single device.

命令、そのような命令を伝達するための媒体、それらを実行するためのコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構造は、本開示で説明する機能を提供するための例示的な手段である。 The instructions, media for communicating such instructions, computing resources for executing them, and other structures for supporting such computing resources are exemplary means for providing the functionality described in this disclosure.

前述の説明では、本出願の態様をその特定の実施形態を参照して説明したが、本出願はそれに限定されないことを当業者は理解するであろう。したがって、本出願の例示的な実施形態が本明細書で詳細に説明されたが、本発明の概念は、別の方法で様々に具現化および使用され得ること、および添付の特許請求の範囲は、先行技術により限定されることを除いて、そのような変形を含むように解釈されることが意図されることが理解されるべきである。上述の出願の様々な特徴および態様は、個別にまたは一緒に使用することができる。さらに、実施形態は、本明細書のより広い趣旨および範囲から逸脱することなく、本明細書に記載されているものを超えて、任意の数の環境および用途で利用することができる。したがって、明細書および図面は、限定的なものではなく、例示的なものと見なされるべきである。説明のために、方法は特定の順序で説明された。代替実施形態では、説明した順序とは異なる順序で方法を実行できることを理解されたい。 While the foregoing description describes aspects of the present application with reference to specific embodiments thereof, those skilled in the art will recognize that the present application is not limited thereto. Accordingly, while exemplary embodiments of the present application have been described in detail herein, it should be understood that the inventive concepts may be otherwise embodied and used in various ways, and that the appended claims are intended to be construed to include such variations except as limited by the prior art. Various features and aspects of the above-described application may be used individually or together. Moreover, the embodiments may be utilized in any number of environments and applications beyond those described herein without departing from the broader spirit and scope of the present specification. Accordingly, the specification and drawings are to be regarded as illustrative, and not restrictive. For purposes of illustration, methods have been described in a particular order. It should be understood that in alternative embodiments, methods may be performed in an order different from that described.

当業者は、本明細書で使用されるより小さい(「<」)およびより大きい(「>」)記号または用語を、この説明の範囲から逸脱することなく、以下(「≦」)および以上(「≧」)記号にそれぞれ置き換えることができることを理解するであろう。 Those skilled in the art will understand that the less than ("<") and greater than (">") symbols or terms used herein may be replaced with the less than or equal to ("≦") and greater than or equal to ("≧") symbols, respectively, without departing from the scope of this description.

コンポーネントが特定の操作を実行するように「構成されている」と説明されている場合、そのような構成は、例えば、その操作を実行する電子回路または他のハードウェアを設計することによって、プログラム可能な電子回路(例えば、マイクロプロセッサ、または他の適切な電子回路)をプログラミングして操作を実行することによって、またはそれらの任意の組み合わせで達成することができる。 When a component is described as being "configured" to perform a particular operation, such configuration may be achieved, for example, by designing electronic circuitry or other hardware to perform the operation, by programming programmable electronic circuitry (e.g., a microprocessor or other suitable electronic circuitry) to perform the operation, or any combination thereof.

「結合された」という語句は、別のコンポーネントに直接的または間接的に物理的に接続されている任意のコンポーネント、および/または別のコンポーネントと直接的または間接的に通信している(例えば、有線または無線接続および/または他の適切な通信インタフェースを介して他のコンポーネントに接続されている)任意のコンポーネントを指す。 The term "coupled" refers to any component that is directly or indirectly physically connected to another component and/or that is in direct or indirect communication with another component (e.g., connected to the other component via a wired or wireless connection and/or other suitable communication interface).

セットの「少なくとも1つ」および/またはセットの「1つまたは複数」を列挙する請求項文言または他の文言は、セットの1つの部材またはセットの複数の部材(任意の組み合わせ)が請求項を満たすことを示す。例えば、「AおよびBの少なくとも1つ」または「AまたはBの少なくとも1つ」を列挙する請求項文言は、A、B、またはAおよびBを意味する。別の例では、「A、B、およびCの少なくとも1つ」または「A、B、またはCの少なくとも1つ」を列挙する請求項文言は、A、B、C、またはAとB、またはAとC、またはBとC、またはAとBとCを意味する。セットの「少なくとも1つ」および/またはセットの「1つまたは複数」という文言は、セットを、セットに列挙されている項目に限定しない。例えば、「AとBの少なくとも1つ」または「AまたはBの少なくとも1つ」を列挙する請求項文言は、A、B、またはAとBを意味することができ、AとBのセットに列挙されていない項目をさらに含むことができる。 Claim language or other language reciting "at least one" of a set and/or "one or more" of a set indicates that one member of the set or multiple members of the set (in any combination) satisfies the claim. For example, claim language reciting "at least one of A and B" or "at least one of A or B" means A, B, or A and B. As another example, claim language reciting "at least one of A, B, and C" or "at least one of A, B, or C" means A, B, C, or A and B, or A and C, or B and C, or A, B, and C. The language "at least one" of a set and/or "one or more" of a set does not limit the set to the items listed in the set. For example, claim language reciting "at least one of A and B" or "at least one of A or B" can mean A, B, or A and B, and can further include items not recited in the set of A and B.

添付の特許請求の範囲内の態様を説明するために様々な例および他の情報が使用されたが、当業者はこれらの例を使用して様々な実装形態を導き出すことができるため、そのような例の特定の特徴または配置に基づいて、特許請求の範囲を限定することを暗示すべきではない。さらに、いくつかの主題は、構造的特徴および/または方法ステップの例に固有の言語で説明された可能性があるが、添付の特許請求の範囲で定義される主題は、これらの説明された特徴または行為に必ずしも限定されないことが理解されるべきである。例えば、そのような機能は、本明細書で識別されたもの以外のコンポーネントで異なる方法で分散または実行することができる。むしろ、説明された特徴およびステップは、添付の特許請求の範囲内のシステムのコンポーネントおよび方法の例として開示されている。 While various examples and other information have been used to describe aspects within the scope of the appended claims, those skilled in the art may use these examples to derive various implementations, and therefore no limitation of the claims should be implied based on the specific features or arrangements of such examples. Furthermore, while some subject matter may have been described in language specific to example structural features and/or method steps, it should be understood that the subject matter defined in the appended claims is not necessarily limited to these described features or acts. For example, such functionality may be distributed or performed in a different manner by components other than those identified herein. Rather, the described features and steps are disclosed as example components of systems and methods within the scope of the appended claims.

セットの「少なくとも1つ」を列挙する請求項文言は、セットの1つの部材またはセットの複数の部材が請求項を満たすことを示す。例えば、「AとBの少なくとも1つ」を列挙する請求項文言は、A、B、またはAとBを意味する。 Claim language reciting "at least one" of a set indicates that one member of the set or multiple members of the set satisfy the claim. For example, claim language reciting "at least one of A and B" means A, B, or A and B.

Claims (20)

サーバのプロセッサが、ニューラルネットワークを第1のクライアント側ネットワーク、第2のクライアント側ネットワーク、およびサーバ側ネットワークに分割することと、
前記サーバのプロセッサが、前記第1のクライアント側ネットワークを、第1のクライアントに送信することであって、前記第1のクライアントのプロセッサが、前記第1のクライアント側ネットワークによって、前記第1のクライアントからの第1のデータを処理するように構成され、前記第1のデータは第1のタイプを有し、前記第1のクライアント側ネットワークは少なくとも1つの第1のクライアント側レイヤを含む、送信することと、
前記サーバのプロセッサが、前記第2のクライアント側ネットワークを、第2のクライアントに送信することであって、前記第2のクライアントのプロセッサが、前記第2のクライアント側ネットワークによって、前記第2のクライアントからの第2のデータを処理するように構成され、前記第2のデータは第2のタイプを有し、前記第2のクライアント側ネットワークは少なくとも1つの第2のクライアント側レイヤを含み、前記第1のタイプと前記第2のタイプは異なるタイプであるが、共通の関連付けを有する、送信することと、
前記第1のクライアントのプロセッサが、前記第1のクライアントからの第1のデータで前記第1のクライアント側ネットワークをトレーニングし、第1のアクティベーションを生成することと、
前記第1のクライアントのプロセッサが、前記第1のクライアント側ネットワークから前記サーバ側ネットワークに前記第1のアクティベーションを送信することと、
前記第2のクライアントのプロセッサが、前記第2のクライアントからの第2のデータで前記第2のクライアント側ネットワークをトレーニングし、第2のアクティベーションを生成することと、
前記第2のクライアントのプロセッサが、前記第2のクライアント側ネットワークから前記サーバ側ネットワークに前記第2のアクティベーションを送信することと、
前記サーバのプロセッサが、前記第1のアクティベーションおよび前記第2のアクティベーションに基づいて前記サーバ側ネットワークの少なくとも1つのサーバ側レイヤをトレーニングして勾配を生成することと、
前記サーバのプロセッサが、前記勾配を前記サーバ側ネットワークから前記第1のクライアント側ネットワークおよび前記第2のクライアント側ネットワークに送信することと、
を含む、方法。
a processor of the server dividing the neural network into a first client-side network, a second client-side network, and a server-side network;
a processor of the server transmitting the first client-side network to a first client, wherein a processor of the first client is configured to process first data from the first client via the first client-side network, the first data having a first type, and the first client-side network including at least one first client-side layer;
a processor of the server transmitting the second client-side network to a second client, wherein a processor of the second client is configured to process second data from the second client via the second client-side network, the second data having a second type, the second client-side network including at least one second client-side layer, and the first type and the second type being different types but having a common association;
a processor of the first client training the first client-side network with first data from the first client to generate a first activation;
a processor of the first client transmitting the first activation from the first client-side network to the server-side network;
a processor of the second client training the second client-side network with second data from the second client to generate second activations;
a processor of the second client transmitting the second activation from the second client-side network to the server-side network;
a processor of the server training at least one server-side layer of the server-side network based on the first activations and the second activations to generate gradients;
a processor of the server transmitting the gradients from the server-side network to the first client-side network and the second client-side network;
A method comprising:
前記共通の関連付けが、デバイス、人、消費者、患者、ビジネス、概念、病状、人々のグループ、プロセス、製品および/またはサービスのうちの少なくとも1つを含む、請求項1に記載の方法。 The method of claim 1, wherein the common association includes at least one of a device, a person, a consumer, a patient, a business, a concept, a medical condition, a group of people, a process, a product, and/or a service. 前記サーバ側ネットワークがグローバル機械学習モデルを含む、請求項1に記載の方法。 The method of claim 1, wherein the server-side network includes a global machine learning model. 前記ニューラルネットワークが、重み、バイアス、およびハイパーパラメータを含む、請求項1に記載の方法。 The method of claim 1, wherein the neural network includes weights, biases, and hyperparameters. 前記少なくとも1つの第1のクライアント側レイヤおよび前記少なくとも1つの第2のクライアント側レイヤが、同じ数のレイヤまたは異なる数のレイヤを含む、請求項1に記載の方法。 The method of claim 1, wherein the at least one first client-side layer and the at least one second client-side layer include the same number of layers or different numbers of layers. 前記サーバ側ネットワークと前記第1のクライアント側ネットワークおよび前記第2のクライアント側ネットワークとの間にカットレイヤが存在する、請求項1に記載の方法。 The method of claim 1, wherein a cut layer exists between the server-side network and the first and second client-side networks. 前記第1のタイプがテキストデータを含み、前記第2のタイプが画像データを含む、請求項1に記載の方法。 The method of claim 1, wherein the first type includes text data and the second type includes image data. 前記第1のクライアント側ネットワークおよび前記第2のクライアント側ネットワークは独立しており、独立して動作する、請求項7に記載の方法。 The method of claim 7, wherein the first client-side network and the second client-side network are independent and operate independently. 前記第1のタイプが表データを含み、前記第2のタイプが画像データを含む、請求項1に記載の方法。 The method of claim 1, wherein the first type includes tabular data and the second type includes image data. システムであって、
プロセッサと、
コンピュータ可読ストレージデバイスであって、前記プロセッサによって実行されると、前記プロセッサに、
ニューラルネットワークを第1のクライアント側ネットワーク、第2のクライアント側ネットワーク、およびサーバ側ネットワークに分割することと、
前記第1のクライアント側ネットワークを、第1のクライアントに送信することであって、前記第1のクライアント側ネットワークは、前記第1のクライアントからの第1のデータを処理するように構成され、前記第1のデータは第1のタイプを有し、前記第1のクライアント側ネットワークは少なくとも1つの第1のクライアント側レイヤを含む、送信することと、
前記第2のクライアント側ネットワークを、第2のクライアントに送信することであって、前記第2のクライアント側ネットワークは、前記第2のクライアントからの第2のデータを処理するように構成され、前記第2のデータは第2のタイプを有し、前記第2のクライアント側ネットワークは少なくとも1つの第2のクライアント側レイヤを含み、前記第1のタイプと前記第2のタイプは異なるタイプであるが、共通の関連付けを有する、送信することと、
前記サーバ側ネットワークで、前記第1のクライアントからの第1のデータでの前記第1のクライアント側ネットワークのトレーニングからの第1のアクティベーションを受信することと、
前記サーバ側ネットワークで、前記第2のクライアントからの第2のデータでの前記第2のクライアント側ネットワークのトレーニングからの第2のアクティベーションを受信することと、
前記第1のアクティベーションおよび前記第2のアクティベーションに基づいて前記サーバ側ネットワークの少なくとも1つのサーバ側レイヤをトレーニングして勾配を生成することと、
前記勾配を前記サーバ側ネットワークから前記第1のクライアント側ネットワークおよび前記第2のクライアント側ネットワークに送信することと、
を含む、操作を実行させる命令を格納するコンピュータ可読ストレージデバイスと、
を含む、システム。
1. A system comprising:
a processor;
10. A computer-readable storage device that, when executed by the processor, causes the processor to:
Dividing the neural network into a first client-side network, a second client-side network, and a server-side network;
transmitting the first client-side network to a first client, the first client-side network configured to process first data from the first client, the first data having a first type, and the first client-side network including at least one first client-side layer;
transmitting the second client-side network to a second client, the second client-side network configured to process second data from the second client, the second data having a second type, the second client-side network including at least one second client-side layer, the first type and the second type being different types but having a common association;
receiving, at the server-side network, a first activation from training the first client-side network with first data from the first client;
receiving, at the server-side network, second activations from training the second client-side network with second data from the second client;
training at least one server-side layer of the server-side network based on the first activations and the second activations to generate gradients;
transmitting the gradient from the server-side network to the first client-side network and the second client-side network;
a computer-readable storage device storing instructions for performing operations, including:
Including, the system.
前記共通の関連付けが、デバイス、人、消費者、患者、ビジネス、概念、病状、人々のグループ、プロセス、製品および/またはサービスのうちの少なくとも1つを含む、請求項10に記載のシステム。 The system of claim 10, wherein the common association includes at least one of a device, a person, a consumer, a patient, a business, a concept, a medical condition, a group of people, a process, a product, and/or a service. 前記サーバ側ネットワークがグローバル機械学習モデルを含む、請求項10に記載のシステム。 The system of claim 10, wherein the server-side network includes a global machine learning model. 前記ニューラルネットワークが、重み、バイアス、およびハイパーパラメータを含む、請求項10に記載のシステム。 The system of claim 10, wherein the neural network includes weights, biases, and hyperparameters. 前記少なくとも1つの第1のクライアント側レイヤおよび前記少なくとも1つの第2のクライアント側レイヤが、同じ数のレイヤまたは異なる数のレイヤを含む、請求項10に記載のシステム。 The system of claim 10, wherein the at least one first client-side layer and the at least one second client-side layer include the same number of layers or different numbers of layers. 前記サーバ側ネットワークと前記第1のクライアント側ネットワークおよび前記第2のクライアント側ネットワークとの間にカットレイヤが存在する、請求項10に記載のシステム。 The system of claim 10, wherein a cut layer exists between the server-side network and the first and second client-side networks. 前記第1のタイプおよび前記第2のタイプが異なるタイプのデータである、請求項10に記載のシステム。 The system of claim 10, wherein the first type and the second type are different types of data. 前記第1のタイプが表データまたは時系列データを含み、前記第2のタイプが画像データを含む、請求項10に記載のシステム。 The system of claim 10, wherein the first type includes tabular data or time series data, and the second type includes image data. サーバのプロセッサが、ニューラルネットワークを第1のクライアント側ネットワーク、第2のクライアント側ネットワーク、およびサーバ側ネットワークに分割することと、
前記サーバのプロセッサが、前記第1のクライアント側ネットワークを、第1のクライアントに送信することであって、前記第1のクライアントのプロセッサが、前記第1のクライアント側ネットワークによって、前記第1のクライアントからの第1のデータを処理するように構成され、前記第1のデータは第1のタイプを有し、前記第1のクライアント側ネットワークは少なくとも1つの第1のクライアント側レイヤを含む、送信することと、
前記サーバのプロセッサが、前記第2のクライアント側ネットワークを、第2のクライアントに送信することであって、前記第2のクライアントのプロセッサが、前記第2のクライアント側ネットワークによって、前記第2のクライアントからの第2のデータを処理するように構成され、前記第2のデータは第2のタイプを有し、前記第2のクライアント側ネットワークは少なくとも1つの第2のクライアント側レイヤを含み、前記第1のタイプと前記第2のタイプは異なるタイプであるが、共通の関連付けを有する、送信することと、
前記サーバのプロセッサが、前記サーバ側ネットワークで、前記第1のクライアントからの第1のデータでの前記第1のクライアント側ネットワークのトレーニングからの第1のアクティベーションを受信することと、
前記サーバのプロセッサが、前記サーバ側ネットワークで、前記第2のクライアントからの第2のデータでの前記第2のクライアント側ネットワークのトレーニングからの第2のアクティベーションを受信することと、
前記サーバのプロセッサが、前記第1のアクティベーションおよび前記第2のアクティベーションに基づいて前記サーバ側ネットワークの少なくとも1つのサーバ側レイヤをトレーニングして勾配を生成することと、
前記サーバのプロセッサが、前記勾配を前記サーバ側ネットワークから前記第1のクライアント側ネットワークおよび前記第2のクライアント側ネットワークに送信することと、
を含む、方法。
a processor of the server dividing the neural network into a first client-side network, a second client-side network, and a server-side network;
a processor of the server transmitting the first client-side network to a first client, wherein a processor of the first client is configured to process first data from the first client via the first client-side network, the first data having a first type, and the first client-side network including at least one first client-side layer;
a processor of the server transmitting the second client-side network to a second client, wherein a processor of the second client is configured to process second data from the second client via the second client-side network, the second data having a second type, the second client-side network including at least one second client-side layer, and the first type and the second type being different types but having a common association;
a processor of the server receiving, at the server-side network, a first activation from training the first client-side network with first data from the first client;
a processor of the server receiving, at the server-side network, second activations from training the second client-side network with second data from the second client;
a processor of the server training at least one server-side layer of the server-side network based on the first activations and the second activations to generate gradients;
a processor of the server transmitting the gradients from the server-side network to the first client-side network and the second client-side network;
A method comprising:
前記第1のタイプおよび前記第2のタイプは異なるタイプのデータである、請求項18に記載の方法。 The method of claim 18, wherein the first type and the second type are different types of data. 前記第1のタイプが表データまたは時系列データを含み、前記第2のタイプが画像データを含む、請求項10に記載のシステム。 The system of claim 10 , wherein the first type comprises tabular or time series data and the second type comprises image data.
JP2022567077A 2020-05-06 2021-05-06 SYSTEM AND METHOD FOR PROVIDING A PRIVATE MULTIMODAL ARTIFICIAL INTELLIGENCE PLATFORM - Patent application Active JP7780203B2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063020930P 2020-05-06 2020-05-06
US63/020,930 2020-05-06
US17/180,475 US12149510B1 (en) 2019-12-13 2021-02-19 Systems and methods for providing a private multi-modal artificial intelligence platform
US17/180,475 2021-02-19
PCT/US2021/031012 WO2021226302A1 (en) 2020-05-06 2021-05-06 Systems and methods for providing a private multi-modal artificial intelligence platform

Publications (2)

Publication Number Publication Date
JP2023524289A JP2023524289A (en) 2023-06-09
JP7780203B2 true JP7780203B2 (en) 2025-12-04

Family

ID=78468414

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022567077A Active JP7780203B2 (en) 2020-05-06 2021-05-06 SYSTEM AND METHOD FOR PROVIDING A PRIVATE MULTIMODAL ARTIFICIAL INTELLIGENCE PLATFORM - Patent application

Country Status (5)

Country Link
EP (1) EP4147178A4 (en)
JP (1) JP7780203B2 (en)
KR (1) KR20230005900A (en)
CA (1) CA3177679A1 (en)
WO (1) WO2021226302A1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116419257A (en) * 2021-12-29 2023-07-11 华为技术有限公司 A communication method and device
EP4470010A1 (en) * 2022-01-26 2024-12-04 Koninklijke Philips N.V. Systems and methods for restricting rights to an electrocardiogram processing system
CN118633336A (en) * 2022-02-24 2024-09-10 华为技术有限公司 Method and apparatus for adaptively exchanging artificial intelligence/machine learning parameters
CN114841926B (en) * 2022-04-13 2025-07-22 杭州电子科技大学 Tooth disease classification method based on federal learning
CN114840759B (en) * 2022-05-11 2025-06-27 北京奇艺世纪科技有限公司 A recommendation method, device and computer readable storage medium
WO2024087146A1 (en) * 2022-10-28 2024-05-02 Huawei Technologies Co., Ltd. Systems and methods for executing vertical federated learning
CN116151370B (en) * 2023-04-24 2023-07-21 西南石油大学 A Model Parameter Optimal Selection System
JP2025186089A (en) * 2024-06-11 2025-12-23 Nttアドバンステクノロジ株式会社 Processing device, processing method, and program

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170372201A1 (en) 2016-06-22 2017-12-28 Massachusetts Institute Of Technology Secure Training of Multi-Party Deep Neural Network

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12026219B2 (en) 2019-12-13 2024-07-02 TripleBlind, Inc. Systems and methods for efficient computations on split data and split algorithms

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170372201A1 (en) 2016-06-22 2017-12-28 Massachusetts Institute Of Technology Secure Training of Multi-Party Deep Neural Network

Also Published As

Publication number Publication date
CA3177679A1 (en) 2021-11-11
WO2021226302A1 (en) 2021-11-11
EP4147178A4 (en) 2023-10-18
JP2023524289A (en) 2023-06-09
EP4147178A1 (en) 2023-03-15
KR20230005900A (en) 2023-01-10

Similar Documents

Publication Publication Date Title
JP7780203B2 (en) SYSTEM AND METHOD FOR PROVIDING A PRIVATE MULTIMODAL ARTIFICIAL INTELLIGENCE PLATFORM - Patent application
US20230006977A1 (en) Systems and methods for secure averaging of models for federated learning and blind learning using secure multi-party computation
US11681951B2 (en) Semantic learning in a federated learning system
US12149510B1 (en) Systems and methods for providing a private multi-modal artificial intelligence platform
US11461593B2 (en) Federated learning of clients
CN114731274A (en) Secure federation of distributed stochastic gradient descent
US20220414661A1 (en) Privacy-preserving collaborative machine learning training using distributed executable file packages in an untrusted environment
US12088565B2 (en) Systems and methods for privacy preserving training and inference of decentralized recommendation systems from decentralized data
Karuppiah et al. RETRACTED ARTICLE: Secured storage and disease prediction of E-health data in cloud
US11521091B2 (en) Leveraging correlation across agents for enhanced distributed machine learning
US20230186168A1 (en) Performing automated tuning of hyperparameters in a federated learning environment
US20230196115A1 (en) Superseded federated learning
US20230252277A1 (en) Systems and methods for enabling the training of sequential models using a blind learning approach applied to a split learning
WO2023038930A1 (en) Systems and methods for averaging of models for federated learning and blind learning using secure multi-party computation
WO2023038978A1 (en) Systems and methods for privacy preserving training and inference of decentralized recommendation systems from decentralized data
US12288157B2 (en) Systems and methods for quantifying data leakage from a split layer
US20230244914A1 (en) Systems and methods for training predictive models on sequential data using 1-dimensional convolutional layers in a blind learning approach
US12388799B1 (en) Systems and methods for providing a split inference approach to protect data and model
WO2023039001A1 (en) Systems and methods for providing a split inference approach to protect data and model
US20260111860A1 (en) Low communication distributed systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240507

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20240903

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20250228

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20250523

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20250724

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250820

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20251021

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20251114

R150 Certificate of patent or registration of utility model

Ref document number: 7780203

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150