(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024169291
(43)【公開日】2024-12-05
(54)【発明の名称】ニューラルネットワークモデルのコンパイル方法、最適化モデルのトレーニング方法及び装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20241128BHJP
G06F 8/41 20180101ALI20241128BHJP
G06N 3/04 20230101ALI20241128BHJP
【FI】
G06N20/00
G06F8/41
G06N3/04
【審査請求】有
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2024002562
(22)【出願日】2024-01-11
(31)【優先権主張番号】202310603567.7
(32)【優先日】2023-05-25
(33)【優先権主張国・地域又は機関】CN
(71)【出願人】
【識別番号】522378775
【氏名又は名称】北京地平▲線▼信息技▲術▼有限公司
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】ビールゥオ シェン
(72)【発明者】
【氏名】ブゥオウェン デン
(72)【発明者】
【氏名】ジェンジュン リー
(72)【発明者】
【氏名】チェン ジャン
【テーマコード(参考)】
5B081
【Fターム(参考)】
5B081CC16
5B081CC21
(57)【要約】
【課題】本開示は、ニューラルネットワークモデルのコンパイル方法、最適化モデルのトレーニング方法及び装置に関する。
【解決手段】この方法は、コンパイル対象のニューラルネットワークモデルを取得するステップと、コンパイル対象のニューラルネットワークモデルに基づいて中間コマンドシーケンスを決定するステップと、予めトレーニングして取得されたコマンドシーケンス最適化モデルを用いて中間コマンドシーケンスを処理して目標最適化パラメータを取得するステップと、目標最適化パラメータに基づいて最適化コマンドシーケンスを決定するステップと、最適化コマンドシーケンスを実行可能なコマンドシーケンスに転換してニューラルネットワークプロセッサが実行可能な目標コマンドシーケンスを取得するステップと、を含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
コンパイル対象のニューラルネットワークモデルを取得するステップと、
前記コンパイル対象のニューラルネットワークモデルに基づいて、前記コンパイル対象のニューラルネットワークモデルに対応する中間コマンドシーケンスを決定するステップと、
予めトレーニングして取得されたコマンドシーケンス最適化モデルを用いて前記中間コマンドシーケンスを処理して、前記中間コマンドシーケンスに対応する目標最適化パラメータを取得するステップと、
前記目標最適化パラメータに基づいて、前記中間コマンドシーケンスに対応する最適化コマンドシーケンスを決定するステップと、
前記最適化コマンドシーケンスを実行可能なコマンドシーケンスに転換して、前記コンパイル対象のニューラルネットワークモデルに対応するニューラルネットワークプロセッサが実行可能な目標コマンドシーケンスを取得するステップと、を含む、
ことを特徴とするニューラルネットワークモデルのコンパイル方法。
【請求項2】
予めトレーニングして取得されたコマンドシーケンス最適化モデルを用いて前記中間コマンドシーケンスを処理して、前記中間コマンドシーケンスに対応する目標最適化パラメータを取得するステップは、
前記コマンドシーケンス最適化モデルにおける第1の特徴抽出ネットワークを用いて前記中間コマンドシーケンスに対して特徴抽出を行って、コマンドシーケンス特徴を取得するステップと、
前記コマンドシーケンス最適化モデルにおける予測ヘッドネットワークを用いて前記コマンドシーケンス特徴を処理して、前記中間コマンドシーケンスに対応する最適化パラメータ予測確率を含む処理結果を取得するステップと、
前記処理結果及びプリセットマッピングルールに基づいて、前記目標最適化パラメータを決定するステップと、を含む、
ことを特徴とする請求項1に記載のニューラルネットワークモデルのコンパイル方法。
【請求項3】
前記コンパイル方法は、現在のメモリ情報シーケンスを取得するステップをさらに含み、
予めトレーニングして取得されたコマンドシーケンス最適化モデルを用いて前記中間コマンドシーケンスを処理して、前記中間コマンドシーケンスに対応する目標最適化パラメータを取得するステップは、
前記コマンドシーケンス最適化モデルにおける第2の特徴抽出ネットワークを用いて前記現在のメモリ情報シーケンスに対して特徴抽出を行って、メモリ情報特徴を取得するステップと、
前記コマンドシーケンス特徴と前記メモリ情報特徴とを融和させて、融合特徴を取得するステップと、をさらに含み、
前記コマンドシーケンス最適化モデルにおける予測ヘッドネットワークを用いて前記コマンドシーケンス特徴を処理して、処理結果を取得するステップは、
前記予測ヘッドネットワークを用いて前記融合特徴を処理し、前記処理結果を取得するステップを含む、
ことを特徴とする請求項2に記載のニューラルネットワークモデルのコンパイル方法。
【請求項4】
前記コマンドシーケンス特徴と前記メモリ情報特徴とを融和させて、融合特徴を取得するステップは、
前記コマンドシーケンス特徴を第1の集合ルールに従って集合させて、第1の集合特徴を取得するステップと、
前記メモリ情報特徴を第2の集合ルールに従って集合させて、第2の集合特徴を取得するステップと、
前記第2の集合特徴と前記第1の集合特徴とを、少なくとも1つの方向における次元で同じであるようにするステップと、
前記第1の集合特徴と前記第2の集合特徴とを連結させて、前記融合特徴を取得するステップと、を含む、
ことを特徴とする請求項3に記載のニューラルネットワークモデルのコンパイル方法。
【請求項5】
前記目標最適化パラメータは、メモリ管理パラメータ、オペレータ実行モードパラメータ及びテンソル分解パラメータを含み、
前記目標最適化パラメータに基づいて、前記中間コマンドシーケンスに対応する最適化コマンドシーケンスを決定するステップは、
前記メモリ管理パラメータ、前記オペレータ実行モードパラメータ及び前記テンソル分解パラメータに基づいて、前記中間コマンドシーケンスを最適化して、前記最適化コマンドシーケンスを取得するステップを含む、
ことを特徴とする請求項1に記載のニューラルネットワークモデルのコンパイル方法。
【請求項6】
少なくとも1つのニューラルネットワークモデルのそれぞれに対応するトレーニング中間コマンドシーケンス及び各前記トレーニング中間コマンドシーケンスのそれぞれに対応する最適な最適化パラメータタグを取得するステップと、
各前記トレーニング中間コマンドシーケンス及び各前記トレーニング中間コマンドシーケンスのそれぞれに対応する前記最適な最適化パラメータタグに基づいて、予め構築されたコマンドシーケンス最適化ネットワークをトレーニングして、トレーニングされたコマンドシーケンス最適化モデルを取得するステップと、を含む、
ことを特徴とするコマンドシーケンス最適化モデルのトレーニング方法。
【請求項7】
各前記トレーニング中間コマンドシーケンス及び各前記トレーニング中間コマンドシーケンスのそれぞれに対応する前記最適な最適化パラメータタグに基づいて、予め構築されたコマンドシーケンス最適化ネットワークをトレーニングして、トレーニングされたコマンドシーケンス最適化モデルを取得するステップは、
前記コマンドシーケンス最適化ネットワークを用いて各前記トレーニング中間コマンドシーケンスを処理して、各前記トレーニング中間コマンドシーケンスのそれぞれに対応する予測処理結果を取得するステップと、
各前記トレーニング中間コマンドシーケンスのそれぞれに対応する前記予測処理結果、各前記トレーニング中間コマンドシーケンスのそれぞれに対応する前記最適な最適化パラメータタグ及びプリセット損失関数に基づいて、ネットワーク損失を決定するステップと、
前記ネットワーク損失に基づいて前記コマンドシーケンス最適化ネットワークのネットワークパラメータを更新して、更新されたネットワークパラメータを取得するステップと、
前記更新されたネットワークパラメータに基づいて、更新されたコマンドシーケンス最適化ネットワークを決定するステップと、
前記コマンドシーケンス最適化ネットワークを用いて各前記トレーニング中間コマンドシーケンスを処理して、各前記トレーニング中間コマンドシーケンスのそれぞれに対応する予測処理結果を取得するステップを繰り返して実行するように、前記更新されたコマンドシーケンス最適化ネットワークを前記コマンドシーケンス最適化ネットワークとするステップと、
トレーニング条件を満たすことに応じてトレーニングを終了し、前記コマンドシーケンス最適化モデルを取得するステップと、を含む、
ことを特徴とする請求項6に記載のコマンドシーケンス最適化モデルのトレーニング方法。
【請求項8】
各前記トレーニング中間コマンドシーケンスのそれぞれに対応する前記予測処理結果、各前記トレーニング中間コマンドシーケンスのそれぞれに対応する前記最適な最適化パラメータタグ及びプリセット損失関数に基づいて、ネットワーク損失を決定するステップは、
各前記トレーニング中間コマンドシーケンスのそれぞれに対応する前記予測処理結果、各前記トレーニング中間コマンドシーケンスのそれぞれに対応する前記最適な最適化パラメータタグ及び絶対誤差損失関数に基づいて、絶対誤差損失を決定するステップと、
現在のネットワークパラメータ及び正規化損失関数に基づいて、正規化損失を決定するステップと、
前記絶対誤差損失及び前記正規化損失に基づいて、前記ネットワーク損失を決定するステップと、を含む、
ことを特徴とする請求項7に記載のコマンドシーケンス最適化モデルのトレーニング方法。
【請求項9】
少なくとも1つのニューラルネットワークモデルのそれぞれに対応するトレーニング中間コマンドシーケンス及び各前記トレーニング中間コマンドシーケンスのそれぞれに対応する最適な最適化パラメータタグを取得するステップは、
少なくとも1つのニューラルネットワークモデルに基づいて、各前記ニューラルネットワークモデルのそれぞれに対応するトレーニング中間コマンドシーケンスを決定するステップと、
いずれかの前記トレーニング中間コマンドシーケンスに対して、プリセット発見的探索アルゴリズムに基づいて、当該トレーニング中間コマンドシーケンスに対応する少なくとも1つのトレーニング最適化コマンドシーケンス及び各前記トレーニング最適化コマンドシーケンスのそれぞれに対応するトレーニング最適化パラメータを決定するステップと、
プリセット性能決定ルールに基づいて、各前記トレーニング最適化コマンドシーケンスのそれぞれに対応する性能結果を決定するステップと、
各前記トレーニング最適化コマンドシーケンスのそれぞれに対応する性能結果に基づいて、各前記トレーニング最適化コマンドシーケンスにおける性能の最適な目標トレーニング最適化コマンドシーケンスを決定するステップと、
前記目標トレーニング最適化コマンドシーケンスに対応するトレーニング最適化パラメータを、当該トレーニング中間コマンドシーケンスに対応する最適な最適化パラメータタグとするステップと、を含む、
ことを特徴とする請求項6に記載のコマンドシーケンス最適化モデルのトレーニング方法。
【請求項10】
前記トレーニング方法は、各前記トレーニング中間コマンドシーケンスのそれぞれに対応するトレーニングメモリ情報を取得するステップをさらに含み、
各前記トレーニング中間コマンドシーケンス及び各前記トレーニング中間コマンドシーケンスのそれぞれに対応する前記最適な最適化パラメータタグに基づいて、予め構築されたコマンドシーケンス最適化ネットワークをトレーニングして、トレーニングされたコマンドシーケンス最適化モデルを取得するステップは、
各前記トレーニング中間コマンドシーケンス、各前記トレーニング中間コマンドシーケンスのそれぞれに対応するトレーニングメモリ情報及び前記最適な最適化パラメータタグに基づいて、予め構築されたコマンドシーケンス最適化ネットワークをトレーニングして、トレーニングされたコマンドシーケンス最適化モデルを取得するステップを含む、
ことを特徴とする請求項6に記載のコマンドシーケンス最適化モデルのトレーニング方法。
【請求項11】
コンパイル対象のニューラルネットワークモデルを取得するための第1の取得モジュールと、
前記コンパイル対象のニューラルネットワークモデルに基づいて、前記コンパイル対象のニューラルネットワークモデルに対応する中間コマンドシーケンスを決定するための第1の処理モジュールと、
予めトレーニングして取得されたコマンドシーケンス最適化モデルを用いて前記中間コマンドシーケンスを処理して、前記中間コマンドシーケンスに対応する目標最適化パラメータを取得するための第2の処理モジュールと、
前記目標最適化パラメータに基づいて、前記中間コマンドシーケンスに対応する最適化コマンドシーケンスを決定するための第3の処理モジュールと、
前記最適化コマンドシーケンスを実行可能なコマンドシーケンスに転換して、前記コンパイル対象のニューラルネットワークモデルに対応するニューラルネットワークプロセッサが実行可能な目標コマンドシーケンスを取得するための第4の処理モジュールと、を備える、
ことを特徴とするニューラルネットワークモデルのコンパイル装置。
【請求項12】
少なくとも1つのニューラルネットワークモデルのそれぞれに対応するトレーニング中間コマンドシーケンス及び各前記トレーニング中間コマンドシーケンスのそれぞれに対応する最適な最適化パラメータタグを取得するための第2の取得モジュールと、
各前記トレーニング中間コマンドシーケンス及び各前記トレーニング中間コマンドシーケンスのそれぞれに対応する前記最適な最適化パラメータタグに基づいて、予め構築されたコマンドシーケンス最適化ネットワークをトレーニングして、トレーニングされたコマンドシーケンス最適化モデルを取得するための第5の処理モジュールと、を備える、
ことを特徴とするコマンドシーケンス最適化モデルのトレーニング装置。
【請求項13】
コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体であって、
前記コンピュータプログラムは、請求項1~5のいずれか一項に記載のニューラルネットワークモデルのコンパイル方法を実行し、又は、請求項6~10のいずれか一項に記載のコマンドシーケンス最適化モデルのトレーニング方法を実行する、
ことを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項14】
プロセッサと、
前記プロセッサが実行可能なコマンドを記憶するためのメモリと、を備え、
前記プロセッサは、前記メモリから前記実行可能なコマンドを読み取って実行することにより、請求項1~5のいずれか一項に記載のニューラルネットワークモデルのコンパイル方法を実現し、又は、請求項6~10のいずれか一項に記載のコマンドシーケンス最適化モデルのトレーニング方法を実現する、
ことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、人工知能技術に関し、特にニューラルネットワークモデルのコンパイル方法、最適化モデルのトレーニング方法及び装置に関する。
【背景技術】
【0002】
人工知能の急速な発展に伴い、深度ニューラルネットワークモデル(「モデル」とも呼ばれる)は、コンピュータビジョン、自然言語処理、音声認識、自動運転等の多くの分野に広く応用される。モデルのネットワーク構造が決定された後は、モデルの実際の実行効率は主にハードウェア及びコンパイラに依存する。モデルの実行効率及び処理能力を向上させるために、コンパイル最適化技術が提出されてモデルのコンパイルプロセスに応用され、コンパイル最適化技術は、ハードウェアコストを増加させることなくモデルの実行効率及び処理能力を向上させることができる。関連技術のコンパイルプロセスでは、一般的には、まずモデルを中間表現のコマンドシーケンス(「中間コマンドシーケンス」又は「計算グラフ」とも呼ばれる)に転換してから、各種の最適化方法(最適化コマンドシーケンス)をトラバーサルして最適な最適化方法を検索するように、モデルに対して最適化可能な部分を識別するルールを人工的に作成し、最適化可能な部分に対して発見的探索アルゴリズムを設計する。しかしながら、発見的探索アルゴリズムに基づいて最適な最適化方法を決定する方法は、トラバーサル時間が長いことにより、コンパイル時間が長すぎ、コンパイル効率が低い。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本開示の実施例は、上記コンパイル時間が長く、効率が低い等の技術的問題を解決するために、ニューラルネットワークモデルのコンパイル方法、最適化モデルのトレーニング方法及び装置を提供して、コンパイル時間を短縮させ、コンパイル効率を向上させる。
【課題を解決するための手段】
【0004】
本開示の第1の態様に係るニューラルネットワークモデルのコンパイル方法は、コンパイル対象のニューラルネットワークモデルを取得するステップと、前記コンパイル対象のニューラルネットワークモデルに基づいて、前記コンパイル対象のニューラルネットワークモデルに対応する中間コマンドシーケンスを決定するステップと、予めトレーニングして取得されたコマンドシーケンス最適化モデルを用いて前記中間コマンドシーケンスを処理して、前記中間コマンドシーケンスに対応する目標最適化パラメータを取得するステップと、前記目標最適化パラメータに基づいて、前記中間コマンドシーケンスに対応する最適化コマンドシーケンスを決定するステップと、前記最適化コマンドシーケンスを実行可能なコマンドシーケンスに転換して、前記コンパイル対象のニューラルネットワークモデルに対応するニューラルネットワークプロセッサが実行可能な目標コマンドシーケンスを取得するステップと、を含む。
【0005】
本開示の第2の態様に係るコマンドシーケンス最適化モデルのトレーニング方法は、少なくとも1つのニューラルネットワークモデルのそれぞれに対応するトレーニング中間コマンドシーケンス及び各前記トレーニング中間コマンドシーケンスのそれぞれに対応する最適な最適化パラメータタグを取得するステップと、各前記トレーニング中間コマンドシーケンス及び各前記トレーニング中間コマンドシーケンスのそれぞれに対応する前記最適な最適化パラメータタグに基づいて、予め構築されたコマンドシーケンス最適化ネットワークをトレーニングして、トレーニングされたコマンドシーケンス最適化モデルを取得するステップと、を含む。
【0006】
本開示の第3の態様に係るニューラルネットワークモデルのコンパイル装置は、コンパイル対象のニューラルネットワークモデルを取得するための第1の取得モジュールと、前記コンパイル対象のニューラルネットワークモデルに基づいて、前記コンパイル対象のニューラルネットワークモデルに対応する中間コマンドシーケンスを決定するための第1の処理モジュールと、予めトレーニングして取得されたコマンドシーケンス最適化モデルを用いて前記中間コマンドシーケンスを処理して、前記中間コマンドシーケンスに対応する目標最適化パラメータを取得するための第2の処理モジュールと、前記目標最適化パラメータに基づいて、前記中間コマンドシーケンスに対応する最適化コマンドシーケンスを決定するための第3の処理モジュールと、前記最適化コマンドシーケンスを実行可能なコマンドシーケンスに転換して、前記コンパイル対象のニューラルネットワークモデルに対応するニューラルネットワークプロセッサが実行可能な目標コマンドシーケンスを取得するための第4の処理モジュールと、を備える。
【0007】
本開示の第4の態様に係るコマンドシーケンス最適化モデルのトレーニング装置は、少なくとも1つのニューラルネットワークモデルのそれぞれに対応するトレーニング中間コマンドシーケンス及び各前記トレーニング中間コマンドシーケンスのそれぞれに対応する最適な最適化パラメータタグを取得するための第2の取得モジュールと、各前記トレーニング中間コマンドシーケンス及び各前記トレーニング中間コマンドシーケンスのそれぞれに対応する前記最適な最適化パラメータタグに基づいて、予め構築されたコマンドシーケンス最適化ネットワークをトレーニングして、トレーニングされたコマンドシーケンス最適化モデルを取得するための第5の処理モジュールと、を備える。
【0008】
本開示の第5の態様に係るコンピュータ読み取り可能な記憶媒体には、コンピュータプログラムが記憶されており、前記コンピュータプログラムは、本開示の上記いずれかの実施例に記載のニューラルネットワークモデルのコンパイル方法を実行し、又は、本開示の上記いずれかの実施例に記載のコマンドシーケンス最適化モデルのトレーニング方法を実行する。
【0009】
本開示の第6の態様に係る電子機器は、プロセッサと、前記プロセッサが実行可能なコマンドを記憶するためのメモリと、を備え、前記プロセッサは、前記メモリから前記実行可能なコマンドを読み取って実行することにより、本開示の上記いずれかの実施例に記載のニューラルネットワークモデルのコンパイル方法を実現し、又は、前記コマンドを実行して本開示の上記いずれかの実施例に記載のコマンドシーケンス最適化モデルのトレーニング方法を実現する。
【0010】
本開示の第7の態様にコンピュータプログラム製品は、当該コンピュータプログラム製品におけるコマンドがプロセッサにより実行されると、本開示の上記いずれかの実施例に記載のニューラルネットワークモデルのコンパイル方法を実行し、又は、本開示の上記いずれかの実施例に記載のコマンドシーケンス最適化モデルのトレーニング方法を実行する。
【発明の効果】
【0011】
本開示の上記実施例に係るニューラルネットワークモデルのコンパイル方法、最適化モデルのトレーニング方法及び装置によれば、ニューラルネットワークモデルのコンパイルプロセスにおいて、コンパイル対象のニューラルネットワークモデルに対応する中間コマンドシーケンスを取得した後、予めトレーニングして取得されたコマンドシーケンス最適化モデルにより最適な最適化パラメータを迅速に取得することができ、さらに、中間コマンドシーケンスに対応する最適な最適化コマンドシーケンスを決定することができ、最適化コマンドシーケンスを実行可能なコマンドシーケンスに転換すると、前記コンパイル対象のニューラルネットワークモデルに対応するニューラルネットワークプロセッサが実行可能な目標コマンドシーケンスを取得してニューラルネットワークモデルのコンパイルを完了し、コマンドシーケンス最適化モデルにより最適な最適化コマンドシーケンスを決定することができるため、人工によるルール作成や発見的探索アルゴリズムの設計に対して、コンパイル時間を大幅に短縮することができ、それによりコンパイル効率を効果的に向上させることができる。
【図面の簡単な説明】
【0012】
【
図1】本開示に係るニューラルネットワークモデルのコンパイル方法の一例示的な応用シーンである。
【
図2】本開示の一例示的な実施例に係るニューラルネットワークモデルのコンパイル方法のフローチャートである。
【
図3】本開示の一例示的な実施例に係る計算サブグラフ分解原理の概略図である。
【
図4】本開示のもう一例示的な実施例に係るニューラルネットワークモデルのコンパイル方法のフローチャートである。
【
図5】本開示の一例示的な実施例に係るコマンドシーケンス最適化モデルのネットワーク構造の概略図である。
【
図6】本開示のさらなる一例示的な実施例に係るニューラルネットワークモデルのコンパイル方法のフローチャートである。
【
図7】本開示のもう一例示的な実施例に係るコマンドシーケンス最適化モデルのネットワーク構造の概略図である。
【
図8】本開示の一例示的な実施例に係るコマンドシーケンス最適化モデルのトレーニング方法のフローチャートである。
【
図9】本開示のもう一例示的な実施例に係るコマンドシーケンス最適化モデルのトレーニング方法のフローチャートである。
【
図10】本開示のさらなる一例示的な実施例に係るコマンドシーケンス最適化モデルのトレーニング方法のフローチャートである。
【
図11】本開示のさらなる一例示的な実施例に係るコマンドシーケンス最適化モデルのネットワーク構造の概略図である。
【
図12】本開示の一例示的な実施例に係るニューラルネットワークモデルのコンパイル装置の構造概略図である。
【
図13】本開示のもう一例示的な実施例に係るニューラルネットワークモデルのコンパイル装置の構造概略図である。
【
図14】本開示のさらなる一例示的な実施例に係るニューラルネットワークモデルのコンパイル装置の構造概略図である。
【
図15】本開示の一例示的な実施例に係るコマンドシーケンス最適化モデルのトレーニング装置の構造概略図である。
【
図16】本開示のもう一例示的な実施例に係るコマンドシーケンス最適化モデルのトレーニング装置の構造概略図である。
【
図17】本開示のさらなる一例示的な実施例に係るコマンドシーケンス最適化モデルのトレーニング装置の構造概略図である。
【
図18】本開示の実施例に係る電子機器の構造図である。
【発明を実施するための形態】
【0013】
以下、本開示を解釈するために、添付図面を参照しながら、本開示の例示的な実施例について詳細に説明する。説明される実施例は、本開示の実施例の一部にすぎず、すべての実施例ではなく、本開示は、例示的な実施例によって限定されることではない。
【0014】
なお、特に特定的な説明がない限り、これらの実施例に記載された部材やステップの相対配置、数式及び数値は、本開示の範囲を限定するものではない。
【0015】
本開示の概要
本開示を実現するプロセスでは、発明者は、人工知能の急速な発展に伴い、深度ニューラルネットワークモデル(「モデル」とも呼ばれる)は、コンピュータビジョン、自然言語処理、音声認識、自動運転等の多くの分野に広く応用されることを発見した。モデルのネットワーク構造が決定された後は、モデルの実際の実行効率は主にハードウェア及びコンパイラに依存する。モデルの実行効率及び処理能力を向上させるために、コンパイル最適化技術が提出されてモデルのコンパイルプロセスに応用され、コンパイル最適化技術は、ハードウェアコストを増加させることなくモデルの実行効率及び処理能力を向上させることができる。関連技術のコンパイルプロセスでは、一般的には、まずモデルを中間表現のコマンドシーケンス(「中間コマンドシーケンス」又は「計算グラフ」とも呼ばれる)に転換してから、各種の最適化方法(最適化コマンドシーケンス)をトラバーサルして最適な最適化方法を検索するように、モデルに対して最適化可能な部分を識別するルールを人工的に作成し、最適化可能な部分に対して発見的探索アルゴリズムを設計する。発見的探索アルゴリズムに基づいて最適な最適化方法を決定する方法は、トラバーサル時間が長いことにより、コンパイル時間が長すぎ、コンパイル効率が低い。
【0016】
例示的な概要
図1は、本開示に係るニューラルネットワークモデルのコンパイル方法の一例示的な応用シーンである。
【0017】
コンピュータビジョン、自然言語処理、音声認識、自動運転等の多くのシーンにおいて、複数のニューラルネットワークモデルのそれぞれに対応する中間コマンドシーケンスをトレーニング中間コマンドシーケンスとして取得し、各中間コマンドシーケンスのそれぞれに対応する最適な最適化方法のパラメータを各トレーニング中間コマンドシーケンスのそれぞれに対応する最適な最適化パラメータタグとして決定し、本開示のコマンドシーケンス最適化モデルのトレーニング装置によって対応するコマンドシーケンス最適化モデルのトレーニング方法を実行し、各トレーニング中間コマンドシーケンス及び対応する最適な最適化パラメータタグに基づいて予め構築されたコマンドシーケンス最適化ネットワークをトレーニングさせて、トレーニングされたコマンドシーケンス最適化モデルを取得し、当該コマンドシーケンス最適化モデルを本開示のニューラルネットワークモデルのコンパイル装置に配置し、当該シーンのコンパイル対象のニューラルネットワークモデルをコンパイルする必要がある場合、本開示のニューラルネットワークモデルのコンパイル方法(本開示のニューラルネットワークモデルのコンパイル装置によって実行される)を用いて、コンパイル対象のニューラルネットワークモデルに対応する中間コマンドシーケンスを決定し、予め配置されたコマンドシーケンス最適化モデルを用いて当該中間コマンドシーケンスを処理し、当該中間コマンドシーケンスに対応する目標最適化パラメータを取得し、当該目標最適化パラメータは、コマンドシーケンス最適化モデルにより予測された当該中間コマンドシーケンスの最適な最適化方法に対応する最適化パラメータを意味し、さらに当該目標最適化パラメータに基づいて当該中間コマンドシーケンスに対応する最適化コマンドシーケンスを決定し、当該最適化コマンドシーケンスをニューラルネットワークプロセッサが実行可能なコマンドシーケンスに転換して、コンパイル対象のニューラルネットワークモデルに対応するニューラルネットワークプロセッサが実行可能な目標コマンドシーケンスを取得することができる。処理対象のデータを処理して対応するデータ処理結果を取得するために、当該目標コマンドシーケンスを対応する端末機器にデプロイする。端末機器は、任意のシーンのコンパイル対象のニューラルネットワークモデルの目標コマンドシーケンスに基づいて対応するデータ処理を行うことが必要な機器であることができ、例えば、自動運転シーンの車載計算プラットフォーム、音声認識シーンの音声認識処理に用いられる機器等であることができる。処理対象のデータは、コンパイル対象のニューラルネットワークモデルの具体的なタスクタイプに基づいて決定されることができ、例えば、コンパイル対象のニューラルネットワークモデルが自動運転シーンの目標検出モデルであれば、処理対象のデータは、車両におけるカメラが収集した画像又は前処理された画像であることができ、また例えば、コンパイル対象のニューラルネットワークモデルが音声認識モデルであれば、処理対象のデータは認識対象の音声データであることができ、具体的には、実際のニーズに応じて設定されることができる。本開示は、トレーニングされたコマンドシーケンス最適化モデルにより最適な最適化コマンドシーケンスを決定し、コンパイル時間を大幅に短縮することができ、それによりコンパイル効率を効果的に向上させることができる。
【0018】
本開示の実施例に係るニューラルネットワークモデルのコンパイル方法は、ニューラルネットワークモデルのコンパイルを必要とする任意のシーンに適用されることができ、上記シーンに限定されることではない。
【0019】
例示的な方法
図2は、本開示の一例示的な実施例に係るニューラルネットワークモデルのコンパイル方法のフローチャートである。本実施例は、具体的には、サーバ、端末等の電子機器に適用されることができる。
図2に示すように、当該方法は、ステップ201~ステップ205を含む。
【0020】
ステップ201では、コンパイル対象のニューラルネットワークモデルを取得する。
【0021】
ここで、コンパイル対象のニューラルネットワークモデルは、任意のタスクタイプ、任意のネットワーク構造のニューラルネットワークモデルであることができ、具体的には実際のニーズに応じて設定されることができる。タスクタイプとしては、例えば、オブジェクト検出、セマンティックセグメンテーション、画像分類、音声認識、テキスト認識等のタイプを含むことができ、ネットワーク構造としては、例えば、畳み込みニューラルネットワーク及びそのシリーズによるネットワーク構造、Transformer及びそのシリーズによるネットワーク構造、RNN(Recurrent Neural Network、リカレントニューラルネットワーク)及びそのシリーズによるネットワーク構造、MLP(Multilayer Perceptron、多層パーセプトロン)及びそのシリーズによるネットワーク構造等を含むことができる。
【0022】
ステップ202では、コンパイル対象のニューラルネットワークモデルに基づいて、コンパイル対象のニューラルネットワークモデルに対応する中間コマンドシーケンスを決定する。
【0023】
ここで、中間コマンドシーケンスは、プログラミング言語と実行可能なコマンドとの間の中間表現(Intermediate Representation)であり、初期計算グラフとも呼ばれ、初期計算グラフは、少なくとも1つの計算サブグラフを含むことができ、各計算サブグラフは、少なくとも1つのオペレータノード及び各オペレータノード間の接続関係を含むことができ、即ち、中間コマンドシーケンスは、コンパイル対象のニューラルネットワークモデルにおける各オペレータがそれぞれ対応する中間コマンド間の初期計算順序関係を表し、オペレータは、例えば畳み込み計算のオペレータ、行列乗算のオペレータ、対応要素加算のオペレータ、対応要素乗算のオペレータ等の計算オペレータ、及び、各種のオペレータの計算に必要なデータロードオペレータ、データ記憶オペレータ等を含むことができる。データロードオペレータは、テンソル、重み等の対応する計算に用いられるデータをロードするためのものであり、データ記憶オペレータは、計算結果を記憶するためのものである。
【0024】
いくつかの選択可能な実施例では、中間コマンドシーケンスの取得方式は、実際のニーズに応じて設定されることができ、例えば任意の実施可能なコンパイラに基づいてコンパイル対象のニューラルネットワークモデルに対して初期コンパイルを行うことができ、コンパイル対象のニューラルネットワークモデルをプログラミング言語から中間表現の中間コマンドシーケンスに転換するが、具体的には限定しない。
【0025】
ステップ203では、予めトレーニングして取得されたコマンドシーケンス最適化モデルを用いて中間コマンドシーケンスを処理して、中間コマンドシーケンスに対応する目標最適化パラメータを取得する。
【0026】
ここで、コマンドシーケンス最適化モデルの具体的なネットワーク構造は、実際のニーズに応じて設定されることができ、例えばリカレントニューラルネットワークによるネットワーク構造、畳み込みニューラルネットワークによるネットワーク構造等を採用することができるが、具体的には限定しない。コマンドシーケンス最適化モデルは、予め取得された複数のニューラルネットワークモデルのトレーニング中間コマンドシーケンス及び対応する最適な最適化パラメータタグに基づいてトレーニングして取得されることができる。目標最適化パラメータの具体的な内容は、実際のニーズに応じて設定されることができ、具体的には、各種のニューラルネットワークモデルの中間コマンドシーケンスの最適化可能な方式に基づいて、共通性を有する最適化方式をパラメータで表すことができ、例えば、目標最適化パラメータは、オペレータ実行モードを決定するためのパラメータ(オペレータ実行モードパラメータとも呼ばれる)、メモリ使用ポリシーを決定するためのパラメータ(メモリ管理パラメータとも呼ばれる)、テンソル分解方式を決定するためのパラメータ(テンソル分解パラメータとも呼ばれる)等を含むことができる。
【0027】
オペレータ実行モードパラメータは、ハードウェアがオペレータを実行する時の実行モードを表し、通常、ハードウェアがオペレータを実行する実行モードは、少なくとも1種類を含むことができ、例えばデフォルト実行モード及び共有切片(Sharing Slice)実行モードを含むことができ、より多い他のモードを含むこともできるが、具体的には限定しない。異なるオペレータに含まれる実行モードは、同一又は異なることができ、具体的にはハードウェアの状況に応じて決定される。目標最適化パラメータに含まれるオペレータ実行モードパラメータは、予測された最適な実行モードである。
【0028】
メモリ管理パラメータについては、ニューラルネットワークモデルのネットワーク構造が決定された後に、推論に必要な各層のメモリサイズ及びメモリの請求と解放との時間を決定することができ、メモリサイズは、層間テンソル(tensor)の大きさであり、メモリの請求時間は、テンソルの生成者が生成する前であり、メモリの解放時間は、テンソルが全ての消費者(使用者)によって消費された後であり、そのため、ニューラルネットワークモデル推論シーンのメモリを明確に把握することができるので、メモリ配置を最適化することによってモデル最適化を実現することができ、メモリの浪費を低減し、これに基づいて、メモリ配置をメモリ管理パラメータで表示し、様々なニューラルネットワークモデルの最適メモリ管理パラメータを学習することにより、コンパイル対象のニューラルネットワークモデルの最適メモリ管理パラメータの予測を実現する。メモリ管理パラメータは、例えば早期解放(Prefree)パラメータを含み、早期解放パラメータは、早期解放及び非早期解放の2種類の状態を含むことができる。早期解放状態は、後で計算サブグラフをスケジューリングする時にその直前の計算サブグラフの出力を前もってバッファからメモリに解放しておくことを示し、メモリ管理パラメータは、メモリ管理に関連する他のパラメータも含むことができ、具体的には実際のニーズに応じて設定されることができる。
【0029】
テンソル分解パラメータは、計算オペレータの入力テンソルの分解方式及び分解数を表し、異なる計算オペレータについて、当該計算オペレータのテンソルの分解可能な原則に基づいて少なくとも1種の分解方式を設けることができ、各分解方式には、少なくとも1種の分解数が設けられることができる。異なる分解方式及び分解数の組み合わせを異なるテンソル分解パラメータで表し、例えば、畳み込みオペレータについて、H*Wのテンソルに対する分解方式は、高さによってテンソルを複数のH1*Wのサブテンソルに分解するか、又は、幅によってテンソルを複数のH*W1のサブテンソルに分解するか、又は、2つの次元(高さ及び幅)によってテンソルを複数のH1*W1のサブテンソルに分解する等であることができる。ここで、分解方式は、高さと幅と2つの次元との3種類による分解方式を含み、各種の分解方式は、複数種の分解数に対応することができる。実際の応用において、いずれかの分解方式におけるいずれかの分解数を1つのテンソル分解パラメータとし、即ち1つの分解タイプに対応し、例えばコード化によってこの種類の分解タイプを識別することができる。異なる分解タイプは、異なるコードに対応する。
【0030】
いくつかの選択可能な実施例では、目標最適化パラメータは、中間コマンドシーケンスにおいて最適化可能な各計算サブグラフにそれぞれ対応する最適な最適化パラメータを含むことができる。最適化可能な計算サブグラフは、コマンドシーケンス最適化モデルがトレーニングプロセスで学習されたものであることができる。ニューラルネットワークモデルのネットワーク構造は、一般にいくつかの汎用的なオペレータ(例えば上記畳み込みオペレータ、行列乗算オペレータ、対応要素加算オペレータ等)で構成されるため、オペレータの計算特性に基づいて、これらのオペレータを含む計算サブグラフが最適化可能か否かを決定することができる。例えば、畳み込みオペレータを含む計算サブグラフをテンソル分解により最適化したり、要素別加算オペレータを含む計算サブグラフをテンソル分解により最適化したりすることができる。
【0031】
ステップ204では、目標最適化パラメータに基づいて、中間コマンドシーケンスに対応する最適化コマンドシーケンスを決定する。
【0032】
ここで、目標最適化パラメータを決定した後、目標最適化パラメータに基づいて、中間コマンドシーケンスを最適化して、対応する最適化コマンドシーケンスを取得することができる。
【0033】
例示的には、目標最適化パラメータに含まれるいずれかの計算サブグラフに対応するテンソル分解パラメータに基づいて、当該計算サブグラフをテンソル分解パラメータに対応する数の計算サブグラフに分解する。
【0034】
例示的には、
図3は、本開示の一例示的な実施例に係る計算サブグラフ分解原理の概略図である。本例の計算サブグラフは、3つのオペレータノードを含み、例えば、データロードオペレータノード、要素別加算オペレータノード及びデータ記憶オペレータノードを含み、2種類の異なるテンソル分解パラメータによってそれぞれ2種類の分解を行い、テンソル分解パラメータ1は、計算サブグラフを2つの目標計算サブグラフに分解し、即ち入力テンソルを2つのサブテンソルに分解してそれぞれ計算を行う。テンソル分解パラメータ2は、計算サブグラフを3つの目標計算サブグラフに分解する。
【0035】
ステップ205では、最適化コマンドシーケンスを実行可能なコマンドシーケンスに転換して、コンパイル対象のニューラルネットワークモデルに対応するニューラルネットワークプロセッサが実行可能な目標コマンドシーケンスを取得する。
【0036】
ここで、実行可能なコマンドシーケンスとは、ハードウェアが実行可能なバイナリコマンドシーケンスを意味する。ニューラルネットワークプロセッサは、ニューラルネットワークモデルを加速してモデル推理速度を向上させるためのプロセッサである。コンパイル対象のニューラルネットワークモデルをコンパイルする目的は、ニューラルネットワークプロセッサに実行される目標コマンドシーケンスを取得することであり、それによりニューラルネットワークプロセッサによってモデルの推論を行い、推論速度を向上させることができる。最適化コマンドシーケンスを実行可能なコマンドシーケンスに転換することは、任意の実施可能な方式で実現されることができ、例えば目標コマンドシーケンスを実行するハードウェア(即ち、ニューラルネットワークプロセッサ)に適合するコンパイラに基づいて最適化コマンドシーケンスから実行可能なコマンドシーケンスへの転換を実現する。本開示では限定されない。
【0037】
本実施例に係るニューラルネットワークモデルのコンパイル方法は、ニューラルネットワークモデルのコンパイルプロセスにおいて、コンパイル対象のニューラルネットワークモデルに対応する中間コマンドシーケンスを取得した後、予めトレーニングして取得されたコマンドシーケンス最適化モデルにより最適な最適化パラメータを迅速に取得することができ、さらに、中間コマンドシーケンスに対応する最適な最適化コマンドシーケンスを決定することができ、最適化コマンドシーケンスを実行可能なコマンドシーケンスに転換すると、コンパイル対象のニューラルネットワークモデルに対応するニューラルネットワークプロセッサが実行可能な目標コマンドシーケンスを取得して、ニューラルネットワークモデルのコンパイルを完了することができ、コマンドシーケンス最適化モデルにより最適な最適化コマンドシーケンスを決定し、コンパイル時間を大幅に短縮することができ、それによりコンパイル効率を効果的に向上させることができる。
【0038】
図4は、本開示のもう一例示的な実施例に係るニューラルネットワークモデルのコンパイル方法のフローチャートである。
【0039】
一選択可能な実施例では、ステップ203は、具体的に下記のようなステップ2031a~ステップ2033を含むことができる。
【0040】
ステップ2031aでは、コマンドシーケンス最適化モデルにおける第1の特徴抽出ネットワークを用いて中間コマンドシーケンスに対して特徴抽出を行って、コマンドシーケンス特徴を取得する。
【0041】
ここで、第1の特徴抽出ネットワークは、任意の実施可能なネットワーク構造を採用することができ、例えば、リカレントニューラルネットワークによる特徴抽出ネットワーク、畳み込みニューラルネットワークによる特徴抽出ネットワーク等であり、具体的には実際のニーズに応じて設定されることができる。
【0042】
ステップ2032では、コマンドシーケンス最適化モデルにおける予測ヘッドネットワークを用いてコマンドシーケンス特徴を処理して処理結果を取得する。
【0043】
ここで、処理結果は、中間コマンドシーケンスに対応する最適化パラメータ予測確率を含む。最適化パラメータ確率は、少なくとも1つの最適化可能な計算サブグラフにおける各計算サブグラフのそれぞれに対応する最適化パラメータ予測確率を含むことができ、各最適化可能な計算サブグラフは、それに対応する最適化パラメータ予測確率が各種のパラメータのそれぞれに対応する予測確率を含むことができ、例えば、メモリ管理パラメータにおける早期解放パラメータに対応する少なくとも1つの状態確率、テンソル分解パラメータに対応する各分解タイプの確率、オペレータ実行モードの各種の実行モードの確率等を含むことができ、予測ヘッドネットワークの具体的な構造は、実際のニーズに応じて設定されることができ、例えば、予測ヘッドネットワークは、全結合層(fully connected layer)によるヘッドネットワークであることができる。
【0044】
一選択可能な実施例では、テンソル分解パラメータは、処理結果が分解数予測値を含むことができ、当該分解数予測値が小数であることができ、例えば2.4、3.7等である。
【0045】
例示的には、早期解放パラメータは、1が早期解放状態を表し、0が非早期解放状態を表し、対応する予測確率が0~1の間の確率値である。
【0046】
ステップ2033では、処理結果及びプリセットマッピングルールに基づいて、目標最適化パラメータを決定する。
【0047】
ここで、プリセットマッピングルールは、パラメータの具体的なタイプに基づいて設定されることができ、例えば、二項分類のパラメータについて、確率閾値を設定し、当該パラメータの予測確率と確率閾値とを比較し、確率閾値より大きい場合は、一方の分類に属することを示し、確率閾値より小さい場合は、他方の分類に属することを示すことができ、複数種類のパラメータについて、確率の最も大きい一類に対応するパラメータを最適なパラメータとして選択することができ、分解数の予測値について、丸めルールに基づいて丸めを行い、予測値を分解数にマッピングすることができる等である。例えば、あるオペレータについて、予測されたテンソル分解数の予測値が2.4である場合、四捨五入又は他の丸めルールにより、整数に転換することができ、例えば2.4を四捨五入又は下整数化して2に転換することができる。
【0048】
例示的には、早期解放パラメータは、処理結果が早期解放の予測確率を含むことができ、当該予測確率が対応する確率閾値より大きい場合、当該計算サブグラフが直前のサブグラフの出力を早期解放する必要があると決定する。
【0049】
一選択可能な実施例では、
図5は、本開示の一例示的な実施例に係るコマンドシーケンス最適化モデルのネットワーク構造の概略図である。本例では、コマンドシーケンス最適化モデルのネットワーク構造は、第1の特徴抽出ネットワーク及び予測ヘッドネットワークを含む。第1の特徴抽出ネットワークは、中間コマンドシーケンスに対して特徴抽出を行って、コマンドシーケンス特徴を取得するためのものであり、予測ヘッドネットワークは、コマンドシーケンス特徴を予測して処理結果を取得するためのものである。
【0050】
本実施例は、特徴抽出ネットワーク及び予測ヘッドネットワークによって目標最適化パラメータの予測確率を取得し、後処理によって予測された最適な目標最適化パラメータを取得し、中間コマンドシーケンスの最適な最適化パラメータの高速自動化予測を実現し、コンパイル処理効率を効果的に向上させる。
【0051】
図6は、本開示のさらなる一例示的な実施例に係るニューラルネットワークモデルのコンパイル方法のフローチャートである。
【0052】
一選択可能な実施例では、本開示の方法は、現在のメモリ情報シーケンスを取得するステップ301をさらに含む。
【0053】
ここで、現在のメモリ情報シーケンスは、中間コマンドシーケンスを取得するための予備コンパイル時に取得されることができる。現在のメモリ情報シーケンスは、中間コマンドシーケンスのコマンドスケジューリング時のメモリ割り当てポリシー及び割り当て結果を示す。
【0054】
予めトレーニングして取得されたコマンドシーケンス最適化モデルを用いて中間コマンドシーケンスを処理して、中間コマンドシーケンスに対応する目標最適化パラメータを取得するステップ203は、ステップ2031b及びステップ2031cをさらに含む。
【0055】
ステップ2031bでは、コマンドシーケンス最適化モデルにおける第2の特徴抽出ネットワークを用いて現在のメモリ情報シーケンスに対して特徴抽出を行って、メモリ情報特徴を取得する。
【0056】
ここで、第2の特徴抽出ネットワークの具体的なネットワーク構造は、実際のニーズに応じて設定されることができ、例えばリカレントニューラルネットワークによる特徴抽出ネットワーク、全結合ネットワークによる特徴抽出ネットワークであることができるが、具体的には限定しない。例示的には、第2の特徴抽出ネットワークは、2階層のリカレントニューラルネットワークを採用してもよく、2階層以上の全結合ネットワークを採用してもよい。
【0057】
ステップ2031cでは、コマンドシーケンス特徴とメモリ情報特徴とを融和させて、融合特徴を取得する。
【0058】
ここで、コマンドシーケンス特徴とメモリ情報特徴との融和方式は、実際のニーズに応じて設定されることができ、例えば、連結、加算等であることができ、具体的には実際のニーズに応じて設定されることができる。なお、コマンドシーケンス特徴とメモリ情報特徴とは、次元が完全に異なる場合、集合方式により両者を少なくとも1つの次元で同じであるように転換してから、融合を行う。
【0059】
コマンドシーケンス最適化モデルにおける予測ヘッドネットワークを用いてコマンドシーケンス特徴を処理して、処理結果を取得するステップ2032は、予測ヘッドネットワークを用いて融合特徴を処理して、処理結果を取得するステップ20321を含む。
【0060】
予測ヘッドネットワークは、上記内容を参照すればよいので、ここでは説明を省略する。
【0061】
本実施例は、現在のメモリ情報シーケンスによって最適な最適化パラメータの予測を補助して、予測結果の正確性をさらに向上させることができる。
【0062】
一選択可能な実施例では、コマンドシーケンス特徴とメモリ情報特徴とを融和させて、融合特徴を取得するステップ2031cは、コマンドシーケンス特徴を第1の集合ルールに従って集合させて、第1の集合特徴を取得するステップと、メモリ情報特徴を第2の集合ルールに従って集合させて、第2の集合特徴を取得するステップと、第2の集合特徴と第1の集合特徴とを、少なくとも1方向における次元で同じであるようにするステップと、第1の集合特徴と第2の集合特徴とを連結させて、融合特徴を取得するステップと、を含む。
【0063】
ここで、第1の集合ルール及び第2の集合ルールは、実際のニーズに応じて設定されることができ、集合の作用は、コマンドシーケンス特徴とメモリ情報特徴とが連結することができるようにすることである。第1の集合ルール及び第2の集合ルールは、いずれも集合方向と、この集合方向の集合方式と、を含むことができ、ここで、集合方向は、行集合及び列集合を含むことができ、集合方式は、対応する集合方向において平均値、最大値、最小値、加算等のいずれかを取ることを含むことができる。具体的には実際のニーズに応じて設定されることができる。集合により、コマンドシーケンス特徴及びメモリ情報特徴は、少なくとも1つの次元で連結されることができる。
【0064】
例示的には、コマンドシーケンス特徴は、16*2の特徴であり、列によって1*2の第1の集合特徴に集合され、集合方式は、各列の16個の要素の平均値、最大値、最小値、加算等のいずれかを取ることができる。メモリ情報特徴は、6*4の特徴であり、列によって1*4の第2の集合特徴に集合され、集合方式は、同様に上記のいずれかであることができ、第1の集合特徴及び第2の集合特徴は、2つ目の次元で連結されて1*6の融合特徴を取得することができる。
【0065】
本実施例は、集合によってコマンドシーケンス特徴及びメモリ情報特徴を少なくとも1つの次元で連結させて、特徴融合を実現することができる。
【0066】
一選択可能な実施例では、
図7は、本開示のもう一例示的な実施例に係るコマンドシーケンス最適化モデルのネットワーク構造の概略図である。本例では、コマンドシーケンス最適化モデルのネットワーク構造は、第1の特徴抽出ネットワーク、第2の特徴抽出ネットワーク、特徴融和ネットワーク及び予測ヘッドネットワークを含む。ここで、第1の特徴抽出ネットワークは、中間コマンドシーケンスに対して特徴抽出を行って、コマンドシーケンス特徴を取得するためのものであり、第2の特徴抽出ネットワークは、現在のメモリ情報シーケンスに対して特徴抽出を行って、メモリ情報特徴を取得するためのものであり、特徴融和ネットワークは、コマンドシーケンス特徴とメモリ情報特徴とを融和させて、融合特徴を取得するためのものであり、予測ヘッドネットワークは、融合特徴を予測して処理結果を取得するためのものである。
【0067】
一選択可能な実施例では、コマンドシーケンス特徴とメモリ情報特徴とは、プリセット次元で連結されることができる場合、特徴融和ネットワークは、連結(Concat)層であることができる。
【0068】
一選択可能な実施例では、コマンドシーケンス特徴とメモリ情報特徴とを直接融和させることができない場合、特徴融和ネットワークは、第1の集合ネットワーク、第2の集合ネットワーク及び連結層を含むことができる。第1の集合ネットワークは、コマンドシーケンス特徴を集合させて第1の集合特徴を取得するためのものであり、第2の集合ネットワークは、メモリ情報特徴を集合させて第2の集合特徴を取得するためのものであり、連結層は、第1の集合特徴と第2の集合特徴とを連結させて、融合特徴を取得するためのものである。
【0069】
一選択可能な実施例では、目標最適化パラメータは、メモリ管理パラメータ、オペレータ実行モードパラメータ及びテンソル分解パラメータを含み、目標最適化パラメータに基づいて、中間コマンドシーケンスに対応する最適化コマンドシーケンスを決定するステップ204は、
目標最適化パラメータに含まれるメモリ管理パラメータ、オペレータ実行モードパラメータ及びテンソル分解パラメータに基づいて、中間コマンドシーケンスを最適化して、最適化コマンドシーケンスを取得するステップ2041を含む。
【0070】
ここで、目標最適化パラメータを取得した後、目標最適化パラメータに基づいて中間コマンドシーケンスにおける対応する最適化が必要なコマンドを最適化することができ、例えば、目標最適化パラメータに含まれるメモリ管理パラメータに基づいて中間コマンドシーケンスにおけるメモリ管理に関するコマンドを最適化すること、オペレータ実行モードパラメータに基づいて中間コマンドシーケンスにおける対応するオペレータの実行モードを更新すること、テンソル分解パラメータに基づいて中間コマンドシーケンスにおける計算サブグラフに対応するコマンドシーケンスを複数グループのコマンドシーケンスに分解すること、等である。それにより、取得された最適化コマンドシーケンスが目標最適化パラメータに対応する最適な最適化方法に従って実行されて、最終的に取得された目標コマンドシーケンスが端末機器にデプロイされて最適な性能を有することができ、例えば、最適なメモリ使用ポリシーを有すること、メモリの浪費を低減させること、最適なオペレータの並列実行能力を有すること、計算効率を向上させること、等である。
【0071】
本開示の上記各実施例は、単独で実施されてもよく、衝突しない状況では任意の組み合わせ方式で組み合わせて実施されてもよく、具体的には実際のニーズに応じて設定されることができ、本開示では限定されない。
【0072】
本開示の実施例に係るニューラルネットワークモデルのコンパイル方法は、データ処理能力を有する任意の適切な機器(例えば、端末機器やサーバ等)によって実行されることができる。又は、本開示の実施例に係るいずれかのニューラルネットワークモデルのコンパイル方法は、プロセッサにより実行されることができ、例えば、プロセッサは、メモリに記憶された対応するコマンドを呼び出すことにより、本開示の実施例に言及されたいずれかのニューラルネットワークモデルのコンパイル方法を実行することができる。以下、その説明を省略する。
【0073】
図8は、本開示の一例示的な実施例に係るコマンドシーケンス最適化モデルのトレーニング方法のフローチャートである。本実施例は、具体的には、サーバ、端末等の電子機器に適用されることができ、
図8に示すように、当該方法は、ステップ401~ステップ402を含む。
【0074】
ステップ401では、少なくとも1つのニューラルネットワークモデルのそれぞれに対応するトレーニング中間コマンドシーケンス及び各トレーニング中間コマンドシーケンスのそれぞれに対応する最適な最適化パラメータタグを取得する。
【0075】
ここで、トレーニング中間コマンドシーケンスの取得方法は、前述した中間コマンドシーケンスと類似であるので、ここでは説明を省略する。トレーニング中間コマンドシーケンスに対応する最適な最適化パラメータタグは、検証された最適な最適化方法に対応する最適化パラメータである。最適な最適化パラメータタグは、任意の実施可能な方式を採用して取得されることができ、例えば、いずれかのトレーニング中間コマンドシーケンスに対し、予め設定されたアルゴリズムに基づいて当該トレーニング中間コマンドシーケンスに対応する少なくとも1つのトレーニング最適化コマンドシーケンスを決定し、任意の実施可能な方式により各トレーニング最適化コマンドシーケンスに対応する性能を決定し、性能比較により、性能が最適なトレーニング最適化コマンドシーケンスを決定し、当該性能が最適なトレーニング最適化コマンドシーケンスに対応する最適化パラメータを当該トレーニング中間コマンドシーケンスに対応する最適な最適化パラメータタグとすることができる。ここで、性能の決定は、例えば各トレーニング最適化コマンドシーケンスを実行可能なトレーニング最適化コマンドシーケンスに転換し、トレーニング最適化コマンドシーケンスを実際の端末機器で実行して、その性能を決定することができ、又は、シミュレータ、性能予測アルゴリズム等のうちの少なくとも1つに基づいてトレーニング目標コマンドシーケンスの性能を決定することもできる。シミュレータは、トレーニング最適化コマンドシーケンスの端末機器(又はハードウェア)での実行プロセスを模擬するためのものであり、実行時間、メモリ搬送回数、各計算を実行するためのハードウェア使用率等の性能指標のうちの少なくとも1つを取得することができ、具体的には実際のニーズに応じて設定されることができる。取得された性能指標に基づいてトレーニング最適化コマンドシーケンスの性能を決定する。性能予測アルゴリズムは、異なるオペレータに対する性能指標計算式(例えば、実行時間計算式)を含み、トレーニング最適化コマンドシーケンスに含まれるオペレータ状況に基づいて、トレーニング最適化コマンドシーケンスの性能指標を計算することができる。
【0076】
ステップ402では、各トレーニング中間コマンドシーケンス及び各トレーニング中間コマンドシーケンスのそれぞれに対応する最適な最適化パラメータタグに基づいて、予め構築されたコマンドシーケンス最適化ネットワークをトレーニングして、トレーニングされたコマンドシーケンス最適化モデルを取得する。
【0077】
ここで、コマンドシーケンス最適化ネットワークの具体的な構造は、前述した実施例を参照すればよいので、ここでは説明を省略する。トレーニング中、いずれかの反(iterative)復に対し、前回の反復により更新されたコマンドシーケンス最適化ネットワークを現在のコマンドシーケンス最適化ネットワークとし、現在のコマンドシーケンス最適化ネットワークを用いて各トレーニング中間コマンドシーケンスを処理して予測処理結果を取得し、予測処理結果及び対応する最適な最適化パラメータタグに基づいて現在のコマンドシーケンス最適化ネットワークを更新して、更新されたコマンドシーケンス最適化ネットワークを取得し、更新されたコマンドシーケンス最適化ネットワークがトレーニング終了条件を満たす場合、当該更新されたコマンドシーケンス最適化ネットワークをトレーニングされたコマンドシーケンス最適化モデルとし、トレーニング終了条件を満たさない場合、次の反復へ進み、当該更新されたコマンドシーケンス最適化モデルを現在のコマンドシーケンス最適化モデルとし、トレーニング終了条件を満たすまで現在のコマンドシーケンス最適化ネットワークを用いて各トレーニング中間コマンドシーケンスを処理して予測処理結果を取得するステップを繰り返して実行して、トレーニングされたコマンドシーケンス最適化モデルを取得する。
【0078】
図9は、本開示のもう一例示的な実施例に係るコマンドシーケンス最適化モデルのトレーニング方法のフローチャートである。
【0079】
一選択可能な実施例では、少なくとも1つのニューラルネットワークモデルのそれぞれに対応するトレーニング中間コマンドシーケンス及び各トレーニング中間コマンドシーケンスのそれぞれに対応する最適な最適化パラメータタグを取得するステップ401は、ステップ4011~ステップ4015を含む。
【0080】
ステップ4011では、少なくとも1つのニューラルネットワークモデルに基づいて、各ニューラルネットワークモデルのそれぞれに対応するトレーニング中間コマンドシーケンスを決定する。
【0081】
ステップ4012では、いずれかのトレーニング中間コマンドシーケンスに対して、プリセット発見的探索アルゴリズムに基づいて、当該トレーニング中間コマンドシーケンスに対応する少なくとも1つのトレーニング最適化コマンドシーケンス及び各トレーニング最適化コマンドシーケンスのそれぞれに対応するトレーニング最適化パラメータを決定する。
【0082】
ここで、プリセット発見的探索アルゴリズムは、実際のニーズに応じて設定されることができ、本開示では限定されない。例えば、プリセット発見的探索アルゴリズムは、焼きなまし法(simulated annealing)、遺伝的アルゴリズム(genetic algorithm)、蟻コロニーア最適化(ant colony optimization)等のアルゴリズムのうちの少なくとも1つに基づいて実現されるトレーニング最適化コマンドシーケンスを決定するためのアルゴリズムであることができる。トレーニング最適化パラメータは、トレーニング最適化コマンドシーケンスのトレーニング中間コマンドシーケンスに対する具体的な最適化状況に基づいて決定されることができる。例えば、トレーニング最適化コマンドシーケンスは、トレーニング中間コマンドシーケンスに対してあるテンソル分解を行う場合、テンソル分解パラメータを決定することができ、あるオペレータの実行モードを更新する場合、当該オペレータに対応するオペレータ実行モードパラメータを決定することができること、等である。
【0083】
ステップ4013では、プリセット性能決定ルールに基づいて、各トレーニング最適化コマンドシーケンスのそれぞれに対応する性能結果を決定する。
【0084】
ここで、プリセット性能決定ルールは、上記実際のハードウェア実行、シミュレータ、性能予測アルゴリズムのうちの少なくとも1つを含むことができ、具体的には上記内容を参照すればよいので、ここでは説明を省略する。性能結果の性能指標タイプは、実際のニーズに応じて設定されることができ、例えば、性能結果は、実行時間、メモリ搬送回数、ハードウェア作動の各オペレータの利用率等の性能指標のうちの少なくとも1つを含むことができる。
【0085】
ステップ4014では、各トレーニング最適化コマンドシーケンスのそれぞれに対応する性能結果に基づいて、各トレーニング最適化コマンドシーケンスにおける性能の最適な目標トレーニング最適化コマンドシーケンスを決定する。
【0086】
ここで、性能の最適な決定ルールは、実際のニーズに応じて設定されることができ、例えば、実行時間に重点を置くと、実行時間が最小であるトレーニング最適化コマンドシーケンスを目標トレーニング最適化コマンドシーケンスとすることができし、複数の性能指標に総合的に注意する必要があると、複数の性能指標を一定の重み割合で加重加算して総合指標値を取得し、総合指標値の最適なトレーニング最適化コマンドシーケンスを目標トレーニング最適化コマンドシーケンスとすることができる、等である。具体的には実際のニーズに応じて設定されることができる。
【0087】
ステップ4015では、目標トレーニング最適化コマンドシーケンスに対応するトレーニング最適化パラメータを、当該トレーニング中間コマンドシーケンスに対応する最適な最適化パラメータタグとする。
【0088】
本実施例は、一定の性能決定ルールによって各トレーニング最適化コマンドシーケンスに対応する性能を決定し、トレーニング中間コマンドシーケンスに対応する最適な最適化パラメータタグを決定しやすく、モデルのトレーニングに正確で有効なタグデータを提供することができる。
【0089】
一選択可能な実施例では、各トレーニング中間コマンドシーケンス及び各トレーニング中間コマンドシーケンスのそれぞれに対応する最適な最適化パラメータタグに基づいて、予め構築されたコマンドシーケンス最適化ネットワークをトレーニングし、トレーニングされたコマンドシーケンス最適化モデルを取得するステップ402は、ステップ4021~ステップ4026を含む。
【0090】
ステップ4021では、コマンドシーケンス最適化ネットワークを用いて各トレーニング中間コマンドシーケンスを処理して、各トレーニング中間コマンドシーケンスのそれぞれに対応する予測処理結果を取得する。
【0091】
当該ステップの具体的な操作は、上記中間コマンドシーケンスの処理と類似であるので、ここでは説明を省略する。
【0092】
ステップ4022では、各トレーニング中間コマンドシーケンスのそれぞれに対応する予測処理結果、各トレーニング中間コマンドシーケンスのそれぞれに対応する最適な最適化パラメータタグ及びプリセット損失関数に基づいて、ネットワーク損失を決定する。
【0093】
ここで、プリセット損失関数は、実際のニーズに応じて設定されることができ、例えば、絶対誤差損失関数、正規化損失関数等の損失関数のうちの少なくとも1つであることができる。
【0094】
一選択可能な実施例では、毎回の反復プロセスでは、ネットワーク損失を決定した後、ネットワーク損失に基づいてトレーニング終了条件を満たすか否か(例えば、ネットワーク損失がプリセット条件を満たすか否か、現在の反復回数がプロセット回数閾値に達するか否か等)を判断し、トレーニング終了条件を満たす場合、トレーニングを終了し、上記コマンドシーケンス最適化ネットワークをトレーニングされたコマンドシーケンス最適化モデルとし、トレーニング終了条件を満たさない場合、さらに後続のフローを行う。
【0095】
ステップ4023では、ネットワーク損失に基づいてコマンドシーケンス最適化ネットワークのネットワークパラメータを更新して、更新されたネットワークパラメータを取得する。
【0096】
ここで、ネットワークパラメータに対する更新は、任意の実施可能な降下アルゴリズム(例えば、確率的勾配降下法アルゴリズム、学習レート自己適応の勾配降下アルゴリズム等)を採用して実現されることができる。
【0097】
ステップ4024では、更新されたネットワークパラメータに基づいて、更新されたコマンドシーケンス最適化ネットワークを決定する。
【0098】
ステップ4025では、更新されたコマンドシーケンス最適化ネットワークをコマンドシーケンス最適化ネットワークとする。そして、ステップ4021に戻る。
【0099】
ステップ4026では、トレーニング条件を満たすことに応じてトレーニングを終了し、コマンドシーケンス最適化モデルを取得する。
【0100】
ここで、ステップ4026は、反復プロセスの任意のタイミング(例えば、ステップ4022の後)で実行されることができ、具体的には実際のニーズに応じて設定されることができる。
【0101】
一選択可能な実施例では、各トレーニング中間コマンドシーケンスのそれぞれに対応する予測処理結果、各トレーニング中間コマンドシーケンスのそれぞれに対応する最適な最適化パラメータタグ及びプリセット損失関数に基づいて、ネットワーク損失を決定するステップ4022は、
各トレーニング中間コマンドシーケンスのそれぞれに対応する予測処理結果、各トレーニング中間コマンドシーケンスのそれぞれに対応する最適な最適化パラメータタグ及び絶対誤差損失関数に基づいて、絶対誤差損失を決定するステップと、現在のネットワークパラメータ及び正規化損失関数に基づいて、正規化損失を決定するステップと、絶対誤差損失及び正規化損失に基づいて、ネットワーク損失を決定するステップと、を含む。
【0102】
一選択可能な例では、プリセット損失関数は、以下のように表すことができる。
【数1】
【数2】
【数3】
【数4】
【0103】
ただし、L1は、絶対誤差損失関数を表し、L2は、正規化損失関数を表し、fwは、学習可能なパラメータwを含むコマンドシーケンス最適化ネットワークであり、Nは、総データバッチ回数であり、iは、データバッチ番号であり、xiは、iバッチ番目のデータのトレーニング中間コマンドシーケンスであり、yiは、iバッチ番目のデータの最適な最適化パラメータタグであり、piは、コマンドシーケンス最適化ネットワークのiバッチ番目のデータのトレーニング中間コマンドシーケンスに対する予測処理結果であり、|yi-pi|は、yi-piの絶対値を表し、|w|は、wの絶対値を表す。
【0104】
一選択可能な実施例では、ネットワークパラメータを更新するとき、損失関数に基づいてコマンドシーケンス最適化ネットワークにおける学習可能なパラメータwの勾配を決定し、最適化器を用いてパラメータwの勾配に基づいてパラメータwを更新する。この最適化器は、任意の勾配降下最適化器であってもよく、無勾配最適化器であってもよく、ランダム勾配降下最適化器を例とし、学習可能なパラメータの更新式は、w′=w-ηgであり、ただし、w′は、更新後のパラメータを表し、gは、勾配を表し、ηは、学習レート(又は「学習率」とも呼ばれる)を表し、学習率は、実際のニーズに応じて設定されることができ、例えば、0.1に設定されることができる。
【0105】
図10は、本開示のさらなる一例示的な実施例に係るコマンドシーケンス最適化モデルのトレーニング方法のフローチャートである。
【0106】
一選択可能な実施例では、本開示の方法は、各トレーニング中間コマンドシーケンスのそれぞれに対応するトレーニングメモリ情報を取得するステップ510をさらに含む。
【0107】
ここで、トレーニングメモリ情報の取得方法は、前述した現在のメモリ情報シーケンスと類似であるので、ここでは説明を省略する。
【0108】
各トレーニング中間コマンドシーケンス及び各トレーニング中間コマンドシーケンスのそれぞれに対応する最適な最適化パラメータタグに基づいて、予め構築されたコマンドシーケンス最適化ネットワークをトレーニングして、トレーニングされたコマンドシーケンス最適化モデルを取得するステップ402は、各トレーニング中間コマンドシーケンス、各トレーニング中間コマンドシーケンスのそれぞれに対応するトレーニングメモリ情報及び最適な最適化パラメータタグに基づいて、予め構築されたコマンドシーケンス最適化ネットワークをトレーニングして、トレーニングされたコマンドシーケンス最適化モデルを取得するステップ402aを含む。
【0109】
本実施例では、コマンドシーケンス最適化ネットワークのネットワーク構造は、前述した
図7のネットワーク構造を参照すればよいので、ここでは説明を省略する。
【0110】
一選択可能な例では、
図11は、本開示のさらなる一例示的な実施例に係るコマンドシーケンス最適化モデルのネットワーク構造の概略図である。本例では、第1の特徴抽出ネットワークは、複数層のリカレントニューラルネットワーク(Recurrent Neural Network、略称:RNN)を採用し、第2の特徴抽出ネットワークは、2層のリカレントニューラルネットワークを採用し、予測ヘッドネットワークは、複数層の全結合ネットワークを採用する。特徴融和ネットワークの構造は、前述した内容を参照すればよいので、ここでは説明を省略する。
【0111】
本開示のいくつかの選択可能な実施例では、コマンドシーケンス最適化モデルのトレーニングプロセス及びアプリケーションプロセスでは、中間コマンドシーケンス(又は、トレーニング中間コマンドシーケンス)及び現在のメモリ情報シーケンス(又は、トレーニングメモリ情報)に対してテキスト方式を採用して表示することができる。
【0112】
本開示の上記各実施例は、単独で実施されてもよく、衝突しない状況で任意の組み合わせ方式で組み合わせて実施されてもよく、具体的には実際のニーズに応じて設定されることができ、本開示では限定されない。
【0113】
本開示の実施例に係るコマンドシーケンス最適化モデルのトレーニング方法は、データ処理能力を有する任意の適切な機器(例えば、端末機器やサーバ等)によって実行されることができる。又は、本開示の実施例に係るいずれかのコマンドシーケンス最適化モデルのトレーニング方法は、プロセッサにより実行されることができ、例えば、プロセッサは、メモリに記憶された対応するコマンドを呼び出すことにより、本開示の実施例に言及されたいずれかのコマンドシーケンス最適化モデルのトレーニング方法を実行することができる。以下、その説明を省略する。
【0114】
例示的な装置
図12は、本開示の一例示的な実施例に係るニューラルネットワークモデルのコンパイル装置の構造概略図である。当該実施例の装置は、本開示における対応するニューラルネットワークモデルのコンパイル方法の実施例を実現するためのものである。
図12に示す装置は、
コンパイル対象のニューラルネットワークモデルを取得するための第1の取得モジュール601と、
コンパイル対象のニューラルネットワークモデルに基づいて、コンパイル対象のニューラルネットワークモデルに対応する中間コマンドシーケンスを決定するための第1の処理モジュール602と、
予めトレーニングして取得されたコマンドシーケンス最適化モデルを用いて中間コマンドシーケンスを処理して、中間コマンドシーケンスに対応する目標最適化パラメータを取得するための第2の処理モジュール603と、
目標最適化パラメータに基づいて、中間コマンドシーケンスに対応する最適化コマンドシーケンスを決定するための第3の処理モジュール604と、
最適化コマンドシーケンスを実行可能なコマンドシーケンスに転換して、コンパイル対象のニューラルネットワークモデルに対応するニューラルネットワークプロセッサが実行可能な目標コマンドシーケンスを取得するための第4の処理モジュール605と、を備える。
【0115】
図13は、本開示のもう一例示的な実施例に係るニューラルネットワークモデルのコンパイル装置の構造概略図である。
【0116】
一選択可能な実施例では、第2の処理モジュール603は、
コマンドシーケンス最適化モデルにおける第1の特徴抽出ネットワークを用いて、中間コマンドシーケンスに対して特徴抽出を行って、コマンドシーケンス特徴を取得するための第1の処理ユニット6031aと、
コマンドシーケンス最適化モデルにおける予測ヘッドネットワークを用いてコマンドシーケンス特徴を処理して、中間コマンドシーケンスに対応する最適化パラメータ予測確率を含む処理結果を取得するための第2の処理ユニット6032と、
処理結果及びプリセットマッピングルールに基づいて、目標最適化パラメータを決定するための第3の処理ユニット6033と、を備える。
【0117】
図14は、本開示のさらなる一例示的な実施例に係るニューラルネットワークモデルのコンパイル装置の構造概略図である。
【0118】
一選択可能な実施例では、本開示の装置は、現在のメモリ情報シーケンスを取得するための第3の取得モジュール701をさらに備える。
【0119】
第2の処理モジュール603は、
コマンドシーケンス最適化モデルにおける第2の特徴抽出ネットワークを用いて現在のメモリ情報シーケンスに対して特徴抽出を行って、メモリ情報特徴を取得するための第4の処理ユニット6031bと、
コマンドシーケンス特徴とメモリ情報特徴とを融和させて融合特徴を取得するための融和ユニット6031cと、をさらに備える。
【0120】
第2の処理ユニット6032は、予測ヘッドネットワークを用いて融合特徴を処理して、処理結果を取得するためのものでもある。
【0121】
一選択可能な実施例では、融和ユニット6031cは、コマンドシーケンス特徴を第1の集合ルールに従って集合させて第1の集合特徴を取得し、メモリ情報特徴を第2の集合ルールに従って集合させて第2の集合特徴を取得し、第2の集合特徴と第1の集合特徴とを少なくとも1つの方向における次元で同じであるようにし、第1の集合特徴と第2の集合特徴とを連結させて融合特徴を取得するためのものである。
【0122】
一選択可能な実施例では、目標最適化パラメータは、メモリ管理パラメータ、オペレータ実行モードパラメータ及びテンソル分解パラメータを含み、第3の処理モジュール604は、目標最適化パラメータに含まれるメモリ管理パラメータ、オペレータ実行モードパラメータ及びテンソル分解パラメータに基づいて、中間コマンドシーケンスを最適化して最適化コマンドシーケンスを取得するための最適化ユニット6041を備える。
【0123】
本装置の例示的な実施例に対応する有益な技術的効果は、上記例示的な方法部分の対応する有益な技術的効果を参照すればよいので、ここでは説明を省略する。
【0124】
図15は、本開示の一例示的な実施例に係るコマンドシーケンス最適化モデルのトレーニング装置の構造概略図である。当該実施例の装置は、本開示に対応するコマンドシーケンス最適化モデルのトレーニング方法の実施例を実現するためのものであり、
図15に示す装置は、
少なくとも1つのニューラルネットワークモデルのそれぞれに対応するトレーニング中間コマンドシーケンス及び各トレーニング中間コマンドシーケンスのそれぞれに対応する最適な最適化パラメータタグを取得するための第2の取得モジュール801と、
各トレーニング中間コマンドシーケンス及び各トレーニング中間コマンドシーケンスのそれぞれに対応する最適な最適化パラメータタグに基づいて、予め構築されたコマンドシーケンス最適化ネットワークをトレーニングして、トレーニングされたコマンドシーケンス最適化モデルを取得するための第5の処理モジュール802と、を備える。
【0125】
図16は、本開示のもう一例示的な実施例に係るコマンドシーケンス最適化モデルのトレーニング装置の構造概略図である。
【0126】
一選択可能な実施例では、第2の取得モジュール801は、
少なくとも1つのニューラルネットワークモデルに基づいて、各ニューラルネットワークモデルのそれぞれに対応するトレーニング中間コマンドシーケンスを決定するための第1の決定ユニット8011と、
いずれかのトレーニング中間コマンドシーケンスに対して、プリセット発見的探索アルゴリズムに基づいて、当該トレーニング中間コマンドシーケンスに対応する少なくとも1つのトレーニング最適化コマンドシーケンス及び各トレーニング最適化コマンドシーケンスのそれぞれに対応するトレーニング最適化パラメータを決定するための第2の決定ユニット8012と、
プリセット性能決定ルールに基づいて、各トレーニング最適化コマンドシーケンスのそれぞれに対応する性能結果を決定するための第3の決定ユニット8013と、
各トレーニング最適化コマンドシーケンスのそれぞれに対応する性能結果に基づいて、各トレーニング最適化コマンドシーケンスにおける性能の最適な目標トレーニング最適化コマンドシーケンスを決定するための第4の決定ユニット8014と、
目標トレーニング最適化コマンドシーケンスに対応するトレーニング最適化パラメータを当該トレーニング中間コマンドシーケンスに対応する最適な最適化パラメータタグとするための第5の決定ユニット8015と、を備える。
【0127】
一選択可能な実施例では、第5の処理モジュール802は、
コマンドシーケンス最適化ネットワークを用いて各トレーニング中間コマンドシーケンスを処理して、各トレーニング中間コマンドシーケンスのそれぞれに対応する予測処理結果を取得するための第5の処理ユニット8021と、
各トレーニング中間コマンドシーケンスのそれぞれに対応する予測処理結果、各トレーニング中間コマンドシーケンスのそれぞれに対応する最適な最適化パラメータタグ及びプリセット損失関数に基づいて、ネットワーク損失を決定するための第6の処理ユニット8022と、
ネットワーク損失に基づいてコマンドシーケンス最適化ネットワークのネットワークパラメータを更新して、更新されたネットワークパラメータを取得するための第7の処理ユニット8023と、
更新されたネットワークパラメータに基づいて、更新されたコマンドシーケンス最適化ネットワークを決定するための第8の処理ユニット8024と、
コマンドシーケンス最適化ネットワークを用いて各トレーニング中間コマンドシーケンスを処理して、各トレーニング中間コマンドシーケンスのそれぞれに対応する予測処理結果を取得するステップを繰り返して実行するように、更新されたコマンドシーケンス最適化ネットワークをコマンドシーケンス最適化ネットワークとし、それを第5の処理ユニット8021に伝送するための第9の処理ユニット8025と、
トレーニング条件を満たすことに応じてトレーニングを終了し、コマンドシーケンス最適化モデルを取得するための第10の処理ユニット8026と、を含む。
【0128】
一選択可能な実施例では、第6の処理ユニット8022は、
各トレーニング中間コマンドシーケンスのそれぞれに対応する予測処理結果、各トレーニング中間コマンドシーケンスのそれぞれに対応する最適な最適化パラメータタグ及び絶対誤差損失関数に基づいて絶対誤差損失を決定し、現在のネットワークパラメータ及び正規化損失関数に基づいて正規化損失を決定し、絶対誤差損失及び正規化損失に基づいてネットワーク損失を決定するためのものである。
【0129】
図17は、本開示のさらなる一例示的な実施例に係るコマンドシーケンス最適化モデルのトレーニング装置の構造概略図である。
【0130】
一選択可能な実施例では、本開示の装置は、各トレーニング中間コマンドシーケンスのそれぞれに対応するトレーニングメモリ情報を取得するための第4の取得モジュール910をさらに備える。
【0131】
第5の処理モジュール802は、各トレーニング中間コマンドシーケンス、各トレーニング中間コマンドシーケンスのそれぞれに対応するトレーニングメモリ情報及び最適な最適化パラメータタグに基づいて、予め構築されたコマンドシーケンス最適化ネットワークをトレーニングして、トレーニングされたコマンドシーケンス最適化モデルを取得するためのものである。
【0132】
本装置の例示的な実施例に対応する有益な技術的効果は上記例示的な方法部分の対応する有益な技術的効果を参照すればよいので、ここでは説明を省略する。
【0133】
例示的な電子機器
図18は、本開示の実施例に係る電子機器の構造図であり、少なくとも1つのプロセッサ11及びメモリ12を含む。
【0134】
プロセッサ11は、中央処理ユニット(CPU)又はデータ処理能力及び/又はコマンド実行能力を有する他の形式の処理ユニットであることができ、電子機器10内の他のコンポーネントを制御して所望の機能を実行することができる。
【0135】
メモリ12は、1つ又は複数のコンピュータプログラム製品を含むことができ、前記コンピュータプログラム製品は、例えば揮発性メモリ及び/又は不揮発性メモリ等の様々な形態のコンピュータ読み取り可能な記憶媒体を含むことができる。揮発性メモリは、例えばランダムアクセスメモリ(RAM)及び/又はキャッシュメモリ(cache)等を含むことができる。不揮発性メモリは、例えば、リードオンリメモリ(ROM)、ハードディスク、フラッシュメモリ等を含むことができる。コンピュータ読み取り可能な記憶媒体は、1つ又は複数のコンピュータプログラムコマンドを記憶することができ、プロセッサ11は、1つ又は複数のコンピュータプログラムコマンドを実行することで、上述した本開示の各実施例における方法及び/又は他の期待される機能を実現することができる。
【0136】
一例では、電子機器10は、バスシステム及び/又は他の形態の接続機構(図示せず)を介して互に接続される入力装置13と出力装置14とをさらに備えることができる。
【0137】
当該入力装置13は、例えばキーボードやマウス等を含むことができる。
【0138】
当該出力装置14は、様々な情報を外部に出力することができ、例えば、ディスプレイ、スピーカ、プリンタ、通信ネットワーク及びそれらが接続される遠隔出力デバイス等を含むことができる。
【0139】
もちろん、説明の便宜上、
図18においては、当該電子機器10における本開示に関連するコンポーネントの一部のみを示し、バスや入出力インタフェース等のコンポーネントは省略した。その他、具体的な応用状況に応じて、電子機器10は、任意の適切な他のコンポーネントをさらに備えることができる。
【0140】
例示的なコンピュータプログラム製品及びコンピュータ読み取り可能な記憶媒体
本開示の実施例は、上記の方法及び機器に加えて、コンピュータプログラムコマンドを含むコンピュータプログラム製品をさらに提供し、コンピュータプログラムコマンドがプロセッサによって実行されると、上記「例示的な方法」の部分に記載の本開示の様々な実施例の方法におけるステップをプロセッサに実行させる。
【0141】
コンピュータプログラム製品は、1つ又は複数のプログラミング言語の任意の組合せによって、本開示の実施例の操作を実行するためのプログラムコードを作成することができ、前記プログラミング言語は、Java(登録商標)、C++等のオブジェクト指向プログラミング言語、及び「C」言語又は類似のプログラミング言語等の一般的な手続き型プログラミング言語を含むことができる。プログラムコードは、下記のように実行されることができ、すなわち、ユーザコンピューティングデバイス上で全体的に実行されてもよいし、ユーザデバイス上で部分的に実行されてもよいし、独立したソフトウェアパッケージとして実行されてもよいし、一部はユーザコンピューティングデバイス上で実行され、別の一部はリモートコンピューティングデバイス上で実行されてもよいし、リモートコンピューティングデバイスもしくはサーバ上で全体的に実行されてもよい。
【0142】
また、本開示の実施例は、コンピュータプログラムコマンドが記憶されているコンピュータ読み取り可能な記憶媒体をさらに提供し、コンピュータプログラムコマンドがプロセッサによって実行されると、上記「例示的な方法」の部分に記載の本開示の様々な実施例の方法におけるステップをプロセッサに実行させる。
【0143】
コンピュータ読み取り可能な記憶媒体として、1つ又は複数の読み取り可能な媒体の任意の組合せを採用することができる。読み取り可能な媒体は、読み取り可能な信号媒体又は読み取り可能な記憶媒体であることができる。読み取り可能な記憶媒体は、例えば、電気、磁気、光学、電磁気、赤外線、又は半導体のシステム、装置、又はデバイス、あるいはそれらの任意の組合せを含むことができるが、これらに限定されない。読み取り可能な記憶媒体のより具体的な例(非網羅的なリスト)としては、1つ又は複数のワイヤを有する電気的接続、ポータブルディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、光ファイバ、コンパクトディスクリードオンリメモリ(CD-ROM)、光記憶デバイス、磁気記憶デバイス、又は上記の任意の適切な組み合わせが挙げられる。
【0144】
以上、具体的な実施例を参照しながら本開示の基本原理を説明してきたが、なお、本開示に言及された利点、長所、効果等は、例示に過ぎず、限定的なものではなく、本開示の様々な実施例がそれらを必ず備えていることではない。また、上記開示の具体的な詳細は、例示的な作用及び理解しやすい作用に過ぎず、限定的なものではなく、上記詳細は、本開示を必ずしも上記具体的な詳細により実現されるように限定することではない。
【0145】
当業者であれば、本願の精神及び範囲から逸脱することなく、本開示に対して様々な変更や変形を行うことができる。このように、本願のこれらの修正や変形が本開示の特許請求の範囲及びその均等的な技術範囲内に属する場合、本開示もこれらの修正や変形を含むことを意味する。