JP2023511514A - ニューラル・フロー・アテステーション - Google Patents

ニューラル・フロー・アテステーション Download PDF

Info

Publication number
JP2023511514A
JP2023511514A JP2022539370A JP2022539370A JP2023511514A JP 2023511514 A JP2023511514 A JP 2023511514A JP 2022539370 A JP2022539370 A JP 2022539370A JP 2022539370 A JP2022539370 A JP 2022539370A JP 2023511514 A JP2023511514 A JP 2023511514A
Authority
JP
Japan
Prior art keywords
neural
computer model
neural flow
model
attestation
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.)
Pending
Application number
JP2022539370A
Other languages
English (en)
Inventor
グ、ションシュ
シュー、シャオクイ
ジャムジューム、ハニ
マ、テンフェイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2023511514A publication Critical patent/JP2023511514A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Complex Calculations (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)

Abstract

ニューラル・フロー・アテステーション・エンジンを実装し、ニューラル・フローに基づいてコンピュータ・モデルの実行完全性の検証を行うためのメカニズムを提供する。ニューロンの複数の層を含む訓練済みのコンピュータ・モデルに入力データが入力される。ニューラル・フロー・アテステーション・エンジンは、入力データ内の入力データ・インスタンスのセットについて、訓練済みのコンピュータ・モデルによって生成された出力クラスと、ニューロンの複数の層を通るニューラル・フローとを記録することによって、記録されたニューラル・フローを生成する。訓練済みのコンピュータ・モデルはコンピューティング・プラットフォームにデプロイされ、ニューラル・フロー・アテステーション・エンジンは、デプロイされた訓練済みのコンピュータ・モデルの実行時ニューラル・フローと、記録されたニューラル・フローとに基づいて、デプロイされた訓練済みのコンピュータ・モデルの実行完全性を検証する。

Description

