(57)【要約】本開示はニューラルネットワークモデルを暗号化し又はニューラルネットワークモデルの出力情報を取得する方法及び装置、記憶媒体に関し、該方法は、ターゲットニューラルネットワークモデルを記述するためのメタモデルファイルにおけるモデル情報の少なくとも一部を暗号化して、暗号化されたモデルファイルを取得することと、前記暗号化されたモデルファイルに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成することと、端末装置の要求に応じて、前記モデルプログラムコードが含まれるアプリケーションプログラムインストールパッケージを前記端末装置に送信することと、を含む。【選択図】図１
2022500712.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークモデルの暗号化方法であって、
ターゲットニューラルネットワークモデルを記述するためのメタモデルファイルにおけるモデル情報の少なくとも一部を暗号化して、暗号化されたモデルファイルを取得することと、
前記暗号化されたモデルファイルに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成することと、
端末装置の要求に応じて、前記モデルプログラムコードが含まれるアプリケーションプログラムインストールパッケージを前記端末装置に送信することと、を含む、前記ニューラルネットワークモデルの暗号化方法。
【請求項２】
前記モデル情報は、
前記ターゲットニューラルネットワークモデルにおける各ノードのノード情報及び前記ターゲットニューラルネットワークモデルのグローバルパラメータを含み、
前記ノード情報がノード識別子及びノードパラメータを含み、前記ノードパラメータがノードの重みパラメータ、ノードの入力パラメータ、ノードの出力パラメータ及びノードの演算パラメータのうちの少なくとも１つを含む
請求項１に記載の方法。
【請求項３】
前記暗号化されたモデルファイルに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成することは、
前記ターゲットニューラルネットワークモデルに関連する汎化モデルクラス及び前記ターゲットニューラルネットワークモデルに含まれるモデル情報に関連する少なくとも１つの汎化データクラスを構築することと、
前記暗号化されたモデルファイルに基づき、前記汎化モデルクラスに関連するモデルコンストラクタを呼び出すことにより、前記ターゲットニューラルネットワークモデルに関連するモデルオブジェクトを作成することと、
前記暗号化されたモデルファイルに基づき、前記少なくとも１つの汎化データクラスに関連する少なくとも１つのデータコンストラクタを呼び出すことにより、前記モデル情報に関連するデータオブジェクトを作成することと、
前記モデルオブジェクト及び前記データオブジェクトに基づき、前記ターゲットニューラルネットワークモデルを記述するための前記モデルプログラムコードを生成することと、を含む
請求項１に記載の方法。
【請求項４】
前記モデルプログラムコードに基づき、モデルライブラリファイルを生成することと、
前記モデルライブラリファイルを実行可能ファイルにリンクして、ターゲットニューラルネットワークの機能を実行するためのアプリケーションプログラムを生成することと、を更に含む
請求項１に記載の方法。
【請求項５】
ターゲットニューラルネットワークモデルを記述するためのメタモデルファイルにおけるモデル情報の少なくとも一部を暗号化して、暗号化されたモデルファイルを取得することは、
所定のハッシュ関数に基づいて前記モデル情報の少なくとも一部に対してマッピング演算を行って、暗号化されたモデルファイルを取得することを含む
請求項１〜４のいずれか１項に記載の方法。
【請求項６】
ニューラルネットワークモデルの暗号化装置であって、
ターゲットニューラルネットワークモデルを記述するためのメタモデルファイルにおけるモデル情報の少なくとも一部を暗号化して、暗号化されたモデルファイルを取得するように構成される暗号化モジュールと、
前記暗号化されたモデルファイルに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成するように構成される第１生成モジュールと、
端末装置の要求に応じて、前記モデルプログラムコードが含まれるアプリケーションプログラムインストールパッケージを前記端末装置に送信するように構成される送信モジュールと、を備える、前記ニューラルネットワークモデルの暗号化装置。
【請求項７】
前記モデル情報は、
前記ターゲットニューラルネットワークモデルにおける各ノードのノード情報及び前記ターゲットニューラルネットワークモデルのグローバルパラメータを含み、
前記ノード情報がノード識別子及びノードパラメータを含み、前記ノードパラメータがノードの重みパラメータ、ノードの入力パラメータ、ノードの出力パラメータ及びノードの演算パラメータのうちの少なくとも１つを含む
請求項６に記載の装置。
【請求項８】
前記第１生成モジュールは、
前記ターゲットニューラルネットワークモデルに関連する汎化モデルクラス及び前記ターゲットニューラルネットワークモデルに含まれるモデル情報に関連する少なくとも１つの汎化データクラスを構築するように構成される構築サブモジュールと、
前記暗号化されたモデルファイルに基づき、前記汎化モデルクラスに関連するモデルコンストラクタを呼び出すことにより、前記ターゲットニューラルネットワークモデルに関連するモデルオブジェクトを作成するように構成される第１作成サブモジュールと、
前記暗号化されたモデルファイルに基づき、前記少なくとも１つの汎化データクラスに関連する少なくとも１つのデータコンストラクタを呼び出すことにより、前記モデル情報に関連するデータオブジェクトを作成するように構成される第２作成サブモジュールと、
前記モデルオブジェクト及び前記データオブジェクトに基づき、前記ターゲットニューラルネットワークモデルを記述するための前記モデルプログラムコードを生成するように構成される取得サブモジュールと、を含む
請求項６に記載の装置。
【請求項９】
前記モデルプログラムコードに基づき、モデルライブラリファイルを生成するように構成される第２生成モジュールと、
前記モデルライブラリファイルを実行可能ファイルにリンクして、ターゲットニューラルネットワークの機能を実行するためのアプリケーションプログラムを生成するように構成される第３生成モジュールと、を更に備える
請求項６に記載の装置。
【請求項１０】
前記暗号化モジュールは、
所定のハッシュ関数に基づいて前記モデル情報の少なくとも一部に対してマッピング演算を行って、暗号化されたモデルファイルを取得するように構成されるマッピングサブモジュールを含む
請求項６〜９のいずれか１項に記載の装置。
【請求項１１】
ニューラルネットワークモデルの暗号化装置であって、
少なくともプロセッサと、前記プロセッサにおいて実行できる実行可能命令を記憶するためのメモリと、を備え、
前記プロセッサが、前記実行可能命令を実行するとき、前記実行可能命令によって上記請求項１〜５のいずれか１項に記載のニューラルネットワークモデルの暗号化方法におけるステップを実行することに用いられる、前記ニューラルネットワークモデルの暗号化装置。
【請求項１２】
非一時的コンピュータ可読記憶媒体であって、
前記非一時的コンピュータ可読記憶媒体にコンピュータ実行可能命令が記憶され、該コンピュータ実行可能命令がプロセッサにより実行されるとき、上記請求項１〜５のいずれか１項に記載のニューラルネットワークモデルの暗号化方法におけるステップを実現する、前記非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は、２０１９年０８月０９日に提出した中国特許出願第２０１９１０７３５８９８．Ｘ号の優先権を主張し、ここで、該中国特許出願の全内容が本願の一部として援用される。
【０００２】
本開示は情報処理技術に関し、特にニューラルネットワークモデルの暗号化方法及び装置、記憶媒体に関する。
【背景技術】
【０００３】
ニューラルネットワークモデルは人間の実際のニューラルネットワークを擬似する数学モデルであり、システム識別、モード識別、人工知能等の多くの分野に広く使用されている。ニューラルネットワーク技術の継続的な発展に伴い、ニューラルネットワークモデルは既に多くの端末装置の応用製品に使用されている。ニューラルネットワークモデルの応用はよくセキュリティ問題が問われ、ニューラルネットワークモデルが端末装置側に配置される場合、モデル情報が漏洩しやすい。従って、ニューラルネットワークモデルに適用される暗号化方法を考案することは、ニューラルネットワークモデルの応用における重要な課題の１つである。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本開示はニューラルネットワークモデルの暗号化方法及び装置、記憶媒体を提供する。
【課題を解決するための手段】
【０００５】
本開示の実施例に係る第１態様では、ニューラルネットワークモデルの暗号化方法を提供し、
ターゲットニューラルネットワークモデルを記述するためのメタモデルファイルにおけるモデル情報の少なくとも一部を暗号化して、暗号化されたモデルファイルを取得することと、
前記暗号化されたモデルファイルに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成することと、
端末装置の要求に応じて、前記モデルプログラムコードが含まれるアプリケーションプログラムインストールパッケージを前記端末装置に送信することと、を含む。
【０００６】
いくつかの実施例において、前記モデル情報は、
前記ターゲットニューラルネットワークモデルにおける各ノードのノード情報及び前記ターゲットニューラルネットワークモデルのグローバルパラメータを含み、
前記ノード情報がノード識別子及びノードパラメータを含み、前記ノードパラメータがノードの重みパラメータ、ノードの入力パラメータ、ノードの出力パラメータ及びノードの演算パラメータのうちの少なくとも１つを含む。
【０００７】
いくつかの実施例において、前記暗号化されたモデルファイルに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成することは、
前記ターゲットニューラルネットワークモデルに関連する汎化モデルクラス及び前記ターゲットニューラルネットワークモデルに含まれるモデル情報に関連する少なくとも１つの汎化データクラスを構築することと、
前記暗号化されたモデルファイルに基づき、前記汎化モデルクラスに関連するモデルコンストラクタを呼び出すことにより、前記ターゲットニューラルネットワークモデルに関連するモデルオブジェクトを作成することと、
前記暗号化されたモデルファイルに基づき、前記少なくとも１つの汎化データクラスに関連する少なくとも１つのデータコンストラクタを呼び出すことにより、前記モデル情報に関連するデータオブジェクトを作成することと、
前記モデルオブジェクト及び前記データオブジェクトに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成することと、を含む。
【０００８】
いくつかの実施例において、前記方法は、更に、
前記モデルプログラムコードに基づき、モデルライブラリファイルを生成することと、
前記モデルライブラリファイルを実行可能ファイルにリンクして、前記ターゲットニューラルネットワークの機能を実行するためのアプリケーションプログラムを生成することと、を含む。
【０００９】
いくつかの実施例において、ターゲットニューラルネットワークモデルを記述するためのメタモデルファイルにおけるモデル情報の少なくとも一部を暗号化して、暗号化されたモデルファイルを取得することは、
所定のハッシュ関数に基づいて前記モデル情報の少なくとも一部に対してマッピング演算を行って、暗号化されたモデルファイルを取得することを含む。
【００１０】
本開示の実施例に係る第２態様では、ニューラルネットワークモデルの暗号化装置を提供し、
ターゲットニューラルネットワークモデルを記述するためのメタモデルファイルにおけるモデル情報の少なくとも一部を暗号化して、暗号化されたモデルファイルを取得するように構成される暗号化モジュールと、
前記暗号化されたモデルファイルに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成するように構成される第１生成モジュールと、
端末装置の要求に応じて、前記モデルプログラムコードが含まれるアプリケーションプログラムインストールパッケージを前記端末装置に送信するように構成される送信モジュールと、を備える。
【００１１】
いくつかの実施例において、前記モデル情報は、
前記ターゲットニューラルネットワークモデルにおける各ノードのノード情報及び前記ターゲットニューラルネットワークモデルのグローバルパラメータを含み、
前記ノード情報がノード識別子及びノードパラメータを含み、前記ノードパラメータがノードの重みパラメータ、ノードの入力パラメータ、ノードの出力パラメータ及びノードの演算パラメータのうちの少なくとも１つを含む。
【００１２】
いくつかの実施例において、前記第１生成モジュールは、
前記ターゲットニューラルネットワークモデルに関連する汎化モデルクラス及び前記ターゲットニューラルネットワークモデルに含まれるモデル情報に関連する少なくとも１つの汎化データクラスを構築するように構成される構築サブモジュールと、
前記暗号化されたモデルファイルに基づき、前記汎化モデルクラスに関連するモデルコンストラクタを呼び出すことにより、前記ターゲットニューラルネットワークモデルに関連するモデルオブジェクトを作成するように構成される第１作成サブモジュールと、
前記暗号化されたモデルファイルに基づき、前記少なくとも１つの汎化データクラスに関連する少なくとも１つのデータコンストラクタを呼び出すことにより、前記モデル情報に関連するデータオブジェクトを作成するように構成される第２作成サブモジュールと、
前記モデルオブジェクト及び前記データオブジェクトに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成するように構成される取得サブモジュールと、を含む。
【００１３】
いくつかの実施例において、前記装置は、更に、
前記モデルプログラムコードに基づき、モデルライブラリファイルを生成するように構成される第２生成モジュールと、
前記モデルライブラリファイルを実行可能ファイルにリンクして、前記ターゲットニューラルネットワークの機能を実行するためのアプリケーションプログラムを生成するように構成される第３生成モジュールと、を備える。
【００１４】
いくつかの実施例において、前記暗号化モジュールは、
所定のハッシュ関数に基づいて前記モデル情報の少なくとも一部に対してマッピング演算を行って、暗号化されたモデルファイルを取得するように構成されるマッピングサブモジュールを含む。
【００１５】
本開示の実施例に係る第３態様では、ニューラルネットワークモデルの暗号化装置を提供し、前記装置は少なくともプロセッサと、前記プロセッサにおいて実行できる実行可能命令を記憶するためのメモリと、を備え、
プロセッサが前記実行可能命令を実行するとき、前記実行可能命令によって上記いずれか１項に記載のニューラルネットワークモデルの暗号化方法におけるステップを実行することに用いられる。
【００１６】
本開示の実施例に係る第４態様では、非一時的コンピュータ可読記憶媒体を提供し、前記コンピュータ可読記憶媒体にコンピュータ実行可能命令が記憶され、該コンピュータ実行可能命令がプロセッサにより実行されるとき、上記いずれか１項に記載のニューラルネットワークモデルの暗号化方法におけるステップを実現する。
【発明の効果】
【００１７】
本開示の実施例に係る技術案は以下の有益な効果を有してもよい。サーバ側においてニューラルネットワークのメタモデルファイルにおける一部のモデル情報を暗号化して、暗号化後のモデルファイルを、該ニューラルネットワークを記述するモデルプログラムコードに変換して、端末装置側に送信することにより、サーバは端末装置へアプリケーションプログラムインストールパッケージを送信する際にメタモデルファイル（例えば、バイナリ形式のファイル）を伝送する必要がなく、これにより、伝送効率を向上させ、且つ暗号化されたモデルファイルをモデルプログラムコードに変換することにより暗号文をクラッキングする難度を大幅に増加させ、それによりモデル全体のセキュリティを確保する。一方、端末装置側においてニューラルネットワークをオフラインで設定するとき、メタモデルファイルを記憶する必要がないため、占有した記憶スペースが増加せず、従って、端末装置側のオフライン設定要求をよりよく満たすことができ、且つ、アプリケーションプログラムの外部からメタモデルファイルを呼び出さずに、モデルプログラムコードを実行すれば、該ニューラルネットワークのモデル情報を取得できるため、ニューラルネットワーク情報を取得する効率を向上させ、それによりアプリケーションプログラム全体の実行効率を向上させる。なお、サーバも暗号鍵を端末装置側に伝送する必要がないため、伝送過程のセキュリティを向上させ、モデル内部情報のセキュリティも確保する。以上の一般的な説明及び以下の詳細な説明は例示的且つ解釈的なものであって、本開示を制限するためのものではないと理解すべきである。
【図面の簡単な説明】
【００１８】
【図１】図１は例示的な実施例に係るニューラルネットワークモデルの暗号化方法の実現フローチャートである。
【図２】図２は例示的な実施例に係るニューラルネットワークモデルの暗号化原理の模式図である。
【図３】図３は例示的な実施例に係るニューラルネットワークモデルの暗号化装置の構造模式図である。
【図４】図４は例示的な実施例に係るニューラルネットワークモデルの暗号化装置の実体のブロック構成図である。
【図５】図５は例示的な実施例に係る端末装置の実体のブロック構成図である。
【発明を実施するための形態】
【００１９】
ここで、図面は明細書に援用されて本明細書の一部となり、本発明に適用される実施例を示し、且つ明細書とともに本発明の原理を解釈することに用いられる。
【００２０】
ニューラルネットワークモデルの設定は、一般的に、サービス側に設定されて、ネットワーク経由でオンラインサービスを提供する方式と、端末装置側、例えば携帯電話等のスマートデバイスに設定されて、端末装置側のアクセラレーターを利用してモデルをオフラインで実行する方式と、を含む。モデルが端末装置側に設定される場合、モデルのすべての情報がモデルファイルに記憶され、モデルファイルによってモデル情報を直接取得することができ、セキュリティが低い。
【００２１】
ニューラルネットワークモデルの暗号化方法は少なくとも対称暗号化方法及び非対称暗号化方法を含んでもよい。対称暗号化方法はストリームパスワード暗号化及びパケットパスワード暗号化を含む。ストリームパスワード暗号化とは、毎回１つのアルファベット又は数字を暗号化することを意味し、パケットパスワード暗号化とは、複数のビットの１つのデータブロックを１つのユニットに暗号化することを意味し、それは平文をブロックサイズの整数倍に充填する必要があり、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ、データ暗号化標準）アルゴリズム、３ＤＥＳ（三重ＤＥＳ）アルゴリズム、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ、高度暗号化標準）アルゴリズム、Ｂｌｏｗｆｉｓｈアルゴリズム、ＩＤＥＡ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ａｌｇｏｒｉｔｈｍ、国際データ暗号化アルゴリズム）、ＲＣ５アルゴリズム、ＲＣ６アルゴリズム等を含む。
【００２２】
非対称暗号化は暗号鍵ペアの暗号化システムを使用し、暗号鍵ペアが２つの暗号鍵、すなわち公開鍵及び秘密鍵を含み、公開鍵が広く伝播されてもよいが、秘密鍵がユーザーのみに知られている。開示される公開鍵によって暗号文を暗号化し、受信者は秘密鍵によって復号することができる。このような暗号化アルゴリズムは強度が高く、直接クラッキングすることがより困難であるため、セキュリティがより高く、秘密鍵のセキュリティを確保すればよい。例えば、ＲＳＡ暗号化アルゴリズム等が挙げられる。
【００２３】
上記方法では、対称暗号化方法の暗号鍵及び非対称暗号化方法の秘密鍵が端末装置側のコードに記憶されるため、依然として潜在的な安全上の問題があり、なお、非対称暗号化アルゴリズムは復号しにくいため、効率がより低い。
【００２４】
ここで、例示的な実施例を詳しく説明するが、その例は図面に示される。以下の説明は図面に関わるとき、特に示さない限り、異なる図面における同じ数字は同様又は類似の要素を示す。以下の例示的な実施例に説明される実施形態は本発明に一致するすべての実施形態を代表しない。逆に、それらは単に添付の特許請求の範囲に詳しく説明された、本発明のいくつかの態様に一致する装置及び方法の例である。
【００２５】
図１は例示的な実施例に係るニューラルネットワークモデルの暗号化方法のフローチャートであり、図１に示すように、
ターゲットニューラルネットワークモデルを記述するためのメタモデルファイルにおけるモデル情報の少なくとも一部を暗号化して、暗号化されたモデルファイルを取得するステップＳ１０１と、
前記暗号化されたモデルファイルに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成するステップＳ１０２と、
端末装置の要求に応じて、前記モデルプログラムコードが含まれるアプリケーションプログラムインストールパッケージを前記端末装置に送信するステップＳ１０３と、を含む。
【００２６】
上記ステップＳ１０１及びステップＳ１０２における暗号化過程はサーバによりオフラインで実行され、暗号化後にモデルプログラムコードが含まれるアプリケーションプログラムインストールパッケージを生成して、端末に提供してダウンロードし使用する。端末装置の要求（例えば、ダウンロード要求又は更新要求を含むが、それらに限らない）を受信した場合、サーバが該アプリケーションプログラムインストールパッケージを端末装置に送信し、端末装置が上記アプリケーションプログラムをインストール・実行することにより、該ターゲットニューラルネットワークモデルの機能を実現できる。
【００２７】
ここで、暗号化アルゴリズムによってニューラルネットワークモデルの元のモデルにおける一部又は全部のモデル情報を暗号化し、モデル情報を暗号化後のモデル情報に変換することにより、暗号化されたモデルファイルを取得する。モデル情報はターゲットニューラルネットワークのモデルにおける各ノードのノード情報を含み、ノード情報はノード識別子、ノードパラメータ及びモデルファイル全体のグローバルパラメータ等を含んでもよく、ノードパラメータはノード重み、ノードの演算パラメータ又は属性パラメータ及びノードの入力及び出力等の情報であってもよい。ノードの入力及び出力情報はニューラルネットワークモデルの構造を示してもよい。
【００２８】
ターゲットニューラルネットワークのモデル情報の少なくとも一部を暗号化した後、モデルにおける関連情報を隠すことは、モデル全体の全部情報を完全に暴露させることがなく、それによりモデルのセキュリティを向上させる。
【００２９】
ニューラルネットワークのメタモデルファイルは一般的に特定構造を有するファイルであり、テキストファイル、図形ファイル及び他の形式のファイル等を含む。例えば、メタモデルファイルはバイナリ形式のファイルであってもよいし、必要に応じて定義した形式、例えばｐｒｏｔｏｂｕｆ（Ｐｒｏｔｏｃｏｌ  Ｂｕｆｆｅｒｓ、データ記述言語）に基づいて定義した形式のファイルであってもよく、この場合、メタモデルファイルがｐｒｏｔｏｂｕｆシリアライズ後のファイルであり、いくつかの実施例において、メタモデルファイルは更にｊｓｏｎ（ＪａｖａＳｃｒｉｐｔ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ、ＪａｖａＳｃｒｉｐｔ  オブジェクトノーテーション）等の形式のテキストファイルであってもよい。端末側において上記メタモデルファイルを使用するとき、メタモデルファイルによってニューラルネットワークモデルファイルにおけるモデル情報を直接取得することができ、セキュリティが低く、暗号化後にモデルのセキュリティを向上させるが、依然としてクラッキングされるリストがある。従って、ここで、モデル情報を暗号化した後、更に暗号化されたターゲットニューラルネットワークをプログラムコードに変換し、ニューラルネットワークモデル全体のセキュリティを更に向上させる。
【００３０】
つまり、プログラムコードの形式でターゲットニューラルネットワークのモデルを記述し、通常のファイルを下層コードに変換することにより、クラッキングされる難度を増加させる。且つ、該ターゲットニューラルネットワークの一部のモデル情報が既に暗号化されたため、コードに変換されるとクラッキングされにくくなる。プログラムコードは様々なプログラム言語により実現されてもよく、いくつかの実施例において、プログラムコードはオブジェクト向けのプログラム言語により実現されてもよく、例示的に、オブジェクト向けのプログラム言語はＣ＋＋、ＪＡＶＡ（登録商標）、Ｃ＃等を含んでもよいが、それらに限らない。
【００３１】
サーバ側においてニューラルネットワークのメタモデルファイルにおける一部のモデル情報を暗号化して、暗号化後のモデルファイルを、該ニューラルネットワークを記述するためのモデルプログラムコードに変換して、端末装置側に送信することにより、サーバは端末装置へアプリケーションプログラムインストールパッケージを送信する際にメタモデルファイル（例えば、バイナリ形式のファイル）を伝送する必要がなく、これにより、伝送効率を向上させ、且つ暗号化されたモデルファイルをモデルプログラムコードに変換することにより暗号文をクラッキングする難度を大幅に増加させ、それによりモデル全体のセキュリティを確保する。一方、端末装置側にニューラルネットワークをオフラインで設定するとき、メタモデルファイルを記憶する必要がないため、占有した記憶スペースが増加せず、従って、端末装置側のオフライン設定要求をよりよく満たすことができ、且つ、アプリケーションプログラムの外部からメタモデルファイルを呼び出さずに、モデルプログラムコードを実行すれば、該ニューラルネットワークのモデル情報を取得できるため、ニューラルネットワーク情報を取得する効率を向上させ、それによりアプリケーションプログラム全体の実行効率を向上させる。なお、サーバも暗号鍵を端末装置側に伝送する必要がないため、伝送過程のセキュリティを向上させ、モデル内部情報のセキュリティも確保する。
【００３２】
いくつかの実施例において、サーバ側において上記ターゲットニューラルネットワークモデルファイルにおけるモデル情報の少なくとも一部をオフラインで暗号化して、暗号化されたモデルファイルを取得し、且つ暗号化されたモデルファイルに基づき、上記プログラムコードを含むプログラムファイルを生成し、且つ該プログラムファイルに基づいてインストールパッケージを生成し、
サーバが受信された端末の要求に応じて、上記インストールパッケージを端末に送信し、
端末が上記インストールパッケージに基づいて上記プログラムファイルをインストールし、
次に、端末が上記プログラムファイルを実行することにより、上記ニューラルネットワークモデルにおける各パラメータを取得できる。
【００３３】
いくつかの実施例において、前記モデル情報は、
前記ターゲットニューラルネットワークモデルにおける各ノードのノード情報及び前記ターゲットニューラルネットワークモデルのグローバルパラメータを含み、
前記ノード情報がノード識別子及びノードパラメータを含み、前記ノードパラメータがノードの重みパラメータ、ノードの入力パラメータ、ノードの出力パラメータ及びノードの演算パラメータのうちの少なくとも１つを含む。
【００３４】
ノード識別子はノード識別子を識別するための情報、例えばノード名称又はノード番号等である。モデル情報を暗号化するとき、ノード識別子を暗号化することができ、それによりノードの識別子情報を隠して、暗号化されたノード識別子を含むモデル情報を取得する。上記暗号化されたノード識別子は暗号化アルゴリズムによって暗号化した後のノード識別子である。
【００３５】
本実施例において、１つの前記ノード識別子は前記ニューラルネットワークにおける演算に参加する１つのノードを示すことに用いられてもよく、該演算は畳込み演算、重み付け演算等のニューラルネットワークにおける演算ノードであってもよい。
【００３６】
ここで、ノード識別子のみを暗号化してもよいし、ノード識別子及び／又はノードパラメータを暗号化してもよい。ノードパラメータはノードの機能及びノード間の関係を示すための関連パラメータ、例えば重みパラメータ、ノード演算機能又は属性を記述する演算パラメータ及びノードの入力／出力パラメータ等である。ノードの入力／出力パラメータはノード間の接続関係を示し、更にターゲットニューラルネットワークの構造を示してもよい。従って、ノードパラメータを暗号化した後、ターゲットニューラルネットワークモデル内部情報のセキュリティを確保する。
【００３７】
なお、更にターゲットニューラルネットワークモデルのグローバルパラメータを暗号化してもよく、グローバルパラメータはターゲットニューラルネットワークの入力、出力、機能、属性又は構造等を記述するパラメータであり、グローバルパラメータを暗号化することにより、ターゲットニューラルネットワークモデル内部情報のセキュリティを向上させることもできる。
【００３８】
ニューラルネットワークモデルファイルのモデル情報を暗号化することは一部又は全部のノード情報を暗号化してもよいし、一部又は全部のグローバルパラメータの関連情報を暗号化して、暗号化後のモデルファイルを、該ニューラルネットワークを記述するモデルプログラムコードに変換して、端末装置側に送信してもよい。実際の応用では、必要に応じて異なる情報を暗号化してもよく、暗号化内容への要求が一定ではないため、暗号化効率を向上させ、且つ更に暗号文をクラッキングする難度を増加させる。
【００３９】
いくつかの実施例において、上記ステップＳ１０２では、前記暗号化されたモデルファイルに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成することは、
前記ターゲットニューラルネットワークモデルに関連する汎化モデルクラス及び前記ターゲットニューラルネットワークモデルに含まれるモデル情報に関連する少なくとも１つの汎化データクラスを構築するステップＳ１１と、
前記暗号化されたモデルファイルに基づき、前記汎化モデルクラスに関連するモデルコンストラクタを呼び出すことにより、前記ターゲットニューラルネットワークモデルに関連するモデルオブジェクトを作成するステップＳ１２と、
前記暗号化されたモデルファイルに基づき、前記少なくとも１つの汎化データクラスに関連する少なくとも１つのデータコンストラクタを呼び出すことにより、前記モデル情報に関連するデータオブジェクトを作成するステップＳ１３と、
前記モデルオブジェクト及び前記データオブジェクトに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成するステップＳ１４と、を含む。
【００４０】
上記汎化モデルクラスは様々な異なるターゲットニューラルネットワークモデルを記述することができる。一例では、１つのみの一般的な汎化モデルクラスを定義してすべてのターゲットニューラルネットワークモデルを記述してもよく、他の例では、ターゲットニューラルネットワークモデルの種類のみに対して異なる複数の汎化モデルクラスを定義してもよく、例えば特定の属性、構造又は機能を有する１種類の複数のターゲットニューラルネットワークモデルを１つの汎化モデルクラスに抽象してもよく、他の例では、ある又はいくつかのターゲットニューラルネットワークモデルのみに使用するよう、各汎化モデルクラスは更に少なくとも１つのモデルサブクラスを含んでもよい。従って、ステップＳ１２では、例えば、前記暗号化されたモデルファイルに記述されたターゲットニューラルネットワークモデルのタイプに基づき、対応する汎化モデルクラス及び／又はそのモデルサブクラスを選択してもよい。
【００４１】
上記汎化データクラスは汎化ノードデータクラス、汎化グローバルデータクラス等を含んでもよい。汎化ノードデータクラスは異なるノード情報に対応する複数種類の汎化ノードデータクラスを含んでもよい。具体的に、汎化ノードデータクラスは更に複数種類の異なる汎化ノードデータクラスを含んでもよい。具体的に、各種類の汎化ノードデータクラスはノード情報における各項に１対１に対応してもよいし、ノード情報における複数の項の組み合わせに対応してもよい。
【００４２】
つまり、各種類の汎化ノードデータクラスはノード情報における１つ又は複数のノードパラメータをカプセル化することができる。例えば、汎化ノードデータクラスはノード入力／出力クラス、ノード演算パラメータクラス、ノード属性クラス及びノード重みクラス等を含んでもよいが、それらに限らない。
【００４３】
汎化グローバルデータクラスについては、汎化グローバルデータクラスは１種類のグローバルパラメータクラスを含んでもよいし、複数種類の異なるグローバルパラメータクラスを含んでもよい。それに対応して、各種類の汎化グローバルデータクラスはモデルの１種類又は複数種類のグローバルパラメータをカプセル化することもできる。例えば、汎化グローバルデータクラスはモデル入力／出力クラス、モデル機能クラス、モデル属性クラス及びモデル構造クラス等を含んでもよいが、それらに限らない。
【００４４】
上記汎化モデルクラスに基づき、ターゲットニューラルネットワークモデルに対応するモデルオブジェクトを作成することができ、汎化データクラスに基づき、ターゲットニューラルネットワークモデルにおけるグローバルパラメータ及び各ノード情報に対応する複数種類のデータオブジェクトを作成することができ、それによりターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを取得する。一般的に、メタモデルファイルはニューラルネットワークモデルのグラフ構造を記述することができる。本開示の実施例によれば、モデルプログラムコードを生成するとき、各暗号化されたモデルファイルは１つの汎化モデルクラスのモデルオブジェクトとして示されてもよい。次に、暗号化されたモデルファイルにおけるグラフ構造情報を読み取ることにより、複数の汎化データクラスの複数のデータオブジェクトを対応的に作成することができる。例えば、一例では、ステップＳ１３では、暗号化されたモデルファイルに記載のモデルの構造及びパラメータ情報を取得することができ、次に対応する少なくとも１つの汎化データクラスを選択して、少なくとも１つの汎化データクラスに関連する少なくとも１つのデータコンストラクタを呼び出すことにより、モデルの構造及びパラメータ情報に関連するデータオブジェクトを作成する。
【００４５】
つまり、プログラムコードによって、メタモデルファイルのグラフ構造を複数の異なる階層の汎化クラスに変換して組織することができる。これにより、様々なコンストラクタによってメタモデルファイルにおける情報を様々なオブジェクトに変換する。従って、端末装置側にニューラルネットワークをオフラインで設定するとき、メタモデルファイルを記憶する必要がないため、占有した記憶スペースが増加せず、従って、端末装置側のオフライン設定要求をよりよく満たすことができ、且つ、アプリケーションプログラムの外部からメタモデルファイルを呼び出さずに、モデルプログラムコードを実行して、上記異なる階層の汎化クラスによって様々なオブジェクトを構築すれば、該ニューラルネットワークのモデル情報を取得できるため、ニューラルネットワーク情報を取得する効率を向上させ、それによりアプリケーションプログラム全体の実行効率を向上させる。
【００４６】
いくつかの実施例において、該方法は、更に、
前記プログラムコードに基づき、モデルライブラリファイルを生成するステップＳ２１と、
前記モデルライブラリファイルを実行可能ファイルにリンクして、前記ターゲットニューラルネットワークの機能を実行するためのアプリケーションプログラムを生成するステップＳ２２と、を含む。
【００４７】
ライブラリファイルはプログラムコードにより生成されたアプリケーションプログラム拡張ファイルであり、１つの完全な実行可能ファイルではない。上記したターゲットニューラルネットワークを記述するプログラムコードに基づき、ライブラリファイルを生成することができ、リンク方式で該ライブラリファイルを実行可能ファイルにリンクし、つまり、該ライブラリファイルのリンクを含むアプリケーションプログラムを生成してもよい。実行時、呼び出し方式で該ライブラリファイルを使用してもよい。
【００４８】
ライブラリファイルは静的リンクライブラリであってもよいし、動的リンクライブラリであってもよく、それらはいずれもアプリケーションプログラムの実行可能ファイルから独立した拡張ファイルであり、１つのアプリケーションプログラムに適用されてもよいし、異なるアプリケーションプログラムにより使用されてもよい。静的リンクライブラリについては、実行可能ファイルにリンクした後、アプリケーションプログラムのコードには該ライブラリファイルにおける命令が直接含まれ、実行しやすく、実行速度が速いが、動的リンクライブラリについては、実行可能ファイルにリンクしたのが該ライブラリファイルを呼び出すインターフェースのみであり、実行時、これらのインターフェースを呼び出してライブラリファイルにおける命令を実行する必要があるが、一定の記憶スペースを節約することができる。従って、どのようなライブラリファイルを用いるかは実際の要求に応じて設定してもよく、ここで制限しない。
【００４９】
暗号化後のターゲットニューラルネットワークをプログラムコードに変換して、ライブラリファイルを生成し、次に該ライブラリファイルにリンクしているアプリケーションプログラムを生成することにより、ターゲットニューラルネットワークのモデルのセキュリティを効果的に向上させる。使用時、該アプリケーションプログラムを実行して、ライブラリファイルにおける関数を呼び出せば、ターゲットニューラルネットワークに対応するデータを取得でき、使用しやすく、復号せずに直接使用できる。
【００５０】
いくつかの実施例において、上記ステップＳ１０１では、ターゲットニューラルネットワークモデルファイルのモデル情報の少なくとも一部を暗号化して、暗号化されたモデルファイルを取得することは、
所定のハッシュ関数に基づいて前記モデル情報に対してマッピング演算を行って、暗号化されたモデルファイルを取得することを含む。
【００５１】
ターゲットニューラルネットワークのモデル情報に対する暗号化はハッシュアルゴリズムを用いてもよい。まず、一部のモデル情報又は全部のモデル情報を含むターゲットニューラルネットワークにおける暗号化可能なモデル情報を取得する。次に、所定のハッシュ関数に基づいてこれらのパラメータに対してマッピング演算を行い、つまり、これらの暗号化すべきモデル情報に対してハッシュ演算を行わば、暗号化後のモデル情報を取得でき、更に暗号化されたモデルファイルを取得する。ハッシュアルゴリズムを用いることにより、ニューラルネットワークのモデル情報に暗号鍵を追加せずに、モデル情報自体に対してマッピング演算を行うため、このような方法は暗号鍵で復号する必要がない。且つ、ハッシュアルゴリズムを用いることにより、データの長さを過度に延ばすことがないため、暗号化による記憶スペースの無駄遣いを効果的に低減することができる。
【００５２】
上記ハッシュアルゴリズムはｍｄ５アルゴリズムであってもよく、モデル情報に対して情報の概要を生成することにより、暗号化を実現する。ｍｄ５アルゴリズムを用いることにより、暗号化の信頼性を向上させることができ、各モデル情報がいずれも唯一の対応する情報の概要、すなわち暗号化後のモデル情報を有するようにすることにより、データ衝突を回避する。実際の応用では、実際のニーズに応じてｓｈａ−２等の他のハッシュアルゴリズムを用いてもよく、ここで制限しない。
【００５３】
端末装置は上記アプリケーションプログラムのインストールパッケージを受信した後、
端末装置がサーバからターゲットニューラルネットワークモデルに関連するモデルプログラムコードが含まれるアプリケーションプログラムインストールパッケージを受信し、
前記モデルプログラムコードが前記ターゲットニューラルネットワークモデルの暗号化されたモデルファイルを記述することに用いられ、前記暗号化されたモデルファイルが、前記サーバが前記ターゲットニューラルネットワークモデルのメタモデルファイルにおけるモデル情報の少なくとも一部を暗号化して取得したものである第１ステップ、
前記アプリケーションプログラムを実行し、入力情報に基づき、前記ターゲットニューラルネットワークモデルの出力情報を取得する第２ステップによって、ニューラルネットワークの情報を取得することができる。
【００５４】
端末はサーバにターゲットニューラルネットワークモデルを取得するように要求する場合、サーバから該ターゲットニューラルネットワークモデルに関連する情報を含むアプリケーションプログラムインストールパッケージを取得することができる。ニューラルネットワークモデルはモデルプログラムコードにより記述されたため、端末に該アプリケーションプログラムインストールパッケージをインストールした後、該ターゲットニューラルネットワークモデルを使用する必要がある場合、該アプリケーションプログラムを実行してもよく、端末が上記モデルプログラムコードを実行することにより、ターゲットニューラルネットワークモデルの機能を実現できる。
【００５５】
該アプリケーションプログラムに指定された入力情報を提供し、つまり、該ターゲットニューラルネットワークモデルに指定された入力情報を提供した後、ターゲットニューラルネットワークモデルの処理、つまり、該入力情報に基づいて上記プログラムコードを実行することにより、更に対応する出力情報を取得することができる。従って、端末が上記ターゲットニューラルネットワークモデルを使用するとき、その中の暗号化されたモデルファイルを復号せずに、上記アプリケーションプログラムを直接実行すれば、対応する結果を取得できる。暗号鍵等で復号した後に使用するニューラルネットワークモデルファイルに比べて、本解決手段は使用効率を大幅に向上させる。なお、端末装置側にニューラルネットワークをオフラインで設定するとき、メタモデルファイルを記憶する必要がないため、占有した記憶スペースが増加せず、従って、端末装置側のオフライン設定要求をよりよく満たすことができ、且つ、アプリケーションプログラムの外部からメタモデルファイルを呼び出さずに、モデルプログラムコードを実行すれば、該ニューラルネットワークのモデル情報を取得できるため、ニューラルネットワーク情報を取得する効率を向上させ、それによりアプリケーションプログラム全体の実行効率を向上させる。なお、サーバも暗号鍵を端末装置側に伝送する必要がないため、伝送過程のセキュリティを向上させ、モデル内部情報のセキュリティも確保する。
【００５６】
一例では、ｍｄ５アルゴリズムによってモデルにおけるノード名称を暗号化して、暗号化後のモデルファイルをＣ＋＋コードに変換してプログラムにコンパイルしてもよい。
【００５７】
例示的に、図２に示すように、該方法は以下を含む。
【００５８】
ステップＳ３１、ニューラルネットワークモデルファイル１０におけるすべてのノード情報をｍｄ５で暗号化して、暗号化されたモデルファイル１１を取得する。
【００５９】
ニューラルネットワークモデルはノードからなるグラフ構造であるため、各ノードがいずれも名称、カテゴリ、入力及び出力等の情報を有する。ｍｄ５でこれらのノード情報を暗号化した後、モデルの情報を隠すことができ、それにより他の人がログ等の情報によってモデル構造を推定することを防止する。あるいは、他の例では、このｍｄ５暗号化アルゴリズムは他の類似の方法、例えばｓｈａ−２アルゴリズム、ｓｈａ−２５６アルゴリズム等で代替してもよい。ただし、ｓｈａ−２５６アルゴリズムはより高いセキュリティを実現できるが、モデルファイルのサイズを増加させる恐れがある。当業者が異なる応用シーン及び端末装置のニーズに応じて、異なる暗号化アルゴリズムを選択してもよい。また、ここで、図２は本開示の実施例のプログラムコードの一例を示すものであり、本開示はこれに限らず、他のオブジェクト向けのプログラム言語を用いてもよく、前記プログラム言語は例えば、ＪＡＶＡ、Ｃ＃等を含んでもよいが、それらに限らない。
【００６０】
ステップＳ３２、暗号化されたモデルファイル１１をＣ＋＋コードに変換して、モデルＣ＋＋コード１２を取得する。
【００６１】
暗号化後のモデルファイルは同様に１つの特定形式のグラフ構造である。暗号化後のモデルファイルをモデルプログラムコードに変換するとき、モデルファイルのグラフ構造をＣ＋＋クラスにおけるいくつかのクラスで構成してもよい。
【００６２】
例えば、Ｎｅｔクラスでは、各モデルファイルがいずれも１つのＮｅｔクラスのオブジェクトである。ＮｅｔクラスにはＴｅｎｓｏｒ、Ｏｐｅｒａｔｏｒ、Ａｒｇｕｍｅｎｔ及びＩｎｐｕｔ／Ｏｕｔｐｕｔ  Ｉｎｆｏｒｍａｔｉｏｎの４つのカテゴリが含まれる。Ｔｅｎｓｏｒクラスはモデルにおける重み情報を定義し、Ｏｐｅｒａｔｏｒクラスはモデルにおけるノード情報を定義し、Ａｒｇｕｍｅｎｔクラスはモデルにおけるパラメータ情報を定義し、Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｉｎｆｏｒｍａｔｉｏｎクラスはモデルの入力及び出力情報を定義した。
【００６３】
モデルファイルにおける情報を、Ｃ＋＋におけるオブジェクトを構築する関数に変換することはＣｒｅａｔｅＮｅｔ、ＣｒｅａｔｅＴｅｎｓｏｒ、ＣｒｅａｔｅＯｐｅｒａｔｏｒ、ＣｒｅａｔｅＮｅｔＡｒｇ、ＣｒｅａｔｅＩｎｐｕｔＩｎｆｏ及びＣｒｅａｔｅＯｕｔｐｕｔＩｎｆｏを含む。このように、モデルファイルをＣ＋＋コードに変換することができる。
【００６４】
ステップＳ３３、モデルＣ＋＋コード１２に対してコンパイル変換を行って、ライブラリファイル１３、すなわちモデル静的ライブラリ（ｌｉｂｍｏｄｅｌ．ａ）を生成する。
【００６５】
モデルのＣ＋＋コードを静的ライブラリにコンパイルした後、アプリケーションプログラムにリンクすることができる。アプリケーションプログラムを実行するとき、ＣｒｅａｔｅＮｅｔ関数を呼び出せば、モデルのすべてのデータを取得できる。
【００６６】
上記方法を用いることにより、セキュリティ及び効率を効果的に向上させることができる。ニューラルネットワークモデルファイルのノードを暗号化してＣ＋＋コードに変換し、次にアプリケーションプログラムにリンクすることにより、モデルをクラッキングする難度を大幅に増加させることができ、更にモデルデータ及び情報を効果的に保護する。且つ、該方法で暗号化したモデルは実行時に復号する必要がないため、使用効率を効果的に向上させる。
【００６７】
上記方法を用いることにより、端末装置側にニューラルネットワークモデルを設定する際のセキュリティ、使用効率及び記憶へのニーズをよりよく満たすことができる。
【００６８】
端末装置側でのニューラルネットワークモデルの暗号化は主にセキュリティ、復号効率及び記憶スペースの３つの問題を考慮すべきである。本開示の実施例に係る端末装置側でのオフラインニューラルネットワークモデルの暗号化方法はこの３つの問題に対していずれも良好な効果を実現したが、具体的には以下のとおりである。
【００６９】
１）セキュリティ
まず、モデルにおけるノード名称をｍｄ５方式で暗号化し、次に、暗号化後のモデルファイルをＣ＋＋コードに変換してプログラムにコンパイルする。オフライン段階のｍｄ５暗号化方式を用いることにより、モデル内部情報のセキュリティを確保し、モデルをコードに変換することによりクラッキング難度を大幅に増加させ、それによりモデル全体のセキュリティを確保する。
【００７０】
２）復号効率
本開示の実施例において、実行時に復号せずに、モデル関数を呼び出せば、モデル情報を取得できるため、復号効率が高い。
【００７１】
３）記憶スペース
本開示の実施例において、モデルをＣ＋＋コードに変換することにより、基本的に実際の記憶スペースが増加せず、端末装置側にニューラルネットワークモデルを設定する要求をよりよく満たすことができる。
【００７２】
ただし、図２にはｍｄ５アルゴリズムで暗号化して、Ｃ＋＋プログラムコードでニューラルネットワークモデルを記述することを示すが、本開示はこれに限らず、当業者が想到し得る他の暗号化アルゴリズムでニューラルネットワークのモデル情報を暗号化して、他のオブジェクト向けのプログラム言語でニューラルネットワークを記述してもよい。
【００７３】
図３は例示的な実施例に係るニューラルネットワークモデルの暗号化装置のブロック構成図である。図３に示すように、該装置３００は暗号化モジュール３０１、第１生成モジュール３０２及び送信モジュール３０３を備える。
【００７４】
暗号化モジュール３０１はターゲットニューラルネットワークモデルを記述するためのメタモデルファイルにおけるモデル情報の少なくとも一部を暗号化して、暗号化されたモデルファイルを取得するように構成され、
第１生成モジュール３０２は前記暗号化されたモデルファイルに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成するように構成され、
送信モジュール３０３は端末装置の要求に応じて、前記モデルプログラムコードが含まれるアプリケーションプログラムインストールパッケージを前記端末装置に送信するように構成される。
【００７５】
いくつかの実施例において、前記モデル情報は、
前記ターゲットニューラルネットワークモデルにおける各ノードのノード情報及び前記ターゲットニューラルネットワークモデルのグローバルパラメータを含み、
前記ノード情報がノード識別子及びノードパラメータを含み、前記ノードパラメータがノードの重みパラメータ、ノードの入力パラメータ、ノードの出力パラメータ及びノードの演算パラメータのうちの少なくとも１つを含む。
【００７６】
いくつかの実施例において、前記第１生成モジュールは、
前記ターゲットニューラルネットワークモデルに関連する汎化モデルクラス及び前記ターゲットニューラルネットワークモデルに含まれるモデル情報に関連する少なくとも１つの汎化データクラスを構築するように構成される構築サブモジュールと、
前記暗号化されたモデルファイルに基づき、前記汎化モデルクラスに関連するモデルコンストラクタを呼び出すことにより、前記ターゲットニューラルネットワークモデルに関連するモデルオブジェクトを作成するように構成される第１作成サブモジュールと、
前記暗号化されたモデルファイルに基づき、前記少なくとも１つの汎化データクラスに関連する少なくとも１つのデータコンストラクタを呼び出すことにより、前記モデル情報に関連するデータオブジェクトを作成するように構成される第２作成サブモジュールと、
前記モデルオブジェクト及び前記データオブジェクトに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成するように構成される取得サブモジュールと、を含む。
【００７７】
いくつかの実施例において、前記装置は、更に、
前記モデルプログラムコードに基づき、モデルライブラリファイルを生成するように構成される第２生成モジュールと、
前記モデルライブラリファイルを実行可能ファイルにリンクして、前記ターゲットニューラルネットワークの機能を実行するためのアプリケーションプログラムを生成するように構成される第３生成モジュールと、を備える。
【００７８】
いくつかの実施例において、前記暗号化モジュールは、
所定のハッシュ関数に基づいて前記モデル情報の少なくとも一部に対してマッピング演算を行って、暗号化されたモデルファイルを取得するように構成されるマッピングサブモジュールを含む。
【００７９】
上記実施例における装置については、各モジュールが操作を実行する具体的な方式は既に該方法の実施例において詳しく説明されたため、ここで詳細な説明は省略する。
【００８０】
図４は例示的な実施例に係るニューラルネットワークモデルの出力情報を取得するための装置４００のブロック図である。例えば、装置４００はサーバとして提供されてもよい。図４に示すように、装置４００は処理コンポーネント４２２を備え、前記処理コンポーネント４２２が更に１つ又は複数のプロセッサ及びメモリ４３２を代表とするメモリリソースを備え、前記メモリリソースが処理コンポーネント４２２の実行できる命令、例えばアプリケーションプログラムを記憶することに用いられる。メモリ４３２に記憶されるアプリケーションプログラムが１組の命令に対応する１つ又は１つ以上の各モジュールを備えてもよい。なお、処理コンポーネント４２２が命令を実行することにより、上記したニューラルネットワークモデルの出力情報を取得する方法を実行するように構成される。
【００８１】
装置４００は、更に、装置４００の電源管理を実行するように構成される１つの電源コンポーネント４２６と、装置４００をネットワークに接続するように構成される１つの有線又は無線ネットワークインターフェース４５０と、１つのＩ／Ｏ（入力／出力）インターフェース４５８と、を備えてもよい。装置４００はメモリ４３２に記憶されるオペレーティングシステム、例えばＷｉｎｄｏｗｓ  Ｓｅｒｖｅｒ（登録商標）、Ｍａｃ  ＯＳ  Ｘ（登録商標）、Ｕｎｉｘ（登録商標）、  Ｌｉｎｕｘ（登録商標）、ＦｒｅｅＢＳＤ（登録商標）又は類似のシステムを操作することができる。
【００８２】
図５は例示的な実施例に係る端末装置５００のブロック図である。該端末装置５００は上記実施例に係るニューラルネットワークモデルを暗号化するいずれか１つの方法におけるステップを実行することに用いられる。例えば、端末装置５００は携帯電話、コンピュータ、デジタル放送端末、メッセージ送受信装置、ゲームコンソール、タブレット装置、医療機器、フィットネス機器、パーソナルデジタルアシスタント等であってもよい。
【００８３】
図５に示すように、端末装置５００は処理コンポーネント５０１、メモリ５０２、電源コンポーネント５０３、マルチメディアコンポーネント５０４、オーディオコンポーネント５０５、入力／出力（Ｉ／Ｏ）インターフェース５０６、センサコンポーネント５０７及び通信コンポーネント５０８のうちの１つ又は複数のコンポーネントを備えてもよい。
【００８４】
処理コンポーネント５０１は一般的に端末装置５００の全体操作、例えば表示、電話コール、データ通信、カメラ操作及び記録操作に関連する操作を制御する。処理コンポーネント５０１は命令を実行することにより、上記方法の全部又は一部のステップを完了する１つ又は複数のプロセッサ５１０を備えてもよい。なお、処理コンポーネント５０１は、更に、処理コンポーネント５０１と他のコンポーネントとの相互作用に役立つ１つ又は複数のモジュールを備えてもよい。例えば、処理コンポーネント５０１はマルチメディアコンポーネント５０４と処理コンポーネント５０１との相互作用に役立つマルチメディアモジュールを備えてもよい。
【００８５】
メモリ５１０は様々なタイプのデータを記憶することにより端末装置５００における操作をサポートするように構成される。これらのデータの例は端末装置５００において操作するためのいかなるアプリケーションプログラム又は方法の命令、連絡先データ、電話帳データ、メッセージ、画像、ビデオ等を含む。メモリ５０２はいかなるタイプの揮発性記憶装置又は不揮発性記憶装置、例えばスタティックランダムアクセスメモリ（ＳＲＡＭ）、電気的消去可能プログラム可能読み出し専用メモリ（ＥＥＰＲＯＭ）、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭ）、プログラム可能読み出し専用メモリ（ＰＲＯＭ）、読み出し専用メモリ（ＲＯＭ）、磁気メモリ、フラッシュメモリ、磁気ディスク又は光ディスク、又はそれらの組み合わせで実現されてもよい。
【００８６】
電源コンポーネント５０３は端末装置５００の様々なコンポーネントに電力を提供する。電源コンポーネント５０３は電源管理システム、１つ又は複数の電源及び端末装置５００への電力の生成、管理及び分配に関連する他のコンポーネントを備えてもよい。
【００８７】
マルチメディアコンポーネント５０４は前記端末装置５００とユーザーとの間に１つの出力インターフェースを提供するスクリーンを備える。いくつかの実施例において、スクリーンは液晶ディスプレイ（ＬＣＤ）及びタッチパネル（ＴＰ）を含んでもよい。スクリーンはタッチパネルを含む場合、ユーザーからの入力信号を受信するよう、スクリーンはタッチスクリーンとして実現されてもよい。タッチ、スワイプ及びタッチパネルにおけるジェスチャーを検知するよう、タッチパネルは１つ又は複数のタッチセンサを備える。前記タッチセンサはタッチ又はスワイプ動作の境界を検知するだけでなく、更に前記タッチ又はスワイプ操作に関連する持続時間及び圧力を検出することができる。いくつかの実施例において、マルチメディアコンポーネント５０４は１つの前置カメラ及び／又は後置カメラを備える。端末装置５００が操作モード、例えば撮影モード又はビデオモードにある場合、前置カメラ及び／又は後置カメラは外部のマルチメディアデータを受信することができる。各前置カメラ及び／又は後置カメラは１つの一定の光学レンズシステムであり、又は集束及び光学ズーム能力を有してもよい。
【００８８】
オーディオコンポーネント５０５はオーディオ信号を出力及び／又は入力するように構成される。例えば、オーディオコンポーネント５０５は１つのマイクロフォン（ＭＩＣ）を備え、端末装置５００が操作モード、例えばコールモード、記録モード及び音声識別モードにある場合、マイクロフォンは外部オーディオ信号を受信するように構成される。受信されたオーディオ信号は更にメモリ５１０に記憶され又は通信コンポーネント５０８により送信されてもよい。いくつかの実施例において、オーディオコンポーネント５０５は更にオーディオ信号を出力するための１つの拡声器を備える。
【００８９】
Ｉ／Ｏインターフェース５０６は処理コンポーネント５０１と周辺インターフェースモジュールとの間にインターフェースを提供し、上記周辺インターフェースモジュールはキーボード、クリックホイール、ボタン等であってもよい。これらのボタンはホームページボタン、音量ボタン、スタートボタン及びロックボタンを含んでもよいが、それらに限らない。
【００９０】
センサコンポーネント５０７は端末装置５００に各態様の状態評価を提供するための１つ又は複数のセンサを備える。例えば、センサコンポーネント５０７は端末装置５００のオン／オフ状態、コンポーネントの相対位置決めを検出することができ、例えば前記コンポーネントは端末装置５００のディスプレイ及びキーパッドであり、センサコンポーネント５０７は更に端末装置５００又は端末装置５００の１つのコンポーネントの位置変化、ユーザーが端末装置５００に接触しているかどうか、端末装置５００の方位又は加速／減速及び端末装置５００の温度変化を検出することができる。センサコンポーネント５０７は物理的に接触しない際に近傍物体があるかどうかを検出するように構成される接近センサを備えてもよい。センサコンポーネント５０７は更にイメージングアプリケーションに使用されるための光センサ、例えばＣＭＯＳ又はＣＣＤ画像センサを備えてもよい。いくつかの実施例において、該センサコンポーネント５０７は更に加速度センサ、ジャイロスコープセンサ、磁気センサ、圧力センサ又は温度センサを含んでもよい。
【００９１】
通信コンポーネント５０８は端末装置５００と他の装置との有線又は無線方式の通信に役立つように構成される。端末装置５００は通信規格に基づく無線ネットワーク、例えばＷｉＦｉ（登録商標）、２Ｇ又は３Ｇ、又はそれらの組み合わせにアクセスすることができる。１つの例示的な実施例において、通信コンポーネント５０８は放送チャネルを介して外部放送管理システムからのブロードキャスト信号又はブロードキャスト関連情報を受信する。１つの例示的な実施例において、近距離通信を促進するよう、前記通信コンポーネント５０８は更に近距離無線通信（ＮＦＣ）モジュールを備える。例えば、ＮＦＣモジュールは無線周波数識別（ＲＦＩＤ）技術、赤外線データ協会（ＩｒＤＡ）技術、超広帯域（ＵＷＢ）技術、ブルートゥース（登録商標）（ＢＴ）技術又は他の技術により実現されてもよい。
【００９２】
例示的な実施例において、上記方法を実行するために、端末装置５００は１つ又は複数の特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）、デジタル信号処理デバイス（ＤＳＰＤ）、プログラマブルロジックデバイス（ＰＬＤ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コントローラ、マイクロコントローラ、マイクロプロセッサ又は他の電子素子により実現されてもよい。
【００９３】
例示的な実施例において、更に命令を含む非一時的コンピュータ可読記憶媒体、例えば命令を含むメモリ５０２を提供し、上記方法を完了するために、上記命令が端末装置５００のプロセッサ５１０により実行されてもよい。例えば、前記非一時的コンピュータ可読記憶媒体はＲＯＭ、ランダムアクセスメモリ（ＲＡＭ）、ＣＤ−ＲＯＭ、磁気テープ、フロッピー（登録商標）ディスク及び光データ記憶装置等であってもよい。
【００９４】
非一時的コンピュータ可読記憶媒体であって、前記記憶媒体における命令がモバイル端末のプロセッサにより実行されるとき、モバイル端末はニューラルネットワークモデルの暗号化方法を実行することができ、前記方法は、
ターゲットニューラルネットワークの少なくとも一部のモデルパラメータを暗号化して、暗号化後のモデルパラメータを取得することと、
前記暗号化後のモデルパラメータに基づき、前記ターゲットニューラルネットワークを記述するプログラムコードを生成することと、を含む。
【００９５】
非一時的コンピュータ可読記憶媒体であって、前記記憶媒体における命令がモバイル端末のプロセッサにより実行されるとき、モバイル端末はニューラルネットワークモデルの復号方法を実行することができ、前記方法は、
ターゲットニューラルネットワークの機能を実行するためのアプリケーションプログラムを実行し、前記アプリケーションプログラムには前記ターゲットニューラルネットワークの少なくとも一部の暗号化後のモデルパラメータを記述するプログラムコードが含まれることと、
実行中の前記アプリケーションプログラムに基づき、前記ターゲットニューラルネットワークのデータを取得することと、を含む。
【００９６】
当業者が明細書を考慮し及びここで開示される発明を実践した後、本発明の他の実施形態に容易に想到し得る。本願は本発明のいかなる変形、用途又は適応変化を含むように意図され、これらの変形、用途又は適応変化は本発明の一般原理に従い且つ本開示に開示されていない本技術分野における周知の知識又は慣用の技術的手段を含む。明細書及び実施例は例示的なものであると見なされ、本発明の真の範囲及び趣旨は以下の特許請求の範囲に準じる。
【００９７】
本発明は以上に説明されて図面に示される正確な構造に限らず、その範囲を逸脱せずに、種々の修正や変更を行うことができると理解すべきである。本発明の範囲は添付の特許請求の範囲により制限される。
【図１】
2022500712.tif 000003
【図２】
2022500712.tif 000004
【図３】
2022500712.tif 000005
【図４】
2022500712.tif 000006
【図５】
2022500712.tif 000007
【国際調査報告】
2022500712.tif 000008
2022500712.tif 000009
2022500712.tif 000010
2022500712.tif 000011