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

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

▶ プレサーゲン プロプライアトリー リミテッドの特許一覧

特表2022-549806非集中型人工知能(AI)/機械学習トレーニングシステム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-29
(54)【発明の名称】非集中型人工知能(AI)/機械学習トレーニングシステム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20221121BHJP
   G06N 3/08 20060101ALI20221121BHJP
【FI】
G06N20/00
G06N3/08
【審査請求】未請求
【予備審査請求】有
(21)【出願番号】P 2022518179
(86)(22)【出願日】2020-09-23
(85)【翻訳文提出日】2022-05-20
(86)【国際出願番号】 AU2020000108
(87)【国際公開番号】W WO2021056043
(87)【国際公開日】2021-04-01
(31)【優先権主張番号】2019903539
(32)【優先日】2019-09-23
(33)【優先権主張国・地域又は機関】AU
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
(71)【出願人】
【識別番号】521441320
【氏名又は名称】プレサーゲン プロプライアトリー リミテッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ホール,ジョナサン マイケル マクギリブレー
(72)【発明者】
【氏名】ペルジーニ,ドナート
(72)【発明者】
【氏名】ペルジーニ,ミシェル
(72)【発明者】
【氏名】グエン,トゥック ヴァン
(72)【発明者】
【氏名】ジョンストン,エイドリアン
(57)【要約】
トレーニングデータ(例えば医用画像)が複数のサイト(ノード)にわたって分散され、機密性、法的、または他の理由により、各サイトにおけるデータは共有されることもサイトを離れることもできないためトレーニングのために中央ロケーションにコピーされることができない、人工知能(AI)モデルをトレーニングするための非集中型トレーニングプラットフォームが説明される。この方法は、各ノードにおいてローカルに教師モデルをトレーニングし、次いで、教師モデルの各々を中央ノードに移動させ、これらを使用して、転送データセットを使用して学生モデルをトレーニングすることを含む。これは、ノード間の領域間ピアリング接続を使用してクラウドサービスをセットアップし、これらのノードが単一のクラスタとして見えるようにすることによって容易になされ得る。一変形形態では、学生モジュールは、複数のトレーニングされた教師モデルを使用して各ノードにおいてトレーニングされ得る。別の変形形態では、複数の学生モデルをトレーニングし、ここで、各学生モデルは、教師モデルがトレーニングされたノードで各教師モデルによってトレーニングされ、複数の学生モデルがトレーニングされると、複数のトレーニングされた学生モデルからアンサンブルモデルが生成される。精度および時間/コスト効率を向上させるために、損失関数の重み付けと、負荷分散を可能にするノードアンダーサンプリングとが使用され得る。
【特許請求の範囲】
【請求項1】
複数のノードを含む分散データセットに対して人工知能(AI)モデルをトレーニングするための方法であって、各ノードはノードデータセットを含み、前記ノードは他のノードデータセットにアクセスすることが防止され、方法は、
複数のトレーニングされた教師モデルを生成することと、ここで、各教師モデルは、前記ノードデータセットに対してノードにおいてローカルにトレーニングされたディープニューラルネットワークモデルであり、
前記複数のトレーニングされた教師モデルを中央ノードに移動させることと、ここで、教師モデルを移動させることは、前記教師モデルを表す重みのセットを前記中央ノードに送信することを含み、
知識蒸留を使用して、前記複数のトレーニングされた教師モデルおよび転送データセットを使用して学生モデルをトレーニングすることと
を含む方法。
【請求項2】
前記複数のトレーニングされた教師モデルを中央ノードに移動させる前に、前記モデルがトレーニングされた前記ノードからのプライベートデータを前記モデルが含まないことをチェックするために、各トレーニングされた教師ノートに対してコンプライアンスチェックが実行される、請求項1に記載の方法。
【請求項3】
前記転送データセットは、前記複数のノードデータセットから引き出された合意された転送データである、請求項1または2に記載の方法。
【請求項4】
前記転送データセットは、複数のノード転送データセットから構成される分散データセットであり、ノード転送データセットはノードにローカルである、請求項1または2に記載の方法。
【請求項5】
前記転送データセットは、前記複数のノードデータセットから引き出された合意された転送データと、複数のノード転送データセットとの混合であり、ノードローカル転送データセットはノードにローカルである、請求項1または2に記載の方法。
【請求項6】
前記ノードは、別々の地理的に隔離されたローカリティにわたって存在する、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記学生モデルをトレーニングすることは、
前記ノードデータセットを使用して前記ノードの各々において前記複数のトレーニングされた教師モデルを使用して前記学生モデルをトレーニングすること
を含む、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記複数のトレーニングされた教師モデルを使用して前記学生モデルをトレーニングする前に、前記方法は、
前記ノードの各々の間に複数の領域間ピアリング接続を確立することによって、前記学生モデルをトレーニングするための単一のトレーニングクラスタを形成すること
をさらに含み、ここで、前記転送データセットは、前記ノードデータセットの各々を含む、
請求項7に記載の方法。
【請求項9】
前記ノードの各々において前記学生モデルをトレーニングした後、前記学生モデルがマスタノードに送られ、前記学生モデルのコピーが前記ノードの各々に送られてワーカノードとして割り当てられ、前記マスタノードは各バッチ後にすべてのワーカノードの前記重みを収集して平均化して前記学生モデルを更新する、請求項7または8に記載の方法。
【請求項10】
前記学生モデルを前記マスタノードに送る前に、前記モデルがトレーニングされた前記ノードからのプライベートデータを前記モデルが含まないことをチェックするために、前記学生モデルに対してコンプライアンスチェックが実行される、請求項9に記載の方法。
【請求項11】
前記学生モデルをトレーニングすることは、
複数の学生モデルをトレーニングすること
を含み、ここで、各学生モデルは、前記学生モデルを別のノードに移動させ、前記ノードデータセットを使用して前記ノードにおける前記教師モデルを使用して前記学生モデルをトレーニングすることによって、他のノードにおける複数の教師モデルによってトレーニングされる第1のノードにおける教師モデルであり、前記複数の学生モデルがそれぞれトレーニングされると、前記複数のトレーニングされた学生モデルからアンサンブルモデルが生成される、
請求項1から10のいずれか一項に記載の方法。
【請求項12】
複数の学生モデルをトレーニングする前に、
前記ノードの各々の間に複数の領域間ピアリング接続を確立することによって、前記学生モデルをトレーニングするための単一のトレーニングクラスタを形成すること
をさらに含む、請求項11に記載の方法。
【請求項13】
前記学生モデルを別のノードに移動させる前に、前記モデルがトレーニングされた前記ノードからのプライベートデータを前記モデルが含まないことをチェックするために、前記学生モデルに対してコンプライアンスチェックが実行される、請求項11または12に記載の方法。
【請求項14】
各学生モデルは、所定の閾値数のノードにおいてトレーニングされた後にトレーニングされる、請求項11に記載の方法。
【請求項15】
各学生モデルは、少なくとも閾値数のノードにおいて所定量のデータに対してトレーニングされた後にトレーニングされる、請求項11に記載の方法。
【請求項16】
各学生モデルは、前記複数のノードの各々においてトレーニングされた後にトレーニングされる、請求項11に記載の方法。
【請求項17】
前記アンサンブルモデルは、平均投票法を用いて取得される、請求項11に記載の方法。
【請求項18】
前記アンサンブルモデルは、加重平均を使用して取得される、請求項11に記載の方法。
【請求項19】
前記アンサンブルモデルは、エキスパート層の混合(学習された重み付け)を使用して取得される、請求項11に記載の方法。
【請求項20】
前記アンサンブルモデルは、蒸留法を使用して取得され、最終モデルは前記複数の学生モデルから蒸留される、請求項11に記載の方法。
【請求項21】
モデルに対してコンプライアンスチェックを実行することは、前記モデルが前記データの特定の例を記憶しているかどうかをチェックすることを含む、請求項2、10または13に記載の方法。
【請求項22】
前記コンプライアンスチェックがFALSE値を返す場合、前記コンプライアンスチェックを満たすモデルが取得されるまで、前記モデルは異なるパラメータを用いて前記データに対して再トレーニングされ、またはN回試行してもモデルが取得されない場合、前記モデルを破棄するか、もしくはデータポリシーが前記それぞれのノードからのデータの暗号化共有を許可する場合には、前記モデルを暗号化して前記モデルを共有する、請求項21に記載の方法。
【請求項23】
重み付けを使用して蒸留損失関数を調整し、各ノードにおけるデータポイントの数の差を補償することをさらに含む、請求項1から22のいずれか一項に記載の方法。
【請求項24】
前記蒸留損失関数は以下の形態を有し、
Loss(x,y)=CrossEntropyLoss(S(x),y)+D(S(x),T(x))
ここで、CrossEntropyLossは損失関数であり、xは最小化されるべきトレーニングデータのバッチを表し、yは前記バッチxの各要素に関連するターゲット(グランドトゥルース値)であり、S(x)およびT(x)は前記学生モデルおよび前記教師モデルから取得された分布であり、Dは発散メトリックである、
請求項23に記載の方法。
【請求項25】
エポックは、各ノードデータセットの完全なトレーニングパスを含み、各エポックの間に、各ワーカは、利用可能なサンプルデータセットのサブセットをサンプリングし、前記サブセットのサイズは、最小データセットのサイズに基づき、エポックの数は、前記最小データセットのサイズに対する最大データセットのサイズの比に基づいて増加される、請求項1から24のいずれか一項に記載の方法。
【請求項26】
前記複数のノードはk個のクラスタに分けられ、ここで、kはノードの総数よりも小さく、請求項1から25のいずれか一項に記載の方法が各クラスタにおいて別々に実行されてk個のクラスタモデルが生成され、各クラスタモデルはクラスタ代表ノードに記憶され、請求項1から25のいずれか一項に記載の方法が前記k個のクラスタ代表ノードで実行され、前記複数のノードは前記k個のクラスタ代表ノードを含む、請求項1から25のいずれか一項に記載の方法。
【請求項27】
ノードの1つまたは複数の追加の層が作成され、各下位層は、前の層における前記クラスタ代表ノードをj個のクラスタに分けることによって生成され、ここで、jは前の層におけるクラスタ代表ノードの数よりも小さく、次いで、請求項1から25のいずれか一項に記載の方法が各クラスタにおいて別々に実行されてj個のクラスタモデルが生成され、各クラスタモデルはクラスタ代表ノードに記憶され、請求項1から25のいずれか一項に記載の方法がj個のクラスタ代表ノードで実行され、前記複数のノードは前記j個のクラスタ代表ノードを含む、請求項26に記載の方法。
【請求項28】
各ノードデータセットは、1つまたは複数の医用画像または医療診断データセットを含む医療データセットである、請求項1から27のいずれか一項に記載の方法。
【請求項29】
前記トレーニングされた人工知能(AI)モデルを展開することをさらに含む、請求項1から28のいずれか一項に記載の方法。
【請求項30】
分散データセットに対して人工知能(AI)モデルをトレーニングするためのクラウドベースの計算システムであって、
複数のローカル計算ノードと、ここで、各ローカル計算ノードは、1つまたは複数のプロセッサと、1つまたは複数のメモリと、1つまたは複数のネットワークインターフェースと、ローカルノードデータセットを記憶する1つまたは複数のストレージデバイスとを備え、前記ローカルノードデータセットへのアクセスが前記それぞれのローカル計算ノードに限定され、
1つまたは複数のプロセッサと、1つまたは複数のメモリと、1つまたは複数のネットワークインターフェースと、1つまたは複数のストレージデバイスとを備える少なくとも1つのクラウドベースの中央ノードと、
を備え、ここで、少なくとも1つのクラウドベースの中央ノードは、前記複数のローカルノードと通信しており、
前記複数のローカル計算ノードおよび前記少なくとも1つのクラウドベースの中央ノードの各々は、請求項1から29のいずれか一項に記載の方法を実施して、前記ローカルノードデータセットから形成された分散データセットに対して人工知能(AI)モデルをトレーニングするように構成される、
システム。
【請求項31】
前記複数のローカル計算ノードのうちの1つまたは複数はクラウドベースの計算ノードである、請求項30に記載のシステム。
【請求項32】
前記システムは、前記クラウドベースの計算ノードのうちの少なくとも1つにおいて、必要なハードウェアおよびソフトウェア定義ネットワーキング機能を自動的にプロビジョニングするように構成される、請求項30または31に記載のシステム。
【請求項33】
クラウドプロビジョニングモジュールおよび分配サービスをさらに備え、前記クラウドプロビジョニングモジュールは、複数のクラウドサービスプロバイダの各々について利用可能なサーバ構成を検索するように構成され、各クラウドサービスプロバイダは、関連する領域内に複数のサーバを有し、前記クラウドプロビジョニングモジュールは、複数のクラウドサービスプロバイダのうちの1つまたは複数からのサーバのグループをタグおよびメタデータを用いて配分してグループを管理できるようにし、グループ内のサーバの数は、クラウドサービスプロバイダに関連する領域内のノードロケーションの数に基づき、前記分配サービスは、モデルのトレーニングを開始するためにモデル構成をサーバのグループに送るように構成され、モデルトレーニングが完了すると、前記プロビジョニングモジュールは、前記サーバのグループをシャットダウンするように構成される、請求項32に記載のシステム。
【請求項34】
各ノードデータセットは、患者に関する医学的評価を実行するための複数の医用画像および/または医療関連検査データを含む医療データセットである、請求項30から33のいずれか一項に記載のシステム。
【請求項35】
分散データセットに対して人工知能(AI)モデルをトレーニングするためのクラウドベースの計算システムであって、
1つまたは複数のプロセッサと、1つまたは複数のメモリと、1つまたは複数のネットワークインターフェースと、1つまたは複数のストレージデバイスとを備える少なくとも1つのクラウドベースの中央ノードを備え、ここで、前記少なくとも1つのクラウドベースの中央ノードは、各ローカル計算ノードがローカルノードデータセットを記憶する複数のローカル計算ノードと通信し、前記ローカルノードデータセットへのアクセスがそれぞれの計算ノードに限定され、前記少なくとも1つのクラウドベースの中央ノードは、請求項1から29のいずれか一項に記載の方法を実施して、ローカルノードデータセットから形成された分散データセットに対して人工知能(AI)モデルをトレーニングするように構成される、
システム。
【請求項36】
各ノードデータセットは、患者に関する医学的評価を実行するための複数の医用画像および/または医療関連検査データを含む医療データセットである、請求項35に記載のシステム。
【請求項37】
1つまたは複数の画像またはデータセットからAIベースの評価を生成するための方法であって、
クラウドベースの計算システムにおいて、請求項1から29のいずれか一項に記載の方法にしたがって1つまたは複数の画像またはデータセットから人工知能(AI)ベースの評価を生成するように構成されたAIモデルを生成することと、
前記計算システムのユーザインターフェースを介してユーザから1つまたは複数の画像またはデータセットを受信することと、
前記AIモデルによる結果または分類を取得するために前記1つまたは複数の画像またはデータセットを前記AIモデルに提供することと、
前記ユーザインターフェースを介して前記結果または分類を前記ユーザに送ることと
を含む方法。
【請求項38】
前記1つまたは複数の画像またはデータセットは、医用画像および医療データセットであり、前記評価は、医学的状態、診断または治療の医学的評価である、請求項37に記載の方法。
【請求項39】
1つまたは複数の画像またはデータセットからAIベースの評価を取得するための方法であって、
ユーザインターフェースを介して、1つまたは複数の画像またはデータセットを、人工知能(AI)ベースの評価を生成するように構成されたクラウドベースのAIモデルにアップロードすることと、ここで、前記AIモデルは、請求項1から29のいずれか一項に記載の方法にしたがって生成され、
前記ユーザインターフェースを介して前記クラウドベースのAIモデルから前記評価を受信することと
を含む方法。
【請求項40】
前記1つまたは複数の画像またはデータセットは、医用画像および医療データセットであり、前記評価は、医学的状態、診断または治療の医学的評価である、請求項39に記載の方法。
【請求項41】
1つまたは複数の画像またはデータセットからAIベースの評価を生成するためのクラウドベースの計算システムであって、
1つまたは複数のプロセッサと、1つまたは複数の画像またはデータセットから評価を生成するように構成された人工知能(AI)モデルを記憶するように構成された1つまたは複数のメモリとを備える1つまたは複数の計算サーバ
を備え、ここで、前記AIモデルは、請求項1から29のいずれか一項に記載の方法にしたがって生成され、前記1つまたは複数の計算サーバは、
前記計算システムのユーザインターフェースを介してユーザから1つまたは複数の画像またはデータセットを受信することと、
評価を取得するために前記1つまたは複数の画像またはデータセットを前記AIモデルに提供することと、
前記ユーザインターフェースを介して前記評価を前記ユーザに送ることと
を行うように構成される、システム。
【請求項42】
前記1つまたは複数の画像またはデータセットは、医用画像および医療データセットであり、前記評価は、医学的状態、診断または治療の医学的評価である、請求項41に記載のシステム。
【請求項43】
1つまたは複数の画像またはデータセットからAIベースの評価を生成するための計算システムであって、前記計算システムは、少なくとも1つのプロセッサと、命令を含む少なくとも1つのメモリとを備え、前記命令は、
ユーザインターフェースを介して、画像またはデータセットをクラウドベースの人工知能(AI)モデルにアップロードすることと、ここで、前記AIモデルは、請求項1から29のいずれか一項に記載の方法にしたがって生成され、
前記ユーザインターフェースを介して前記クラウドベースのAIモデルから前記評価を受信することと
を行うように前記少なくとも1つのプロセッサを構成する、システム。
【請求項44】
前記1つまたは複数の画像またはデータセットは、医用画像および医療データセットであり、前記評価は、医学的状態、診断または治療の医学的評価である、請求項43に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
[優先文献]
本出願は、2019年9月23日に出願された「DECENTRALIZED MACHINE LEARNING TRAINING SYSTEM」と題するオーストラリア仮特許出願第2019903539号の優先権を主張するものであり、その内容は、参照によりその全体が本明細書に組み込まれる。
【0002】
[技術分野]
本開示は、人工知能および機械学習コンピューティングシステムに関する。特定の形態では、本開示は、AI/機械学習コンピューティングシステムをトレーニングするための方法およびシステムに関する。
【背景技術】
【0003】
従来のコンピュータビジョン技法は、画像の重要な特徴を特定し、これを固定長ベクトル記述として表現する。これらの特徴は、オブジェクトエッジなどの「低レベル」特徴であることが多い。これらの特徴抽出方法(SIFT、SURF、HOG、ORBなど)は、ある程度の重複および再利用性を伴って、関心のあるドメイン(医療、科学、汎用画像など)ごとに、研究者によって手動で設計される。典型的には、特徴抽出器は、画像のN×Nパッチにわたって畳み込まれる特徴抽出行列から構成される。パッチのサイズは、使用される技法に依存する。しかしながら、テクスチャおよびシーンまたは背景の文脈などのより微妙なキューを考慮に入れた正確な特徴を手作業で作成することは不可能である。
【0004】
一方で、深層学習および機械学習技法を含む人工知能(AI)は、大きなデータセットから良好な特徴および表現「記述」を「学習する」という問題を提起する。コンピュータビジョンにおける現在の標準的な方法は、これらの特徴表現を学習するために畳み込みニューラルネットワーク(CNN)を使用することである。特徴抽出方法と同様に、N×N画像パッチに畳み込みが適用される(サイズは構成に依存する)。しかしながら、重み行列を手作業で作成する代わりに、畳み込みのパラメータは、例えば、タスク依存損失関数(分類、セグメンテーション、オブジェクト検出など)を計算することによって、何らかの目標を達成するように最適化される。さらに、単一の畳み込み(または特徴抽出)に依拠する代わりに、CNNは多層の畳み込みを使用し、1つの層の抽出された特徴が次の畳み込みに渡されて結合され、次の特徴表現を抽出する。正確なネットワークアーキテクチャ(層がどのように互いに接続するか)は、タスクとモデルの所望の特性(精度対速度、トレーニング安定性など)とに依存する。この階層化手法により、モデルは、低レベルの特徴(より単純な特徴抽出方法に類似するオブジェクトエッジのような)を組み合わせて、従来の方法と比較した場合に、多くの場合、画像分類、オブジェクト検出、画像セグメンテーションなどの下流のタスクにとってより好ましいより複雑な表現にすることを学習することができる。人工知能/機械学習モデルをトレーニングするための一般的な処理は、データのクリーニングおよび前処理(これは、データセットにおける結果のラベル付けを含み得る)、(例えば、コンピュータビジョンライブラリを使用した)特徴の抽出、モデル構成の選択(例えば、モデルアーキテクチャおよび機械学習ハイパーパラメータ)、データセットをトレーニング、検証、および試験データセットに分割すること、エポックとして知られる反復のセットにわたってモデルパラメータまたは重みを修正および最適化することを含むトレーニングデータセットに対する深層学習および/または機械学習アルゴリズムを使用したモデルのトレーニング、次いで、検証および/または試験データセットに対する性能に基づく最良のモデルの選択または生成を含む。
【0005】
ニューラルネットワークは、タスク依存の「損失関数」を最小化するようにモデルのパラメータまたは重みを最適化することによってトレーニングされる。この損失関数は、所与の問題についてパラメータを最適化する際のニューラルネットワークの成功を測定する方法を符号化する。例えば、バイナリ画像分類問題、すなわち、画像のセットを正確に2つのカテゴリに分けるという問題を考慮する場合、まず入力画像がモデルに通され、そこでは、関心のある2つのカテゴリを表すために、バイナリ出力ラベル、例えば0または1が計算される。次いで、予測された出力は、グランドトゥルースラベルと比較され、損失(または誤差)が計算される。バイナリ分類の例では、バイナリ交差エントロピー損失関数が、最も一般的に使用される損失関数である。この関数から得られた損失値を使用して、ネットワーク内の各層に対する入力に関する誤差勾配を計算することができる。このプロセスはバックプロパゲーションとして知られている。勾配とは、損失関数を最小化するために、ニューラルネットワークパラメータ(または「重み」)が最適化プロセス中に変更される方向を記述するベクトルである。直観的に、これらの勾配は、画像の各々についてのより正確な予測を得るためにこれらの重みをどのように修正するかをネットワークに知らせる。しかしながら、実際には、トレーニングの単一の反復または「エポック」においてネットワーク更新を計算することは不可能である。多くの場合、これは、ネットワークが大量のデータを必要とし、修正可能なパラメータを多数含むことに起因する。これを解決するために、多くの場合、フルセットの代わりにデータのミニバッチが使用される。これらのバッチの各々は、データセットからランダムに引き出され、データセット全体の統計を近似するのに十分な大きさのバッチサイズが選択される。次いで、停止条件が満たされるまで(すなわち、収束、または予め定義されたメトリックによる満足な結果が達成されるまで)、ミニバッチにわたって最適化が適用される。このプロセスは、確率的勾配降下(SGD)として知られており、ニューラルネットワークを最適化する標準的なプロセスである。通常、オプティマイザは数十万回から数百万回の反復で実行される。さらに、ニューラルネットワーク最適化は「非凸」問題であり、これは、多くの場合、損失関数によって定義されるパラメータ空間内に多くの極小値が存在することを意味する。直観的に、これは、ネットワークにおける重みとデータとの間の複雑な相互作用に起因して、ほぼ同一の出力をもたらすほぼ等しく有効な重みの組合せが多く存在することを意味する。
【0006】
深層学習モデル、またはCNNの多くの層を含むニューラルネットワークアーキテクチャは、典型的には、グラフィックス処理ユニット(GPU)を使用してトレーニングされる。GPUは、中央処理装置(CPU)と比較して、線形代数の計算において極めて効率的である。結果として、それらは、高性能コンピューティング(HPC)において、特にニューラルネットワークをトレーニングする際に多用されている。
【0007】
深層学習法の1つの制限は、初期化からトレーニングするためには大量のデータ(10万以上のサンプル)を必要とすることである。これは、モデルが含むパラメータが多数であることに起因しており、モデルおよびタスクに応じて、100万から10億のオーダーのパラメータである。次いで、これらのパラメータは、ランダムな初期化から調整または最適化される。使用する最良のランダム化戦略はタスク固有およびネットワーク固有であることが多く、初期化値を設定するために従うことができるベストプラクティスが多く存在する。しかしながら、アクセス可能なデータが十分にない場合、アブイニシオトレーニングは、データの「過剰適合」につながることが多い。これは、モデルがトレーニングされたデータに対しては良好に機能するが、新しい未知のデータに対しては一般化できないことを意味する。これは通常、過剰パラメータ化、すなわち、フィッティング問題に適したモデルのパラメータが多すぎるために、トレーニング例を記憶したり、トレーニング例に過剰適合したりしていることに起因する。過剰適合に対抗するために使用される技法は、典型的には、「正則化」技法と呼ばれる。
【0008】
データが十分にない(例えば、10万未満の例)場合、これは、高いデータ完全性が貴重なリソースである医用画像または他のアプリケーションの場合によくあることであるが、ランダムな初期化から開始するのではなく、別のより大きなデータセットに対してすでにトレーニングされているモデルから開始することが可能である。この方法は「事前トレーニング」と呼ばれる。これは、正則化効果を有するので、最適な性能(十分に最小化された損失関数)を維持しながら、モデルがトレーニングされるデータはより少量で済む。さらに、このデータセットから学習された特徴は一般的であり、多くの場合、新しいドメインからのデータにうまく変換される。例えば、ImageNet(一般的な公的に利用可能な画像データセット)に対してモデルを事前トレーニングし、次いで、医療データセットに対してモデルを微調整することができる。このプロセスは「微調整」または「転移学習」のいずれかとして知られており、これらの用語はしばしば互換的に使用される。
【0009】
ニューラルネットワークの性能を向上させる簡単な方法は、モデルにおける層の数を増加させることである。最新技術のモデルの多くは、単一のGPUに合理的に適合することができるよりも多くのパラメータを含む。さらに、深層学習モデルのトレーニングは、大量のデータおよび大量の反復更新を必要とするので、複数のGPUおよび複数のマシンの利用が必要になった。このプロセスは分散トレーニングとして知られている。
【0010】
分散トレーニングを実行するとき、分散戦略を選択する必要がある。これは、作業負荷が異なるワーカノード間でどのように分割されるかを定義する。このための2つの方法は、モデル並列性およびデータ並列性である。モデル並列性は、モデル重みをN個のパーティションにセグメント化することによって作業負荷を分割し、ここで、Nは、作業を分割するワーカの数である。次いで、各セグメントは、次々と順次処理され、中間値は何らかの形態のネットワーク接続を介して通信される。この方法は、モデルのセクション間に明らかな非同期性が存在する場合に有用であり得る。例えば、異なるモダリティ(画像および音声)の2つの入力をとるモデルを考慮する。これらの入力の各々は、モデルの後の段階で一緒に結合される前に、独立して処理され得る。しかしながら、このプロセスは、ネットワーク伝送コストが計算性能の向上を上回る可能性があるので、必ずしもより効率的な標準トレーニングではない。したがって、モデル並列性は、典型的には、例えば、単一のマシン/GPUに適合するよりも多くのパラメータを含むモデルを使用することによって、モデルのサイズをスケーリングするのにより適している。一方、データ並列性は、代わりに、データをN個のパーティションに分割する。より具体的には、ミニバッチがN個の偶数グループに分割される。現在のモデルのコピーがワーカノードの各々に配置され、すなわち、データセット自体がトレーニング前に各コンピュータ上で複製され、次いでモデルの順方向パスが並行して実行され、次いでバッチの各々の損失が計算される。その後、モデルの逆方向パスが計算される。これは、モデルの層の各々についての勾配を順次計算することから構成される。これにはいくつかの方法があり、最も一般的な方法はリバースモード(後ろ向き連鎖)自動微分である。
【0011】
モデル並列フレームワークとデータ並列フレームワークの両方において、ノードの各々についての勾配は、重みがSGDの最終ステップにおいて更新され得るように同期される必要がある。これを行うための主な方法は2つあり、それらはパラメータサーバおよびリングオールリデュースである。
【0012】
パラメータサーバの場合、ワーカノードのうちの1つが「マスタ」となるように選択される。マスタノードは、通常のワーカノードとして機能し、他のノードの結果を一緒に組み合わせて単一のモデルを形成し、次いでワーカノードの各々を更新するという追加の役割を有する。次いで、ワーカの各々についての勾配の各々は、そのノードにローカルに計算され、次いで、N個のワーカの各々は、それらのサブバッチについての勾配をマスタノードに送信する。次いで、マスタノードは、ノードの各々についての勾配を平均化して最終的な勾配更新を得る。最後に、マスタノードは、選択された勾配降下アルゴリズム(例えば、SGD)を介してその重みを更新し、次いで、各バッチの終了時に、各ノードが、他のすべてのノードからのすべての重み更新を組み込んだ完全なモデルのコピーを有するように、新しい重みをワーカノードの各々に送信する。
【0013】
一方、リングオールリデュースは、マスタノードを有しない。順方向パスの後、各ノードは通常通りにその損失および勾配を計算する。しかしながら、各ワーカは、マスタのみに勾配を通信するのはなく、隣接するワーカにピアツーピア方式で勾配を送る。次いで、すべてのワーカは独立して、並行して受信した勾配を平均化し、選択された勾配降下アルゴリズムを使用して更新する。パラメータサーバと比較して、このプロセスは、ワーカの絶対数に関して優れたトレーニングスケーラビリティをもたらす。しかしながら、リングオールリデュースは、各ノードが作業グループ内の他のすべてのノードに勾配を送信しなければならないので、全体的なネットワークトラフィックの大幅な増加を必要とする。
【0014】
分散トレーニング対単一ノードでの標準トレーニングの特性は、最終的なトレーニングされたモデル精度の観点では性能がほぼ同等であるが、総トレーニング時間はクラスタ内のノードの数と線形的にスケーリングするようなものである。例えば、100個のノードを使用すると、トレーニングプロセスが100倍高速化される。
【0015】
機械学習文献では、連合学習は、非集中型データおよび非集中型計算、例えば機械学習モデルに寄与する電話内の複数のプロセッサを使用してモデルをトレーニングするプロセスである。これは主にプライバシーの理由で行われ、これは、モデルのトレーニングを実行するエージェントによって所有または管理されないプロセッサおよびデバイスの使用に必要である。しかしながら、連合学習は、典型的には、個々のデータポイントレベルで行われるので、重い暗号化プロトコルの使用を必要とする。なぜなら、中心ポイントまで共有されるAI重みは、個々のデータポイント(または人)に基づくので、個人情報を推論するために使用可能であり、このことが、学習プロセスをかなり遅くして複雑にするためである。したがって、連合学習は、通常、すでにトレーニングされたAIを展開および更新する(またはそれにわたって反復する)文脈で使用される。連合学習は、遠隔ワーカが、それらのデータセットをマスタノードに開示することなく、機械学習モデルのトレーニングフェーズに寄与することを可能にするために使用され得、各遠隔子モデルのモデル重みを保護するが、上述のように、そのような学習プロセスは非常に遅い。連合学習(Federated Learning)という用語は、非集中型トレーニング(Decentralized Training)という用語と互換的に使用されることもある。しかしながら、本明細書では、非集中型トレーニングという用語は、以下の限りにおいてデータプライバシーが必要とされる分散データに対してモデルのトレーニングが実行される場合に使用される:
(1)データは、それ自体のローカリティから移動されることもコピーされることもなく、トレーニング中そのローカリティに留まらなければならない;および
(2)共有されるトレーニングされたAIモデルは、トレーニングされるデータのコピーまたは実質的なコピーを含まず、データの一般的な派生物のみを含む。
【0016】
AIおよび機械学習における別の手法は、1つ(または複数)のモデル(教師(複数可))から取得された重みパラメータの分布が、学生モデルの損失関数を介して別のモデル(学生)の重み更新を通知するために使用される、「知識蒸留」(蒸留と略される)または「学生-教師」モデルとして知られている。教師モデル(複数可)を使用して学生モデルをトレーニングするプロセスを説明するために、蒸留という用語を使用する。この手順の背後にあるアイデアは、教師モデル(複数可)のセットを模倣するように学生モデルをトレーニングすることである。このプロセスの背後にある直観は、教師モデルが、教師モデル(複数可)からの分布の不在下でモデル結果から直接取得される元の予測確率(ハードラベル)には存在しない予測出力確率(ソフトラベル)間の微妙であるが重要な関係を含むことである。
【0017】
第1に、教師モデル(複数可)のセットが、関心のあるデータセットに対してトレーニングされる。教師モデルは、任意のニューラルネットワークまたはモデルアーキテクチャであってよく、互いにまたは学生モデルとは完全に異なるアーキテクチャであってもよい。それらは、同じデータセットを正確に共有するか、または元のデータセットの互いに素なサブセットもしくは重複するサブセットを有するかのいずれかであり得る。教師モデルがトレーニングされると、学生は、教師モデルの出力を模倣するために蒸留損失関数を使用してトレーニングされる。蒸留プロセスは、最初に、「転送データセット」として知られる、教師モデルおよび学生モデルの両方に利用可能にされるデータセットに教師モデルを適用することから開始する。転送データセットは、元のデータセットから引き出されたホールドアウトブラインドデータセットであってもよく、または元のデータセット自体であってもよい。さらに、転送データセットは、完全にラベル付けされる必要はなく、すなわち、データのいくつかの部分は、既知の結果に関連付けられていない。このラベル付け制限の除去により、データセットのサイズを人工的に増加させることができる。次いで、転送データセットに学生モデルを適用する。教師モデルの出力確率(ソフトラベル)は、分布から計算されたカルバックライブラー(KL)発散、または「相対エントロピー」関数などの発散測定関数を介して、学生モデルの出力確率と比較される。発散測定は、2つの確率分布間の「距離」を測定するための容認された数学的方法である。次いで、発散測定は、標準的なクロスエントロピー分類損失関数と一緒に合計され、その結果、損失関数は、分類損失を効果的に最小化し、モデル性能を向上させ、同時に教師モデルからの学生モデルの発散も改善する。典型的には、ソフトラベルマッチング損失(新しい損失の発散成分)およびハードラベル分類損失(損失の元の成分)は、新しい損失関数における2つの項の各々の寄与を制御するために、互いに対して重み付けされる(トレーニングプロセスに追加の調整可能なパラメータを導入する)。
【0018】
深層学習および機械学習コンピューティングシステムを含む人工知能(AI)は、大きなデータセットに対するAIの学習またはトレーニングを伴う。特に、正確かつロバストなAI、すなわち、意図された(特定の)問題に正確に適用することができるように一般的で、転送可能で、偏りのないAIを構築/トレーニングすることが商業的および/または運用上重要である。健康産業からのデータ分析における適用のために、これは、任意の臨床背景、人口統計、国、ハードウェア設定などを含む(が、これらに限定されない)。これは、健康関連用途の範囲内の場合にもそれ以外の場合にも当てはまる。正確かつロバストなAIを構築するために、AIは、典型的には、世界的に分散している多くのデータソース、例えば、健康に関する場合には、世界中に分散しているクリニックまたは病院からの大規模かつ多様なデータセットに対してトレーニングされる必要がある。
【0019】
しかしながら、データプライバシー、機密性、セキュリティ、規制/法的、または技術的な理由により、データを収集または単一のロケーションに転送して、AIがトレーニングするための1つの大規模かつ多様なグローバルデータセットを作成することが常に可能であるとは限らない。例えば、健康規制により、個人的な医療データが元の国から合法的に流出することは許可されない場合がある。これにより、グローバルデータセットに対してAIをトレーニングすることができないので、結果としてローカルデータセットに対してのみトレーニングすることができるAIの精度およびロバスト性に影響を与える。これはまた、製造されるAIの商業的な実行可能性、特にそのスケーラビリティに影響を与える。より小規模なローカルデータセットに対してトレーニングされたAIを生成して、グローバルにスケーリングする場合、以下が生じることとなる:(1)AIが各ロケーション、領域またはデータセットにおいて再トレーニングされる必要があるので、商品化の取り組みを遅くする、または(2)AIは、そのトレーニングにおいて以前に見られなかった新しい状況または文脈に遭遇することによって、運用中に破損/故障する可能性がある。
【0020】
例えば、健康および医療用途のためのAIシステムを開発することは、病院、クリニック、および他の医療機関の間のデータ共有の欠如に起因して困難であることが多い。これは、患者データを非公開のままにする必要性(データプライバシー)、業務記録、企業IP、および事業価値資産がクリニック内で秘密保持される必要性(機密性)、ならびにセンシティブな性質の記録に関する法律および規制の要求(規制)という理由で理にかなっている。これらの問題は、医学の分野だけでなく、防衛およびセキュリティなどの他の産業、または機密情報を含むかまたはそれに依拠する他のビジネスにも当てはまる。機密情報自体は機関間で共有することができないが、複数のソースにわたるすべてのデータの組み合わされた学習には大量の固有の価値があり、これは、ロバストな新しい、十分に試験された(および試験可能な)機械学習モデルを適用することができることによって、各産業に多大な利益をもたらすであろう。ロバストなAIモデルの作成および試験は、データ自体の開示を強制または排除することなく、組み合わされたデータセットの力を活用することができる方法を開発することが可能である場合にのみ行われ得る。
【0021】
上記の問題は、産業のための新規の機械学習ツールを構築するのに有用な関連データが複数の機関にわたって分散され、単一のソースが、未知のデータセットに良好に一般化することができるモデルをトレーニングするのに十分なデータを含んでおらず、または場合によっては、それ自体のローカリティに対してさえも何らかの信頼できるモデルをトレーニングするのに十分なデータを全く含まない、データローカリティのトピックにおいて最も頻繁に現れる。
【0022】
この障壁を克服するためのいくつかの方法があり、ここで、機械学習モデルに対する産業の必要性は、データプライバシー、機密性、または超えられない規制の障害に遭遇するリスクを上回る。第1に、機関の間で、それらのデータの特定の部分について、互いにまたはサードパーティが利用できるようにするのに適しているとみなすことに合意がなされ得、これにより、共有モデルの構築を容易にすることができる。しかしながら、これは、一般にセンシティブなデータに適したプロセスではなく、モデルのトレーニングに利用可能なデータのタイプおよびデータの量に対して依然として厳しい制限を課す。これも時間のかかるプロセスであり、データを公開するために機関を個々に説得しなければならない。
【0023】
したがって、分散トレーニングシステムは、分散データの問題を克服するための方法を提供する。例えば、機械学習モデルをトレーニングする際、機関は、データを全く公開しないが、クラウドサービスまたはローカルマシンまたはポータブルデバイスなど、他の機関がアクセスできない、機関に割り当てられた安全なサーバまたはコンピュータ上でデータを利用可能にすることを選択することができる。このサーバ上で、トレーニングプロセスは分散方式で実行することができ、複数の機関は同時に実行することができ、コンピュータビジョンおよび機械学習の背景において上述した方法を使用して、機械学習モデルに対する更新のみが共有される。機密データが機関のネットワークまたはその関連するクラウドサービスから出ることはないので、上述のプライバシー/セキュリティ/規制問題に対処することができるとともに、各ローカリティのデータから抽出された学習を協調的に共有してモデルをトレーニングすることができる。
【0024】
ほとんどの場合、すべての離れたローカリティにわたる分散モデルおよびトレーニングプロセスは、ビジネスの一部として、結果として得られる機械学習モデルを製品またはサービスとして提供することを意図しているサードパーティによって管理されるものなど、オフサイトサーバによって管理され得る。それはまた、データ提供ローカリティのうちの1つによって提供されるサーバであってもよい。このサーバは、マスタサーバと呼ばれ、上述したパラメータサーバ技法で説明されるのと同様の役割で動作し、他のすべてのローカリティからトレーニングされているモデルに対する更新を受信し、他の各ローカリティは「スレーブ」サーバまたはノードと呼ばれ、その目的は、それ自体のローカリティにローカルに記憶されたそのデータセットからのみ全体的なトレーニングされたモデルに寄与することである。したがって、すべてのローカリティにわたる完全なモデルは、センシティブなデータが個々のローカリティを出ることなくトレーニングされ得る。
【0025】
しかしながら、上述したプライバシー問題がない場合、従来の分散トレーニングの使用は原理的には可能であるが、従来の分散トレーニングは、特に機密データセットに適用されるとき、実生活の分散データローカリティにわたってモデルをトレーニングすることを不便、高価、または場合によっては使用不能にするいくつかの重要な制限および条件に悩まされる。
【0026】
第1に、従来の分散トレーニングは、すべてのサーバ(ノード)がそれぞれすべてのデータへのアクセスを有することを必要とする。
【0027】
分散トレーニングの通常の使用事例は、機密データではなく、各マシンが完全なデータセットへのアクセスを有する複数のマシンにわたるトレーニングを容易にするためのものである。したがって、各スレーブノードは、データセットの一部に対してトレーニングするが、各ノードは、データセットがノード間でどのように均等に配分されたか(それらのファイル名およびそれらへのアクセス方法)も理解する。ノード間で明示的に共有されていない機密データを扱うことができるように、従来の分散トレーニングは、各ノードが画像の総数およびそれらのファイル名(すなわち、データに関連するメタデータ)は利用できるが、データ自体または任意の機密メタデータは利用できないように修正されなければならない。
【0028】
第2に、従来の分散トレーニングは、すべてのローカリティにおけるデータセットが、等しくバランスがとれていることを必要とする。
【0029】
分散トレーニングは、既知の完全なデータセットがローカリティにわたって等しく配分されることを期待する。すなわち、各ノードは、互いに同じ数のデータポイント(例えば、一例として医用画像)を有する。これは、各ノードが、同じエポックに関連するモデルに対する重み更新を送っていることを保証するためであり、より小さいデータセットはオーバーサンプリングされないようにするものである(したがって、モデルがより小さいデータセットに対して大きく偏る)。これは典型的には自明なプロセスではない。
【0030】
第3に、従来の分散トレーニングは、各バッチの後に完全なモデルが共有されることを必要とする。
【0031】
この制限は、コスト効率および実用性に関連し、機械学習モデルの現在の状態が各バッチの後に各スレーブノードによってマスタに共有されなければならないことを分散トレーニングが必要とするという事実に関連する。データセットに応じて、バッチサイズは、4~8データポイントほどの小ささであり得、単一のエポックでさえもモデルをトレーニングするために何千、何万、またはそれ以上のデータポイントが必要とされる場合では、各モデルは潜在的にファイルサイズが複数ギガバイトを超え得るので、ネットワークトラフィックコストは多大になり得る。
【0032】
さらに、標準的な分散トレーニングは、地理的距離に応じたスケーリングが不十分であるため、モデルのトレーニングの全体的なコストおよびターンアラウンドタイムを最大2桁増加させる。この問題は、より多くの領域およびデータソースが接続されるにつれてトレーニングデータセットサイズが増加することによってさらに悪化するので、十分に最適化されたモデルをトレーニングするのにかかる時間に影響を与える。
【0033】
したがって、AI/機械学習モデルの分散トレーニングを実行するための改善された方法およびシステムを提供すること、または少なくとも既存のシステムに対する有用な代替を提供することが必要とされている。
【発明の概要】
【0034】
第1の態様によれば、複数のノードを含む分散データセットに対して人工知能(AI)モデルをトレーニングするための方法が提供され、ここで、各ノードはノードデータセットを含み、ノードは他のノードデータセットにアクセスすることが防止され、方法は以下を含む:
複数のトレーニングされた教師モデルを生成すること、ここで、各教師モデルは、ノードデータセットに対してノードにおいてローカルにトレーニングされたディープニューラルネットワークモデルであり、
複数のトレーニングされた教師モデルを中央ノードに移動させること、ここで、教師モデルを移動させることは、教師モデルを表す重みのセットを中央ノードに送信することを含み、
知識蒸留を使用して、複数のトレーニングされた教師モデルおよび転送データセットを使用して学生モデルをトレーニングすること。
【0035】
一形態では、複数のトレーニングされた教師モデルを中央ノードに移動させる前に、モデルがトレーニングされたノードからのプライベートデータをモデルが含まないことをチェックするために、各トレーニングされた教師ノートに対してコンプライアンスチェックが実行される。
【0036】
一形態では、転送データセットは、複数のノードデータセットから引き出された合意された転送データであるか、複数のノード転送データセットから構成される分散データセットであって、ノード転送データセットはノードにローカルであるか、または前記複数のノードデータセットから引き出された合意された転送データと、複数のノード転送データセットとの混合であって、ノードローカル転送データセットはノードにローカルである。
【0037】
一形態では、ノードは、別々の地理的に隔離されたローカリティにわたって存在する。
【0038】
一形態では、学生モデルをトレーニングすることは、以下を含む:
ノードデータセットを使用してノードの各々において複数のトレーニングされた教師モデルを使用して学生モデルをトレーニングすること。
【0039】
一形態では、複数のトレーニングされた教師モデルを使用して学生モデルをトレーニングする前に、方法は、以下をさらに含む:
ノードの各々の間に複数の領域間ピアリング接続を確立することによって、学生モデルをトレーニングするための単一のトレーニングクラスタを形成すること、ここで、転送データセットは、ノードデータセットの各々を含む。
【0040】
さらなる形態では、ノードの各々において学生モデルをトレーニングした後、学生モデルがマスタノードに送られ、学生モデルのコピーがノードの各々に送られてワーカノードとして割り当てられ、マスタノードは各バッチ後にすべてのワーカノードの重みを収集して平均化して学生モデルを更新する。
【0041】
一形態では、学生モデルをマスタノードに送る前に、モデルがトレーニングされたノードからのプライベートデータをモデルが含まないことをチェックするために、学生モデルに対してコンプライアンスチェックが実行される。
【0042】
一形態では、学生モデルをトレーニングすることは、以下を含む:
複数の学生モデルをトレーニングすること、ここで、各学生モデルは、学生モデルを別のノードに移動させ、ノードデータセットを使用してノードにおける教師モデルを使用して学生モデルをトレーニングすることによって、他のノードにおける複数の教師モデルによってトレーニングされる第1のノードにおける教師モデルであり、複数の学生モデルがそれぞれトレーニングされると、複数のトレーニングされた学生モデルからアンサンブルモデルが生成される。
【0043】
一形態では、複数の学生モデルをトレーニングする前に、方法は以下をさらに含む:
ノードの各々の間に複数の領域間ピアリング接続を確立することによって、学生モデルをトレーニングするための単一のトレーニングクラスタを形成すること。
【0044】
一形態では、学生モデルを別のノードに移動させる前に、モデルがトレーニングされたノードからのプライベートデータをモデルが含まないことをチェックするために、学生モデルに対してコンプライアンスチェックが実行される。
【0045】
さらなる形態では、各学生モデルは、所定の閾値数のノードにおいてトレーニングされた後にトレーニングされるか、または各学生モデルは、少なくとも閾値数のノードにおいて所定量のデータに対してトレーニングされた後にトレーニングされるか、または各学生モデルは、複数のノードの各々においてトレーニングされた後にトレーニングされる。
【0046】
一形態では、アンサンブルモデルは、平均投票法、加重平均法を使用して、エキスパート層の混合(学習された重み付け)を使用して、または蒸留法を使用して取得され、最終モデルは複数の学生モデルから蒸留される。
【0047】
一形態では、方法は、重み付けを使用して蒸留損失関数を調整し、各ノードにおけるデータポイントの数の差を補償することをさらに含む。さらなる形態では、蒸留損失関数は以下の形態を有する:
Loss(x,y)=CrossEntropyLoss(S(x),y)+D(S(x),T(x))
ここで、CrossEntropyLossは損失関数であり、xは最小化されるべきトレーニングデータのバッチを表し、yはバッチxの各要素に関連するターゲット(グランドトゥルース値)であり、S(x)およびT(x)は学生モデルおよび教師モデルから取得された分布であり、Dは発散メトリックである。
【0048】
一形態では、エポックは、各ノードデータセットの完全なトレーニングパスを含み、各エポックの間に、各ワーカは、利用可能なサンプルデータセットのサブセットをサンプリングし、サブセットのサイズは、最小データセットのサイズに基づき、エポックの数は、最小データセットのサイズに対する最大データセットのサイズの比に基づいて増加される。
【0049】
一形態では、複数のノードはk個のクラスタに分けられ、第1の態様で定義される方法が各クラスタにおいて別々に実行されてk個のクラスタモデルが生成され、各クラスタモデルはクラスタ代表ノードに記憶され、第1の態様の方法がk個のクラスタ代表ノードで実行され、複数のノードはk個のクラスタ代表ノードを含む。さらなる形態では、ノードの1つまたは複数の追加の層が作成され、各下位層は、前の層におけるクラスタ代表ノードをj個のクラスタに分けることによって生成され、ここで、jは前の層におけるクラスタ代表ノードの数よりも小さく、次いで、請求項1から25のいずれか一項に記載の方法が各クラスタにおいて別々に実行されてj個のクラスタモデルが生成され、各クラスタモデルはクラスタ代表ノードに記憶され、請求項1から25のいずれか一項に記載の方法がj個のクラスタ代表ノードで実行され、複数のノードはj個のクラスタ代表ノードを含む。
【0050】
さらなる形態では、各ノードデータセットは、1つまたは複数の医用画像または医療診断データセットを含む医療データセットである。さらなる形態では、トレーニングされたAIモデルが展開される。
【0051】
第2の態様によれば、第1の態様の方法を実施するように構成されたクラウドベースの計算システムが提供される。これは、以下を備え得る:
複数のローカル計算ノード、ここで、各ローカル計算ノードは、1つまたは複数のプロセッサと、1つまたは複数のメモリと、1つまたは複数のネットワークインターフェースと、ローカルノードデータセットを記憶する1つまたは複数のストレージデバイスとを備え、ローカルノードデータセットへのアクセスがそれぞれのローカル計算ノードに限定される、および
1つまたは複数のプロセッサと、1つまたは複数のメモリと、1つまたは複数のネットワークインターフェースと、1つまたは複数のストレージデバイスとを備える少なくとも1つのクラウドベースの中央ノード、ここで、少なくとも1つのクラウドベースの中央ノードは、複数のローカルノードと通信しており、
複数のローカル計算ノードおよび少なくとも1つのクラウドベースの中央ノードの各々は、第1の態様の方法を実施して、ローカルノードデータセットから形成された分散データセットに対して人工知能(AI)モデルをトレーニングするように構成される。
【0052】
一形態では、複数のローカル計算ノードのうちの1つまたは複数はクラウドベースの計算ノードである。
【0053】
一形態では、システムは、クラウドベースの計算ノードのうちの少なくとも1つにおいて、必要なハードウェアおよびソフトウェア定義ネットワーキング機能を自動的にプロビジョニングするように構成される。さらなる形態では、システムは、クラウドプロビジョニングモジュールおよび分配サービスをさらに備え、クラウドプロビジョニングモジュールは、複数のクラウドサービスプロバイダの各々について利用可能なサーバ構成を検索するように構成され、各クラウドサービスプロバイダは、関連する領域内に複数のサーバを有し、クラウドプロビジョニングモジュールは、複数のクラウドサービスプロバイダのうちの1つまたは複数からのサーバのグループをタグおよびメタデータを用いて配分してグループを管理できるようにし、グループ内のサーバの数は、クラウドサービスプロバイダに関連する領域内のノードロケーションの数に基づき、分配サービスは、モデルのトレーニングを開始するためにモデル構成をサーバのグループに送るように構成され、モデルトレーニングが完了すると、プロビジョニングモジュールは、サーバのグループをシャットダウンするように構成される。
【0054】
一形態では、各ノードデータセットは、患者に関する医学的評価を実行するための複数の医用画像および/または医療関連検査データを含む医療データセットであり、AIモデルは、新しい医用画像または医療データセットを分類するようにトレーニングされる。
【0055】
第3の態様によれば、分散データセットに対して人工知能(AI)モデルをトレーニングするためのクラウドベースの計算システムが提供され、このシステムは以下を備える:
1つまたは複数のプロセッサと、1つまたは複数のメモリと、1つまたは複数のネットワークインターフェースと、1つまたは複数のストレージデバイスとを備える少なくとも1つのクラウドベースの中央ノード、ここで、少なくとも1つのクラウドベースの中央ノードは、各ローカル計算ノードがローカルノードデータセットを記憶する複数のローカル計算ノードと通信し、ローカルノードデータセットへのアクセスがそれぞれの計算ノードに限定され、少なくとも1つのクラウドベースの中央ノードは、第1の態様の方法を実施して、ローカルノードデータセットから形成された分散データセットに対して人工知能(AI)モデルをトレーニングするように構成される。
【0056】
第4の態様によれば、1つまたは複数の画像またはデータセットからAIベースの評価を生成するための方法が提供され、この方法は以下を含む:
クラウドベースの計算システムにおいて、第1の態様の方法にしたがって1つまたは複数の画像またはデータセットから人工知能(AI)ベースの評価を生成するように構成されたAIモデルを生成すること、
計算システムのユーザインターフェースを介してユーザから1つまたは複数の画像またはデータセットを受信すること、
AIモデルによる結果または分類を取得するために1つまたは複数の画像またはデータセットをAIモデルに提供すること、および
ユーザインターフェースを介して結果または分類をユーザに送ること。
【0057】
第5の態様によれば、1つまたは複数の画像またはデータセットからAIベースの評価を取得するための方法が提供され、この方法は以下を含む:
ユーザインターフェースを介して、1つまたは複数の画像またはデータセットを、人工知能(AI)ベースの評価を生成するように構成されたクラウドベースのAIモデルにアップロードすること、ここで、AIモデルは、第1の態様の方法にしたがって生成される、および
ユーザインターフェースを介してクラウドベースのAIモデルから評価を受信すること。
【0058】
第6の態様によれば、1つまたは複数の画像またはデータセットからAIベースの評価を生成するためのクラウドベースの計算システムが提供され、クラウドベースの計算システムは、以下を備え:
1つまたは複数のプロセッサと、1つまたは複数の画像またはデータセットから評価を生成するように構成された人工知能(AI)モデルを記憶するように構成された1つまたは複数のメモリとを備える1つまたは複数の計算サーバ、ここで、AIモデルは、第1の態様の方法にしたがって生成され、1つまたは複数の計算サーバは、以下を行うように構成される:
計算システムのユーザインターフェースを介してユーザから1つまたは複数の画像またはデータセットを受信すること、
評価を取得するために1つまたは複数の画像またはデータセットをAIモデルに提供すること、および
ユーザインターフェースを介して評価をユーザに送ること。
【0059】
第7の態様によれば、1つまたは複数の画像またはデータセットからAIベースの評価を生成するための計算システムが提供され、計算システムは、少なくとも1つのプロセッサと、命令を含む少なくとも1つのメモリとを備え、命令は、以下を行うように少なくとも1つのプロセッサを構成する:
ユーザインターフェースを介して、画像またはデータセットをクラウドベースの人工知能(AI)モデルにアップロードすること、ここで、AIモデルは、第1の態様の方法にしたがって生成される、および
ユーザインターフェースを介してクラウドベースのAIモデルから評価を受信すること。
【0060】
第4~第7の態様では、1つまたは複数の画像またはデータセットは、医用画像および医療データセットであり得、評価は、医学的状態、診断または治療の医学的評価である。
【図面の簡単な説明】
【0061】
本開示の実施形態は、添付の図面を参照して述べられる。
図1A】一実施形態による、人工知能(または機械学習)モデルの非集中型トレーニングのためのシステムの概略図である。
図1B】一実施形態による、AIモデルを計算的に生成および使用するように構成されたクラウドベースの計算システムの概略ブロック図である。
図1C】一実施形態による、AIモデルを生成および使用するように構成されたクラウドベースの計算システムの概略アーキテクチャ図である。
図1D】一実施形態による、トレーニングサーバ上のモデルトレーニングプロセスの概略フローチャートである。
図1E】一実施形態による、トレーニング後に入力画像を予測に変換する畳み込み層を含む深層学習方法の概略アーキテクチャ図である。
図2】一実施形態による、AIモデルの非集中型トレーニングのための方法のフローチャートである。
図3】一実施形態による、AIモデルの非集中型トレーニングを実行するためのマルチレベルプロセスの概略図である。
図4A】一実施形態による、クリーンデータセット上でベースラインモデルおよび2つの非集中型モデルに5ノードクラスタを使用した第1のケーススタディに関するモデル結果(バランス精度(balanced accuracy))の棒グラフである。
図4B】一実施形態による、ノイズの多いデータセット上でベースラインモデルおよび2つの非集中型モデルに5ノードクラスタを使用した第1のケーススタディに関するモデル結果(バランス精度)の棒グラフである。
図5】一実施形態による、異なる転送データセットシナリオを使用するいくつかの非集中型モデルについての第1のケーススタディに関するモデル結果(バランス精度)の棒グラフである。
図6A】一実施形態による、ノイズの多いデータセット上でベースラインモデルおよび4つの非集中型モデルに対して単一のクラスタ内の15個のノードを使用し、各ノードにおいて異なる数のエポックを使用した第2のケーススタディに関する検証データセットに対するモデル結果(バランス精度)の棒グラフである。
図6B】一実施形態による、ノイズの多いデータセット上でベースラインモデルおよび4つの非集中型モデルに対して単一のクラスタ内の15個のノードを使用し、各ノードにおいて異なる数のエポックを使用した第2のケーススタディに関する試験データセットに対するモデル結果(バランス精度)の棒グラフである。
図7A】一実施形態による、ノイズの多いデータセット上でベースラインモデルおよび6つの非集中型モデルに対して3つのクラスタに分割された15個のノードを使用し、各ノードにおいて異なる数のエポックを使用した第3のケーススタディに関する検証データセットに対するモデル結果(バランス精度)の棒グラフである。
図7B】一実施形態による、ノイズの多いデータセット上でベースラインモデルおよび6つの非集中型モデルに対して3つのクラスタに分割された15個のノードを使用し、各ノードにおいて異なる数のエポックを使用した第3のケーススタディに関する試験データセットに対するモデル結果(バランス精度)の棒グラフである。
図8A】一実施形態による、ノイズの多いデータセット上でベースラインモデルおよび2つの非集中型モデルに対して3つのクラスタに分割された15個のノードを使用し、各ノードにおいて異なる数のエポックを使用し、各ノードを5回訪問する第3のケーススタディに関する検証データセットに対するモデル結果(バランス精度)の棒グラフである。
図8B】一実施形態による、ノイズの多いデータセット上でベースラインモデルおよび2つの非集中型モデルに対して3つのクラスタに分割された15個のノードを使用し、各ノードにおいて異なる数のエポックを使用し、各ノードを5回訪問する第3のケーススタディに関する試験データセットに対するモデル結果(バランス精度)の棒グラフである。
【0062】
以下の説明では、図全体を通して、同様の参照文字は同様のまたは対応する部分を示す。
【発明を実施するための形態】
【0063】
ここで図1Aを参照すると、一実施形態による、人工知能(または機械学習)モデルの非集中型トレーニングのためのシステム1の概略図が示されている。図2は、一実施形態による、分散データセットに対するAIモデルの非集中型トレーニングのための方法のフローチャート200である。
【0064】
図1Aは、複数(M個)のノード10から構成される分散システムを示す。各個々のノード11、12、14、16はそれぞれ、ローカルデータセット21、22、24、26を含む。ノード10は動作的に隔離されているので、各ノード内のローカルデータセットは、ノードから離れること、または別のノードまたはプロセスによってアクセスされることが防止される。この隔離は、地理的隔離などの物理的隔離、ファイアウォールおよびソフトウェアベースのセキュリティ対策の使用などによるソフトウェア隔離、またはこれら2つの何らかの組合せであり得る。ノードは、単一の国もしくは大陸にわたって、または複数の国もしくは大陸にわたって地理的に分散され得る。ノード10は、ローカルクラウド内でソフトウェアアプリケーションを実行し、必要に応じて(または許可されて)外部リソースおよびプロセスと情報を交換するように構成することができるプロセッサ、メモリ、およびネットワーキングインターフェースなどのローカルクラウドコンピューティングリソース51、52、54、56を備える、ローカルクラウド61、62、64、および66においてホストされるクラウドベースのノードであり得る。
【0065】
一実施形態では、ローカルデータセットは、サードパーティとのデータセットの共有が許可されない医学的評価を実行するための医療データセットである。これは、スクリーニング試験、診断検査、および医学的状態の評価、診断、治療計画の作成、または医学関連の決定(例えば、IVF手順においてどの胚を移植するか)のための他のデータを含む、医用画像データおよび医学関連の検査データを含み得る。医療データセットはまた、患者データ、画像または検査に関するデータ(例えば、機器構成および測定)および結果を含む関連メタデータを含み得る。患者記録は、患者に関連する1つまたは複数の医用画像および/または検査データと、結果とを含み得る。医用画像データは、X線、超音波、MRI、カメラ、および顕微鏡画像などのビデオデータを含む、患者に関連する画像のセットであり得る。これらは、身体部分もしくは身体の切片、生検、1つもしくは複数の細胞、または診断、スクリーニングもしくは評価試験もしくはマルチウェルプレート、マイクロアレイなどを含む機器の画像であり得る。同様に、試験データは、診断またはスクリーニング試験のセットであってもよく、特定のバイオマーカーの結果の時系列、血液パネルまたは完全もしくは全血球数などの代謝測定値、ゲノムデータ、シーケンシングデータ、プロテオミクスデータ、代謝データなどを含む複雑なデータセットであってもよい。これらの実施形態では、AIモデルは、医用画像または診断検査データを分析または分類するようにトレーニングされ、その結果、使用時に、トレーニングされたAIモデルを展開して、患者からの新しい医用画像または新しい診断検査データを分析または分類して特定の疾患または医学的状態を診断することができる。これには、ある範囲の特定の癌、胚生存率および受精能状態、肺炎などの胸部状態(例えば、胸部X線を使用する)、血液疾患および代謝障害などが含まれ得る。医療データセットは、ある範囲の医学的状態および疾患を評価もしくは診断するために、または医学的意思決定および治療を支援するために使用され得る。例えば、体外受精(IVF)後に撮影された胚の画像は、胚選択を支援するために胚生存率の評価に使用され得、胸部X線および胸部CTスキャンは、肺炎および他の肺の状態の特定に使用され得る。X線、CTおよびMRIスキャンは、固形癌の診断に使用され得る。網膜画像は、緑内障および他の眼疾患の評価に使用され得る。血液パネル、病理検査、ポイントオブケア検査、抗体、DNA/SNP/タンパク質配列、ゲノムシーケンシング、プロテオミクス、メタボロミクスデータセットは、医学的状態および疾患、血液障害、代謝障害、バイオマーカーの特定、疾患サブタイプの分類、治療の特定、疾患およびライフスタイルリスク因子の特定などに使用され得る。トレーニングデータセットは、AIモデルのトレーニングを可能にするように作成され、データをトレーニングするために使用されるラベルを含み得るか、またはAIモデルは、トレーニング中にデータを分類するように学習し得る。他の実施形態では、データは、プライバシー、防衛、または商業的懸念が異なるソース間でのデータの共有を妨げるが、大きなデータセットの力を活用することが望ましいセキュリティおよび防衛用途などの非ヘルスケア用途に関連し得る。このデータは、画像監視データ(例えばセキュリティカメラ)、ロケーションデータ、購入データなどであり得る。
【0066】
上述したように、ローカルノードおよび中央ノードは、クラウドベースの計算システムであり得る。図1Bは、一実施形態による、AIモデル100を生成(トレーニング)しトレーニングされたAIモデル100を使用(展開を含む)するように構成されたクラウドベースの計算システム100の概略アーキテクチャ図である。AIモデルのトレーニングおよび使用は、図1Cおよび図1Dにさらに示されており、図1Cは、中央ノード40におけるAIモデルの生成を調整するモデルモニタ121の制御下にあり得るノード101のクラウドアーキテクチャを示す。このクラウドアーキテクチャの実施形態は、各ローカルノード10および中央ノード40に使用され得る。ノードはまた、商用クラウド環境(例えば、Amazon Web Services、Microsoft Azure、Google Cloudプラットフォームなど)、プライベートクラウドでホストされ得るか、または図1Cおよび図1Dに示されるものと同様の構成を有するローカルサーバファームを使用し得る。
【0067】
モデルモニタ121は、ユーザ(管理者)が、画像およびデータセットを、関連するメタデータ114と共に、(ノードにローカルな)データリポジトリ115を含むデータ管理プラットフォームに提供することを可能にする。例えば、画像を特定のフォルダに移動し、名前を変更し、オブジェクト検出、セグメンテーション、アルファチャネルさ削除、パディング、クロッピング/ローカライゼーション、正規化、スケーリングなどの前処理を画像に対して実行するために、データ準備ステップが実行され得る。特徴記述子が計算され得、拡張画像が事前に生成され得る。同様に、データセットは、解析され、標準的なフォーマット/テーブルに再フォーマットされ、クリーンにされ、要約され得る。しかしながら、拡張を含む追加の前処理は、トレーニング中に(すなわちオンザフライで)実行され得る。画像およびデータセットはまた、明らかに悪い画像または誤ったデータの拒否を可能にし、替えの画像またはデータの取り込みを可能にするために、品質評価を受け得る。同様に、患者記録または他の臨床(または他の)データは、例えば、AIモデルのトレーニングおよび/または評価において使用することができるように各画像/データセットとリンクまたは関連する結果判定法を特定するために処理(準備)される。準備されたデータは、(中央ノード40によって提供され得る)トレーニングアルゴリズムの最新バージョンと共にクラウドプロバイダ(例えば、AWS)テンプレートサーバ128にロードされる116。テンプレートサーバが保存され、(ローカル)トレーニングサーバ135を形成する、CPU、GPU、ASIC、FPGA、またはTPU(Tensor Processing Unit)ベースであり得るトレーニングサーバクラスタ137の範囲にわたって複数のコピーが作成される。次いで、ローカルモデルモニタウェブサーバ131は、中央ノード140内のモデルモニタによって提出された各ジョブについて、複数のクラウドベースのトレーニングサーバ135からのトレーニングサーバ137を適用する。各トレーニングサーバ135は、Pytorch、Tensorflowまたは同等物などのライブラリを使用して、AIモデルをトレーニングするための(テンプレートサーバ128からの)事前に準備されたコードを実行し、OpenCVなどのコンピュータビジョンライブラリを使用し得る。PyTorchおよびOpenCVは、CV機械学習モデルを構築するための低レベルコマンドを有するオープンソースライブラリである。
【0068】
トレーニングサーバ137は、トレーニングプロセスを管理する。これには、例えば、ランダム割当てプロセスを使用して、画像およびデータを、トレーニング、検証、およびブラインド検証セットに分割することが含まれ得る。さらに、トレーニング-検証サイクルの間、トレーニングサーバ137はまた、各サイクルで画像の異なるサブセットが分析されるかまたは異なる順序で分析されるように、サイクルの開始時に画像のセットをランダム化し得る。前処理が以前に実行されなかったり不完全であったりした場合(例えば、データ管理の間)、オブジェクト検出、マスクされたデータセットのセグメンテーションおよび生成、CV特徴記述子の計算/推定、ならびにデータ拡張の生成を含む追加の前処理が実行され得る。前処理は、必要に応じて、パディング、正規化なども含み得る。前処理は、トレーニングの前に、トレーニング中に、または何らかの組合せ(すなわち分散前処理)で実行され得る。実行中のトレーニングサーバ135の数は、ブラウザインタフェースから管理され得る。トレーニングが進行するにつれて、トレーニングのステータスに関するロギング情報が、Cloudwatch160などの分散ロギングサービスに記録される162。精度情報もログから解析され、リレーショナルデータベース36に保存される。モデルはまた、データストレージ(例えば、AWSシンプルストレージサービス(S3)もしくは同様のクラウドストレージサービス、またはローカルストレージ)150に定期的に保存され151、そのため、後日(例えば、エラーまたは他の停止の場合に再始動するために)取り出して、ロードすることができる。モデルモニタ/中央ノード140は、通信リンク上でローカルモデルモニタサーバ131とモデル、トレーニング命令およびステータス更新を交換する。ステータス更新は、トレーニングサーバのジョブが完了したとき、またはエラーに遭遇したときなどに、トレーニングサーバのステータスを提供し得る。
【0069】
各トレーニングクラスタ137内で、いくつかのプロセスが行われる。クラスタがウェブサーバ131を介して開始されると、スクリプトが自動的に実行され、準備された画像および患者記録を読み出し、要求された特定のPytorch/OpenCVトレーニングコード171を開始する。モデルトレーニング128のための入力パラメータは、中央ノード140のモデルモニタ121によって供給される。次いで、トレーニングプロセス72が、要求されたモデルパラメータに対して開始されるが、これは、非常に長く集中的なタスクであり得る。したがって、トレーニングの進行中に進捗を失わないように、ログは、ロギング(例えば、AWSクラウドウォッチ)サービス160に定期的に保存され162、モデルの現在のバージョン(トレーニング中)は、後の取出しおよび使用のためにデータ(例えば、S3)ストレージサービス151に保存される151。データストレージサービス上のある範囲のトレーニングされたAIモデルへのアクセスにより、例えば、アンサンブル、蒸留、または同様の手法を使用して、複数のモデルを一緒に組み合わせて、ある範囲の深層学習モデル(例えば、PyTorch)および/または標的コンピュータビジョンモデル(例えば、OpenCV)を組み込んで、クラウドベースの配信プラットフォーム130に提供されるロバストなAIモデル100を生成することができる。
【0070】
トレーニングされたモデルが生成されると、それは使用のために展開され得る。次いで、クラウドベースの配信プラットフォーム130システムは、ユーザ110が、画像またはデータセットをウェブアプリケーション134上に直接ドラッグアンドドロップすることを可能にし、ウェブアプリケーション134は、画像/データセットを準備し、これをトレーニングされた/検証されたAIモデル100に渡して分類/結果を取得し、これは直ちにレポートで返される。ウェブアプリケーション134はまた、クリニックが、画像および患者情報などのデータをデータベース136に記憶し、データに関する様々なレポートを作成し、その組織、グループまたは特定のユーザのためのツールの使用に関する監査レポートを作成すること、ならびに課金およびユーザアカウント(例えば、ユーザの作成、ユーザの削除、パスワードのリセット、アクセスレベルの変更など)を可能にする。クラウドベースの配信プラットフォーム130はまた、製品管理者が、システムにアクセスして新しい顧客アカウントおよびユーザを作成し、パスワードをリセットすること、ならびに顧客/ユーザアカウント(データおよび画面を含む)にアクセスして技術サポートを容易にすることを可能にする。
【0071】
トレーニングプロセスは、例えば、アルファチャネル削除、パディング/ボルスタリング、正規化、閾値、オブジェクト検出/クロッピング、幾何学的特性の抽出、ズーミング、セグメント化、アノテーション付与、サイズ変更/スケーリング、およびテンソル変換など、データを前処理することを含む。データはラベル付けされ、クリーニングにされ得る。データが適切に前処理されると、1つまたは複数のAIモデルをトレーニングするために使用することができる。コンピュータビジョン画像記述子はまた、画像上で計算され得る。これらの記述子は、OpenCVまたは同様のライブラリに実装される、ピクセル変動、グレーレベル、およびテクスチャの粗さ、固定コーナー点または画像勾配の向きなどの品質を符号化し得る。各画像において探索すべきそのような特徴上での選択により、特徴のどの配置が結果クラスの良好な指標であるかを見出すことによってモデルが構築され得る。これらは、予め計算されてもよいし、モデル生成/トレーニング中に計算されてもよい。
【0072】
トレーニングは、ランダム化されたデータセットを使用して行われる。複雑な画像データのセットは、特に、重要な生存能力のある胚または生存能力のない胚の模範がセットを通して均等に分布されない、データセットが約10,000より少ない数の画像である場合、不均等な分布に悩まされ得る。したがって、データのいくつか(例えば、20個)のランダム化が一度に考慮され、次いで、以下に定義されるトレーニング、検証、およびブラインドテストサブセットに分割される。すべてのランダム化を単一のトレーニング例に使用して、トレーニングにとって最良の分布を示すものを評価する。当然の結果として、性能を向上させるために、異なるクラスの数の間の比がすべてのサブセットにわたって同じであることを保証して、試験およびトレーニングセットにわたる画像/データの均一な分布を保証することも有益である。トレーニングは、複数のトレーニング-検証サイクルを実行することをさらに含む。各トレーニング-検証サイクルにおいて、すべての使用可能なデータセットの各ランダム化は、典型的には、トレーニング、検証およびブラインド検証データセットとして知られる3つの別個のデータセットに分割される。いくつかの変形形態では、3つ超が使用され得、例えば、検証およびブラインド検証データセットが、様々な難易度の複数のサブ試験セットに階層化され得る。
【0073】
第1のセットはトレーニングデータセットであり、少なくとも画像の60%、好ましくは70~80%を含む。これらの画像は、AI評価/分類モデルを作成するために、深層学習モデルおよびコンピュータビジョンモデルによって使用される。第2のセットは検証データセットであり、これは典型的には画像の約(または少なくとも)10%である。このデータセットは、トレーニングデータセットを使用して作成されたモデルの精度を検証または試験するために使用される。これらの画像/データは、モデルを作成するために使用されるトレーニングデータセットから独立しているが、検証データセットは、モデルトレーニングの進捗を監視および最適化するために使用されるので、依然として精度においてわずかな正の偏り(bias)を有する。したがって、トレーニングは、この特定の検証データセットの精度を最大化するモデルを標的とする傾向があり、これは、他の胚画像により一般的に適用される場合、必ずしも最良のモデルではない場合がある。第3のデータセットは、典型的には画像の約10~20%であるブラインド検証データセットである。上述した検証データセットでの正の偏りに対処するために、第3のブラインド検証データセットを使用して、最終モデルの最終的な不偏の精度評価を行う。この検証は、最終モデルが作成され選択されている、モデリングおよび検証プロセスの最後に行われる。モデルがすべての胚画像に一般化可能であることを保証するために、最終モデルの精度が検証データセットと比較的一致することを保証することが重要である。検証データセットの精度は、上述の理由により、ブラインド検証データセットよりも高い可能性が高い。ブラインド検証データセットの結果は、モデルの精度のより信頼性の高い尺度である。
【0074】
DNNのアーキテクチャは、入力としての画像/データのサイズ、DNNを記述するテンソルの次元を有する隠れ層、および出力としてのクラスラベルの数を有する線形分類器によって制約される。ほとんどのアーキテクチャは、左/右、上下、および中央の概念を捉えるための小さい(3×3ピクセル)フィルタを用いて、いくつかのダウンサンプリング比を採用する。a)畳み込み2d層、b)整流線形ユニット(ReLU)、およびc)最大プーリング層のスタックにより、DNNを通るパラメータの数を扱いやすいままにすることができると同時に、フィルタが、画像の高レベル(トポロジー)特徴を通過し、それらを画像に埋め込まれた中間および最終的に微視的な特徴にマッピングすることを可能にする。最上層は、典型的には、SVMと同様に分類器として機能する1つまたは複数の完全接続ニューラルネットワーク層を含む。典型的には、ソフトマックス層は、結果として得られるテンソルを、完全に接続された分類器の後の確率を含むものとして正規化するために使用される。したがって、モデルの出力は、画像/データがクラスごとにクラスにあるか否かの確率のリストである。
【0075】
図1Eは、一実施形態による、トレーニング後に入力画像を予測に変換する畳み込み層を含む深層学習方法の概略アーキテクチャ図である。図1Eは、一実施形態による、RESNET152アーキテクチャに基づく一連の層を示す。構成要素は以下のようにアノテーション付与されている。「CONV」は、下の層からの入力の相互相関を計算する畳み込み2D層を示す。畳み込み層内の各要素またはニューロンは、その受容野のみからの入力、例えば3×3または7×7ピクセルを処理する。これは、層を記述するために必要とされる学習可能なパラメータの数を減少させ、すべてのニューロンが後続の層における他のすべてのニューロンに接続される完全接続層から構築されるものよりも深いニューラルネットワークが形成されることを可能にし、これはメモリ負荷が非常に高く、過剰適合する傾向がある。畳み込み層はまた、空間的に並進不変であり、これは、主題が正確に中心に置かれていることを保証できない画像の処理に有用である。「POOL」は、最大プーリング層を指し、これは、ネットワークの複雑さを低減するとともに、過剰適合も低減するために、所与の領域内で代表的なニューロン重みのみが選択されるダウンサンプリング方法である。例えば、畳み込み層の4×4正方形領域内の重みについて、各2×2コーナーブロックの最大値が計算され、次いで、これらの代表値を使用して、正方形領域のサイズを2×2の次元に縮小する。RELUは、非線形活性化関数として機能する整流線形ユニットの使用を示す。一般的な例として、ランプ関数は、所与のニューロンからの入力xに対して以下の形式をとり、生物学におけるニューロンの活性化に類似している:f(x)=max(0,x)。入力がすべての畳み込み層を通過した後、ネットワークの終わりにある最終層は、典型的には、分類器として機能する完全接続(FC)層である。この層は、最終的な入力をとって、分類カテゴリと同数の次元のアレイを出力する。2つのカテゴリの場合、最終層は長さ2のアレイを出力し、これは、入力画像/データがそれぞれ各カテゴリと合致する特徴を含む割合を示す。多くの場合、最終ソフトマックス層が追加され、これは、出力アレイにおける最終的な数を、0から1までに収まりかつ合計すると1になるパーセンテージに変換し、そのため、最終的な出力は、画像がカテゴリの1つに分類されるための信頼限界として解釈される。
【0076】
上述のように、コンピュータビジョンおよび深層学習方法は両方とも、前処理されたデータに対して複数のトレーニング検証サイクルを使用してトレーニングされる。トレーニング-検証サイクルは、以下のフレームワークに従う:トレーニングデータは前処理され、バッチに分割される(各バッチにおけるデータの数は自由モデルパラメータであるが、アルゴリズムが学習する速度および安定性を制御する)。拡張(augmentation)は、分割の前またはトレーニングの間に行われ得る。各バッチの後、ネットワークの重みが調整され、これまでの実行合計精度が評価される。いくつかの実施形態では、重みは、例えば勾配累積を使用してバッチ中に更新される。すべての画像が評価されると、1エポックが実行されたこととなり、トレーニングセットがシャッフルされ(すなわち、セットによる新しいランダム化が得られ)、次のエポックのためにトレーニングは再び先頭から開始する。
【0077】
トレーニング中、データセットのサイズ、データの複雑さ、およびトレーニングされているモデルの複雑さに応じて、いくつかのエポックが実行され得る。最適なエポック数は、典型的には2~100の範囲であるが、特定のケースに応じてより多くてもよい。各エポックの後、モデルは、トレーニングが行われることなく検証セットで実行されて、モデルがどれほど正確であるかの進歩の尺度を提供し、より多くのエポックが実行されるべきかどうか、またはより多くのエポックが過剰トレーニングをもたらすかどうかをユーザに案内する。検証セットは、全体的なモデルパラメータまたはハイパーパラメータの選択を案内するので、真にブラインドセットではない。しかしながら、検証セットの画像の分布が、トレーニング後に実行される最終的なブラインドテストセットに非常に類似していることが重要である。以前にトレーニングされたモデルが新しいモデルをトレーニングするための開始点として使用される、事前トレーニングまたは転移学習が使用され得る。事前トレーニングされていないモデル、または分類器などの事前トレーニング後に追加された新しい層については、重みを初期化する必要がある。初期化方法は、トレーニングの成否を左右し得る。例えば、すべての重みを0または1に設定すると、性能は非常に悪くなる。乱数の均一な配置、または乱数のガウス分布もまた、一般的に使用される選択肢の代表である。これらはまた、XavierまたはKaimingアルゴリズムなどの正規化方法と組み合わされることが多い。これは、ニューラルネットワーク内のノードが、飽和状態(1に近い)またはデッド状態(0に近い)になることによって、特定の状態に「トラップ」された状態になり得、この場合、その特定のニューロンに関連する重みをどの方向に調整するかを測定することが困難であるという問題に対処する。これは、双曲線正接関数またはシグモイド関数を導入するときに特に一般的であり、Xavier初期化によって対処される。
【0078】
深層学習では、検証セットに対するモデルトレーニングを最適化するために、ある範囲の自由パラメータが使用される。重要なパラメータの1つは学習率であり、これは、基礎となるニューロン重みが各バッチ後にどの程度調整されるかを決定する。選択モデルをトレーニングするとき、データの過剰トレーニングまたは過剰適合は回避されるべきである。これは、モデルが含むパラメータが多すぎて適合することができず、トレーニングまたは検証セット上での精度と一般化可能性を引き換えにして、本質的にデータを「記憶」するときに、発生する。一般化可能性とは、モデルが、データのノイズの中で、胚の健康を示す真の基礎となるパラメータを正確に特定したかどうかの真の尺度であり、トレーニングセットを完全に適合させるために妥協しているのではないので、これは回避されるべきである。
【0079】
検証および試験段階中に、成功率は、トレーニング段階中の過剰適合に起因して突然低下することがある。これは、学習速度の減速または減衰(例えば、nエポックごとに学習速度を半分にする)またはCosineAnneallingの使用、テンソル初期化または事前トレーニングの前述の方法の組込み、およびドロップアウト層などのノイズの追加、またはバッチ正規化を含む、様々な戦術によって改善され得る。バッチ正規化は、勾配の消失または爆発を打ち消すために使用され、これにより、大規模なモデルのトレーニングの安定性が改善され、その結果、一般化が改善される。ドロップアウト正則化は、整流器の受容範囲内にすべての入力重みをゼロに設定するランダムな機会を導入することによって、ネットワークを効果的に単純化する。ノイズを導入することによって、過剰な特殊化に依拠することなく、残りの整流器がデータの表現に正確に適合することを効果的に保証する。これにより、DNNは、より効果的に一般化することができ、ネットワーク重みの特定の値に対する感度が低くなる。同様に、バッチ正規化は、非常に深いニューラルネットワークのトレーニング安定性を改善させ、これにより、整流段階の前段階として入力重みをゼロ平均および単位分散にシフトすることによって、より高速な学習およびより良好な一般化が可能になる。
【0080】
深層学習を実行する際に、許容可能な分類を達成するためにニューロン重みを変更するための方法は、最適化プロトコルを指定する必要性を含む。すなわち、「精度」または「損失」(後述する)の所与の定義に対して、正確にどの程度重みを調整すべきか、および学習率の値をどのように使用すべきかは、指定する必要があるいくつかの技法を有する。好適な最適化技法には、モーメンタムを用いた(および/またはNesterovの加速勾配)確率的勾配降下法(SGD)、Adadelta(Adaptive Gradient with Delta)、Adam(Adaptive Moment Estimation)、RMSProp(Root-Mean-Square Propagation)、およびL-BFGS(Limited-Memory Broyden-Fletcher-Goldfarb-Shanno)アルゴリズムが含まれる。これらのうち、SGDベースの技法は、一般に、他の最適化技法より性能が優れていた。例えば、ヒト胚の位相差顕微鏡画像に対してAIモデルをトレーニングするための学習率は、0.01~0.0001であった。しかしながら、これは一例であり、学習率はバッチサイズに依存し、バッチサイズはハードウェア容量に依存する。例えば、より大きなGPUは、より大きなバッチサイズおよびより高い学習率を可能にする。ある範囲のモデルがトレーニングされると、これらは、アンサンブルまたは蒸留技法を使用して組み合わされて、後に展開され得る最終モデルを生成することができる。
【0081】
単蒸留と称される第1の実施形態では、AIモデルは、複数のトレーニングされた教師モデル210を生成することによって生成され、各教師モデルM、M、・・・、M、・・・、Mは、ノードデータセットのうちの1つに対してローカルにトレーニングされる(すなわち、ノードあたり1つのモデル)。教師モデル30の各々がトレーニングされると、それらは中央ノード40に移動される220。次いで、学生モデル42 Mは、蒸留トレーニング技法/方法を使用して、転送データセット44に対して複数のトレーニングされた教師モデル30を使用してトレーニングされる。トレーニングされた学生モデルMは、新しいデータが提示されたときに結果を生成するために記憶され使用される出力AIモデルである。
【0082】
ノードにおける教師モデルの初期ローカルトレーニングは、任意の好適なAIまたは機械学習トレーニングアーキテクチャを使用して実行され得る。教師モデルは、任意のディープニューラルネットワーク(DNN)アーキテクチャであってもよく、互いに完全に異なるアーキテクチャであってもよい。例えば、AIアーキテクチャは、RESNET、DENSET、INCEPTION NET、EFFICIENT NETなどのニューラルネットワークアーキテクチャに基づき得る。Torch/Pytorch、Tensorflow、Keras、MXNetまたは同等物などのAIおよび機械学習ライブラリ、ならびにOpenCV、Scikit-imageおよびScikit-learnなどのコンピュータビジョンライブラリが使用され得る。これらのライブラリは、機械学習モデルを構築するための低レベルコマンドを有するオープンソースライブラリである。
【0083】
学生モデル、教師モデルであるか、またはスペシャリスト(単一のローカリティのみでトレーニングされたモデル)もしくはジェネラリストモデル(複数のローカリティからの代表を考慮に入れた完全なモデル)として説明される各モデルは、それぞれディープニューラルネットワークを指す。各ネットワークは、その構成要素「ニューロン」が組織化され、一緒に接続される方法(段落0045のアーキテクチャ)および重みパラメータ自体の値によって完全に特徴付けられる。ニューロン自体は、行列乗算がアレイの各レベルに適用された後に生物学的な神経活性化を模倣するように設計された、整流線形ユニット(ReLU)などの特定の活性化関数を有する、多次元アレイ(数学的には「テンソル」)の単なる要素である。ネットワーク重み自体は、ニューロン間の各ネットワークの接続の数値表現である。ネットワーク/モデルは、(分類問題に関するサンプルの実際のクラスラベルとネットワークの出力との間の平均二乗誤差などの)特定の目的関数のコストを最小化するようにその重みを調整することによってトレーニング/学習される。トレーニングプロセスの後またはトレーニングプロセス中に、ネットワークの重みが変更され、ローカルに、またはAmazonクラウドストレージS3もしくは他のクラウドストレージサービスに記憶されることができるファイル(チェックポイントファイルまたはトレーニングされたモデルファイルと呼ばれる)にネットワークの重みをチェックポイント/保存することができる。本明細書で説明するように、モデルを別のノードに移動または転送することは、httpsなどのプロトコルを使用して安全に、ニューラルネットワークの重みおよび事前定義されたアーキテクチャを転送することを説明する。蒸留法に触発されたトレーニングでは、学生および教師モデル、スペシャリストおよびジェネラリストモデルは、任意の種類の前述のネットワークであり得る。蒸留トレーニングの文脈では、「学生モデルを各ノードに送る」、「別のローカリティで学生になるように教師モデルを送る」、「ワーカモデルでマスタノードを更新する」などの用語は、同じ意味を有し、すなわち、ネットワークの重みを1つのロケーション/マシン/サーバから別のロケーション/マシン/サーバに転送することである。ニューラルネットワークモデルをトレーニングするためのトレーニングプロセスが十分に確立されていると仮定すると、チェックポイントされた学生ネットワークの重みは、以下でさらに説明する蒸留学習手順の場合のように、モデルが他のモデルに対して教師の役割を果たすかどうかにかかわらず、モデルがトレーニングを継続するのに十分な情報である。したがって、本明細書の文脈では、モデルをコピーまたは移動させることは、少なくともネットワーク重みをコピーまたは移動させることを指す。いくつかの実施形態では、これは、機械学習コード/APIの適切な機能を使用して、チェックポイントファイルまたはモデルファイルをエクスポートまたは保存することを伴い得る。チェックポイントファイルは、機械学習コード/APIの一部として供給される標準関数(例えば、ModelCheckpoint()およびload_weights())を使用してエクスポートされ、次いで読み戻される(リロードされる)ことができる定義されたフォーマットを有する機械学習コード/ライブラリによって生成されたファイルであり得る。ファイルフォーマットは、直接送るまたはコピー(例えば、ftpまたは同様のプロトコル)され得るか、またはJSON、YAMLまたは同様のデータ転送プロトコルを使用して直列化されて送られ得る。いくつかの実施形態では、追加のモデルメタデータがエクスポート/保存され、モデル精度、エポック数などのネットワーク重みと共に送られ得、これは、モデルをさらに特徴付けるか、または他の方法で別のノード/サーバ上で別のモデル(例えば、学生モデル)を構築するのを支援し得る。
【0084】
転送データセット44は、蒸留法の間に教師モデルと学生モデルの両方による使用およびアクセスが許可されるデータとして確立されることが、トレーニング前に事前に決定されたデータセットである。これは、トレーニングしようとする元のデータセット全体から供給され得、例えば、これは、配信アクセスが許可された、ノード10の中から取得された認可されたデータセットであってもよく、またはトレーニングの目的で収集され、ノードデータセットに適用されるプライバシーまたは他のアクセス制限を受けない新しいデータセットであってもよい。代替的に、転送データセットは、各ローカリティにおけるデータセットであってもよく、すなわち、各ローカリティに対して異なる転送データセットが存在してもよい。転送データセットは、複数のノードデータセットおよびローカルデータセットから引き出された合意されたデータの混合であり得る。転送データセットは、知識蒸留プロセス中に教師からの学生モデルを較正するために使用され得る。
【0085】
いくつかの実施形態では、モデルが、共有される前にプライベートデータを含まないことをチェックするためにコンプライアンスチェックが実行される。表1は、プライベートデータを記憶する能力があるモデルが記憶したかどうかをチェックするために使用され、プライベートデータがそのローカリティから出ることが許可されないようにコンプライアンスが尊重されることを保証しなければならないコンプライアンスチェック方法の一実施形態のための擬似コードを提示している。これは、データ漏洩チェック、例えば、モデルから生成された例がデータセット内の例と類似しているかどうかを特定することができるNearest Neighboursアルゴリズムを実行することによって、モデルが特定の例を記憶しているかどうか、または正しく一般化されているかどうかをチェックすることで達成される。
【0086】
関数check_no_data_leakの出力(M,M’,D,D’)は、モデルMが正しく一般化されている場合にはTRUEであり、モデルMが正しく一般化されていない場合にはFALSEである。この関数は、Dに対して新たにトレーニングされたモデルMから導出可能なデータセットから、Dに対してトレーニングする前の元のモデルM’から導出可能なデータセットを差し引いた(または除外した)データセットD’を生成しなければならない(D内のデータポイントが、Dに対してトレーニングする前の元のモデルM’から導出可能なデータと一致する状況を防ぐために)。データ漏洩がないことを確認するために、D’をデータセットDと比較することができる。
【0087】
FALSEである場合、コンプライアンスが尊重されることを保証するために追加のタスクが実行されなければならない。これには以下が含まれる:
(1)異なるパラメータを用いてデータDからのM’を再トレーニングし、それがデータを複製できないことを再チェックし、失敗した場合、N回繰り返した後に放棄して代替選択肢(2)を選択し、次に(3)または(4)を実行する;失敗した場合には、
(2)後に(例えば、クラスタ内の他のすべてが完了したときに)新しい異なるM’を用いてサーバSをもう一度試行し、(1)をもう一度試行する;失敗した場合には(3)または(4)を実行する:
(3)モデルが一般モデルに寄与することを許可しない(すなわち、Mi’を返すことによってそれを無視する);または
(4)プライベートデータを潜在的に含む暗号化されたモデルが共有および集約される前に(データポリシーがプライベートデータの暗号化共有を許可する場合のみ)、重み、勾配、またはデータに対して任意の組合せで暗号化プロセスを実行する。
【表1】
【0088】
表2は、単蒸留アルゴリズムの実施形態のための擬似コードを提示する。この実施形態は、上述され、表1に示されるコンプライアンスチェック方法を使用する。
【表2】
【0089】
修正された非集中型蒸留(modified decentralised distillation)と称される別の実施形態では、最後の蒸留ステップが修正され、学生モデルMをトレーニングすることは、ノードの各々において複数のトレーニングされた教師モデルM、M、・・・、M、・・・、Mを使用して学生モデルMをトレーニングすることを含む(すなわち、図2においてステップ230がステップ232と置き換えられる)。これは、ノード11、12、14、16のそれぞれと中央ノード40との間に複数の領域間ピアリング接続71、72、74、および76を確立することによって、学生モデルをトレーニングするための単一のトレーニングクラスタを形成することによって容易になる。したがって、この実施形態では、転送データセット44は、ノードデータセット21、22、24、および26のそれぞれを含み、したがって、学生モデルが完全なデータセットにアクセスすることを可能にする。
【0090】
例えば、それぞれが別個のロケーションであり、データセット自体の共有は許可されないが、ニューラルネットワーク重みおよび非機密メタデータ(例えば、モデルアーキテクチャ、匿名化されたファイル番号、各領域における総データポイント数など)の共有は許可される学生モデルSおよび教師モデルT、TおよびTを有する。教師の総数は、典型的には、別個のロケーション(例えばクリニック)の総数と等しい。トレーニングコードおよびネットワークの重みを受信および送るためのコードは、各ロケーション/マシンにおいて利用可能であると仮定される。簡単にするために、SおよびTはモデル名を示し、他のノードに送ることができるモデルの重みでもある。クラウドベースのマスタまたは管理サーバノードは、トレーニング手順を制御し、生産のために最終的なトレーニングされたモデルを収集する。
【0091】
提案される修正された非集中型蒸留では、最初に、すべての教師が、自身のローカルデータに基づいて独立してトレーニングされる。次いで、Sが各Tローカリティに送られ、ローカルデータおよびローカルにトレーニングされた教師に基づいて蒸留学習を実行する。Sが数ラウンドトレーニングされた後、それ自体の重みは、ローカル教師モデルからの蒸留に基づいて洗練される。Sをさらに改善するために、蒸留法が終了し、次いで、少数のトレーニング反復で最終的な非集中型トレーニング段階が実行され得る。この最終ステップは、Sがすべてのデータに同時に曝される機会を有することを保証し、蒸留プロセスの順序付けに関連する特定のクリニックに対する偏りを軽減する。非集中型ステップは、時間およびネットワーク転送の観点でより高いコストを示すが、蒸留プロセスが効果的な事前トレーニングステップとして機能したという事実により、はるかに少ない数の反復またはエポックに対してのみ適用される必要がある。非集中型トレーニング段階では、Sがマスタノードとなり、SのコピーS、SおよびSが作成されて、それぞれ各Tロケーションに送られる。各Sは、この段階の間、ワーカノードとして機能する。トレーニングを実行する間、マスタノードは、各バッチの後にすべてのワーカノードの勾配/重みを収集して平均化するので、異なるロケーションに割り当てられたすべてのデータにSを同時に曝すことができる。表3は、修正された非集中型蒸留アルゴリズムの実施形態のための擬似コードを示す。
【0092】
教師モデルの各々が蒸留ステップの前にトレーニングされているので、学生モデルはより速くトレーニングされることとなり、必要とされる反復回数がはるかに少なくなり、したがってコストが削減される。さらに、限られた時間の間、完全なデータセットにアクセスすることができ、学生モデルの一般化能力を向上させるのに役立つ。これは、単蒸留の場合よりはコストがかかるが、完全に非集中型のモデルをトレーニングするよりも大幅に少ない。
【表3】
【0093】
上記の実施形態は、領域または機関間のデータ共有を妨げ、モデルをトレーニングするために使用され得る単一のデータセットに個々のデータセットを照合することを妨げる制限を克服する。上記の実施形態は、ノード(またはローカリティもしくは領域)の各々が同じクラスタの一部であるように見えるように、クラウドサービス(または任意のネットワーク化されたサーバ、固定もしくはポータブルデバイス)および分散トレーニングを効果的に構成する。すなわち、ローカルクラウド61、62、64および66、ならびに中央クラウド50は、接続されたクラウドクラスタを形成する。これは、例えば、領域間ピアリング接続を使用してクラウドサービスプロバイダをセットアップすることを伴う。これは、異なるクラウド領域のクラスタを作成するために使用することができる特徴である。これは、多くの場合、領域にわたってデータベースおよびサービスをミラーリングするために使用される。標準的な分散トレーニングが非集中方式で機能することができるようにこれを構成することができる。
【0094】
上述したように、修正された非集中型蒸留は、学生モデルが各バッチ後に共有される必要性(例えば、各ロケーションから重みを送る必要があること)に起因する性能ペナルティを依然として被る。深層学習モデルをトレーニングすることは、単一のマシンまたはノード上でトレーニングする場合であっても、時間がかかる。複数の領域を使用するようにシステムをスケールアップする場合、簡易なモデルのトレーニング時間は、分散トレーニング(同じ領域および同じデータセット)の場合のように減少するのではなく100倍増加し、例えば、トレーニングに1時間かかるものが4日かかるようになる。これは、同じデータセンターにおけるノード上でモデルをトレーニングすることと、地球の反対側にあるノードでモデルをトレーニングすることとの間の地理的スケールの大きな違いによるものである。これは、勾配更新パターン(パラメータサーバおよびリングオールリデュース)の選択によってさらに悪化する。例えば、いくつかの国際リンクは、しばしば地理的距離に起因して、他のものよりもネットワーク待ち時間の観点でよりコストがかかる。さらに、クラウドサービスプロバイダは、典型的には、データセンター間のネットワークトラフィックに課金する。正確な速度は、どの領域が使用されているかに依存する。
【0095】
しかしながら、追加の実施形態は、a)ノード間のデータの不十分な重み付けまたはクラス不均衡からの精度を改善させるので、および最も重要なことに、b)時間/コスト効率を高めるために、修正された非集中型蒸留法を拡張するいくつかの追加の特徴を組み込み得る。
【0096】
一実施形態では、損失関数重み付けが使用される。
【0097】
重み付けのプロセスは、最終結果(outcome)または結果(result)に対するデータセットの特定の側面の寄与を他のものよりも強調することを伴い、それによって、分析において他のものと比較してそれらの側面を強調する。すなわち、データセット中の各変数が最終結果に等しく寄与するのではなく、データのいくつかは、他よりも大きく寄与をするように調整される。
【0098】
これは、トレーニングに使用される損失関数を以下のように修正することによって行われる。最初に、機械学習モデルをトレーニングするために使用される標準的なクロスエントロピー損失関数を選択し、これを総称的に「CrossEntropyLoss」と呼ぶ。一実施形態では、これは、ログ損失またはバイナリクロスエントロピー損失関数
【数1】
であってもよく、ここで、yは、クラスラベルcが第iの要素について正しいかどうかのバイナリインジケータであり、
【数2】
は、第iの要素がクラスcに属するというモデル予測である。他の同様の損失関数および変形が使用され得る。xが最小化すべきトレーニングデータのバッチを表し、yがバッチxの各要素に関連するターゲット(グランドトゥルース値)であり、S(x)およびT(x)がそれぞれ学生モデルおよび教師モデルから得られた分布である場合、蒸留損失関数は以下のように定義される:
【数3】
関数Dは発散メトリックであり、実際の一般的な選択は、例えば、以下のようなカルバックライブラー発散である(ただし、ジェンセンシャノン発散などの他の発散メトリックが使用されてもよい):
【数4】
【0099】
別の実施形態では、負荷分散を改善するためにアンダーサンプリング手法が使用される。
【0100】
標準的な分散トレーニング方法の場合、勾配はバッチごとに平均化される必要があるので、バッチの各々は、それらが等しく寄与するように負荷分散される必要がある。さらに、同期SGD(synchronizes gradients every batch)は、各ワーカ上の部分データセットが同じサイズであると仮定する。より具体的には、リングオールリデュース構成またはパラメータサーバ構成のいずれかにおいて、ノードまたはマスタノードの各々は、それぞれ、ワーカの各々から勾配を受信するまでブロックする(ネットワークデータを待つ)。これは、標準的なアルゴリズムは各ワーカが等しく寄与すると仮定するので、データセットが利用可能なサンプルの数の観点からバランスがとれていない場合、トレーニングが失敗することになることを意味する。しかしながら、非集中型セットアップでトレーニングするとき、ワーカは、各領域について異なるデータセットサイズを有することになる。
【0101】
この問題に対処するために、エポック(データセットの1つの完全なトレーニングパス)ごとに各ワーカが利用可能なサンプルのサブセットのみをサンプリングするアンダーサンプリング方法が使用され得る。アンダーサンプリング量は、集合において利用可能な最小データセットに等しくなるように選択される。これは、異なる領域のすべてからのサンプルを等しく重み付けする効果を有し、モデルのロバスト性にも役立つことがあり得る。しかしながら、集合内のいくつかのデータセットは他のものよりもはるかに大きいので、データセットの反復の総数を増やす必要がある。すなわち、エポックの数は、アンダーサンプリング比でスケーリングされる必要がある。例えば、最小データセットが100個のサンプルであり、最大のものが1000個である場合(これは、各エポックについて100個までアンダーサンプリングされる)、エポックの数を10倍増加させる必要がある。これは、同様のトレーニングダイナミクスが生じることを保証し、モデルは、より大きなデータセット内のすべての例を見る機会を有する。
【0102】
スペシャリストおよびジェネラリストトレーニングと称されるさらなる実施形態では、蒸留ステップ230がさらに修正される。この実施形態では、コストをさらに削減するために、各教師について学生ネットワークを連続的にトレーニングするのではなく、異なる教師の各々を他のすべての教師の学生として使用することが提案される。
【0103】
前述したように、ノードの各々の間に複数の領域間ピアリング接続を確立することによって、学生モデルをトレーニングするための単一のトレーニングクラスタを形成する。前述したように、転送データセットは、ノードデータセットの各々を含む。しかしながら、この実施形態では、学生モデルをトレーニングすること230は、複数の学生モデルをトレーニングすること234を含み、各学生モデルは、教師モデルがトレーニングされたノードにおいて各教師モデルによってトレーニングされる。すなわち、各教師は、それ自体のローカリティにおけるスペシャリストになり、他のすべての教師が他のすべてのローカリティにおけるデータに一般化するのに役立つ。複数の学生モデルがトレーニングされると(すなわち、各学生が他のすべてのスペシャリストの下でトレーニングされると)、アンサンブルモデルが複数のトレーニングされた学生モデル(またはその集合)から生成される。
【0104】
この実施形態では、最初に、すべての教師がローカルデータに基づいてトレーニングされる。すなわち、教師Tは、ロケーションi(例えば、地域のクリニックi)におけるスペシャリストになり、このロケーションにおけるローカルデータに対して最適化されるようにトレーニングする。次いで、修正された非集中型蒸留の場合のように学生をそのロケーションに送るのではなく、各教師は、他の教師のロケーションに順次送られ、他の教師の知識を学習/蒸留する。最後に、すべての教師は、十分な数のロケーション(すべてのロケーションを含む)に曝されると、ジェネラリストになる。これが起こると、それらはトレーニングされたモデルとみなされる。いくつかの実施形態では、ジェネラリスト(またはトレーニングされたモデル)にするために各教師についてロケーションの閾値数が設定される。すなわち、それが十分な数のロケーションに送られて(すなわち、より多くのデータに曝されて)ジェネラリストに変えられるまで、それはスペシャリストである。いくつかの実施形態では、教師は、少なくとも閾値数のノードにおいて所定量のデータに対してトレーニングされた後にトレーニングされる。最終段階は、最終モデルを作成するためにすべてのトレーニングされた教師の重みを一緒にアンサンブルする方法を伴う。
【0105】
様々なアンサンブル方法が、出力AIモデルを生成するために使用され得る。アンサンブル手法では、モデルのセットが取得され、次いで、各モデルが入力データ(例えば、画像)に「投票」し、最良の結果をもたらす投票戦略が選択される。これらは、平均投票法、加重平均法、エキスパート層の混合(または学習された重み付け)法を含み得、または、単蒸留もしくは修正された非集中型蒸留を使用して複数の学生モデルから最終モデルが蒸留されるさらなる蒸留法を使用することも含み得る。この後者の方法は、(アンサンブルと比較して)精度の損失の代わりに実行時推論効率を改善する(コストを削減する)ために使用さ得る。
【0106】
非集中型トレーニングでは、モデルハイパーパラメータの最適化は2つのステップで行われる。使用される場蒸留法が合、各個々のロケーションは、それ自体のデータセットに適した異なるニューラルネットワークアーキテクチャ(例えば、過剰適合を防止するためにより小さいデータセットに対して小さいモデル)を用いることを含めて、独立してトレーニングされる。そのローカリティにおける各教師モデルのトレーニングは、そのデータセットに適したそれ自体のハイパーパラメータ最適化を受けることができる。この最適化は個々に行われ得る。学生モデルへの蒸留プロセス中に、各教師モデルから蒸留される最終的な学生モデルのハイパーパラメータもまた、教師モデルの個々のハイパーパラメータ最適化から独立しているので、通常のニューラルネットワークトレーニングによる通常のハイパーパラメータ最適化問題として扱うことができる。すべてのモデル更新がマスタノードに送られる非集中型トレーニング段階の場合、ハイパーパラメータ最適化問題は、まとめて扱われなければならない。スレーブノード上のモデルコピーは、マスタモデルと同じアーキテクチャでなければならないので、ハイパーパラメータ最適化がマスタノードレベルで行われなければならず、これは、更新するためにスレーブノードに送られる。したがって、ハイパーパラメータ最適化は、あたかもモデルが通常の分散トレーニングを使用して処理されたかのように、またはあたかもデータが単一のロケーション、単一の大きなデータセットに配置されたかのように実行され得る。
【0107】
表4は、スペシャリストおよびジェネラリスト蒸留アルゴリズムの実施形態のための擬似コードを提示する。実際には、各サーバにおいて転送セットとして使用される別個のデータセットを確保できない場合があるため、各クラスタ中央サーバまたはグローバル中央サーバにおける転送データセットは任意選択であることに留意されたい。したがって、これらの任意選択のデータセットは、利用可能な場合、最良クラスタモデル(M)または最良グローバルモデル(M)を選択するために使用可能な追加のモデルを生成するために使用される。ローカル転送データセットDが利用可能でない場合、ステップ29が実行されることに留意されたい。したがって、ステップ30において、Mk1およびMk2の一方は利用可能であり、他方はヌルである。一変形形態では、転送データセットが利用可能であるかどうかにかかわらずMk2が常に計算されるように、ステップ29が修正される。次いで、ステップ30において、Mk2、または利用可能であればMk1およびMk2の両方が使用される。
【表4-1】
【表4-2】
【0108】
本明細書で説明されるAIトレーニングプロセスは、各ノードがモデルをトレーニングし、次いで、知識蒸留を使用して、異なるローカリティにおける個々のモデルを単一のモデルにまとめるものと要約され得る。本明細書で説明される様々な実施形態は、同様の結果をもたらすが、以下でさらに述べられるように、異なる時間/コストトレードオフを伴う。いくつかの実施形態では、プロセスにいくつかのさらなる条件または制約を課し得る。
【0109】
一実施形態では、各ノードが閾値数のデータポイント(最小データポイント閾値)よりも多くを含まなければならないこと、または蒸留プロセスから除外されなければならない(すなわち、学生モデルがそのデータセットに対してトレーニングされない)という第1の条件が強制され得る。この閾値はデータセットに依存し、一実施形態では、個々のトレーニングを使用したノードに対するトレーニング試験を通じて取得される。
【0110】
追加的に、(第1の条件による)十分な数のデータポイントを含まないノードの数が閾値数(最小許容ノード閾値)を下回る場合、提案された非集中型蒸留ステップが無視されるような第2の条件が強制され得る。
【0111】
次いで、すべてのノードに対して非集中型トレーニングが実行される。蒸留が実行された場合(すなわち、第2の条件が適用されなかった場合)、蒸留されたモデルは、非集中型トレーニングの前に事前トレーニングされたモデルとして使用される。これにより、実行されるべき全体的な非集中型トレーニングをより少なくすることができる。なぜなら、蒸留により、一般化されたロバストなモデルにすでに近いモデルが得られることとなり、非集中型蒸留プロセスは、どのノードからのデータも除去することなく、あたかもデータセット全体が単一のマシン上で組み合わされているかのようにモデルを微調整するだけで精度を所望のレベルに高めるためである。このプロセスは、最初に単一の蒸留モデルを取得することなく非集中型トレーニングを使用する場合に必要とされることとなるモデルの転送によるネットワークトラフィックコストを削減する。
【0112】
上記のプロセスは次のように要約され得る:各ノードがモデルをトレーニングし、知識蒸留を使用して(十分なノードが十分なデータを含む場合)、異なるローカリティにおける個々のモデルを単一のモデルにまとめ、次いでそれを事前トレーニングされたモデルとして使用して非集中型トレーニングを実行することができる。
【0113】
しかしながら、非集中型トレーニングがスケーラビリティに起因して実行できない場合、すなわち、ノードの総数が非常に大きく、ロジスティックにプロセスを実行することができないか、または他の理由で望ましくない場合、一実施形態による、AIモデルの非集中型トレーニングを実行するためのマルチレベルプロセス300の概略図である図3に示すように、マルチレベルプロセスが実行され得る。
【0114】
最初に、ノードの総数よりも少ない有限の数のクラスタが存在するように、N個のノード10がk個のクラスタに分けられる(k<N)。ノードをクラスタに分けることは、決定論的に、例えば地理的な近接性に基づいて、ランダム選択を介して、またはハイブリッド手法を介して、実行され得る。例えば、ノードは大きな地理的領域に分けられ得、地理的領域を有するノードを(領域内の)複数のクラスタにランダムに割り当てる。
【0115】
次いで、上述した実施形態のうちの1つによる非集中型トレーニングプロセス200が、k個のクラスタの各々において別々に実行されて(ただし、クラスタ間では実行されない)、各クラスタについてトレーニングされたモデルが生成される。すなわち、クラスタ内の非集中型トレーニングの出力である(したがって、クラスタ全体を表す)クラスタモデルを記憶するクラスタ代表ノードを定義することができる。クラスタ代表ノードは、クラスタの管理ノードであってもよい。
【0116】
結果として得られるk個のモデルMs1、Ms2、・・・、Msi、・・・、Msk(すなわち、各クラスタに対して1つ)は、次いで、第1のノード層310を形成する際にこの時点から別個のノードとして扱うことができる(すなわち、ノード層は、k個のクラスタ代表ノードから形成され、それぞれが関連するクラスタモデルを記憶する)。さらなる非集中型トレーニングプロセス200は、これらのk個のクラスタ代表ノードのみを使用して、このノード層310上で実行される(すなわち、クラスタモデルがノードとして機能する)。事実上、クラスタの代表/管理ノードは、あたかもそれ自体のローカルデータセット(これは代表/管理ノードの制御下にある)を有するノードであるかのように扱われる。この時点から、k個のクラスタ代表(管理)ノードのみがトレーニングに参加する。これらは、具体的に選択されたk個のノードのみを除いて、上述した非集中型トレーニングと同じ方法を使用して、すべての意図および目的で扱われる。管理ノードは、それらのそれぞれのクラスタ内で排他的に非集中型トレーニングから得られた結果モデルであるため、このステップの前にそのクラスタ内の他のノードに関する情報を含む。
【0117】
このマルチレベルプロセスは、複数回繰り返され得、毎回、ノードのクラスタの新しい層を(前のノード上に)作成し、この新しい層において、上記のように非集中型トレーニング処理200を実行する。例えば、図3は、第2の層320がj個のモデルMs21,…,Ms2jから構成されていることを示す。これらは、次いで、最終モデルMs31を生成するためにさらなる非集中型トレーニング処理200に渡される。これにより、階層的非集中型トレーニングシステムが作成され、ここでは、各ノードは実際に、リーフノード10がデータセットを保持する実際のノードに対応する最下層になるまで、下層のクラスタに対してトレーニングされた関連モデルを有するクラスタである。
【0118】
非集中型環境を扱うことに関連する課題の1つは、クラウドリソース51、52、54、56、58のプロビジョニングである。この問題を軽減するために、必要なハードウェアおよびソフトウェア定義ネットワーキング機能を自動的にプロビジョニングするためのクラウドプロビジョニングモジュール48が開発された。これは、特定のクラウドサービスプロバイダ上の利用可能なサーバ構成を検索し、同時に、選択された領域(例えば、大陸の異なる側の米国内の複数の領域、オーストラリア内のノードなど)に対応する、必要とされる所望の数のサーバを配分するソフトウェアを書くことによって達成された。領域が選択されると、モデル構成は、安全なgitリポジトリなどの分配サービスを通して各領域に利用可能にすることができる。これにより、トレーニングランタイムを自動的に構成し、トレーニングプロセスを実行するサービスを、任意の所望のローカリティ(例えば、管理ノード40をホストするクラウド50、ノードクラウド61、62、64、66)において所望通りに正確に作成することができる。サーバロケーションは、他のノード間でデータセットを共有することなく、ローカルデータセットのみを含むようにロードすることができる。次いで、トレーニングは、分散トレーニング機能を使用してバッチ間で同期されてもよく、ここで、分離されたサーバが関与する。蒸留の場合、トレーニングは同期される必要はなく、ノード間で集合的に使用される転送セットが配分され得る。領域間ピアリング接続は、ノードIDおよびユーザIDを使用して接続を確立し、次いで、接続されたノードに対して対応するIP範囲(またはルーティングIPアドレス)を使用して各ノードにおいて(ルーティングテーブル内の)適切なルーティングルールを設定することによって、ノード間でプログラム的に(すなわち、ソフトウェアAPIを使用して)確立され得る。例えば、AWSは、パワーシェルモジュールと、接続要求を作成し受け入れるためのコマンド(例えば、createVpcPeeringConnection、acceptVpcPeeringConnection)、接続のためのルーティングルート/テーブルを構成するコマンド(例えば、CreateRoute)、および接続を修正または閉鎖するコマンド(DeleteVpcPeeringConnection)を提供するAPIインターフェースとを提供する。最後に、トレーニングが完了した後、プロビジョニングモジュール48は、構成をティアダウン、すなわち、この特定のトレーニングランに関与していたすべてのサーバ、およびこれらのサーバのみをシャットダウンすることができ、それによって、プロビジョニングされた機能(例えば、ハードウェア、ノード、ネットワーキング機能など)に関する将来のコストを節約する。
【0119】
本明細書では、非集中型トレーニングという用語は、以下の限りにおいてデータプライバシーが必要とされる分散データに対してモデルのトレーニングが実行される場合に使用される:
(1)データは、それ自体のローカリティから移動されることもコピーされることもなく、トレーニング中そのローカリティに留まらなければならない;および
(2)共有されるトレーニングされたAIモデルは、トレーニングされるデータのコピーまたは実質的なコピーを含まず、データの一般的な派生物のみを含む。
【0120】
本明細書で説明される非集中型トレーニング方法の実施形態は、データプライバシーを依然として保証するという点で、連合学習手法といくつかの類似性を共有するが、通常の連合学習トレーニングに必要とされる暗号化のレベルを必要としないという利点を有する。例えば、連合学習が、プライベートデータを含むデバイス上のAIモデルおよび共有されるモデルをトレーニングするために使用されると、連合学習では、一般化されたモデルを作成するために、異なるロケーション/サーバにおいて、プライベートデータを潜在的に含む暗号化されたモデルが、同じくプライベートデータを潜在的に含む他の暗号化されたモデルと共に共有および集約される前に、送信されたモデル重み、勾配、またはデータを任意の組合せで暗号化することが必要となる。この場合、プライベートデータは暗号化されるが、AIモデルを作成するために、連合学習では依然として共有され、ホストサーバから離れる可能性があり、これは規則またはポリシーによって許可されていない(したがって、連合学習の使用を防止する)ことに留意されたい。したがって、本明細書で説明される知識蒸留実施形態では、モデルはトレーニング(または通知)され、プライベートデータのソースにおいて集約される。したがって、モデルは、プライベートデータを含む可能性が低いとともに、共有される前にデータプライバシーについて検証されるので、標準的な連合学習よりも改善される。
【0121】
結果
【0122】
この結果のセクションは、上述した非集中型トレーニング技術および組み合わされた知識蒸留スケーリング非集中型トレーニング技法の有効性に関する研究を提示する。
【0123】
結果は、3つの部分に分けられる:時間的コストまたは金銭的コストの観点から技法が経済的にどの程度良好に機能するかを要約する性能試験、非集中型トレーニングなしでトレーニングされた同様のモデルと同じ精度ベンチマークを達成する技法の能力が測定される精度試験、およびケーススタディ。
【0124】
最後に、非集中型トレーニングと知識蒸留との間の潜在的な時間的コストまたは金銭的コストのトレードオフについて述べ、組み合わされた蒸留スケーリング非集中型トレーニング手法の最適解が提唱される。
【0125】
第1の性能試験では、PyTorch深層学習ライブラリを使用して実装された残差ネットワーク(ResNet)モデルの通常の深層学習トレーニングは、標準的な分散マルチノードマルチGPUトレーニングを利用するようにカスタマイズされる。これは、異なるサーバノードにわたって分割されたデータセットに対するトレーニングを可能にする第1のステップである。この基本機能を提供する既製の(OTS)分散モジュール(例えば、PyTorchのサブモジュール、torch.nn.distributed)は、単一のデータセンター、例えば、US-Central-VirginiaまたはAUS-Sydney内でのみ機能し、同時に両方の間では機能せず、これは、完全に非集中化された方法の必要性をさらに強調するものであることに留意されたい。しかしながら、分散トレーニング(distributed training)と非集中型トレーニング(decentralized training)の両方のネットワークコストは同じである。
【0126】
性能試験1を以下のステップで行った:
P1-1:16の固定バッチサイズをすべての試験に割り当てる;
P1-2:固定されたトレーニング、検証および試験セットが各試験に割り当てられ、セットのランダム化はない;
P1-3:ベンチマークの目的で、固定サーバ構成が割り当てられる。この場合、AWSインスタンスタイプG3.4xlargeが選択される;
P1-4:AWSを通して利用可能なEC2モニタウェブアプリケーションを使用して、各トレーニングランについて転送された総ネットワークバイトを合計する;および
P1-5:各試験について、以下の結果を考慮する:同じデータセンター内の2つのノード、2つの近くのノード、2つの遠く離れたノード、3つの近くのノード、3つの遠く離れたノード。
【0127】
ネットワークトラフィックを除く、これらの試験のサーバコストの結果を表5に示す。ネットワーク転送はネットワークの順方向/逆方向パスよりもはるかに大きいので、「バッチ時間」がネットワークコストのプロキシとして使用可能であることに留意されたい。
【表5】
【0128】
表5からの最も重要な結果は、ノード、特にクロスリージョンノードの数が増加するにつれて、バッチを計算するのにかかる時間が劇的に増加することである。したがって、特定のエポック番号に到達するのにかかるこの時間の長さは、サーバが実行しなければならない時間の全長を増加させる。これは、蒸留なしで分散トレーニングまたは非集中型トレーニングが単独で使用された場合の高コストの原因である。
【0129】
ここで、バッチごとのネットワークトラフィックのコストも要約することができる。これは、転送されるべきファイルのサイズを決定するニューラルネットワークアーキテクチャに依存する。
【0130】
第2の性能試験では、ResNet-50ニューラルネットワークを10エポックまでトレーニングする例が考慮される。
【0131】
性能試験2を以下の方法で行い、最終コストに注目した:
P2-1:単一のトレーニングエポックは436バッチを含み、1バッチに16枚の画像を含む;
P2-2:インスタンスサーバからの総トラフィックは、インバウンド41.6GBおよびアウトバウンド41.6GBである;
P2-3:単一バッチについて(そのサイズにかかわらず)、ネットワークは、41.6GB/436=97.7MB(これは、保存されたファイルとしてResNet-50全体に近似する)を送受信する;
P2-4:同じアベイラビリティゾーン内の2つのノード間でデータを転送するためのバッチあたりのコストは無料である;
P2-5:1つの領域内の2つのアベイラビリティゾーン内のノード間でデータを転送するためのバッチあたりのコストは、0.0977*0.01*2=$0.002である;および
P2-6:2つの領域間ノード同士でデータを転送するためのバッチあたりのコストは、0.0977*0.02*2=$0.004である。
【0132】
したがって、2つのノードで領域間の場合、コストは、41.6*10*$0.02*2(1人のワーカ+1人のマスタ)=$16.64となるはずである。3つのノードで領域間の場合、コストは、41.6*10*$0.02*4(2人のワーカ+1人のマスタ)=$33.28となるはずである。さらに1つのワーカノードを追加すると、$16.64がコストに追加される。
【0133】
さらに、コストは、モデルのファイルサイズに比例して、DenseNet-121またはResNet-152のような一般的に使用されるがより大きい他のニューラルネットワークを使用するときに増加する。多くの場合、これは上記のように2倍の価格となり得る。さらに、この例は、約4,500回の反復だけの基本事例をカバーする。徹底的なモデルトレーニングは、最大100万回の反復を要する可能性がある。
【0134】
これはスケーリング問題であり、すなわち、分散トレーニングまたは非集中型トレーニングが単独で使用された場合の総コストは急速に増加し得るので、トレーニングが大規模になると不経済になり、これは、複数の産業にわたる大規模プロジェクトで発生する可能性が高いことが分かる。したがって、スケーリング非集中型トレーニングのための知識蒸留を併用してコストを経済的かつ管理可能にすることができる。
【0135】
知識蒸留を利用することによって、上述したように、バッチごとの報告に関連するネットワークトラフィックおよびサーバコストなしに蒸留を達成することができるので、通常の非集中化と蒸留との間にコストのトレードオフが存在する。この組み合わされた方法によって節約されるコストの推定値はおよそ2桁であるが、モデルのサイズ、更新の回数、およびノード間の距離に依存する。以下、実施例について説明する。
【0136】
蒸留トレーニングが60回の重み移動操作を必要とするシナリオを考慮する。単一の非集中型トレーニングランの場合、エポックは、サイズ16の5216/16=326および9013/16=563バッチを含む(上記設定の場合)。4つのワーカおよび1つのマスタノードがあるとすると、単一のバッチに対するデータ/重みの往復転送の数は4*2=8回である。200エポックでトレーニングされたモデルの場合、重み移動の総数は、胸部X線および皮膚癌データセットの2つの例示的なデータセットについて、326×8×200=521,600回および563×8×200=900,800回である。したがって、蒸留トレーニングのみを使用することによって、精度は1%未満しか低下しないが、節約される平均転送回数は、2つのデータセットについてそれぞれ521,600/60=8,693回および900,800/60=15,013回である。転送あたりの総コストについては表5を参照されたい。
【0137】
精度試験も実施した。第1の精度試験では、ニューラルネットワークのトレーニングがいくつかのシナリオについて繰り返され、各々が、上記の提案された解決策のセクションで概説されたように、精度を高めるために非集中型トレーニングプロセスへの追加を試験する。
【0138】
精度試験1は、クラス分布を試験するために、損失関数の重み付けを使用せずに行われた。これは、2つのノードについて、以下のシナリオを考慮するために行われた:
A1-1:データはノード間でバランスがとれており、クラス分布は各ノード内でバランスがとれている;
A1-2:データはノード間でバランスがとれておらず、クラス分布は各ノード内でバランスがとれている;
A1-3:データはノード間でバランスがとれており、クラス分布は各ノード内でバランスがとれていない;および
A1-4:データはノード間でバランスがとれておらず、クラス分布は各ノード内でバランスがとれていない。
【0139】
精度試験2は、精度試験1の繰り返しであるが、2つではなく3つのノードを有する。これらのシナリオは、それぞれ上記のシナリオに対応するようにA2-1、A2-2、A2-3およびA2-4とラベル付けされる。
【0140】
各試験について、達成された最良の精度が引用される。
【0141】
胚生存率評価モデルの例を使用して、ベースラインと比較した精度の変化の概要を表6に示し、ここでモデルは単一のサーバ上でトレーニングされる。
【表6】
【0142】
この研究を実施することによって、番号A1-3、A1-4、およびA2-3、A2-4は最悪のシナリオであり、ここで、A1-4およびA2-4は圧倒的に最悪であり、これは、実行可能な(viable)画像と実行不可能な(non-viable)画像とのバランスが著しく偏っている異なる量のデータを各クリニックが有している、最も可能性の高い現実世界の状況に一致している。
【0143】
バランスがとれていない異なるシナリオに対する全体的な結果は以下の通りである:
A1-1&A2-1の精度:最良ランク(単一ノード-伝統的なトレーニングよりも良好であり得る);
A1-2&A2-2の精度:良好ランク;
A1-3&A2-3の精度:良好ランク(各ノードでのトレーニングは、実行可能なクラスサンプルまたは実行不可能なクラスサンプルに偏りを生じさせ得るが、
【数5】
であれば、最終モデルは良好に実行する);
A1-4&A2-4の精度:不良ランク。
【0144】
精度試験3は、複数の重み付け方法が一緒に組み合わされるある範囲のシナリオを比較するものであり、損失重み付けの最適な数およびタイプが得られる。3つのシナリオは以下の通りである:
A3-1:サンプル/画像レベルの重み付け:分類が困難であったサンプルにより多くの重みを付け、容易な正しい予測に対する影響を減少させる。数学的には、スケーリング係数がクロスエントロピー損失関数に加えられる;
A3-2:クラスレベルの重み付け:バランスがとれていないクラス分布の場合、より少ない数のサンプルを有するクラスにより多くの重みを付けることが望まれる;
A3-3:分散ノードレベル重み付け:非集中型トレーニングでは、モデルおよびデータがコピーされ、いくつかのノード/コンピュータ間で、場合によっては領域間で分離される。各ノード上で利用可能なデータの量は、著しく偏っている可能性がある。
【0145】
異なる3レベル重み付け損失シナリオの全体的な結果は、以下の通りであった。
【0146】
バランスがとれていないノードデータ、バランスがとれていないクラス分布に対してトレーニングする場合、クラス重み付けおよびノード重み付けレベルは、個々に、精度を1~2%引き上げるのに役立つ。
【0147】
バランスのとれたクラス分布でトレーニングする場合、サンプルレベルの重み付けは、精度を約1%引き上げるのに役立つ。
【0148】
異なる重み付けレベルを組み合わせる観点から、一緒に使用されるサンプル/画像レベルおよびノードレベルの重み付けは、現在の実験構成に役立つであろう。他のすべての組合せは利益をもたらさない。
【0149】
蒸留は一般に、通常のトレーニング、分散トレーニング、または非集中型トレーニングを通して達成可能な精度結果の100%を達成しないので、知識蒸留を利用することで、通常の非集中化と蒸留との間に精度のトレードオフが存在する。蒸留トレーニング方法の達成可能な精度の推定値は、分散トレーニングまたは非集中型トレーニング結果と比較して、平均で1.5%の低下である。提案される修正された非集中型蒸留またはスペシャリストおよびジェネラリスト方法は、通常の分散トレーニングまたは非集中型トレーニングと同様の予測精度をもたらすのに役立つことができる。
【0150】
ここで、本明細書で説明される非集中型トレーニング方法の実施形態を使用したいくつかの追加のケーススタディについて説明する。第1のケースでは、「クリーン」ラベルと「ノイズの多い」ラベルの両方を含む、単純な「ネコまたはイヌ」分類問題が実施される。トレーニング、検証、および試験データセットにノイズを導入することで、モデルが自動的に最大精度に到達しないことを保証し、それによって、精度(正しい例の総数)、ならびに異なるレベルのノイズを処理し、ある程度克服するそれらの能力の両方において、非集中型トレーニング手法と集中型トレーニング手法における差を実証する。
【0151】
実験は、いくつかの設定で試験される:データがノード間で等しく拡散される単一のクラスタにおける単純な5ノードシナリオ。ノイズをデータに導入するための方法、および(任意選択の)転送セットの選択に関する実際の比較が調査される。次いで、実験が、単一のクラスタにおける15ノードシナリオに拡張されて、一貫した結果を示す。これは、蒸留トレーニングを使用して複数のノードにわたってトレーニングプロセスを終了するときに考慮すべき(ノードレベルの)「エポック」の総数に対する実用的な限界、およびこの設定における教師モデルと学生モデル(スペシャリストモデルおよびジェネラリストモデル)との間の「アルファ」パラメータについて選択するための合理的なパラメータの選択を支援する。次いで、15ノードシナリオが、上述したクラスタリング方法を使用して3つの等しいクラスタに分割され、上記の実験から見られる性能向上におけるオフセットを実証する。データ転送(ネットワーク)コストとモデル精度との間のトレードオフもさらに探索され、したがって、現実世界の実験のために非集中型トレーニングを最適化する方法に関する指針を提供する。
【0152】
以下の実験に使用したデータセットは、ImageNetから得た、イヌおよびネコの画像を含むセットであった。4500枚の画像がトレーニングおよび検証セットに使用され、4501枚の画像を試験セットとして使用された。元のデータはクリーンデータであると考えられる。イヌ画像の10%を「ネコ」クラスラベル(クラス0)に変換し、ネコ画像の50%を「イヌ」ラベル(クラス1)に変換することによってノイズの多いデータセットが作成された。この結果、それぞれ17%および36%の量のノイズがネコおよびイヌのクラスに現れた。したがって、この時点で、クリーンなベースライントレーニング-検証セットおよびノイズの多いベースライントレーニング-検証セットを有している。試験セットは元の画像と同じくらいきれいに保たれる。各クラスにおいて利用可能な画像の詳細な数を表7に列挙する。
【表7】
【0153】
以下の実験は、上述され、表4に概説されるように、非集中型トレーニングレジームにおいて各ノードにおける既存のデータを必要とする。5つのノードおよび15個のノードに基づく非集中型トレーニング実験を選択する。5つのノードの場合、各ノードは、クリーンなデータまたはノイズの多いデータのいずれかを有する900枚の画像を含むこととなる。5つのノードの状況に対してノイズの多いデータを作成する手法は、ノイズの多いベースラインデータセットの作成と全く同じである。15個のノード場合、各ノードについてノイズの多いデータのみが作成される。300枚の画像が各ノードで利用可能であり、そのうち、90枚の画像のみがネコとしてラベル付けされ、210枚の画像がイヌとしてラベル付けされる。任意の数のノードの場合、すべてのノードのデータから合計された画像の数は、ベースラインデータセットのサイズと等しい。これは、それぞれベースラインデータセットおよびノードのデータに対してトレーニングするベースラインモデルと非集中型モデルとの間で公平な比較を行う。データセットの概要に関するさらなる詳細については表8を参照されたい。
【表8】
【0154】
以下の実験に使用されるモデルアーキテクチャは、ImageNetデータセットを使用して事前トレーニングされたモデルを有するresnet18である。ImageNetデータはイヌおよびネコの画像/クラスを含むので、トレーニングモデルは、本当に最初のトレーニングエポックで非常に良好に機能すると予想される。いくつかのエポックの後、モデルは、提供されたトレーニングセットに対してより偏るようになり、次いで、検証および試験セットに対して賢明な結果を与える。したがって、比較のために最良のモデルを選択する際に、モデルは、少なくとも15~30エポックのトレーニング後により適切に選択される。
【0155】
ネットワークパラメータは、ベースラインクリーンデータセットを使用して複数のランを実行することによって選択される。学習率、正則化法、重み減衰、損失関数、またはバッチサイズなどのパラメータの最良のセットが特定され、次いで、非集中型トレーニングのためのすべての実験を通して使用された。
【0156】
この特定のシナリオにおけるモデルは、検証セット(これは、トレーニングセットからの「セットアサイド(set aside)」セットであり、通常、それはトレーニングセットの20%を占める)に対する最良のバランス精度を使用して選択される。ここで報告されるすべての結果は、試験セットについてのものである。「検証セットでの最良(Best on validation set)」という用語は、検証データで選択された最良のバランス精度に基づいて試験結果が示されることを意味する。一方、「試験セットでの最良(Best on test set)」という用語は、提示された結果が、試験セットのみで選択された最良のバランス精度であることを意味する。
【0157】
以下の表は、平均精度、クラス0精度、クラス1精度、バランス精度およびログ損失を含む5つの評価メトリックを有する試験実験結果を提示する。
【0158】
ケーススタディ1:5つのノードの単一クラスタ
【0159】
ベースラインモデルを少なくとも100エポックについてトレーニングし、検証セットの結果に基づく最良のモデルを比較のために選択する。
【0160】
この実験では、5つのノードおよび単一のクラスタが存在する。トレーニング手順は、以下のステップを含む:(1)各ノードにおいて、教師/スペシャリストモデルが20エポックにわたりローカルデータでトレーニングされる;(2)学生/ジェネラリストモデルが(すべての教師がトレーニングされた後に)各ノードで作成され、簡単にするために、学生モデルはローカル教師モデルのコピーである;(3)学生モデルが他のノードに送られ、各ノードにおいて、ローカルデータを学習し、ローカル教師からの知識を蒸留する;(4)最終モデルが作成され、すべてのトレーニングされた学生のコピーが各ノードで利用可能になる。最終モデルAは、各ノードに移動し、すべてのトレーニングされた学生のアンサンブルを使用する蒸留手法を介してローカルデータを学習する。それらの5つのノードについての転送データセットが存在する場合、別の最終モデルBが、すべてのトレーニングされた学生のアンサンブルを使用する蒸留手法を介して転送データセットを使用してトレーニングされる。最終的な非集中型モデルは、モデルAおよびBの最良のものとなる。
【0161】
基本モデルトレーニング
【0162】
以下では、転送データセットの選択に対して異なる手法を用いて(4)を試みる。要は、実際に、データを移動させることができないので、別個のサーバ内に含まれる必要があることで、合理的なサイズの転送セットを作成することは、より困難であるということである。ここでは2つの手法がある:
・ Dc-1:新しい最終モデルを作成し、それは、別個の転送セット(これは、任意のトレーニング、検証、および試験セットとは異なり、転送セットはクリーンであり、2000枚の画像を含む)を使用してすべてのトレーニングされた学生からの知識を蒸留することを学習する
・ Dc-2:最後に5つのトレーニングされた学生を使用してアンサンブルモデルを作成する
【0163】
これらの結果、クリーンなデータセットを使用した非集中型トレーニング手法とベースラインとの精度の差が最小であり、非集中型トレーニングアルゴリズムが非常に良好に機能することが確認される。まず、ノイズの多いデータセットを使用する観点から、(Dc-1における)転送セットを使用すると、アンサンブル手法(Dc-2)よりも良好に機能し得ることが分かった。次に、そして重要なことに、非集中型手法(Dc-1)が、集中型AIトレーニング手法であるベースラインよりも実際に性能が優れていることが分かった。異なるデータセット構成を使用して実験を複数回繰り返したが、同じ精度向上の結果が非集中型トレーニングを使用して達成された(これに関連する追加の結果は、次のセクションで述べられる)。
【0164】
これは、データプライバシー、性能(精度および一般性)、ならびに複数のデータ所有者およびサーバが存在し、グローバルデータ透明性が欠如している非集中型状況において発生する可能性が高いノイズの多いデータの存在下でロバストにトレーニングする能力の両方について、本願の非集中型トレーニング手法の有用性を実証する上で予想外の有意な結果となった。
【0165】
ローカルスペシャリストモデルは、ベースライントレーニングセットよりもはるかに小さいトレーニングデータセットにアクセスするため、各ノードにおけるすべてのローカルスペシャリストモデルは、ベースラインモデルと比較してモデル一般化の精度が低くなる。
【0166】
図4Aおよび4Bは、モデルの性能を評価するための重要な測定基準としてバランス精度が選択されているので、クリーンなデータ(図4A)およびノイズの多いデータ(図4B)についてのバランス精度の結果の比較を提示するが、表9は、言及されたすべてのモデルの結果を示す。
【表9】
【0167】
表9から分かるように、クリーントレーニングセットの実験結果は上限に達し、それ以上に興味深い結果は残っていない。したがって、以下の実験では、すべての結果は、ノイズの多いトレーニング-検証データセットに関連付けられる。
【0168】
異なる「転送セット」に対して追加の非集中型トレーニング実験を実施することによって、転送セットの選択に利用可能な選択肢についてさらなる調査を行う。実際には、転送セットは利用可能でない場合があるため、各ノードにおける既存のデータが転送セットとしての役割を果たすことができる。表10および表11は、転送セットが単一ノードのデータのみ(Dc-1.2、1.3、1.4)であるとき、すべてのノードのデータの組合せ(Dc-1.1)であるとき、またはすべての別個のノードのデータであるとき(Dc-2.xにおける複数の転送セットの場合)に何が起こるかを探索するための簡易な試験の結果を提示する。すべてのノードのデータの組合せを転送セットとして使用することは、典型的には、データがセキュリティまたはプライバシーの理由により所有者/ノードサーバを離れることができないので、実際には選択肢して利用可能ではなく、したがって、この手法は、現実世界の状況を模倣し、すべてのノードのデータを転送セットとして一緒に使用すると何らかの利益があるかどうかという質問に答えることを意図している。これは、世界中を移動して次々に各ノードのデータを転送セットとして取得するコストのかかるモデル(表10および表11におけるDc-2.x)を実施する前の用心深いステップである。各ノードにおいて、すべてのトレーニングされた学生モデルのコピーが利用可能にされることが必要とされる。最終モデルは、ローカルデータ(転送セットとしてみなされる)に対してトレーニングされ、複数のトレーニングされた学生からの知識を調べる(ここで、それらは最終モデルの教師になる)。このプロセスは、世界規模での広範なデータ転送およびクラウドサービス上でのサーバスピンアップを必要とし得る。以下の実験は、最終モデルおよびすべてのトレーニングされた学生を一度だけ世界中に送ることによって、移動およびトレーニングコストを削減することに焦点を当てる。
【0169】
表10は、異なる転送セットを用いた上記すべての非集中型設定の結果を比較する。転送セットとしてすべてのノードのデータの組合せを用いたDc-1.1のトレーニングの結果は、転送セットとして単一の別個の/ノードデータを使用する他の実験Dc-1.2、1.3および1.4と比較して、9~11%の有意な精度の向上を示す(図5参照)。この場合も同様に、すべての非集中型AIトレーニング実験は、ベースライン結果よりも性能が優れている。ここで興味深い点は、転送セットが単一ノードのデータと同じくらい小さくても、Dc-1.2、1.3および1.4の結果は、ベースライン結果とおおよそ類似しているということである。
【0170】
複数の転送セット(すべてのノードのデータを一緒に、または非集中型方式で1つずつ)を使用する観点から、3つの設定は、各ノードにおける最終モデルのトレーニングエポックの数の5から20までの変動を考慮する。最終モデルは過剰適合する傾向があり、過去に学習したものを「忘れる」傾向があるので、最終モデルが各ノードにおいてより長く留まる場合、試験のバランス精度は低下する。特に、各ノードにおいて5エポックトレーニングする(Dc-2.1)と、ベースライン結果よりも約11%良好である最良の生成性能が得られる(図5参照)。
【表10】
【0171】
表9から分かるように、クリーントレーニングセットの実験結果は上限に達し、それ以上に興味深い結果は残っていない。したがって、以下の実験では、すべての結果は、ノイズの多いトレーニング-検証データセットに関連付けられる。
【0172】
ケーススタディ2:15個のノードの単一クラスタ
【0173】
非集中型AI技法のスケーラビリティを改善するために、ノードのクラスタを使用する。非集中型AIトレーニングは、非集中型AIトレーニングを実行する必要があるノードの全体的な数を低減するために、ノードの各個々のクラスタ上で実行され、次いで、単一のノードとして(すなわち階層的に)クラスタ間で実行される。階層的クラスタリング手法の有効性を試験するために、15個のノードすべてを単一のクラスタとして実行することと、15個のノードを3つの別個のクラスタとして実行することとの間の差を試験する実験を行った。
【0174】
単一クラスタ設定および3クラスタ設定(各クラスタ内に5つのノード)を含む2つのシナリオを考慮する。これら2つのシナリオの結果は、ノードのクラスタリングが最終モデルの一般化能力および性能にどの程度影響を与えるかの指標を与えることとなる。
【0175】
このケーススタディでは、単一のクラスタが考慮される。ここで、5ノード実験(ケーススタディ1)と比較して異なる点は以下の通りである:
・ 各ノードで利用可能なデータセットははるかに小さい(300枚の画像)
・ 各ノードにおける教師/スペシャリストモデルは、良好な教師モデルを保証するための下限にあるように意図的に選択された300枚の画像のみに曝される
・ 最終モデルをトレーニングするとき、15個すべてのトレーニングされた学生が蒸留戦略に使用されるため、トレーニングプロセスはより長くかかり、これら15個すべてのトレーニングされたモデルをロードするためにより多くのメモリが必要とされる
・ 学習すべきデータが多くないので、最終モデルは、より短い時間(5ノードの場合と比較してより少ない数のエポック)、各ノードに留まるべきである。
【0176】
ケーススタディ2.1 標準的な15個のノードかつ単一クラスタ
【0177】
表11は、各ノードに一度送られた後の最終モデルの結果を示す。各ノードにおけるエポックの数は、3~10の範囲であった。最終モデルが各ノードに3エポック留まる場合、その寿命におけるトレーニングエポックの総数は3*15=45エポックであり、これはベースラインモデルについてトレーニングされているエポックの数の半分を下回る。ベースライン結果と異なる非集中型実験との比較である表11ならびに図6Aおよび図6Bは、検証セットでの最良のバランス精度に関連する試験結果(図6A)、および試験セットでのモデルの予測能力を見るための最良の試験結果自体(図6B)を与える。両方の場合において、非集中型モデルは、特に最終モデルが各ノードにおいて5~8エポックトレーニングされる場合に、ベースライン結果より性能が優れており、これは、約5%の精度の向上を説明する。
【0178】
これらの結果は、5つのノードまたは15個のノードのいずれかを有する単一クラスタの場合、非集中型モデルが従来の単一サーバ(集中型)ベースライントレーニングよりも優れていることを再確認する。
【表11】
【0179】
学生の予測精度に対する教師モデルの影響。
【0180】
このセクションでは、学生の予測精度に対する教師モデルの影響を調査する。最終モデルが各ノード(または各クラスタの代表ノード)に移動するとき、それは、複数の教師のアンサンブル知識に基づいてローカルデータを学習する。蒸留損失関数は、教師の出力成分および最終モデル自体の出力成分を構成するので、損失関数における(代表的な)「アルファ」パラメータ値は、損失結果に対する教師の影響の程度を制御する。アルファ値が大きいほど、最終モデルが教師から受ける影響が大きくなる。アルファ=0は、教師がいないことを意味する。アルファ=1は、学生モデルが教師の結果に完全に依拠することを意味する。実際には、教師が低品質/非効率的なローカルトレーニングセットでトレーニングされた場合(モデルは過剰適合またはトレーニング不可能になる傾向がある)を除いて、教師はトレーニングを支援する。その場合、最良の選択肢は、学生モデルトレーニングに対する教師の出力の影響を適切なレベルまで低減することである。
【0181】
表12において、アルファ値は0~0.7の範囲であり、いくつかの非集中型トレーニングランが実行され、各アルファ値に関連する平均結果が報告される。この実験では、アルファ=0.3が好ましいことが分かる。学生の蒸留トレーニングのために教師を使用することは、正しい蒸留損失関数のパラメータを選択する方法を知っている場合、有益である。
【表12】
【0182】
ケーススタディ3:3つのクラスタに分割された15個のノード
【0183】
このケーススタディでは、3クラスタ設定が使用される。ここで、15個のノードおよび単一クラスタの実験と比較して異なるのは以下である:
・ クラスタ特有のジェネラリスト:教師が各ノードで利用可能であるとき、新しい学生/ジェネラリスト、そのクラスタコンテナ内を移動する。学生は、その特定のクラスタに対するジェネラリストになる。この実験のためにクラスタ間でノードを等しく分けることを選択したので、ここでは各クラスタに5つのトレーニングされた学生/ジェネラリストがいる。
・ 最終段階において、最終モデルは、すべてのクラスタに訪問し終わるまで、クラスタから別のクラスタにジャンプする。各クラスタにおいて、ケーススタディ1におけるような5ノード状況と全く同じようにトレーニングされる(各ノードに移動し、そのノードのローカルデータを学習し、すべてのコンテナクラスタのトレーニングされた学生/ジェネラリストの知識を蒸留する。これは、言及されたクラスタ内のすべてのトレーニングされた学生/ジェネラリストを各ノードにコピーするために必要とされる)。
【0184】
標準的な15個のノードかつ3クラスタでの実験
【0185】
表13は、いくつかの非集中型モデルをトレーニングしたときのすべての実験結果を列挙する。最終モデルが各ノードに留まるエポックの数は、2~20の範囲である。最終モデルの精度は、ベースライン結果と比較して約2~3%低下し、さらに低下することもあった(最終モデルが各ノードにより長く留まる場合、例えば、エポックの数が8より大きい場合)(ベースライン結果と異なる非集中型実験との比較である図7を参照)。ノードのクラスタリングが、予想通り精度の低下をもたらすことが分かった。主な理由は、ジェネラリストモデルが所与のクラスタ内で利用可能なデータのみにアクセスすることである。したがって、最終モデルのみが、各クラスタにわたるすべてのデータへのアクセスを有する。しかしながら、各クラスタへの1回の訪問では、最終モデルがベースラインと同程度の性能を有するのに十分ではないようである。
【0186】
ノードのデータのサイズは重要であるが、これらの結果は、クラスタリングが最終モデルの精度の低下に寄与する主な要因であることを示している。
【表13】
【0187】
データ転送とモデル精度との間のトレードオフ
【0188】
最終モデルがノードから別のノードに送られるとき、ネットワーク転送およびサーバコストが大幅に増加し得るという特定の懸念がある。クラスタリングは現実世界の状況では避けられないので、クラスタの数が大きくなると、最終モデルの予測精度がさらに低下する可能性がある。以下の実験は、最終モデルが各ノードまたはクラスタに2回以上移動することが可能であるとき、モデルの一般化が許容可能なレベル(例えば、ベースラインと同程度となる)まで増加することができることを確認する。最終的な非集中型モデルが3回を超えて各ノードを訪問すると、最終的な予測精度が、バランス精度においてベースライン結果よりも4%超引き上がることが分かった(表14ならびに図8Aおよび図8Bを参照されたい)。最終モデルが各ノードを5回訪問するようにすると、ノードレベルのエポックの数(各ノードに留まる時間)を、1または2など十分に小さく設定することができる。この場合、2エポックの選択肢が好ましい。
【表14】
【0189】
したがって、モデルを異なるノードに十分な回数転送する際のネットワークコストと、最終予測モデルがベースラインモデルの精度を下回る(許容可能な)割合との間にはトレードオフが存在する。最終モデルは、各ノードにおけるデータから学習する機会が多く、十分な時間があるときに、より高い性能を示すことは明らかである。
【0190】
モデルは、トレーニングされると、新しい画像またはデータセットを分析または分類するために計算システム上で展開され得る。いくつかの実施形態では、展開は、モデル重みおよび関連するモデルメタデータを、運用計算システムに転送され、トレーニングされたモデルを再作成するためにアップロードされるファイルに書き込むことなどによって、トレーニングされたAIモデルを保存またはエクスポートすることを含む。展開はまた、トレーニングされたモデルを、1つまたは複数のクラウドベースのサーバ、またはローカルサイト(例えば、医療クリニック)にあるローカルベースのコンピュータサーバなどの運用計算システム上に移動、コピー、または複製することを含み得る。一実施形態では、展開は、例えば、医療データ(例えば、画像または診断データセット)を受信し、受信したデータに対してトレーニングされたモデルを実行(execute/run)し、結果をソースに送り返すかまたは後の取出しのために結果を記憶するインターフェースを追加することによって、新しい画像またはデータを受け入れ、トレーニングされたモデルを使用して診断または状態を生成するためにAIモデルがトレーニングされた計算システムを再構成することを含んでもよい。展開されたシステムは、クラウドベースの計算システムまたはローカル計算システムであってもよい。ユーザが、データを計算システム(およびトレーニングされたAIモデル)にアップロードし、次いで、例えば、医学的または臨床的決定を行うために使用可能である結果(例えば、レポートまたはデータファイル)をモデルから受信することができるようにユーザインターフェースが提供され得る。
【0191】
AIモデルは、ユーザ側および管理者(中央ノード)側に別個のコンピュータシステムを有する分散システムにおいて展開され得る。したがって、一実施形態では、1つまたは複数の画像またはデータセットからAIベースの評価を生成するためのクラウドベースの計算システムが提供される。クラウドベースの計算システムは、1つまたは複数のプロセッサと、1つまたは複数の画像またはデータセットから評価を生成するように構成された人工知能(AI)モデルを記憶するように構成された1つまたは複数のメモリとを備える1つまたは複数の計算サーバを備え得、AIモデルは、本明細書で説明される方法の実施形態にしたがって生成される。1つまたは複数の計算サーバは、以下を行うように構成される:
計算システムのユーザインターフェースを介してユーザから1つまたは複数の画像またはデータセットを受信すること、
評価を取得するために1つまたは複数の画像またはデータセットをAIモデルに提供すること、および
ユーザインターフェースを介して評価をユーザに送ること。
【0192】
同様に、一実施形態では、1つまたは複数の画像またはデータセットからAIベースの評価を生成するためのエンドユーザ計算システムが提供され得る。計算システムは、少なくとも1つのプロセッサと、命令を含む少なくとも1つのメモリとを備え得、命令は、以下を行うように少なくとも1つのプロセッサを構成する:
ユーザインターフェースを介して、画像またはデータセットをクラウドベースの人工知能(AI)モデルにアップロードすること、ここで、AIモデルは、本明細書で説明される方法の実施形態にしたがって生成される、および
ユーザインターフェースを介してクラウドベースのAIモデルから評価を受信すること。
【0193】
上述のように、非集中型トレーニングをサポートするために分散トレーニングレジームをスケーリングすることには多くの欠点がある。標準的な分散トレーニングは、地理的距離に応じたスケーリングが不十分であるため、モデルのトレーニングの全体的なコストおよびターンアラウンドタイムを最大2桁増加させる。これは、より多くの領域およびデータソースが接続されるにつれてトレーニングデータセットサイズが増加することよってさらに悪化する。
【0194】
この問題に対処するために、非集中型トレーニングフレームワークのトレーニング効率を高めるに知識蒸留が本明細書で説明された。典型的には、知識蒸留は、モデルのアンサンブルを組み合わせ、実行時推論性能を最適化するために使用される。しかしながら、蒸留フレームワークは、モデル並列およびデータ並列の両方のトレーニングレジームであると考えることができることを提案する。これにより、所望のローカリティごとに独立したモデルをトレーニングすることができる。次いで、最後に、学生モデルは、各ローカリティについての教師に対してトレーニングされ得る。
【0195】
単蒸留法、修正された非集中型蒸留法、ならびにスペシャリストおよびジェネラリスト蒸留法を使用する実施形態が説明されている。これらの方法の実施形態は、ノードにおける各データセットのプライバシーを維持しながら、集中型データセットのクラスタに対するトレーニングを可能にした。さらなる実施形態は、コンプライアンスチェックの使用を組み込むことができ、それによって、トレーニングされたモデルがトレーニングされたノードから離れる前に、コンプライアンスチェックを実行して、それが適切に一般化され、特定のデータ例を記憶していない(したがって、データ漏洩/プライバシー侵害に相当する可能性がある)ことを確認することができる。教師モデルのセットからの最終モデルをトレーニングするために蒸留を使用することによって、全体的なネットワークコストを削減することができる。例えば、ノードはもはやすべてのバッチを同期する必要はない。修正された非集中型蒸留法は、少数のトレーニング反復で、最終的非集中型トレーニング段階がすべてのデータにわたって実行され得ることを可能にすることによって、単蒸留法よりも改善する。この最終ステップは、モデルがすべてのデータに同時に曝される機会を有することを保証し、追加の時間およびネットワーク転送を犠牲にするが、完全に非集中化されたモデルをトレーニングすることと比較してはるかに少ない数のエポックで、蒸留プロセスの順序付けに関連する特定のクリニックに対する偏りを軽減する。スペシャリストおよびジェネラリスト蒸留法は、単蒸留または修正された非集中型蒸留法に優るさらなる利点を提供する。この手法は、スペシャリストモデルとして教師をトレーニングし、それらを十分な数のロケーションに曝すことによって、これらのスペシャリストモデルは、ジェネラリストモデルになる。次いで、これらのジェネラリストモデルが、アンサンブルを使用して組み合わされ得るか、またはさらなる蒸留モデルが、ジェネラリストモデルから生成され得る。さらに、いくつかの実施形態では、負荷分散を改善するための損失関数重み付けおよびアンダーサンプリング、ならびにクラウドリソースの自動プロビジョニングおよびティアダウンが実行され得る。さらに、方法は、スケーラビリティを改善するためにマルチレベルプロセスとして実装され得る。
【0196】
方法は、データプライバシー、機密性、セキュリティ、規制/法的、または技術的な理由により、データを単一のロケーションに収集または転送して、AIがトレーニングするための1つの大規模かつ多様なグローバルデータセットを作成することが常に可能であるとは限らないデータセットに特定に適用される。これは、健康データセットにおいて特に当てはまるが、システムは、同様の制限が適用されるセキュリティまたは商用データセットなどの他のデータセットに使用され得ることが理解されよう。
【0197】
当業者は、情報および信号が様々な技術および技法のいずれかを使用して表され得ることを理解されよう。例えば、データ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、上記の説明全体にわたって参照され得、電圧、電流、電磁波、磁場もしくは磁性粒子、光学場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
【0198】
当業者はさらに、本明細書で開示される実施形態に関して説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェアもしくは命令、ミドルウェア、プラットフォーム、または両方の組合せとして実装され得ることを諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップは、上記では概してそれらの機能の観点から説明してきた。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の用途と全体的なシステムに課される設計制約とに依存する。当業者は、説明された機能を特定のアプリケーションごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を引き起こすものとして解釈されるべきではない。
【0199】
本明細書で開示される実施形態に関連して説明される方法またはアルゴリズムのステップは、クラウドベースのシステムなど、直接ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、または両者の組合せで具現化され得る。ハードウェア実装の場合、処理は、1つまたは複数の特定用途向け集積回路(ASIC)、デジタルシグナルプロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、もしくは本明細書で説明される機能を実行するように設計された他の電子ユニット、またはそれらの組合せ内で実装され得る。様々なミドルウェアおよびコンピューティングプラットフォームが使用され得る。
【0200】
いくつかの実施形態では、プロセッサモジュールは、方法のステップのうちのいくつかを実行するように構成された1つまたは複数の中央処理装置(CPU)またはグラフィカル処理装置(GPU)を備える。同様に、コンピューティング装置は、1つまたは複数のCPUおよび/またはGPUを備え得る。CPUは、入力/出力インターフェースと、算術論理演算ユニット(ALU)と、入力/出力インターフェースを介して入力および出力デバイスと通信する制御ユニットおよびプログラムカウンタ要素とを備え得る。入力/出力インターフェースは、所定の通信プロトコル(例えば、IEEE802.11、IEEE802.15、4G/5G、TCP/IP、UDPなど)を使用して別のデバイス内の同等の通信モジュールと通信するためのネットワークインターフェースおよび/または通信モジュールを備え得る。コンピューティング装置は、単一のCPU(コア)もしくは複数のCPU(マルチコア)、または複数のプロセッサを備えてもよい。コンピューティング装置は、典型的には、GPUクラスタを使用するクラウドベースのコンピューティング装置であるが、並列プロセッサ、ベクトルプロセッサ、または分散コンピューティングデバイスであってもよい。メモリは、プロセッサ(複数可)に動作可能に結合され、RAMおよびROM構成要素を備え得、デバイスまたはプロセッサモジュールの内部または外部に提供され得る。メモリは、オペレーティングシステムおよび追加のソフトウェアモジュールまたは命令を記憶するために使用され得る。プロセッサ(複数可)は、メモリに記憶されたソフトウェアモジュールまたは命令をロードし、実行するように構成され得る。
【0201】
コンピュータプログラム、コンピュータコード、または命令としても知られるソフトウェアモジュールは、いくつかのソースコードまたはオブジェクトコードセグメントまたは命令を含み得、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、DVD-ROM、ブルーレイディスク、または任意の他の形態のコンピュータ可読媒体など、任意のコンピュータ可読媒体に存在し得る。いくつかの態様では、コンピュータ可読媒体は、非一時的コンピュータ可読媒体(例えば、有形媒体)を備え得る。加えて、他の態様では、コンピュータ可読媒体は、一時的コンピュータ可読媒体(例えば、信号)を備え得る。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。別の態様では、コンピュータ可読媒体は、プロセッサに一体化され得る。プロセッサおよびコンピュータ可読媒体は、ASICまたは関連デバイス内に存在し得る。ソフトウェアコードはメモリユニットに記憶され得、プロセッサはそれらを実行するように構成され得る。メモリユニットは、プロセッサ内またはプロセッサの外部に実装され得、その場合、メモリユニットは、当技術分野で知られている様々な手段を介してプロセッサに通信可能に結合することができる。
【0202】
さらに、本明細書で説明する方法および技法を実行するためのモジュールおよび/または他の適切な手段は、コンピューティングデバイスによってダウンロードされ、および/または他の方法で取得され得ることを諒解されたい。例えば、そのようなデバイスは、本明細書で説明される方法を実行するための手段の転送を容易にするためにサーバに結合され得る。代替的に、本明細書で説明される様々な方法は、記憶手段(例えば、RAM、ROM、コンパクトディスク(CD)またはフロッピーディスクなどの物理記憶媒体など)を介して提供され得、その結果、コンピューティングデバイスは、デバイスへの記憶手段の結合または提供により様々な方法を取得することができる。さらに、本明細書で説明される方法および技法をデバイスに提供するための任意の他の好適な技法が利用され得る。
【0203】
本明細書で開示する方法は、説明される方法を達成するための1つまたは複数のステップまたはアクションを備える。方法のステップおよび/またはアクションは、特許請求の範囲から逸脱することなく互いに交換され得る。言い換えれば、ステップまたはアクションの特定の順序が指定されない限り、特定のステップおよび/またはアクションの順序および/または使用は、特許請求の範囲から逸脱することなく修正され得る。
【0204】
明細書および以下の特許請求の範囲全体を通して、文脈上別段の定めがある場合を除き、「comprise」および「include」という用語ならびに「comprising」および「including」などの変形は、記載された整数または整数の群を含むことを意味するが、任意の他の整数または整数の群を除外することを意味するものではないことが理解されよう。
【0205】
本明細書における任意の先行技術への言及は、そのような先行技術が共通の一般知識の一部を形成するという任意の形態の示唆の承認でも、またそのように解釈されるべきでもない。
【0206】
本開示は、その使用において、説明された特定の1つまたは複数の用途に限定されないことが当業者によって諒解されよう。本開示はまた、本明細書に説明または描写される特定の要素および/または特徴に関して、その好ましい実施形態に限定されない。本開示は、開示される1つまたは複数の実施形態に限定されず、以下の特許請求の範囲によって記載および定義される範囲から逸脱することなく、多数の再構成、修正、および置換が可能であることが諒解されよう。
図1A
図1B
図1C
図1D
図1E
図2
図3
図4A
図4B
図5
図6A
図6B
図7A
図7B
図8A
図8B
【国際調査報告】