本出願は一般に、改良されたデータ処理装置および方法に関し、より詳細には、ニューラル・フロー・アテステーション(attestation)を実行するためのメカニズムに関する。
ディープ・ラーニング・システムは、認知タスクを実行するときに人間のパフォーマンスに匹敵することができるので、人工知能(AI)サービスの一部として広く展開されている。ディープ・ラーニングは、特徴抽出および変換のための非線形処理ユニットの複数の層のカスケードを使用する機械学習技術のクラスである。連続する各層は、前の入力層からの出力を使用する。ディープ・ラーニング・システムは、分類などの教師あり学習メカニズム、またはパターン分析などの教師なし学習メカニズム、あるいはその両方を使用して訓練される。学習は様々な抽象化レベルに対応する複数の表現レベルに関して実行され得、これらのレベルは概念の階層を形成する。
最新のディープ・ラーニング・モデルのほとんどは、人工ニューラル・ネットワークに基づいているが、ディープ・ビリーフ・ネットワークおよびディープ・ボルツマン・マシンのノードなど、深層生成モデル(deep generative model)において層ごとに編成される命題式または潜在変数を含むこともできる。ディープ・ラーニングでは、ニューラル・ネットワークの各レベル、たとえば、各層は、その入力データをもう少し抽象的で複合的な表現に変換するように学習する。たとえば、画像認識アプリケーションでは、生の入力は画素のマトリックスであり得、画素の抽象化の複数の層が認識された特徴である。重要なことに、ディープ・ラーニング・プロセスは、どの特徴をどのレベルに最適に配置するかを自力で学習することができるが、これによって手動チューニングの必要性が完全になくなるわけではない。たとえば、様々な抽象度を提供するように層の数および層のサイズを変更するために、手動チューニングが使用され得る。
「ディープ・ラーニング」の「ディープ」とは、データが変換される層の数を指す。より正確には、ディープ・ラーニング・システムは、かなりのクレジット割り当てパス(CAP:credit assignment path)の深さを有する。CAPは入力から出力への変換のチェーンである。CAPは、入力と出力との間の潜在的な因果関係を記述する。フィードフォワード・ニューラル・ネットワークの場合、CAPの深さはネットワークの深さであり、隠れ層の数に1を加えたものである(出力層もパラメータ化される場合)。信号が層を複数回伝播し得るリカレント・ニューラル・ネットワークの場合、CAPの深さは場合によっては無制限である。シャロー・ラーニング(shallow learning)とディープ・ラーニングとを区別する普遍的に合意された深さの閾値は存在しないが、ディープ・ラーニングが2を超えるCAPの深さを含むことにほとんどの研究者が同意する。深さ2のCAPは、任意の関数をエミュレートできるという意味で、万能近似(universal approximator)であることがわかっている。それを超えて層を増やしてもネットワークの関数近似能力は上昇しないが、追加の層は特徴を学習するのに役立つ。
しかしながら、少なくとも、デプロイされた訓練済みのコンピュータ・モデルの完全性(integrity)を検証する必要がある。したがって、当技術分野では、上記の問題に対処する必要がある。
さらなる態様から見ると、本発明は、少なくとも1つのプロセッサおよび少なくとも1つのメモリを備えるデータ処理システムにおける方法であって、少なくとも1つのメモリは、ニューラル・フロー・アテステーション・エンジンを実装するように少なくとも1つのプロセッサを構成するために少なくとも1つのプロセッサによって実行される命令を含み、方法は、ニューラル・フロー・アテステーション・エンジンによって、訓練済みのコンピュータ・モデルに入力データを入力することであって、訓練済みのコンピュータ・モデルはニューロンの複数の層を含む、入力することと、ニューラル・フロー・アテステーション・エンジンによって、入力データ内の入力データ・インスタンスのセットについて、訓練済みのコンピュータ・モデルによって生成された出力クラスと、ニューロンの複数の層を通るニューラル・フローとを記録することであって、記録することによって記録されたニューラル・フローを生成し、出力クラスは複数の可能な出力クラスのうちの1つである、記録することと、訓練済みのコンピュータ・モデルをコンピューティング・プラットフォームにデプロイすることと、ニューラル・フロー・アテステーション・エンジンによって、デプロイされた訓練済みのコンピュータ・モデルの実行時ニューラル・フローと、記録されたニューラル・フローとに基づいて、デプロイされた訓練済みのコンピュータ・モデルの完全性を検証することと、を含む、方法を提供する。
コンピュータ可読プログラムが記憶されたコンピュータ可読記憶媒体を備えるコンピュータ・プログラム製品であって、コンピュータ可読プログラムは、データ処理システム上で実行された場合に、データ処理システムにニューラル・フロー・アテステーション・エンジンを実装させ、ニューラル・フロー・アテステーション・エンジンは、訓練済みのコンピュータ・モデルに入力データを入力することであって、訓練済みのコンピュータ・モデルはニューロンの複数の層を含む、入力することと、入力データ内の入力データ・インスタンスのセットについて、訓練済みのコンピュータ・モデルによって生成された出力クラスと、ニューロンの複数の層を通るニューラル・フローとを記録することであって、記録することによって記録されたニューラル・フローを生成し、出力クラスは複数の可能な出力クラスのうちの1つである、記録することと、訓練済みのコンピュータ・モデルをコンピューティング・プラットフォームにデプロイすることと、デプロイされた訓練済みのコンピュータ・モデルの実行時ニューラル・フローと、記録されたニューラル・フローとに基づいて、デプロイされた訓練済みのコンピュータ・モデルの完全性を検証することと、の動作を実行する、コンピュータ・プログラム製品。
さらなる態様から見ると、本発明は、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに結合される少なくとも1つのメモリと、を備え、少なくとも1つのメモリは、少なくとも1つのプロセッサによって実行された場合に、少なくとも1つのプロセッサにニューラル・フロー・アテステーション・エンジンを実装させる命令を含み、ニューラル・フロー・アテステーション・エンジンは、訓練済みのコンピュータ・モデルに入力データを入力することであって、訓練済みのコンピュータ・モデルはニューロンの複数の層を含む、入力することと、入力データ内の入力データ・インスタンスのセットについて、訓練済みのコンピュータ・モデルによって生成された出力クラスと、ニューロンの複数の層を通るニューラル・フローとを記録することであって、記録することによって記録されたニューラル・フローを生成し、出力クラスは複数の可能な出力クラスのうちの1つである、記録することと、訓練済みのコンピュータ・モデルをコンピューティング・プラットフォームにデプロイすることと、デプロイされた訓練済みのコンピュータ・モデルの実行時ニューラル・フローと、記録されたニューラル・フローとに基づいて、デプロイされた訓練済みのコンピュータ・モデルの実行完全性(execution integrity)を検証することと、を行うように構成される、システムを提供する。
さらなる態様から見ると、本発明は、ニューラル・フロー・アテステーション・エンジンを実装するためのコンピュータ・プログラム製品であって、処理回路によって読み取り可能であり、本発明のステップを実施するための方法を実施するための、処理回路によって実行するための命令を記憶するコンピュータ可読記憶媒体を備える、コンピュータ・プログラム製品を提供する。
さらなる態様から見ると、本発明は、コンピュータ可読媒体に記憶され、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、そのプログラムがコンピュータ上で実行された場合に、本発明のステップを実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラムを提供する。
1つの例示的な実施形態では、少なくとも1つのプロセッサおよび少なくとも1つのメモリを備えるデータ処理システムにおける方法であって、少なくとも1つのメモリは、ニューラル・フロー・アテステーション・エンジンを実装するように少なくとも1つのプロセッサを構成するために少なくとも1つのプロセッサによって実行される命令を含む、方法。この方法は、ニューラル・フロー・アテステーション・エンジンによって、訓練済みのコンピュータ・モデルに入力データを入力することであって、訓練済みのコンピュータ・モデルはニューロンの複数の層を含む、入力することを含む。この方法はまた、ニューラル・フロー・アテステーション・エンジンによって、入力データ内の入力データ・インスタンスのセットについて、訓練済みのコンピュータ・モデルによって生成された出力クラスと、ニューロンの複数の層を通るニューラル・フローとを記録することであって、記録することによって記録されたニューラル・フローを生成する、記録することを含む。出力クラスは複数の可能な出力クラスのうちの1つである。この方法はさらに、訓練済みのコンピュータ・モデルをコンピューティング・プラットフォームにデプロイすることと、ニューラル・フロー・アテステーション・エンジンによって、デプロイされた訓練済みのコンピュータ・モデルの実行時ニューラル・フローと、記録されたニューラル・フローとに基づいて、デプロイされた訓練済みのコンピュータ・モデルの完全性を検証することと、を含む。
他の例示的な実施形態では、コンピュータ可読プログラムを有するコンピュータ使用可能または可読媒体を含むコンピュータ・プログラム製品が提供される。コンピュータ可読プログラムは、コンピューティング・デバイス上で実行された場合に、コンピューティング・デバイスに、方法の例示的な実施形態に関して上記で概説した動作のうちの様々なもの、およびそれらの組合せを実行させる。
さらに他の例示的な実施形態では、システム/装置が提供される。システム/装置は、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合されたメモリとを含み得る。メモリは、1つまたは複数のプロセッサによって実行された場合に、1つまたは複数のプロセッサに、方法の例示的な実施形態に関して上記で概説した動作のうちの様々なもの、およびそれらの組合せを実行させる命令を含み得る。
本発明のこれらおよび他の特徴および利点は、本発明の例示的な実施形態の以下の詳細な説明に記載することにし、またはそれを考慮すれば当業者に明らかになるであろう。
本発明のみならず、その好ましい使用形態ならびにさらなる目的および利点は、例示的な実施形態の以下の詳細な説明を参照して、添付の図面と併せて読んだ場合に最もよく理解されよう。
1つの例示的な実施形態による、コンピュータ・モデルを訓練するために使用される訓練データに関するニューラル・フロー情報が収集される前処理段階の動作を示す例示的な図である。 1つの例示的な実施形態による、デプロイされたコンピュータ・モデルの動作の実行時ニューラル・フロー・アテステーションが実行されるデプロイ段階の動作を示す例示的な図である。 例示的な実施形態の態様が実装され得る例示的な分散データ処理システムの図解である。 例示的な実施形態の態様が実装され得る例示的なコンピューティング・デバイスのブロック図である。 1つの例示的な実施形態による、前処理段階の機能を実行するための例示的な動作を概説するフローチャートである。 1つの例示的な実施形態による、ニューラル・フローの実行時ニューラル・フロー・アテステーションを含むデプロイ段階の機能を実行するための例示的な動作を概説するフローチャートである。 本発明の一実施形態によるクラウド・コンピューティング環境を示す図である。 本発明の一実施形態による抽象化モデル・レイヤを示す図である。
人工知能(AI)システムおよびAIサービスは、それらのバックエンド・エンジンの一部として機械学習(ML)モデルを利用する。たとえば、多くのAIシステムおよびサービスは、ディープ・ラーニング・モデルとも呼ばれるディープ・ニューラル・ネットワーク(DNN)を使用して、システムの動作およびサービスを支持する、基盤となるインテリジェンス動作を実行する。本発明は、様々なコンピュータ実行時環境、およびいくつかの例示的な実施形態では、クラウド・コンピューティング環境におけるそのような機械学習モデルの実行完全性の保証を支援するための改良されたコンピュータ・ツールに特に向けている。本明細書に記載の例示的な実施形態はコンピュータ・モデルに言及し、これは任意のタイプの機械学習コンピュータ・モデルを参照することを意図していることを理解されたい。例示的な実施形態が利用され得るコンピュータ・モデルの主要な例として、ニューロンの2つ以上の中間層を有するニューラル・ネットワークの一種であるディープ・ラーニング・モデルが使用される。しかしながら、ディープ・ラーニング・モデルを使用した例示的な実施形態の実装は、例示的な実施形態の可能な用途を限定することを意図するものではない。反対に、例示的な実施形態が実装され得る、様々な数またはサイズの中間層の他のいかなる知られているまたは今後開発されるニューラル・ネットワーク・モデルも、本発明の範囲内にあると考えられる。
ディープ・ラーニング・モデルは、人工知能クラウド・サービス、たとえば、画像認識および分析サービス、意思決定サポート・サービスなどを提供するために、パブリック・クラウド・コンピューティング環境(本明細書では単に「クラウド」プラットフォーム、環境などとも呼ぶ)においてより広く使用されている。たとえば、多くのクラウド・コンピューティング環境は、マルチテナント・クラウド・コンピューティング環境またはクラウド・プラットフォームであり、このアーキテクチャにより、顧客(またはテナント)はコンピューティング・リソースをパブリック・クラウドさらにはプライベート・クラウドで共有することが可能になり、コンピューティング・リソースには、クラウド・プロバイダによって提供されるハードウェアおよびソフトウェアが含まれる。各テナントのデータは分離されており、他のテナントには不可視のままである。ほとんどのパブリック・クラウド・プロバイダは、マルチテナンシー・アーキテクチャを使用している。DLモデルに関して、各テナントは個別のDLモデル・インスタンスを利用し得る。DLモデル自体は、サード・パーティさらにはクラウド・プロバイダによって提供され得、DLモデルの個々のインスタンスは、特定のテナントおよびそれらが提供したい特定のクラウド・サービス用に特別に構成される。
パブリック・クラウド・コンピューティング環境にディープ・ラーニング(DL)モデルをデプロイすることは人工知能サービスを立ち上げる効率的な方法であるが、クラウド・コンピューティングのテナントは通常、そのようなパブリック・クラウド・コンピューティング環境におけるデプロイされたDLモデルの実行の実行時の完全性について懸念を抱いている。これらの懸念は、クラウド・コンピューティング・テナントの3つの主要な視点に基づいている。第1に、クラウド・プラットフォームに侵入することが可能であり得る攻撃者は、バックドア、すなわち、通常の認証メカニズムをバイパスして、プログラム、オンライン・サービス、またはコンピューティング・システムにアクセスするための文書化されていない方法をDLモデルに注入する傾向がある。そのようなバックドアは、画像データの透かし、トロイの木馬(または「トロイ」)など、特別な埋め込みパターンを有する悪意を持って作られた入力によって有効化され得る。このように、攻撃者はDLモデルの実行を逸脱させ、自分の利益のために最終的な予測に影響を与え得る。
第2に、クラウド・プラットフォーム・プロバイダは、テナントのDLモデルを枝刈り(prune)または「絞り込み(squeeze)」されたものに置き換える金銭的なインセンティブを有し得、これによりある程度の精度の損失でストレージおよび計算のコストを削減することができる。すなわち、DLモデルの訓練者は、DLモデル内の接続、ニューロン、層などの一部のコンポーネントの削除を試行して、DLモデルを再訓練することができる。しかしながら、DLモデルの訓練者は、枝刈りされたモデルが元のDLモデルと同じレベルの精度を達成できることを保証する必要がある。その結果、クラウド・プロバイダ、すなわち、クラウド・サービスをホストするためのコンピューティング・リソースを提供するエンティティは、モデルをオンラインでサービス提供するための運用コストを大幅に削減し得る。しかしながら、高水準の精度を有するテナントは、そのようなモデルの変換および置き換えを受け入れない場合がある。これはまた、責任問題、すなわち、誰が実行時の誤予測の責任を追うのかの決定につながり得、その理由は、そのようなモデルの変換/置き換えが誤予測の原因になる場合があり、または元のモデルが誤予測の原因であった場合があるためである。
第3に、既存のDLモデルは、敵対的攻撃を受けやすいことが知られている。攻撃者はDLモデルの脆弱性を悪用して、オンライン予測入力としての敵対的サンプルを作り得る。そのような敵対的入力は、攻撃者によって事前に決定されたカテゴリに誤分類される。クラウド・テナントは、これらの誤分類されたサンプルを検出し、それらが訓練データとは異なる特定のカテゴリに分類された理由を分析する傾向がある。さらに、クラウド・テナントは、それらの誤分類されたサンプルを収集して、自身のDLモデルの堅牢性をさらに強化するために、敵対的訓練を実施することができる。以下に説明するように、例示的な実施形態のメカニズム、および例示的な実施形態のニューラル・フロー・アテステーションの実装により、敵対例(adversarial example)を実行時に検出することができ、これらの敵対例をさらなる調査のために収集することができるということは理解されよう。
例示的な実施形態は、ディープ・ラーニング(DL)モデルなどのコンピュータ・モデル(または単に「モデル」)の問題、パブリック・クラウド・プラットフォームおよびデータ処理環境などの様々なコンピューティング・プラットフォームにおける実行完全性に対処するためのメカニズムを提供する。例示的な実施形態は、ニューラル・フローの抽象化レベルでのコンピュータ・モデルの実行完全性を検証するための実行時ニューラル・フロー・アテステーション方式を提供する。ニューラル・フローは、ディープ・ラーニング・モデルの実行順序であり、特定の入力に対応する層間のニューロン活性化ステータスによって表される。
訓練されデプロイされたコンピュータ・モデル、たとえばDLモデルなどに供給される入力インスタンスごとに、信頼できる実行環境(TEE:trusted execution environment)を利用して、それに関連するニューラル・フローを、その実行パスに関して忠実に記録してログを取り、アテステーション・レポートをテナントに送る。テナント側では、ユーザは、異なるクラスの全ての訓練データ、すなわち、DLモデルの可能な分類出力に関する事前に記録されたニューラル・フローを記憶する測定データベースを維持する。予測結果、すなわち、クラウド・コンピューティング環境でDLモデルによって生成された分類出力に基づいて、テナントは、クラウドで記録されたニューラル・フローが、自身のDLモデルの同じクラスの訓練データのニューラル・フローから逸脱しているか否かを検証することができる。クラウド・コンピューティング環境のDLモデルが訓練データのニューラル・フローから逸脱している場合、あるいは1つまたは複数の事前定義された基準によって示される所定の量を超えて逸脱している場合、これは異常なニューラル・フローと見なされ得、これはクラウド・コンピューティング環境のDLモデルが侵害されている場合があり、さらなる調査のために退避させる必要があることを示している。このように、例示的な実施形態により、クラウド・プラットフォーム・プロバイダは自身のテナントに対して実行時の実行ステータスをアテストすることが可能になり、テナントは自身のローカルに存在する測定データベースを使用して自身のオンラインのDLモデルのステータスを検証することが可能になる。
例示的な実施形態では、クラウド・コンピューティング環境のユーザ、すなわち、DLモデルなどのコンピュータ・モデルを所有し、そのコンピュータ・モデルをクラウド・コンピューティング環境にデプロイすることを望むエンティティが、たとえば、オフラインの前処理動作の一部として独自の訓練データを使用して自身のモデルを訓練し終えていると仮定する。ユーザ(クラウド・コンピューティング・プラットフォームのコンテキストでは「テナント」とも呼ばれるモデル所有エンティティ)は、モデル提供型クラウド・プラットフォーム・プロバイダ(model serving cloud platform provider)にモデルをプロビジョニングして、DLモデルなどの機械学習で訓練されたコンピュータ・モデルを使用したオンライン分類または予測サービスなどのオンライン・クラウド・サービスをインスタンス化することを意図する。たとえば、ユーザは、画像認識分類サービス、ヘルスケア意思決定サポート・サービス、またはDLモデルなどの人工知能ベースのコンピュータ・モデルを利用して分類動作、予測動作などを実行する他の多数のサービスのいずれかをインスタンス化することを意図し得る。
モデルを訓練した後、ユーザは訓練済みのモデルに訓練データを再度渡し、例示的な実施形態のニューラル・フロー抽出エンジンは、訓練済みのモデルの各層でのニューロン活性化情報を抽出するように動作する。ニューロン活性化情報は、コンピュータ・モデルの特定の層のタイプに基づいて内容が異なり得る。たとえば、畳み込み層の場合、その層内の各フィルタが1つのユニットと見なされ、各フィルタの平均活性化値がニューロン活性化情報の一部として計算される。全結合層の場合、各ニューロンが1つのユニットと見なされ、その活性化値が抽出される。層ごとに、閾値が事前に決定され得、閾値に関連付けられた基準を満たすフィルタ/ニューロンのIDおよび活性化値のみが記録され、たとえば、閾値を満たすまたは超えるフィルタ/ニューロンの活性化値のみが記録される。
ニューラル・フロー抽出エンジンは、層にわたってニューロン活性化を結合することによって、各訓練データ・インスタンスのニューラル・フローを生成する。ニューラル・フロー集約エンジンは、同じクラス内の全ての訓練データに関するニューラル・フローを集約し、クラスごとにそれぞれニューラル・フロー・モデルを生成する。ニューラル・フロー・モデルは、テナントのローカル・コンピューティング・システムの測定データベースに記憶され、コンピュータ・モデルのリモートに配置されるクラウド・デプロイで生成されるニューラル・フローと比較する際に後で使用される。
モデルを訓練し、上述のようにモデルによって生成された出力のクラスごとにニューラル・フロー・モデルを記憶した後、ユーザはコンピュータ・モデルをクラウド・プラットフォーム・プロバイダのクラウド・コンピューティング環境にデプロイし、デプロイされたコンピュータ・モデル、たとえば、訓練済みのDLモデルに対応するクラウド・サービスを開始し得る。さらに、信頼できる実行環境(TEE)がクラウド・コンピューティング環境で生成または起動される。TEEは、たとえば、隔離された実行、TEE内で実行されるアプリケーションの完全性、およびTEE内で維持されるコンピューティング資産の機密性などのセキュリティ機能を提供するクラウド・コンピューティング・プラットフォームのコンピューティング・リソースの隔離された実行環境である。TEEはTEEの外部のクラウド・コンピューティング・プラットフォームの他の部分からの脅威を無視することができるので、TEEにより、コードがTEE内で高レベルの信頼性で実行され得る。TEEの作成および使用については、当技術分野で一般に知られているので、本明細書ではより詳細な説明を提供しない。
TEE内では、デプロイされたモデルの実行をインターセプトし、実行中のモデルへの各入力に関するニューラル・フロー情報を取得するための1つまたは複数の記録コンポーネントが提供される。すなわち、DLモデルなどのモデルはTEEの外部で実行されるが、上記で論じたニューラル・フロー抽出エンジンの他のインスタンスなどの記録コンポーネントはTEEの内部で実行される。モデルが分類、予測などのための入力を受信すると、TEE内の記録コンポーネントは、デプロイされたモデルの各層におけるニューロン活性化情報を再度抽出し、層にわたってニューロン活性化を結合して、入力を処理したときのデプロイされたモデルのニューラル・フローを生成することによって、入力に関するニューラル・フローをキャプチャする。TEE内のメカニズムがニューラル・フロー情報をキャプチャするために、モデル自体が変更される必要はないことを理解されたい。記録メカニズムは、ディープ・ラーニングのオンライン実行フレームワークに追加される。モデルが特定の入力データ・インスタンスに対して実行を開始すると、入力がモデルを通過するときに、記録メカニズムによって各層での実行がインターセプトされる。インターセプトごとに、TEEの内部に含まれる記録メカニズムが呼び出されて、活性化情報が抽出される。その後、全ての層にわたって収集された全ての活性化情報が結合されて、この入力データ・インスタンスに関するニューラル・フローが構築される。
キャプチャされたニューラル・フロー情報は、TEEの安全なストレージ内に記憶され、ユーザのローカル・コンピューティング・システム、たとえば、テナントのローカル・コンピューティング・システムまたはコンピューティング・デバイスに返され得る。たとえば、ユーザがデプロイされたモデルによる処理のために入力インスタンスを送る場合、ユーザはこの入力に鮮度(freshness)テスト用の特定のチャレンジCを関連付け得る。チャレンジは、「リプレイ攻撃」から防御するために使用される。すなわち、チャレンジCは、返されたニューラル・フローが、コンピューティング・プラットフォーム・プロバイダによって、ニューラル・フローの事前に作られたまたは準備されたバージョンと置き換えられていないことを確認するのに役立つ。このように、入力ごとに、ユーザは、またはクラウド・コンピューティング・プラットフォームの場合はクラウド・テナントが、ランダムまたは疑似ランダムに生成されたチャレンジCを記録コンポーネントに送る。このチャレンジはTEE内のみで使用することができ、コンピューティング・プラットフォーム・プロバイダはチャレンジCにアクセスすることができない。このチャレンジは、入力に関連付けて記録されたニューラル・フローに関連付けられる。ユーザ(またはクラウド・テナント)がニューラル・フローを受信すると、ユーザ/クラウド・テナントはこのチャレンジCに基づいてニューラル・フローの完全性および鮮度を検証することができる。
たとえば、TEE内では、入力に関するニューラル・フローが、入力とモデルの出力とに関する情報と共にキャプチャされ、チャレンジCを用いてハッシュ化され、アテストされたニューラル・フロー、または「アテステーション」は、TEEの起動の一部として、ユーザまたはテナント・コンピューティング・システム/デバイスとTEEとの間で交換され得るセキュリティ鍵を使用して暗号化される。交換されたセキュリティ鍵を使用して、TEEとユーザまたはテナント・コンピューティング・システム/デバイスとの間で交換されるデータ、たとえば、パックされた記録されたニューラル・フロー、コンピュータ・モデルの入力/出力、およびチャレンジCによるハッシュなどを暗号化することによって、シール(seal)されたアテステーションが生成される。
クラウド・コンピューティング・プラットフォームのTEEからユーザのローカル・コンピューティング・システムのアテステーション・エンジンでシールされたアテステーションが受信されると、ユーザはまずチャレンジCを使用してアテステーションの完全性および鮮度を検証し、入力の処理に対応するコンピュータ・モデルの入力/出力情報およびニューラル・フローを抽出することができる。入力に対してモデルによって生成された出力分類または予測に基づいて、アテステーション・エンジンは、前述の前処理動作中に訓練データに基づいて記憶された特定のクラスに対応するニューラル・フロー・モデルをローカルの測定データベースから取り出す。アテステーションのニューラル・フローは、訓練データによって生成された、測定データベースに記憶されたニューラル・フローと比較される。
デプロイされたモデルが正常に動作しており、攻撃者、クラウド・コンピューティング・プロバイダなどによってデプロイされたモデルの変更が行われなかった場合、アテステーションからのニューラル・フローは、同じクラスに関して測定データベースに記憶されたニューラル・フローに極めて近似するはずである。所与の許容範囲内のいくつかの比較的小さい不一致が存在し得るが、全体的にニューラル・フローは同じになるはずである。しかしながら、かなりの逸脱、たとえば、所与の許容範囲を超える逸脱、または侵害を示す基準を満たす逸脱が存在する場合、デプロイされたモデルが、悪意の有無にかかわらず何らかの形で侵害されている場合がある。
例示的な実施形態では、ニューラル・フロー間の逸脱が、たとえば、事前に定義されたコンピュータで実行されるルールを適用すること、許容可能な逸脱の程度を示す1つまたは複数の逸脱閾値と比較することなどによって評価されて、アラート通知をトリガして、デプロイされたモデルの侵害の可能性をユーザに通知すべきか否かが判定され得る。アラート通知がトリガされると、アラートがユーザに出力され得、ユーザはデプロイされたモデルを自動的に退避させるか否かを選択することが可能になる。ユーザがデプロイされたモデルを退避させることを選択した場合、デプロイされたモデルをクラウド・コンピューティング・プラットフォームを介したパブリック・アクセスから削除させるコンピュータ・コマンドがクラウド・コンピューティング・プロバイダに送信され得る。
このように、例示的な実施形態は、特にニューラル・ネットワークおよびディープ・ラーニング(DL)ネットワーク・コンピュータ・モデルに関して、デプロイされたコンピュータ・モデルの実行の実行時ニューラル・フロー・アテステーションを実行するためのメカニズムを提供する。具体的には、実行時ニューラル・フロー・アテステーションは、前処理または訓練段階の動作時と、訓練済みのコンピュータ・モデルのデプロイ後との両方でコンピュータ・モデルの実行に関するニューラル・フローをキャプチャして比較することによって容易になる。実行時ニューラル・フロー・アテステーションにより、デプロイされたモデルがデプロイ後に侵害されているか否かを判定することが可能になるので、モデルの所有者は、自身のモデルがモデル・ユーザに望ましくない出力を生成しないようにするための適切な行動を行うことができる。
例示的な実施形態の様々な態様の議論を始める前に、この説明全体を通して、「メカニズム」という用語は、様々な動作、機能などを実行する本発明の要素を指すために使用することを最初に理解されたい。「メカニズム」とは、この用語を本明細書で使用する場合、装置、コンピュータで実行される手順または方法論、あるいはコンピュータ・プログラム製品の形態での例示的な実施形態の機能または態様の実装であり得る。手順の場合、手順は1つまたは複数のデバイス、装置、コンピュータ、データ処理システムなどによって実装される。コンピュータ・プログラム製品の場合、コンピュータ・プログラム製品内またはコンピュータ・プログラム製品上に具現化されるコンピュータ・コードまたは命令によって表されるロジックは、機能を実装するか、または特定の「メカニズム」に関連する動作を実行するために、1つまたは複数のハードウェア・デバイスによって実行される。このように、本明細書に記載のメカニズムは、専用ハードウェア、汎用ハードウェア上で実行されるソフトウェア、専用または汎用ハードウェアによって命令をすぐに実行できるように媒体に記憶されたソフトウェア命令、機能を実行するための手順または方法、あるいは上記のいずれかの組合せとして実装され得る。
本説明および特許請求の範囲では、例示的な実施形態の特定の特徴および要素に関して、「1つの(a)」、「~のうちの少なくとも1つ(at least one of)」、および「~のうちの1つまたは複数(one or more of)」という用語を使用し得る。これらの用語および句は、特定の例示的な実施形態に存在する特定の特徴または要素のうちの少なくとも1つが存在するが、2つ以上が存在することもできるということを述べることを意図していることを理解されたい。すなわち、これらの用語/句は、本説明または特許請求の範囲を単一の特徴/要素の存在に限定すること、または複数のそのような特徴/要素の存在を必要とすることを意図するものではない。反対に、これらの用語/句は、少なくとも単一の特徴/要素のみを必要とし、本説明および特許請求の範囲内で複数のそのような特徴/要素が存在する可能性がある。
さらに、「エンジン」という用語の使用は、本発明の実施形態および特徴の説明に関して本明細書で使用する場合、エンジンに起因する、またはエンジンによって実行される、あるいはその両方であるアクション、ステップ、プロセスなどを実現または実行あるいはその両方を行うための特定の実装を限定することを意図していないことを理解されたい。エンジンは、機械可読メモリにロードまたは記憶され、プロセッサによって実行される適切なソフトウェアと組み合わせた汎用または専用あるいはその両方であるプロセッサの使用を含むがこれに限定されない指定された機能を実行するソフトウェア、ハードウェア、および/またはファームウェア、あるいはそれらの任意の組合せであり得るが、これらに限定されない。さらに、特定のエンジンに関連付けられた名前は、特に明記していない限り、参照の便宜を目的としたものであり、特定の実装に限定することを意図したものではない。さらに、エンジンに起因する機能は、複数のエンジンによって同等に実行され、同じまたは異なるタイプの他のエンジンの機能に組み込まれ、もしくはこれと組み合わせられ、またはその両方が行われ、あるいは様々な構成の1つまたは複数のエンジンに分散され得る。
さらに、以下の説明では、例示的な実施形態の様々な要素に関する複数の様々な例を使用して、例示的な実施形態の例示的な実装をさらに説明し、例示的な実施形態のメカニズムの理解を支援することを理解されたい。これらの例は、非限定的であることを意図しており、例示的な実施形態のメカニズムを実装するための様々な可能性を網羅するものではない。本説明に照らして、これらの様々な要素には、本発明の範囲から逸脱することなく、本明細書で提供する例に加えて、またはそれらの代わりに利用され得る他の多くの代替的実装が存在することが当業者には明らかであろう。
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組合せであり得る。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を保持および記憶可能な有形のデバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、限定はしないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せであり得る。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリー・スティック(R)、フロッピー(R)・ディスク、命令が記録されたパンチ・カードまたは溝の隆起構造などの機械的にコード化されたデバイス、およびこれらの任意の適切な組合せが含まれる。コンピュータ可読記憶媒体は、本明細書で使用する場合、たとえば、電波または他の自由に伝搬する電磁波、導波管もしくは他の伝送媒体を伝搬する電磁波(たとえば、光ファイバ・ケーブルを通過する光パルス)、または有線で伝送される電気信号などの一過性の信号自体であると解釈されるべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいは、たとえば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワーク、またはそれらの組合せなどのネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組合せを含み得る。各コンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Java(R)、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードであり得る。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上かつ部分的にリモート・コンピュータ上で、あるいは完全にリモート・コンピュータまたはサーバ上で実行され得る。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され得、または(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータへの接続がなされ得る。いくつかの実施形態では、たとえば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用してコンピュータ可読プログラム命令を実行することによって、電子回路を個人向けにし得る。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本明細書で説明している。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せが、コンピュータ可読プログラム命令によって実装できることは理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/行為を実装するための手段を生成するように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されて、マシンを生成するものであってよい。また、これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/行為の態様を実装する命令を含む製造品を構成するように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはそれらの組合せに特定の方法で機能するように指示することができるものであってもよい。
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/行為を実装するように、コンピュータ実装処理を生成するべく、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示している。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理的機能を実装するための1つまたは複数の実行可能命令を含むモジュール、セグメント、または命令の一部を表し得る。いくつかの代替的実装形態では、ブロックに記載した機能は、図示した順序以外で行われ得る。たとえば、関与する機能に応じて、連続して示した2つのブロックは、実際には実質的に同時に実行され得、またはそれらのブロックは、場合により逆の順序で実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能もしくは行為を実行するか、または専用ハードウェアおよびコンピュータ命令の組合せを実行する専用のハードウェア・ベースのシステムによって実装できることにも気付くであろう。
上記のように、例示的な実施形態は、クラウド・コンピューティング環境または他の分散データ処理システムなどにおけるデプロイ後のコンピュータ・モデルの完全性を保証する目的での、デプロイされた機械学習コンピュータ・モデルの実行の実行時ニューラル・フロー・アテステーションを容易にすることを特に目的としたメカニズムを提供する。例示的な実施形態のメカニズムは、デプロイ前の訓練済みのコンピュータ・モデルのニューラル・フローをキャプチャする目的で、ユーザ(コンピュータ・モデル所有者)に関連付けられたローカル・コンピューティング・システムで動作すると共に、実行時の実行のための訓練済みのコンピュータ・モデルのデプロイ後のニューラル・フローをキャプチャする目的で、クラウド・コンピューティング・プラットフォームを提供する1つまたは複数のコンピューティング・システムなどのリモートに位置するコンピューティング・システムで動作する。このメカニズムにより、訓練およびデプロイされたコンピュータ・モデルのニューラル・フローを信頼できる実行環境を使用してキャプチャし、ユーザに折り返し報告して、訓練済みのコンピュータ・モデルのデプロイ前の前処理または訓練段階中にキャプチャされた記憶されたニューラル・フローに対してニューラル・フローを検証することが可能になる。この比較に基づいて、デプロイされた訓練済みのコンピュータ・モデルが訓練後に侵害されているか否かが判定され得、適切な行動を実行することができる。
図1は、1つの例示的な実施形態による、コンピュータ・モデルを訓練するために使用される訓練データに関するニューラル・フロー情報が収集される前処理または訓練段階の動作を示す例示的な図である。図1で概説する動作では、ディープ・ニューラル・ネットワーク(DNN)またはディープ・ラーニング(DL)モデル110(以下、DLモデルと呼ぶ)が、訓練データのセット120および機械学習訓練プロセスを使用して訓練されていると仮定する。そのような機械学習訓練プロセスは、当技術分野では一般的に知られているので、DNNまたはDLモデルを訓練するプロセスの詳細な説明は、本明細書では提供しない。機械学習訓練プロセスは、DLモデル110に、たとえば、入力を複数の認識可能なクラスのうちの1つに適切に分類させ、または予測出力を生成させるように、DLモデル110の様々な層L1~Lnの動作パラメータ、たとえば、重みなどを調整すると言えば十分である。
DLモデル110を訓練した後、図1に示すように、今訓練されたDLモデル110に訓練データが再度入力される。ニューラル・フロー(NF)アテステーション・エンジン130は、訓練データのニューラル・フローをキャプチャして記憶し、キャプチャされたニューラル・フローに基づいて、認識可能なクラスのセット内の様々なクラス、または可能性のある予測のセット内の予測に関するニューラル・フロー・モデルを生成する。説明の目的で、DLモデル110は、入力を所定の分類のセットのクラスに分類するように構成されると仮定する。いくつかの例示的な実施形態では、この分類は、所定の数の認識されたクラスのそれぞれについて確率値を計算して、最も高い確率値またはスコアを有するクラスが入力に対する出力分類として選択されるようにすることを含む。このように、DLモデル110の出力はベクトル出力であり得、各ベクトル・スロットは異なるクラスに対応し、ベクトル・スロットの値は、その対応するクラスがDLモデル110への入力に対する正しい分類であることを示す確率またはスコアを表す。確率値またはスコア自体は、DLモデル110の層L1~LNの様々なニューロンの演算を通じて計算される。
ニューラル・フロー(NF)アテステーション・エンジン130のニューラル・フロー抽出エンジン132は、訓練済みのDLモデル110の各層L1~LNでのニューロン活性化情報を抽出する。ニューラル・フロー抽出エンジン132は、層L1~LNにわたってニューロン活性化を結合することによって(たとえば、図1のニューラル・フローでは暗くしたベクトル・スロットとして示す)、訓練データ120内の各訓練データ・インスタンスのニューラル・フロー134を生成する。このように、訓練済みのDLモデル110がDLモデル110への入力として訓練データ・インスタンスを処理する場合、DLモデル110はニューロン活性化情報を生成し、これはNF抽出エンジン132によってキャプチャされ、DLモデル110によって生成された出力分類と相互に関連付けられる。このように、各訓練データ・インスタンスが処理されると、その訓練データ・インスタンスに対応するニューラル・フロー134および出力分類が生成され、NF集約エンジン136による処理のためにNFアテステーション・エンジン130によって記憶される。
NF集約エンジン136は、同じクラスに分類された全ての訓練データのニューラル・フロー134を集約し、クラスごとにそれぞれニューラル・フロー・モデル140を生成する。たとえば、DLモデル110が100個の異なる認識可能なクラスのうちの1つに入力を分類するように訓練されている場合、100個のクラスのそれぞれについて、対応するクラスに分類された訓練データ・インスタンスのニューラル・フロー134を集約することによって、対応するニューラル・フロー・モデル140が生成され、すなわち、この例では、100個のニューラル・フロー・モデル140が生成されることになる。ニューラル・フロー134の集約は、本発明の範囲から逸脱することなく、多数の異なる方法のうちのいずれでも実行され得る。たとえば、1つの例示的な実施形態では、同じクラスの全ての訓練データの活性化されたニューロンおよびフィルタ(層が畳み込み層か全結合層かに依存する)の「セット」が識別され得る。他の例示的な実施形態では、たとえば、ベイジアン・モデル、SVMモデル、またはグラフ・ニューラル・ネットワーク・モデルなどの機械学習モデルが、活性化されたニューロンおよびフィルタに基づいて訓練され得る。この機械学習モデルは、活性化の順序と、活性化の発生頻度とを考慮に入れることができる。その結果、実行時の未見のテスト・データに対する近似された類似性マッチング(approximated similarity match)を実施することができる。
ニューラル・フロー・モデル140は、ニューラル・フロー・モデル140が対応する対応クラスの指示子に関連付けて、測定データベース150に記憶される。このように、ニューラル・フローを使用してデプロイされたモデルの実行を検証する場合、以下に説明するように、特定のクラスに対応するニューラル・フロー・モデル140が測定データベース150から取り出され、ニューラル・フロー検証エンジン138などによってモデルの完全性検証を実行するために使用され得る。
DLモデル110を訓練し、上述のように、DLモデル110によって生成された出力のクラスごとにニューラル・フロー・モデル140を測定データベース150に記憶した後、ユーザは、訓練済みのDLモデル110をクラウド・プラットフォーム・プロバイダのクラウド・コンピューティング環境にデプロイし、デプロイされたDLモデルに対応するクラウド・サービスを開始し得る。図2は、1つの例示的な実施形態による、デプロイされたDLモデル210の動作の実行時ニューラル・フロー・アテステーションが実行されるデプロイ段階の動作を示す例示的な図である。図2において、「クラウド」とラベル付けした図の右手側は、DLモデル210がデプロイされ、DLモデル210がサポートするクラウド・サービスのユーザから受信する新しい入力220に関して実行されるクラウド・コンピューティング・プラットフォームおよびクラウド・コンピューティング環境を示している。たとえば、図の「クラウド」側は、DLモデル210の所有者に割り振られたクラウド・コンピューティング・リソース(ハードウェアまたはソフトウェアあるいはその両方)の特定の部分、たとえば、マルチテナント・クラウド・コンピューティング環境の一部であり得る。
図2に示すように、クラウド・コンピューティング・プラットフォームは、NF実行時ニューラル・フロー・アテステーション・エンジン(NF runtime neural flow attestation engine)230と、DLモデル210をデプロイするための信頼できる実行環境(TEE)236とを提供する。いくつかの例示的な実施形態では、NF実行時ニューラル・フロー・アテステーション・エンジン230、またはNF実行時ニューラル・フロー・アテステーション・エンジン230のコンポーネントのサブセットはTEE236内で実行され得、またはTEE236はNF実行時ニューラル・フロー・アテステーション・エンジン230の一部として提供され得る。しかしながら、図示を容易にするために、実行時ニューラル・フロー・アテステーション・エンジン230をTEE236の外部のものとして示しているが、これは本発明の必要条件ではない。しかしながら、特に注意すべき点は、デプロイされた訓練済みのDLモデル210がTEE236の外部で実行される一方で、デプロイされた訓練済みのDLモデル210のニューラル・フローのキャプチャ、記憶、および報告はTEE236内で実行されるので、記録されたニューラル・フローが改ざんされていないことが保証されるということである。
図2に示すように、NF実行時ニューラル・フロー・アテステーション・エンジン230は、入力220に作用するDLモデル210のニューラル・フロー(NF)を記録するように動作するNF抽出エンジン232を含む。NF抽出エンジン232は、図1のNF抽出エンジン132と同様に動作し得るが、デプロイされた訓練済みのDLモデル210に関してクラウド・コンピューティング・プラットフォームで実行される。いくつかの例示的な実施形態では、NF抽出エンジン232はTEE236内で実行されてニューラル・フロー情報を収集し、これをアテストされるニューラル・フロー情報と呼び、その理由は、これがデプロイされた訓練済みのDLモデル210の適切な実行をアテストするために使用されるためである。
NF実行時ニューラル・フロー・アテステーション・エンジン230は、アテステーション出力を生成するアテステーション生成エンジン234をさらに含み、アテステーション出力は、NFアテステーション・エンジン130による検証のために、図1に示すようなユーザのローカル・コンピューティング・システムに送られる。図2のNF実行時ニューラル・フロー・アテステーション・エンジン230と、図1のNFアテステーション・エンジン130との間のデータ通信は、それぞれのコンピューティング・システムまたはプラットフォームの実行時ニューラル・フロー・アテステーション・インターフェース137および238によって容易になる。
図2に示すように、デプロイされた訓練済みのDLモデル210が分類、予測などの処理のための入力220を受信すると、TEE236内で実行され得るNF抽出エンジン232は、デプロイされた訓練済みのDLモデル210の各層L1~LNでのニューロン活性化情報を再度抽出し、層L1~LNにわたってニューロン活性化を結合して、デプロイされた訓練済みのDLモデル210のニューラル・フロー240を生成することによって、入力220に関するニューラル・フロー240をキャプチャして記憶する。キャプチャされたニューラル・フロー情報240は、TEE236の安全なストレージ内に記憶され、ユーザのローカル・コンピューティング・システム上で実行されるNFアテステーション・エンジン130に返され得る。
たとえば、ユーザ・コンピューティング・システム250が、デプロイされた訓練済みのDLモデル210による処理のために入力220を送る場合、ユーザ・コンピューティング・システム250は、NF実行時ニューラル・フロー・アテステーション・エンジン230から受信したアテステーションの鮮度を決定する際に使用するための特定のチャレンジCをこの入力に関連付け得る。TEE236内で、NF抽出エンジン232によって、その入力220のニューラル・フロー240がモデルの出力に関する情報と共にキャプチャされる。抽出されたNFおよびモデル出力、すなわち、入力が分類されたクラスが、チャレンジCと共にアテステーション生成エンジン234に提供される。アテステーション生成エンジン234は、チャレンジCを用いてNFおよびモデル出力をハッシュ化し、TEEの起動の一部としてユーザ/テナント・コンピューティング・デバイスとTEEとの間で交換されるセキュリティ鍵を使用して結果を暗号化することによって、データをシールしてアテステーションを生成し得、これは次いで、NFアテステーション・エンジン130を実装するユーザ・コンピューティング・デバイス250に返される。あるいは、いくつかの例示的な実施形態では、NFアテステーション・エンジン130はユーザ・コンピューティング・デバイス250とは別のコンピューティング・デバイス上に提供され得、ただし、シールされたアテステーションにアクセスしてこれを検証できるように、別のコンピューティング・デバイスにもチャレンジが提供される場合に限る。
TEE236からインターフェース137および238を介してユーザ・コンピューティング・デバイス250などのユーザのローカル・コンピューティング・システムのNFアテステーション・エンジン130でシールされたアテステーションが受信されると、ユーザ・コンピュータ・デバイス250上で実行されるNFアテステーション・エンジン130のニューラル・フロー検証エンジン138(図1参照)は、まずチャレンジCを使用してアテステーションの完全性および鮮度を検証し、入力220の処理に対応するDLモデルの出力情報およびニューラル・フローを抽出することができる。入力220に対してDLモデル210によって生成された出力分類または予測に基づいて、ニューラル・フロー検証エンジン138は、図1に関して前述した前処理動作中に訓練データに基づいて記憶された特定のクラスに対応するニューラル・フロー・モデル140をローカルの測定データベース150から取り出す。アテステーション内のニューラル・フロー240は、訓練データによって生成された、測定データベース150からのニューラル・フロー・モデル140の記憶されたニューラル・フローと比較される。
前述のように、デプロイされた訓練済みのDLモデル210が正常に動作しており、攻撃者、クラウド・コンピューティング・プロバイダなどによって、デプロイされた訓練済みのDLモデル210の変更が実行されなかった場合、アテステーションからのニューラル・フロー240は、同じクラスの測定データベース150に記憶されたニューラル・フロー140に極めて近似するはずである。しかしながら、かなりの逸脱、たとえば、所与の許容範囲を超える逸脱、あるいはコンピュータで適用される1つまたは複数のルールで指定されるような侵害を示す基準を満たす逸脱が存在する場合、デプロイされた訓練済みのDLモデル210は、DLモデル110の訓練およびデプロイ後に、悪意の有無にかかわらず何らかの形で侵害されている場合がある。
例示的な実施形態では、ニューラル・フロー140、240間の逸脱が、たとえば、事前に定義されたコンピュータで実行されるルールを適用すること、許容可能な逸脱の程度を示す1つまたは複数の逸脱閾値と比較することなどによって、ニューラル・フロー検証エンジン138により評価されて、デプロイされた訓練済みのDLモデル210の侵害の可能性を示す基準または閾値が満たされているか否か、アラート通知をトリガして、デプロイされたモデルの侵害の可能性をユーザに通知すべきか否かが判定され得る。そのような基準または閾値が満たされると、アラート通知がトリガされ、通知および対応行動(responsive action)エンジン139が呼び出されて、ユーザ・コンピューティング・デバイス250に対してアラートが構成および送信され、または別の方法で出力され、デプロイされた訓練済みのDLモデル210を自動的に退避させるか否かをユーザが選択することが可能になる。デプロイされた訓練済みのDLモデル210を退避させることをユーザが選択した場合、デプロイされた訓練済みのDLモデル210をパブリック・アクセスから削除させ、たとえば、クラウド・コンピューティング・プラットフォーム上の利用可能なクラウド・サービスから登録解除させるコンピュータ・コマンドがクラウド・コンピューティング・プロバイダに送信され得る。
このように、デプロイされたコンピュータ・モデルの実行の実行時ニューラル・フロー・アテステーションを実行するためのメカニズムが提供される。実行時ニューラル・フロー・アテステーションは、前処理または訓練段階の動作時と、訓練済みのコンピュータ・モデルのデプロイ後との両方でコンピュータ・モデルのニューラル・フローをキャプチャして比較することを含む。実行時ニューラル・フロー・アテステーションにより、デプロイされたモデルがデプロイ後に侵害されたか否かを判定することが可能になるので、モデルの所有者は、自身のモデルがモデル・ユーザに望ましくない出力を生成しないようにするための適切な行動を実行することができる。さらに、実行時ニューラル・フロー・アテステーションは、上記のように、テナントがデプロイしたDLモデルに関して抱える3つの懸念に対処する。たとえば、攻撃者がデプロイされた訓練済みのDLモデルにバックドアを注入することに関して、攻撃者がDLモデルに入力を誤分類させる場合、ニューラル・フローはそのような誤分類を引き起こすように変更され、そのようなニューラル・フローの変更は例示的な実施形態のメカニズムによって検出される。クラウド・コンピューティング・プラットフォーム・プロバイダがDLモデルを枝刈りまたは「絞り込み」を行ってストレージおよび計算のコストを削減する場合、やはりニューラル・フローが変更され、デプロイ前の訓練済みのDLモデルからのそのような逸脱は例示的な実施形態のメカニズムによって検出される。さらに、DLモデルが敵対的攻撃にさらされた場合、これもまたニューラル・フローの逸脱を引き起こし、これは例示的な実施形態のメカニズムによって検出される。このように、特許請求する発明は、ニューラル・フロー・ベースの実行時ニューラル・フロー・アテステーションモデルを使用して、デプロイされた訓練済みのDLモデルの完全性を検証し、攻撃者またはクラウド・コンピューティング・プラットフォーム・プロバイダからの侵害の可能性を検出するためのメカニズムを提供する。
上記の説明から明らかなように、本発明は、特にクラウド・コンピューティングまたは他の分散データ処理システム環境において、デプロイされたコンピュータ・モデルの完全性を改善し、そのようなデプロイされたコンピュータ・モデルの侵害を検出して、適切な通知および対応行動を実行できるようにするためのコンピュータ・ツールを提供する。このため、例示的な実施形態は、多くの異なるタイプのデータ処理環境で利用され得る。例示的な実施形態の特定の要素および機能の説明用のコンテキストを提供するために、以下、例示的な実施形態の態様が実装され得る例示的な環境として図3および図4を提供する。図3および図4は例にすぎず、本発明の態様または実施形態が実装され得る環境に関するいかなる限定も主張または暗示することを意図していないことを理解されたい。本発明の範囲から逸脱することなく、図示した環境に対する多くの修正が行われ得る。
図3は、例示的な実施形態の態様が実装され得る例示的な分散データ処理システムの図解を示している。分散データ処理システム300は、例示的な実施形態の態様が実装され得るコンピュータのネットワークを含み得る。分散データ処理システム300は少なくとも1つのネットワーク302を含み、これは分散データ処理システム300内で相互に接続された様々なデバイスおよびコンピュータの間に通信リンクを提供するために使用される媒体である。ネットワーク302は、たとえば、ワイヤ、無線通信リンク、衛星通信リンク、光ファイバ・ケーブルなどの接続を含み得る。
図示の例では、サーバ304A~304Cが、ストレージ・ユニット308と共にネットワーク302に接続されている。さらに、クライアント310および312もネットワーク302に接続されている。これらのクライアント310および312は、たとえば、パーソナル・コンピュータ、ネットワーク・コンピュータなどであり得る。図示の例では、サーバ304A~304Cは、たとえば、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータをクライアント310~312に提供する。クライアント310~312は、図示の例では、サーバ304A、および場合によっては他のサーバ・コンピューティング・デバイス304B~304Cのうちの1つまたは複数を含むクラウド・コンピューティング・システムのクライアントである。分散データ処理システム300は、追加のサーバ、クライアント、ならびに図示していない他のコンピューティング、データ・ストレージ、および通信デバイスを含み得る。
図示の例では、分散データ処理システム300はインターネットであり、ネットワーク302は、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)のプロトコル・スイートを使用して相互に通信するネットワークおよびゲートウェイの世界規模の集合体を表す。インターネットの中心には、データおよびメッセージをルーティングする数千の商用の、政府の、教育の、および他のコンピュータ・システムからなる主要なノードまたはホスト・コンピュータ間の高速データ通信回線のバックボーンがある。当然ながら、分散データ処理システム300はまた、たとえば、イントラネット、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)などの、いくつかの異なるタイプのネットワークを含むように実装され得る。上記のように、図3は本発明の異なる実施形態に対するアーキテクチャ上の限定としてではなく、一例として意図しており、したがって、図3に示す特定の要素は、本発明の例示的な実施形態が実装され得る環境に関する限定と見なされるべきではない。
図3に示すように、1つの例示的な実施形態によれば、コンピューティング・デバイスのうちの1つまたは複数、たとえば、サーバ304Aは、ディープ・ラーニング・クラウド・サービス・プラットフォーム300を実装するように特別に構成され得、これはさらに、図2に示すような実行時ニューラル・フロー・アテステーション・エンジン230を有して構成され、これを用いてDLクラウド・サービス・プラットフォーム300が動作する。コンピューティング・デバイスを構成することは、例示的な実施形態に関して本明細書で説明する動作の実行および出力の生成を容易にするために、特定用途向けのハードウェア、ファームウェアなどを提供することを含み得る。コンピューティング・デバイスを構成することはさらに、または代わりに、例示的な実施形態に関して本明細書に説明するように動作を実行し、出力を生成するようプロセッサを構成するソフトウェア・アプリケーションをコンピューティング・デバイスの1つまたは複数のハードウェア・プロセッサに実行させるための、1つまたは複数のストレージ・デバイスに記憶され、サーバ304Aなどのコンピューティング・デバイスのメモリにロードされるソフトウェア・アプリケーションを提供することを含み得る。さらに、例示的な実施形態の範囲から逸脱することなく、特定用途向けのハードウェア、ファームウェア、ハードウェア上で実行されるソフトウェア・アプリケーションなどの任意の組合せが使用され得る。
コンピューティング・デバイスがこれらの方法のうちの1つで構成されると、コンピューティング・デバイスは、例示的な実施形態のメカニズムを実装するように特別に構成される専用のコンピューティング・デバイスになり、汎用コンピューティング・デバイスではないことを理解されたい。さらに、本明細書に記載するように、例示的な実施形態のメカニズムを実装することにより、コンピューティング・デバイスの機能が改善し、コンピュータ・モデルのニューラル・フローに基づくデプロイされた訓練済みのコンピュータ・モデルの完全性の実行時ニューラル・フロー・アテステーションを容易にする有用で具体的な成果が提供される。
図3に示すように、サーバ304A~304Cのうちの1つまたは複数は、ディープ・ラーニング・クラウド・サービス300および実行時ニューラル・フロー・アテステーション・エンジン230を実装するように構成される。図3は、単一のサーバ、すなわち、サーバ304Aに関連付けられた要素300および230を示しているが、ディープ・ラーニング・クラウド・サービス300および実行時ニューラル・フロー・アテステーション・エンジン230またはその一部分、ならびにDLクラウド・サービス300にデプロイされたDLコンピューティング・モデル305またはその一部分のメカニズムが複数のサーバ・コンピューティング・デバイス304A~304Cに分散され得るように、304A~304Cなどの複数のサーバが一緒にクラウド・コンピューティング・システムを構成し、ディープ・ラーニング・クラウド・サービス300および実行時ニューラル・フロー・アテステーション・エンジン230を提供するように構成され得ることを理解されたい。いくつかの例示的な実施形態では、ディープ・ラーニング・クラウド・サービス300、DLモデル305、および実行時ニューラル・フロー・アテステーション・エンジン230の複数のインスタンスが、クラウド・コンピューティング・システムの複数の異なるサーバ304A~304C上に提供され得る。ディープ・ラーニング・クラウド・サービス300は、ディープ・ラーニング・システムの任意のディープ・ラーニングまたはAIベースの機能を提供し得る。
いくつかの例示的な実施形態では、ディープ・ラーニング・クラウド・サービス300は、コグニティブ・コンピューティング・システム(cognitive computing system)(コグニティブ・システム)を実装し得る。概要として、コグニティブ・システムは、人間の認知機能をエミュレートするための(ソフトウェアがその上で実行されるハードウェア・ロジックと組み合わせた)ハードウェアまたはソフトウェアあるいはその両方のロジックで構成される専用のコンピュータ・システムまたはコンピュータ・システムのセットである。これらのコグニティブ・システムは、人間のような特性をアイデアの伝達および処理に適用し、これをデジタル・コンピューティングの固有の強みと組み合わせると、問題を高い精度および復元力で大規模に解決することができる。コグニティブ・システムは、人間の思考プロセスを近似すると共に、人間および機械がより自然に対話して、人間の専門知識および認知力を拡張および拡大できるようにする、1つまたは複数のコンピュータで実装される認知動作を実行する。コグニティブ・システムは、たとえば、自然言語処理(NLP)ベースのロジック、画像分析および分類ロジック、電子医療記録分析ロジックなどの人工知能ロジックと、専用のハードウェア、ハードウェア上で実行されるソフトウェア、または専用のハードウェアとハードウェア上で実行されるソフトウェアとの任意の組合せとして提供され得る機械学習ロジックとを含む。コグニティブ・システムのロジックは認知動作を実装し、その例には、質問への回答、コーパス内の様々な内容部分における関連概念の識別、画像分析および分類動作、インターネット・ウェブ・ページ検索などのインテリジェント検索アルゴリズム、たとえば、医療診断および治療の推奨、および他のタイプの推奨の生成、たとえば、特定のユーザにとって関心のある項目、潜在的な新しい連絡先の推奨などが含まれるが、これらに限定されない。いくつかの例示的な実施形態では、ディープ・ラーニング(DL)クラウド・サービス300は、デプロイされた訓練済みのDLモデル305の動作に基づく、画像認識および分析などの他の認知動作を実行するための機能を提供し得る。一般に、DLクラウド・サービス300にデプロイされたDLモデル305は、分類または予測あるいはその両方の機能を提供し得、それに基づいて、たとえば、DLクラウド・サービス300によるさらなる評価が実行され得る。
IBM(R)Watson(R)は、人間が読める言語を処理し、人間のような高い精度で、人間よりもはるかに速い速さで、大規模に、テキスト・パッセージ間での推論を識別することができる1つのそのようなコグニティブ・システムの例である。一般に、そのようなコグニティブ・システムは、以下の機能を実行することができ、すなわち、人間の言語および理解の複雑さをナビゲートし、大量の構造化データおよび非構造化データを取り込んで処理し、仮説を生成および評価し、関連する証拠のみに基づく応答の比較検討(weigh)および評価を行い、状況別の助言、洞察、および指導を提供し、機械学習プロセスを通じて反復およびインタラクションのたびに知識を向上させて学習し、影響のある時点(point of impact)での意思決定を可能にし(状況に即した指導)、タスクに比例してスケーリングし、人間の専門知識および認知力を拡張および拡大し、自然言語から共感を呼ぶ人間のような属性および性質を識別し、自然言語から様々な言語特有のまたは非依存の属性を推測し、データ・ポイント(画像、テキスト、音声)からの高度な関連性の想起(記憶および回想)を行い、経験に基づく人間の認知を模倣する状況認識によって予測および感知し、自然言語および具体的証拠に基づいて質問に回答する。
1つの例示的な実施形態では、ディープ・ラーニング・クラウド・サービス300として実装され得るコグニティブ・システムは、1つまたは複数のDLモデル305を実装する1つまたは複数の処理パイプラインを介して、クライアント・コンピューティング・デバイス310などのクライアント・コンピューティング・デバイスからの質問に回答するまたは要求を処理するためのメカニズムを提供する。他の例示的な実施形態では、コグニティブ・システムは、1つまたは複数のDLモデル305を実装する1つまたは複数の処理パイプラインに基づく画像分析および認識機能を提供する。いずれの場合も、1つまたは複数のDLモデル305が分類または予測動作を実行し、DLモデル305のニューラル・フローが監視され、キャプチャされ、モデルの所有者(ユーザ)に報告されて、デプロイされた訓練済みのDLモデル305の完全性がアテストされる。
DLモデル305が動作する1つまたは複数の処理パイプラインは、訓練済みのDLモデル305に基づく入力および他の証拠データの認知的評価に基づいて生成された結果を用いて要求に応答し、たとえば、自然言語で提示された所与の主題ドメインに関する質問に回答し、または自然言語でもしくは構造化された要求/クエリとして提示され得る入力データに対して認知動作を実行する要求を処理し、所与の画像を分析して画像内のオブジェクトを分類し、分類結果を提供するなどする、データ処理ハードウェア上で実行される人工知能アプリケーションである。
図3に示すように、クライアント・コンピューティング・システム、たとえば、クライアント・コンピューティング・システム310は、図1に示すようなニューラル・フロー・アテステーション・エンジン130を実装するよう構成され、これは前述のように、コンピューティング・デバイス312からの入力308などのユーザ入力にサービス提供するようにDLクラウド・サービス300内で動作するデプロイされた訓練済みのDLモデル305としてDLクラウド・サービス300にデプロイされる訓練済みのDLモデル306に関するニューラル・フロー・モデルを生成するように動作する。NFアテステーション・エンジン130はさらに、前述のように、DLクラウド・サービス300およびデプロイされた訓練済みのDLモデル305と共にサーバ304A上で動作する実行時ニューラル・フロー・アテステーション・エンジン230から受信したアテステーション307に基づいて、訓練済みのDLモデル306に関して作成および記憶されたNFモデルを使用して、デプロイされた訓練済みのDLモデル305の完全性を検証するように動作する。すなわち、実行時ニューラル・フロー・アテステーション・エンジン230は、前述のように、信頼できる実行環境内でデプロイされた訓練済みのDLモデル305のニューラル・フローをキャプチャし、キャプチャされたニューラル・フローに基づいてアテステーション307を生成するように動作し、これは、デプロイされた訓練済みのDLモデル305の完全性の実行時ニューラル・フロー・アテステーションのために、デプロイされた訓練済みのDLモデル305の所有者のコンピューティング・システム310に送信される。
さらに、NFアテステーション・エンジン130は、訓練済みのDLモデル306と、アテステーション307で指定された、入力308のデプロイされた訓練済みのDLモデル305によって生成された分類出力とに関して記憶されたNFモデル、たとえば、図1の測定データベース150に記憶され得るものを取り出すように動作し得る。NFアテステーション・エンジン130はさらに、アテステーション307内のNFと、取り出されたNFモデルとの間の不一致が、デプロイされた訓練済みのDLモデル305の侵害の可能性を示しているか否かを判定するように動作する。さらに、NFアテステーション・エンジン130は、アラートを生成し、アラートを権限ユーザ(authorized user)に送信/出力して、侵害の可能性を通知し得る。さらに、NFアテステーション・エンジン130は、不一致が侵害の可能性を示しているという判定に応答して、デプロイされた訓練済みのDLモデル305を退避させるか、またはDLクラウド・サービス300を介してアクセス可能なものとしての登録を解除させるコマンドをクラウド・コンピューティング・サービス・プラットフォーム・プロバイダに、たとえば、サーバ304Aに自動的に送り得る。これは、デプロイされた訓練済みのDLモデル305のそのような退避を要求するユーザ入力に応答して行われ得る。
上記のように、例示的な実施形態のメカニズムは、特別に構成されるコンピューティング・デバイスまたはデータ処理システムを利用して、デプロイされた訓練済みのコンピュータ・モデルの完全性の実行時ニューラル・フロー・アテステーションを行うための動作を行う。これらのコンピューティング・デバイスまたはデータ処理システムは、本明細書に記載のシステムまたはサブシステムあるいはその両方のうちの1つまたは複数を実装するように、ハードウェア構成、ソフトウェア構成、またはハードウェアおよびソフトウェア構成の組合せのいずれかによって、特別に構成される様々なハードウェア要素を含み得る。図4は、例示的な実施形態の態様が実装され得る、ほんの一例のデータ処理システムのブロック図である。データ処理システム400は、図3のサーバ304Aまたはクライアント・コンピューティング・デバイス310などのコンピュータの一例であり、本発明の例示的な実施形態のプロセスおよび態様を実装するコンピュータ使用可能コードまたは命令が、本明細書に記載の例示的な実施形態の動作、出力、および外部効果を実現するように配置され、または実行され、あるいはその両方が行われ得る。
図示の例では、データ処理システム400は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH)402と、サウスブリッジおよび入力/出力(I/O)コントローラ・ハブ(SB/ICH)404とを含むハブ・アーキテクチャを利用している。処理ユニット406、メイン・メモリ408、およびグラフィック・プロセッサ410は、NB/MCH402に接続されている。グラフィック・プロセッサ410は、アクセラレーテッド・グラフィック・ポート(AGP)を介してNB/MCH402に接続され得る。
図示の例では、ローカル・エリア・ネットワーク(LAN)アダプタ412はSB/ICH404に接続する。オーディオ・アダプタ416、キーボードおよびマウス・アダプタ420、モデム422、読み取り専用メモリ(ROM)424、ハード・ディスク・ドライブ(HDD)426、CD-ROMドライブ430、ユニバーサル・シリアル・バス(USB)ポートおよび他の通信ポート432、ならびにPCI/PCIe(R)デバイス434は、バス438およびバス440を介してSB/ICH404に接続する。PCI/PCIe(R)デバイスには、たとえば、Ethernet(R)アダプタ、アドイン・カード、およびノートブック・コンピュータ用のPCカードが含まれ得る。PCIはカード・バス・コントローラを使用するが、PCIe(R)は使用しない。ROM424は、たとえば、フラッシュ基本入力/出力システム(BIOS)であり得る。
HDD426およびCD-ROMドライブ430は、バス440を介してSB/ICH404に接続する。HDD426およびCD-ROMドライブ430は、たとえば、統合ドライブ・エレクトロニクス(IDE)またはシリアル・アドバンスト・テクノロジー・アタッチメント(SATA)インターフェースを使用し得る。スーパーI/O(SIO)デバイス436は、SB/ICH404に接続され得る。
オペレーティング・システムは、処理ユニット406上で実行される。オペレーティング・システムは、図4のデータ処理システム400内の様々なコンポーネントを調整し、それらの制御を提供する。クライアントとして、オペレーティング・システムは、Microsoft(R)Windows10(R)などの市販のオペレーティング・システムであり得る。Java(TM)プログラミング・システムなどのオブジェクト指向プログラミング・システムは、オペレーティング・システムと連動して動作し得、データ処理システム400上で実行されるJava(TM)プログラムまたはアプリケーションからオペレーティング・システムへの呼び出しを提供する。
サーバとして、データ処理システム400は、たとえば、アドバンスト・インタラクティブ・エグゼクティブ(AIX(R))オペレーティング・システムまたはLINUX(R)オペレーティング・システムを実行するIBM(R)eServer(TM)System p5(R)コンピュータ・システム、Power(R)プロセッサ・ベースのコンピュータ・システムなどであり得る。データ処理システム400は、処理ユニット406内に複数のプロセッサを含む対称型マルチプロセッサ(SMP:symmetric multiprocessor)システムであり得る。あるいは、単一のプロセッサ・システムが利用され得る。IBM(R)、IBM(R)Watson(R)、eServer(R)、System p5(R)、Power(R)、およびAIX(R)は、世界中の多くの管轄区域で登録されたInternational Business Machines Corporationの商標である。登録商標Linux(R)は、世界規模での商標の所有者であるLinus Torvaldsの独占的ライセンシーであるLinux Foundationからのサブライセンスに従って使用される。Java(R)および全てのJava(R)ベースの商標およびロゴは、Oracle(R)またはその関連会社あるいはそれらの組合せの商標または登録商標である。Microsoft(R)およびWindows(R)は、米国、他国、またはその両方におけるMicrosoft Corporationの商標である。
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムに関する命令は、HDD426などのストレージ・デバイス上に配置され、処理ユニット406による実行のためにメイン・メモリ408にロードされ得る。本発明の例示的な実施形態のプロセスは、たとえば、メイン・メモリ408、ROM424などのメモリに、あるいは1つまたは複数の周辺デバイス426および430に配置され得るコンピュータ使用可能プログラム・コードを使用して、処理ユニット406によって実行され得る。
図4に示すバス438またはバス440などのバス・システムは、1つまたは複数のバスで構成され得る。当然ながら、バス・システムは、任意のタイプの通信ファブリックまたはアーキテクチャを使用して実装され得、これにより、ファブリックまたはアーキテクチャに接続された異なるコンポーネントまたはデバイス間でのデータの転送が提供される。図4のモデム422またはネットワーク・アダプタ412などの通信ユニットは、データを送信および受信するために使用される1つまたは複数のデバイスを含み得る。メモリは、たとえば、メイン・メモリ408、ROM424、または図4のNB/MCH402に見られるようなキャッシュであり得る。
上記のように、いくつかの例示的な実施形態では、例示的な実施形態のメカニズムは、特定用途向けのハードウェア、ファームウェアなど、HDD426などのストレージ・デバイスに記憶され、メイン・メモリ408などのメモリにロードされ、処理ユニット406などの1つまたは複数のハードウェア・プロセッサによって実行されるアプリケーション・ソフトウェアなどとして実装され得る。したがって、図4に示すコンピューティング・デバイスは、例示的な実施形態のメカニズムを実装するように特別に構成され、プライバシーを強化するディープ・ラーニング・クラウド・サービス・フレームワークおよび1つまたは複数の処理パイプラインを実装するディープ・ラーニング・クラウド・サービスに関して本明細書に記載したように動作を実行し、出力を生成するように特別に構成されるようになる。
当業者は、図3および図4のハードウェアが実装によって異なり得ることを理解するであろう。図3および図4に示すハードウェアに加えて、またはその代わりに、フラッシュ・メモリ、同等の不揮発性メモリ、または光学ディスク・ドライブなどの他の内蔵ハードウェアまたは周辺機器が使用され得る。また、例示的な実施形態のプロセスは、本発明の範囲から逸脱することなく、前述のSMPシステム以外のマルチプロセッサ・データ処理システムに適用され得る。
さらに、データ処理システム400は、クライアント・コンピューティング・デバイス、サーバ・コンピューティング・デバイス、タブレット・コンピュータ、ラップトップ・コンピュータ、電話または他の通信デバイス、パーソナル・デジタル・アシスタント(PDA)などを含むいくつかの異なるデータ処理システムのうちのいずれかの形態をとり得る。いくつかの例示的な例では、データ処理システム400は、たとえば、オペレーティング・システム・ファイルまたはユーザ生成データあるいはその両方を記憶するための不揮発性メモリを提供するようにフラッシュ・メモリを用いて構成されるポータブル・コンピューティング・デバイスであり得る。本質的に、データ処理システム400は、アーキテクチャ上の制限のない、任意の知られているまたは今後開発されるデータ処理システムであり得る。
図5は、1つの例示的な実施形態による、前処理段階の機能を実行するための例示的な動作を概説するフローチャートである。図5に示すように、訓練データ・セットを使用してDLモデルを訓練することから動作は開始する(ステップ510)。DLモデルを訓練した後、訓練データは訓練済みのDLモデルに再度入力され(ステップ515)、その結果、訓練データ・インスタンスごとの訓練済みのDLモデルのニューラル・フローをキャプチャすることができる(ステップ520)。次いで、キャプチャされたニューラル・フローが訓練済みのDLモデルの出力クラスごとに集約され、クラスの集約はそのクラスのニューラル・フロー・モデルになる(ステップ525)。次いで、ニューラル・フロー・モデルは、デプロイされた訓練済みのDLモデルの完全性を検証する際に後で使用するために測定データベースに記憶される(ステップ530)。
DLモデルを訓練し、訓練済みのDLモデルのニューラル・フローをキャプチャし、様々なクラスのニューラル・フロー・モデルを生成して記憶した後、訓練済みのDLモデルがクラウド・コンピューティング・プラットフォームにデプロイされる(ステップ535)。その後、ユーザはコンピューティング・システムを介して、デプロイされたDLモデルの完全性を検証する要求をクラウド・コンピューティング・プラットフォームに送り得る(ステップ540)。要求はチャレンジCを含み得、これは、クラウド・コンピューティング・プラットフォームで動作する実行時ニューラル・フロー・アテステーション・エンジンから返されるアテステーションをシールまたは保護するために使用される。
要求に応答して、クラウド・コンピューティング・プラットフォームの実行時ニューラル・フロー・アテステーション・エンジンはアテステーションを生成し、これは次いでNFアテステーション・エンジンによって受信される(ステップ545)。アテステーションは、実行時ニューラル・フロー・アテステーション・エンジンによってキャプチャされたニューラル・フローと、要求と共に送信された入力に対してデプロイされた訓練済みのDLモデルによって生成された出力クラスとを含む。NFアテステーション・エンジンは、出力クラスに対応する記憶されたニューラル・フロー・モデルを取り出し、アテステーション内のニューラル・フローを、その出力クラスに関して取り出されたニューラル・フロー・モデルと比較する(ステップ550)。比較により、デプロイされた訓練済みのDLモデルの侵害の可能性を示す基準を満たされているか否かに関して判定が行われる(ステップ555)。たとえば、コンピュータで実行可能なルール、閾値などを、アテステーション内のニューラル・フローとニューラル・フロー・モデルとの間の不一致に適用して、不一致が侵害を示しているか否かを判定し得る。
比較により侵害がないという結果が生成された場合、動作は終了する。そうではなく、比較によって侵害の可能性があるという結果が生成された場合、アラートが生成され、権限ユーザに出力される(ステップ560)。任意選択により、デプロイされた訓練済みのDLモデルが退避され得る(ステップ565)。デプロイされた訓練済みのDLモデルの退避は、権限ユーザに警告し、権限ユーザにデプロイされた訓練済みのDLモデルを退避させる必要性を確認するように要求した後に、実行され得る。その後、動作は終了する。
図6は、1つの例示的な実施形態による、ニューラル・フローの実行時ニューラル・フロー・アテステーションを含むデプロイ段階の機能を実行するための例示的な動作を概説するフローチャートである。図6で概説する動作では、訓練済みのDLモデルが既にクラウド・コンピューティング・プラットフォームに提供され、使用できるようにデプロイされていると仮定する。
図6に示すように、デプロイされたDLモデルの実行完全性を検証する要求を受信することから動作は開始する(ステップ610)。上記で論じたように、この要求には、デプロイされたDLモデルによって処理されて出力分類を生成する入力データが付随し得、完全性検証および鮮度テストのためのチャレンジCがさらに含まれ得る。いくつかの実施形態では、前述のように信頼できる実行環境によって生成されたアテステーションを暗号化またはシールする際に使用するためのセキュリティ鍵も交換され得る。要求に応答して、クラウド・コンピューティング・プラットフォームの信頼できる実行環境において、与えられた入力に基づくデプロイされたDLモデルのニューラル・フローがキャプチャされる(ステップ620)。キャプチャされたニューラル・フローと、出力分類と、チャレンジCとに基づいて、要求に応答するためのアテステーションが生成される(ステップ630)。次いで、アテステーションは要求側コンピューティング・システムのNFアテステーション・エンジンに送信され、ニューラル・フローに基づいてデプロイされたDLモデルの実行時の実行完全性が検証される(ステップ640)。その後、動作は終了する。
このように、例示的な実施形態は、コンピュータ・モデル内のニューラル・フローに基づく実行時ニューラル・フロー・アテステーション機能を提供することによって、デプロイされた訓練済みのコンピュータ・モデルの完全性を保証するためのメカニズムを提供する。例示的な実施形態は、コンピュータ・モデルのデプロイ前にニューラル・フロー・モデルを記録し、訓練済みのコンピュータ・モデルがクラウド・コンピューティング・サービスの一部としてデプロイされた後に、クラウド・コンピューティング・プラットフォームからのアテステーションを検証するための基礎としてこれを使用する。このように、ユーザ(訓練済みのコンピュータ・モデルの所有者)は、ユーザが訓練済みのコンピュータ・モデルを提供してクラウド・コンピューティング・プラットフォームにデプロイした後に、悪意の有無にかかわらず、自身の訓練済みのコンピュータ・モデルが侵害されているか否かを判定し得る。その結果、ユーザは、デプロイされたコンピュータ・モデルを退避させるなどの対応行動を取って、ユーザが侵害されたコンピュータ・モデルに依存しないようにすることができる。
本発明の実施形態は、現在知られているまたは今後開発される任意のタイプのコンピューティング環境と共に実装されることが可能である。いくつかの例示的な実施形態では、例示的な実施形態のメカニズムはクラウド・コンピューティング・システム上に実装されるが、本明細書に記載した教示の実装はクラウド・コンピューティング環境に限定されない。例示的な実施形態のメカニズムを実装するために、様々なタイプの分散データ処理システム環境が利用され得る。
クラウド・コンピューティングの実施形態が利用されると仮定すると、クラウド・コンピューティングは、最小限の管理労力またはサービスのプロバイダとのやり取りによって迅速にプロビジョニングおよび解放することができる、設定可能なコンピューティング・リソース(たとえば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルであることを理解されたい。このクラウド・モデルは、少なくとも5つの特徴と、少なくとも3つのサービス・モデルと、少なくとも4つのデプロイメント・モデルとを含み得る。
クラウド・モデルの特徴は以下の通りである。
(1)オンデマンド・セルフ・サービス:クラウド・コンシューマは、サービスのプロバイダとの人的な対話を必要とせずに、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング能力を一方的にプロビジョニングすることができる。
(2)ブロード・ネットワーク・アクセス:能力はネットワークを介して利用することができ、異種のシンまたはシック・クライアント・プラットフォーム(たとえば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを介してアクセスされる。
(3)リソース・プーリング:プロバイダのコンピューティング・リソースをプールして、様々な物理リソースおよび仮想リソースが需要に応じて動的に割り当ておよび再割り当てされるマルチ・テナント・モデルを使用して複数のコンシューマにサービス提供する。一般にコンシューマは、提供されるリソースの正確な位置に対して何もできず、知っているわけでもないが、より高い抽象化レベル(たとえば、国、州、またはデータセンターなど)では位置を特定可能であり得るという点で位置非依存の感覚がある。
(4)迅速な弾力性:能力を迅速かつ弾力的に、場合によっては自動的にプロビジョニングして素早くスケール・アウトし、迅速に解放して素早くスケール・インすることができる。コンシューマにとって、プロビジョニング可能な能力は無制限であるように見えることが多く、任意の時間に任意の数量で購入することができる。
(5)測定されるサービス:クラウド・システムは、サービスのタイプ(たとえば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に適したある抽象化レベルでの計量機能を活用して、リソースの使用を自動的に制御し、最適化する。リソース使用量を監視、管理、および報告して、利用されるサービスのプロバイダおよびコンシューマの両方に透明性を提供することができる。
サービス・モデルは以下の通りである。
(1)ソフトウェア・アズ・ア・サービス(SaaS):コンシューマに提供される能力は、クラウド・インフラストラクチャ上で動作するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(たとえば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定を可能性のある例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、さらには個々のアプリケーション機能を含む、基盤となるクラウド・インフラストラクチャを管理も制御もしない。
(2)プラットフォーム・アズ・ア・サービス(PaaS):コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、コンシューマが作成または入手したアプリケーションをクラウド・インフラストラクチャ上にデプロイすることである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基盤となるクラウド・インフラストラクチャを管理も制御もしないが、デプロイされたアプリケーションおよび場合によってはアプリケーション・ホスティング環境構成を制御する。
(3)インフラストラクチャ・アズ・ア・サービス(IaaS):コンシューマに提供される能力は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをコンシューマがデプロイして動作させることが可能な、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることである。コンシューマは、基盤となるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションを制御し、場合によっては選択したネットワーキング・コンポーネント(たとえば、ホスト・ファイアウォール)を限定的に制御する。
デプロイメント・モデルは以下の通りである。
(1)プライベート・クラウド:クラウド・インフラストラクチャは組織専用に運用される。これは組織または第三者によって管理され得、構内または構外に存在し得る。
(2)コミュニティ・クラウド:クラウド・インフラストラクチャはいくつかの組織によって共有され、共通の懸念(たとえば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項など)を有する特定のコミュニティをサポートする。これは組織または第三者によって管理され得、構内または構外に存在し得る。
(3)パブリック・クラウド:クラウド・インフラストラクチャは、一般大衆または大規模な業界団体に対して利用可能にされ、クラウド・サービスを販売する組織によって所有される。
(4)ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データおよびアプリケーションの移植性を可能にする標準化技術または独自技術(たとえば、クラウド間の負荷分散のためのクラウド・バースティング)によって相互に結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)を合成したものである。
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、および意味論的相互運用性に重点を置いたサービス指向型である。クラウド・コンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
ここで図7を参照すると、例示的なクラウド・コンピューティング環境750が示されている。図示のように、クラウド・コンピューティング環境750は1つまたは複数のクラウド・コンピューティング・ノード710を含み、これらを使用して、たとえば、パーソナル・デジタル・アシスタント(PDA)もしくは携帯電話754A、デスクトップ・コンピュータ754B、ラップトップ・コンピュータ754C、または自動車コンピュータ・システム754N、あるいはそれらの組合せなどの、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスが通信し得る。ノード710は相互に通信し得る。これらは、たとえば、上述のプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはそれらの組合せなどの1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化され得る(図示せず)。これにより、クラウド・コンピューティング環境750は、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを維持する必要がない、インフラストラクチャ・アズ・ア・サービス、プラットフォーム・アズ・ア・サービス、またはソフトウェア・アズ・ア・サービス、あるいはそれらの組合せを提供することが可能になる。図7に示したコンピューティング・デバイス754A~Nのタイプは例示的なものにすぎないことが意図されており、コンピューティング・ノード710およびクラウド・コンピューティング環境750は、任意のタイプのネットワークまたはネットワーク・アドレス指定可能接続(たとえば、ウェブ・ブラウザを使用)あるいはその両方を介して任意のタイプのコンピュータ化デバイスと通信できることを理解されたい。
ここで図8を参照すると、クラウド・コンピューティング環境750(図7)によって提供される機能的抽象化レイヤのセットが示されている。図8に示したコンポーネント、レイヤ、および機能は例示的なものにすぎないことが意図されており、本発明の実施形態はこれらに限定されないことを事前に理解されたい。図示のように、以下のレイヤおよび対応する機能が提供される。
(1)ハードウェアおよびソフトウェア・レイヤ860は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、メインフレーム861、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ862、サーバ863、ブレード・サーバ864、ストレージ・デバイス865、ならびにネットワークおよびネットワーキング・コンポーネント866が含まれる。いくつかの実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア867およびデータベース・ソフトウェア868を含む。
(2)仮想化レイヤ870は抽象化レイヤを提供し、抽象化レイヤから、仮想エンティティの以下の例、すなわち、仮想サーバ871、仮想ストレージ872、仮想プライベート・ネットワークを含む仮想ネットワーク873、仮想アプリケーションおよびオペレーティング・システム874、ならびに仮想クライアント875が提供され得る。
一例では、管理レイヤ880は、下記の機能を提供し得る。リソース・プロビジョニング881は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの動的調達を提供する。計量および価格決定882は、クラウド・コンピューティング環境内でリソースが利用されたときの費用追跡と、これらのリソースの消費に対する会計または請求とを提供する。一例では、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティは、クラウド・コンシューマおよびタスクの同一性検証だけでなく、データおよび他のリソースに対する保護も提供する。ユーザ・ポータル883は、コンシューマおよびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理884は、要求されたサービス・レベルが満たされるような、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス・レベル合意(SLA)の計画および履行885は、SLAに従って将来要求されると予想されるクラウド・コンピューティング・リソースの事前手配および調達を提供する。
ワークロード・レイヤ890は、クラウド・コンピューティング環境が利用され得る機能性の例を提供する。このレイヤから提供され得るワークロードおよび機能の例は、マッピングおよびナビゲーション891、ソフトウェア開発およびライフサイクル管理892、仮想教室教育配信893、データ解析処理894、取引処理895、ならびにディープ・ラーニング・クラウド・コンピューティング・サービス処理896を含む。ディープ・ラーニング・クラウド・コンピューティング・サービス処理896は、説明した例示的な実施形態のうちの1つまたは複数に関して前述したパイプラインと、コンピュータ・モデル(たとえば、DLモデル)と、実行時ニューラル・フロー・アテステーション・エンジン・メカニズム、たとえば、図2の実行時ニューラル・フロー・アテステーション・エンジン230などと、を含み得る。
上記のように、例示的な実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェア要素およびソフトウェア要素の両方を含む実施形態の形をとり得ることを理解されたい。一例の実施形態では、例示的な実施形態のメカニズムは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されないソフトウェアまたはプログラム・コードで実装される。
プログラム・コードを記憶または実行あるいはその両方を行うのに適したデータ処理システムは、たとえば、システム・バスなどの通信バスを介してメモリ素子に直接または間接的に結合された少なくとも1つのプロセッサを含む。メモリ素子には、プログラム・コードの実際の実行中に利用されるローカル・メモリと、バルク・ストレージと、実行中にバルク・ストレージからコードが取り出される必要がある回数を削減するために少なくとも一部のプログラム・コードの一時的なストレージを提供するキャッシュ・メモリと、を含めることができる。メモリは、ROM、PROM、EPROM、EEPROM、DRAM、SRAM、フラッシュ・メモリ、ソリッド・ステート・メモリなどを含むがこれらに限定されない様々なタイプであり得る。
入力/出力またはI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイスなどを含むがこれらに限定されない)は、直接的に、あるいは介在する有線または無線のI/Oインターフェースもしくはコントローラまたはその両方などを介して、システムに結合することができる。I/Oデバイスは、たとえば、スマート・フォン、タブレット・コンピュータ、タッチ・スクリーン・デバイス、音声認識デバイスなどを含むがこれらに限定されない有線または無線接続を介して結合された通信デバイスなど、従来のキーボード、ディスプレイ、ポインティング・デバイスなど以外の多くの異なる形態をとり得る。任意の知られているまたは今後開発されるI/Oデバイスは、例示的な実施形態の範囲内にあるものとする。
また、ネットワーク・アダプタをシステムに結合して、データ処理システムを、介在するプライベートまたはパブリック・ネットワークを介して、他のデータ処理システムもしくはリモート・プリンタまたはストレージ・デバイスに結合可能にし得る。モデム、ケーブル・モデム、およびEthernet(R)カードは、有線通信用に現在利用可能なタイプのネットワーク・アダプタのほんの一部である。802.11a/b/g/n無線通信アダプタ、Bluetooth(R)無線アダプタなどを含むがこれらに限定されない無線通信ベースのネットワーク・アダプタも利用され得る。任意の知られているまたは今後開発されるネットワーク・アダプタは、本発明の範囲内にあるものとする。
本発明の説明は、例示および説明の目的で提示しており、網羅的であることも、開示した形態の発明に限定されることも意図したものではない。記載した実施形態の範囲から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本発明の原理および実際の適用を最もよく説明し、企図した特定の用途に適した様々な修正を有する様々な実施形態について本発明を当業者が理解できるようにするために、実施形態を選択し、説明している。本明細書で使用する用語は、実施形態の原理、実際の適用、または市場に見られる技術に対する技術的改善を最もよく説明するために、または当業者が本明細書に開示した実施形態を理解できるようにするために選択している。

Claims (21)

  1. 少なくとも1つのプロセッサおよび少なくとも1つのメモリを備えるデータ処理システムにおける方法であって、前記少なくとも1つのメモリは、ニューラル・フロー・アテステーション・エンジンを実装するように前記少なくとも1つのプロセッサを構成するために前記少なくとも1つのプロセッサによって実行される命令を含み、前記方法は、
    前記ニューラル・フロー・アテステーション・エンジンによって、訓練済みのコンピュータ・モデルに入力データを入力することであって、前記訓練済みのコンピュータ・モデルはニューロンの複数の層を含む、前記入力することと、
    前記ニューラル・フロー・アテステーション・エンジンによって、前記入力データ内の入力データ・インスタンスのセットについて、前記訓練済みのコンピュータ・モデルによって生成された出力クラスと、前記ニューロンの複数の層を通るニューラル・フローとを記録することであって、前記記録することによって記録されたニューラル・フローを生成し、前記出力クラスは複数の可能な出力クラスのうちの1つである、前記記録することと、
    前記訓練済みのコンピュータ・モデルをコンピューティング・プラットフォームにデプロイすることと、
    前記ニューラル・フロー・アテステーション・エンジンによって、前記デプロイされた訓練済みのコンピュータ・モデルの実行時ニューラル・フローと、前記記録されたニューラル・フローとに基づいて、前記デプロイされた訓練済みのコンピュータ・モデルの完全性を検証することと、
    を含む、方法。
  2. 前記ニューラル・フロー・アテステーション・エンジンによって、前記複数の可能な出力クラス内の各クラスについて、前記記録されたニューラル・フローに基づいてニューラル・フロー・モデルを生成することと、
    前記ニューラル・フロー・アテステーション・エンジンによって、各ニューラル・フロー・モデルを測定データベースに記憶することであって、前記デプロイされた訓練済みのコンピュータ・モデルの前記実行完全性を検証することは、前記実行時ニューラル・フローを前記測定データベース内の前記記憶されたニューラル・フロー・モデルのうちの1つまたは複数と比較することを含む、前記記憶することと、
    をさらに含む、請求項1に記載の方法。
  3. 前記複数の可能な出力クラス内の各クラスについて、前記記録されたニューラル・フローに基づいてニューラル・フロー・モデルを生成することは、各クラスについて、活性化されたニューロンおよびフィルタのセットを識別すること、または活性化されたニューロンおよびフィルタに基づいて、活性化および活性化の発生頻度を考慮に入れて機械学習モデルを訓練することのうちの少なくとも1つによって、前記クラスに関連する前記記録されたニューラル・フローを集約することを含む、請求項2に記載の方法。
  4. 前記測定データベースは、前記訓練済みのコンピュータ・モデルのプロバイダに関連付けられたテナント・コンピューティング・デバイスに記憶され、前記データ処理システムは、クラウド・コンピューティング・プラットフォームの別のコンピューティング・システムである、請求項2または3に記載の方法。
  5. 前記デプロイされた訓練済みのコンピュータ・モデルの前記実行完全性を検証することは、
    前記デプロイされた訓練済みのコンピュータ・モデルによって処理された実行時入力データに基づいて、前記デプロイされた訓練済みのコンピュータ・モデルの前記実行時ニューラル・フローを記録することと、
    前記データ処理システムから前記テナント・コンピューティング・デバイスに前記記録された実行時ニューラル・フローを送信することと、
    前記記録された実行時ニューラル・フローを、前記実行時入力データに対して前記デプロイされた訓練済みのコンピュータ・モデルによって生成された実行時出力クラスと同じクラスに対応する、前記測定データベースに記憶された1つまたは複数のニューラル・フロー・モデルと比較することと、
    を含む、請求項4に記載の方法。
  6. 前記デプロイされた訓練済みのコンピュータ・モデルの実行時ニューラル・フローと、前記記録されたニューラル・フローとに基づいて、前記デプロイされた訓練済みのコンピュータ・モデルの前記完全性を検証することは、
    前記実行時ニューラル・フローと、前記実行時入力データに対して前記デプロイされた訓練済みのコンピュータ・モデルによって生成されたのと同じ出力クラスに対応する1つまたは複数の記録されたニューラル・フローとの間の逸脱を決定することと、
    前記逸脱が所定の基準を満たすことに応答して、前記デプロイされた訓練済みのコンピュータ・モデルの前記実行完全性が侵害されていると判定することと、
    を含む、請求項1ないし5のいずれかに記載の方法。
  7. 前記デプロイされた訓練済みのコンピュータ・モデルの前記完全性が侵害されていると判定したことに応答して、前記デプロイされた訓練済みのコンピュータ・モデルのユーザによるさらなるアクセスから前記デプロイされた訓練済みのコンピュータ・モデルを退避させること
    をさらに含む、請求項6に記載の方法。
  8. 前記入力データ内の前記入力データ・インスタンスのセットについて、前記訓練済みのコンピュータ・モデルによって生成された前記出力クラスと、前記ニューロンの複数の層を通る前記ニューラル・フローとを記録することは、
    前記データ処理システムにおいて信頼できる実行環境(TEE)を生成することと、
    前記信頼できる実行環境内で実行されるニューラル・フロー記録コンポーネントによって、前記入力データ・インスタンスに関する前記ニューロンの複数の層を通る前記ニューラル・フローを記録することと、
    前記信頼できる実行環境内で実行されるアテステーション生成エンジンによって、前記入力データ・インスタンスに関する前記ニューロンの複数の層を通る前記記録されたニューラル・フローと、前記入力データ・インスタンスに対して前記デプロイされた訓練済みのコンピュータ・モデルによって生成された出力クラスとを含むアテステーションを生成することと、
    を含む、請求項1ないし7のいずれかに記載の方法。
  9. 前記入力データ内の前記入力データ・インスタンスのセットについて、前記訓練済みのコンピュータ・モデルによって生成された前記出力クラスと、前記ニューロンの複数の層を通る前記ニューラル・フローとを記録することは、
    前記アテステーション生成エンジンによって、前記コンピュータ・モデルのプロバイダのコンピューティング・デバイスによって提供されるチャレンジにさらに基づいて前記アテステーションを生成することと、
    前記アテステーション生成エンジンによって、前記コンピュータ・モデルの前記プロバイダの前記コンピューティング・デバイスと前記TEEとの間で交換されるセキュリティ鍵に基づいて前記アテステーションを暗号化することであって、前記暗号化することによって暗号化されたアテステーションを生成する、前記暗号化することと、
    前記データ処理システムによって、前記暗号化されたアテステーションを前記コンピュータ・モデルの前記プロバイダの前記コンピューティング・デバイスに送信することと、
    をさらに含む、請求項8に記載の方法。
  10. 前記コンピューティング・プラットフォームは、1つまたは複数のテナントを有するクラウド・コンピューティング・プラットフォームである、請求項1ないし9のいずれかに記載の方法。
  11. 少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサに結合される少なくとも1つのメモリと、
    を備え、前記少なくとも1つのメモリは、前記少なくとも1つのプロセッサによって実行された場合に、前記少なくとも1つのプロセッサにニューラル・フロー・アテステーション・エンジンを実装させる命令を含み、前記ニューラル・フロー・アテステーション・エンジンは、
    訓練済みのコンピュータ・モデルに入力データを入力することであって、前記訓練済みのコンピュータ・モデルはニューロンの複数の層を含む、前記入力することと、
    前記入力データ内の入力データ・インスタンスのセットについて、前記訓練済みのコンピュータ・モデルによって生成された出力クラスと、前記ニューロンの複数の層を通るニューラル・フローとを記録することであって、前記記録することによって記録されたニューラル・フローを生成し、前記出力クラスは複数の可能な出力クラスのうちの1つである、前記記録することと、
    前記訓練済みのコンピュータ・モデルをコンピューティング・プラットフォームにデプロイすることと、
    前記デプロイされた訓練済みのコンピュータ・モデルの実行時ニューラル・フローと、前記記録されたニューラル・フローとに基づいて、前記デプロイされた訓練済みのコンピュータ・モデルの完全性を検証することと、
    を行うように構成される、システム。
  12. 前記ニューラル・フロー・アテステーション・エンジンは、
    前記複数の可能な出力クラス内の各クラスについて、前記記録されたニューラル・フローに基づいてニューラル・フロー・モデルを生成することと、
    各ニューラル・フロー・モデルを測定データベースに記憶することであって、前記デプロイされた訓練済みのコンピュータ・モデルの前記完全性を検証することは、前記実行時ニューラル・フローを前記測定データベース内の前記記憶されたニューラル・フロー・モデルのうちの1つまたは複数と比較することを含む、前記記憶することと、
    を行うように構成される、請求項11に記載のシステム。
  13. 前記ニューラル・フロー・アテステーション・エンジンは、前記複数の可能な出力クラス内の各クラスについて、前記記録されたニューラル・フローに基づいてニューラル・フロー・モデルを生成することを行うように構成され、前記生成することは、各クラスについて、活性化されたニューロンおよびフィルタのセットを識別すること、または活性化されたニューロンおよびフィルタに基づいて、活性化および活性化の発生頻度を考慮に入れて機械学習モデルを訓練することのうちの少なくとも1つによって、前記クラスに関連する前記記録されたニューラル・フローを集約することを含む、請求項11または12に記載のシステム。
  14. 前記測定データベースは、前記訓練済みのコンピュータ・モデルのプロバイダに関連付けられたテナント・コンピューティング・デバイスに記憶され、前記データ処理システムは、クラウド・コンピューティング・プラットフォームの別のコンピューティング・システムである、請求項12に記載のシステム。
  15. 前記ニューラル・フロー・アテステーション・エンジンは、前記デプロイされた訓練済みのコンピュータ・モデルの前記完全性を検証することを、
    前記デプロイされた訓練済みのコンピュータ・モデルによって処理された実行時入力データに基づいて、前記デプロイされた訓練済みのコンピュータ・モデルの前記実行時ニューラル・フローを記録することと、
    前記データ処理システムから前記テナント・コンピューティング・デバイスに前記記録された実行時ニューラル・フローを送信することと、
    前記記録された実行時ニューラル・フローを、前記実行時入力データに対して前記デプロイされた訓練済みのコンピュータ・モデルによって生成された実行時出力クラスと同じクラスに対応する、前記測定データベースに記憶された1つまたは複数のニューラル・フロー・モデルと比較することと、
    によって行うように構成される、請求項14に記載のシステム。
  16. 前記ニューラル・フロー・アテステーション・エンジンは、前記デプロイされた訓練済みのコンピュータ・モデルの前記完全性を検証することを、
    前記実行時ニューラル・フローと、前記実行時入力データに対して前記デプロイされた訓練済みのコンピュータ・モデルによって生成されたのと同じ出力クラスに対応する1つまたは複数の記録されたニューラル・フローとの間の逸脱を決定することと、
    前記逸脱が所定の基準を満たすことに応答して、前記デプロイされた訓練済みのコンピュータ・モデルの前記完全性が侵害されていると判定することと、
    によって行うように構成される、請求項11ないし15のいずれかに記載のシステム。
  17. 前記ニューラル・フロー・アテステーション・エンジンは、前記デプロイされた訓練済みのコンピュータ・モデルの前記実行完全性が侵害されていると判定したことに応答して、前記デプロイされた訓練済みのコンピュータ・モデルのユーザによるさらなるアクセスから前記デプロイされた訓練済みのコンピュータ・モデルを退避させる動作をさらに実行するように動作可能である、請求項16に記載のシステム。
  18. 前記入力データ内の前記入力データ・インスタンスのセットについて、前記訓練済みのコンピュータ・モデルによって生成された前記出力クラスと、前記ニューロンの複数の層を通る前記ニューラル・フローとを記録することは、
    前記データ処理システムにおいて信頼できる実行環境(TEE)を生成することと、
    前記信頼できる実行環境内で実行されるニューラル・フロー記録コンポーネントによって、前記入力データ・インスタンスに関する前記ニューロンの複数の層を通る前記ニューラル・フローを記録することと、
    前記信頼できる実行環境内で実行されるアテステーション生成エンジンによって、前記入力データ・インスタンスに関する前記ニューロンの複数の層を通る前記記録されたニューラル・フローと、前記入力データ・インスタンスに対して前記デプロイされた訓練済みのコンピュータ・モデルによって生成された出力クラスとを含むアテステーションを生成することと、
    を含む、請求項11ないし17のいずれかに記載のシステム。
  19. 前記入力データ内の前記入力データ・インスタンスのセットについて、前記訓練済みのコンピュータ・モデルによって生成された前記出力クラスと、前記ニューロンの複数の層を通る前記ニューラル・フローとを記録することは、
    前記アテステーション生成エンジンによって、前記コンピュータ・モデルのプロバイダのコンピューティング・デバイスによって提供されるチャレンジにさらに基づいて前記アテステーションを生成することと、
    前記アテステーション生成エンジンによって、前記コンピュータ・モデルの前記プロバイダの前記コンピューティング・デバイスと前記TEEとの間で交換されるセキュリティ鍵に基づいて前記アテステーションを暗号化することであって、前記暗号化することによって暗号化されたアテステーションを生成する、前記暗号化することと、
    前記データ処理システムによって、前記暗号化されたアテステーションを前記コンピュータ・モデルの前記プロバイダの前記コンピューティング・デバイスに送信することと、
    をさらに含む、請求項18に記載のシステム。
  20. ニューラル・フロー・アテステーション・エンジンを実装するためのコンピュータ・プログラム製品であって、
    処理回路によって読み取り可能であり、請求項1ないし10のいずれかに記載の方法を実施するための、前記処理回路によって実行するための命令を記憶するコンピュータ可読記憶媒体
    を備える、コンピュータ・プログラム製品。
  21. コンピュータ可読媒体に記憶され、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行された場合に、請求項1ないし10のいずれかに記載の方法を実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラム。
JP2022539370A 2020-01-23 2021-01-18 ニューラル・フロー・アテステーション Pending JP2023511514A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/750,328 2020-01-23
US16/750,328 US11783201B2 (en) 2020-01-23 2020-01-23 Neural flow attestation
PCT/IB2021/050346 WO2021148926A1 (en) 2020-01-23 2021-01-18 Neural flow attestation

Publications (1)

Publication Number Publication Date
JP2023511514A true JP2023511514A (ja) 2023-03-20

Family

ID=76970136

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022539370A Pending JP2023511514A (ja) 2020-01-23 2021-01-18 ニューラル・フロー・アテステーション

Country Status (8)

Country Link
US (2) US11783201B2 (ja)
JP (1) JP2023511514A (ja)
KR (1) KR20220109418A (ja)
CN (1) CN115004153A (ja)
AU (1) AU2021210217B2 (ja)
DE (1) DE112021000689T5 (ja)
GB (1) GB2608033A (ja)
WO (1) WO2021148926A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11451480B2 (en) * 2020-03-31 2022-09-20 Micron Technology, Inc. Lightweight artificial intelligence layer to control the transfer of big data
US20220237503A1 (en) * 2021-01-26 2022-07-28 International Business Machines Corporation Machine learning model deployment within a database management system
CN114861912B (zh) * 2022-07-06 2022-09-16 武汉山川软件有限公司 一种基于大数据的数据验证方法和装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1393253A4 (en) 2001-05-17 2009-12-16 Entelos Inc DEVICE AND METHOD FOR VALIDATING A COMPUTER MODEL
WO2008063155A2 (en) 2005-10-18 2008-05-29 Drexel University Deception detection via functional near-infrared spectroscopy
US10977571B2 (en) * 2015-03-02 2021-04-13 Bluvector, Inc. System and method for training machine learning applications
CN105373785B (zh) 2015-11-30 2019-08-02 北京地平线机器人技术研发有限公司 基于深度神经网络的手势识别检测方法与装置
EP3507771B1 (en) 2016-09-15 2020-06-24 Google LLC Image depth prediction neural networks
CN107544904B (zh) 2017-08-21 2020-11-03 哈尔滨工程大学 一种基于深度cg-lstm神经网络的软件可靠性预测方法
EP3471005B1 (en) 2017-10-13 2021-11-03 Nokia Technologies Oy Artificial neural network
US10223610B1 (en) * 2017-10-15 2019-03-05 International Business Machines Corporation System and method for detection and classification of findings in images
US11301762B1 (en) * 2018-11-02 2022-04-12 Amazon Technologies, Inc. High perforamance machine learning inference framework for edge devices
US11313950B2 (en) * 2019-01-15 2022-04-26 Image Sensing Systems, Inc. Machine learning based highway radar vehicle classification across multiple lanes and speeds
US11295242B2 (en) * 2019-11-13 2022-04-05 International Business Machines Corporation Automated data and label creation for supervised machine learning regression testing
US11836741B2 (en) * 2019-11-19 2023-12-05 Captiv8 Inc. Systems and methods for identifying, tracking, and managing a plurality of social network users having predefined characteristics

Also Published As

Publication number Publication date
GB202212229D0 (en) 2022-10-05
DE112021000689T5 (de) 2022-12-08
US11783201B2 (en) 2023-10-10
WO2021148926A1 (en) 2021-07-29
KR20220109418A (ko) 2022-08-04
AU2021210217B2 (en) 2023-03-30
AU2021210217A1 (en) 2022-06-16
US20210232933A1 (en) 2021-07-29
CN115004153A (zh) 2022-09-02
US20230394324A1 (en) 2023-12-07
GB2608033A (en) 2022-12-21

Similar Documents

Publication Publication Date Title
US20220269942A1 (en) Privacy Enhancing Deep Learning Cloud Service Using a Trusted Execution Environment
US10733292B2 (en) Defending against model inversion attacks on neural networks
US20200082272A1 (en) Enhancing Data Privacy in Remote Deep Learning Services
US11265352B2 (en) Artificial intelligence assisted rule generation
US11601468B2 (en) Detection of an adversarial backdoor attack on a trained model at inference time
AU2021210217B2 (en) Neural flow attestation
US11483319B2 (en) Security model
US11374958B2 (en) Security protection rule prediction and enforcement
US11563727B2 (en) Multi-factor authentication for non-internet applications
US11888872B2 (en) Protecting computer assets from malicious attacks
US11968224B2 (en) Shift-left security risk analysis
WO2023109483A1 (en) Defending deep generative models against adversarial attacks
US12015691B2 (en) Security as a service for machine learning
US20230169176A1 (en) Graph exploration framework for adversarial example generation
US11645566B2 (en) Methods and systems for graph computing with hybrid reasoning
US11321611B2 (en) Deployment verification of authenticity of machine learning results
US20190180198A1 (en) Analyzing domain features using natural language processing

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221226

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230622

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240621