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

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

▶ 三菱電機エンジニアリング株式会社の特許一覧 ▶ 国立大学法人 熊本大学の特許一覧

特開2025-6731推論モデル生成装置及び推論モデル生成方法
<>
  • 特開-推論モデル生成装置及び推論モデル生成方法 図1
  • 特開-推論モデル生成装置及び推論モデル生成方法 図2
  • 特開-推論モデル生成装置及び推論モデル生成方法 図3
  • 特開-推論モデル生成装置及び推論モデル生成方法 図4
  • 特開-推論モデル生成装置及び推論モデル生成方法 図5
  • 特開-推論モデル生成装置及び推論モデル生成方法 図6
  • 特開-推論モデル生成装置及び推論モデル生成方法 図7
  • 特開-推論モデル生成装置及び推論モデル生成方法 図8
  • 特開-推論モデル生成装置及び推論モデル生成方法 図9
  • 特開-推論モデル生成装置及び推論モデル生成方法 図10
  • 特開-推論モデル生成装置及び推論モデル生成方法 図11
  • 特開-推論モデル生成装置及び推論モデル生成方法 図12
  • 特開-推論モデル生成装置及び推論モデル生成方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025006731
(43)【公開日】2025-01-17
(54)【発明の名称】推論モデル生成装置及び推論モデル生成方法
(51)【国際特許分類】
   G06F 8/51 20180101AFI20250109BHJP
   G06N 3/08 20230101ALI20250109BHJP
   G06N 20/00 20190101ALI20250109BHJP
   G06N 5/04 20230101ALI20250109BHJP
【FI】
G06F8/51
G06N3/08
G06N20/00
G06N5/04
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023107706
(22)【出願日】2023-06-30
(71)【出願人】
【識別番号】591036457
【氏名又は名称】三菱電機エンジニアリング株式会社
(71)【出願人】
【識別番号】504159235
【氏名又は名称】国立大学法人 熊本大学
(74)【代理人】
【識別番号】110003166
【氏名又は名称】弁理士法人山王内外特許事務所
(72)【発明者】
【氏名】森下 有規
(72)【発明者】
【氏名】古川 巧
(72)【発明者】
【氏名】木山 真人
(72)【発明者】
【氏名】尼崎 太樹
【テーマコード(参考)】
5B081
【Fターム(参考)】
5B081BB08
(57)【要約】
【課題】推論モデルの推論精度の劣化を抑えつつ、推論速度を高めることができる推論モデル生成装置を得ることを目的とする。
【解決手段】浮動小数点型の重みパラメータを含んでいる推論モデルである浮動小数点型推論モデル1bの重みパラメータを量子化済みのPosit型の重みパラメータに変換することによって、量子化済みのPosit型の重みパラメータを含んでいる推論モデルであるPosit型推論モデル1dを生成する推論モデル生成部1と、推論モデル生成部1により生成されたPosit型推論モデル1dのアルゴリズムを示すソースコードを、ハードウェア記述言語によって表現されているソースコードに変換する言語変換部2とを備えるように、推論モデル生成装置を構成した。
【選択図】図1
【特許請求の範囲】
【請求項1】
浮動小数点型の重みパラメータを含んでいる推論モデルである浮動小数点型推論モデルの前記重みパラメータを量子化済みのPosit型の重みパラメータに変換することによって、前記量子化済みのPosit型の重みパラメータを含んでいる推論モデルであるPosit型推論モデルを生成する推論モデル生成部と、
前記推論モデル生成部により生成されたPosit型推論モデルのアルゴリズムを示すソースコードを、ハードウェア記述言語によって表現されているソースコードに変換する言語変換部と
を備えた推論モデル生成装置。
【請求項2】
前記推論モデル生成部は、
学習データを浮動小数点型のディープラーニングフレームワークに与えることによって、前記ディープラーニングフレームワークから、前記浮動小数点型推論モデルを取得することを特徴とする請求項1記載の推論モデル生成装置。
【請求項3】
学習データをPosit型のディープラーニングフレームワークに与えることによって、前記Posit型のディープラーニングフレームワークから、前記量子化済みのPosit型の重みパラメータを含んでいる推論モデルであるPosit型推論モデルを取得する推論モデル生成部と、
前記推論モデル生成部により取得されたPosit型推論モデルのアルゴリズムを示すソースコードを、ハードウェア記述言語によって表現されているソースコードに変換する言語変換部と
を備えた推論モデル生成装置。
【請求項4】
前記言語変換部は、
前記Posit型推論モデルのアルゴリズムを示すソースコードを、高位合成言語によって表現されているソースコードに変換し、ソースコード変換後の推論モデルを出力する第1の言語変換処理部と、
前記第1の言語変換処理部から出力された推論モデルのアルゴリズムを示すソースコードを、ハードウェア記述言語によって表現されたソースコードに変換する第2の言語変換処理部と
を備えていることを特徴とする請求項1から請求項3のうちのいずれか1項記載の推論モデル生成装置。
【請求項5】
推論モデル生成部が、浮動小数点型の重みパラメータを含んでいる推論モデルである浮動小数点型推論モデルの前記重みパラメータを量子化済みのPosit型の重みパラメータに変換することによって、前記量子化済みのPosit型の重みパラメータを含んでいる推論モデルであるPosit型推論モデルを生成し、
言語変換部が、前記推論モデル生成部により生成されたPosit型推論モデルのアルゴリズムを示すソースコードを、ハードウェア記述言語によって表現されているソースコードに変換する
推論モデル生成方法。
【請求項6】
推論モデル生成部が、学習データをPosit型のディープラーニングフレームワークに与えることによって、前記Posit型のディープラーニングフレームワークから、量子化済みのPosit型の重みパラメータを含んでいる推論モデルであるPosit型推論モデルを取得し、
言語変換部が、前記推論モデル生成部により取得されたPosit型推論モデルのアルゴリズムを示すソースコードを、ハードウェア記述言語によって表現されているソースコードに変換する
推論モデル生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、推論モデル生成装置及び推論モデル生成方法に関するものである。
【背景技術】
【0002】
推論モデルのアルゴリズムを示すソースコードを、ハードウェア記述言語によって表現されているソースコードに変換する推論モデル生成装置がある。
このような推論モデル生成装置として、例えば、特許文献1には、学習モデルのアルゴリズムを示すソースコードの記述言語をC言語等のプログラム言語からハードウェア記述言語に変換する装置が開示されている。C言語等のプログラム言語からハードウェア記述言語に変換されることによって、学習モデルの推論速度が高速化される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2021-164971号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に開示されている装置は、記述言語の変換に伴う推論速度の高速化とは別個に、推論速度を更に高速化させることができないという課題があった。
【0005】
本開示は、上記のような課題を解決するためになされたもので、推論モデルの推論精度の劣化を抑えつつ、推論速度を高めることができる推論モデル生成装置を得ることを目的とする。
【課題を解決するための手段】
【0006】
本開示に係る推論モデル生成装置は、浮動小数点型の重みパラメータを含んでいる推論モデルである浮動小数点型推論モデルの重みパラメータを量子化済みのPosit型の重みパラメータに変換することによって、量子化済みのPosit型の重みパラメータを含んでいる推論モデルであるPosit型推論モデルを生成する推論モデル生成部と、推論モデル生成部により生成されたPosit型推論モデルのアルゴリズムを示すソースコードを、ハードウェア記述言語によって表現されているソースコードに変換する言語変換部とを備えたものである。
【発明の効果】
【0007】
本開示によれば、推論モデルの推論精度の劣化を抑えつつ、推論速度を高めることができる。
【図面の簡単な説明】
【0008】
図1】実施の形態1に係る推論モデル生成装置を示す構成図である。
図2】実施の形態1に係る推論モデル生成装置のハードウェアを示すハードウェア構成図である。
図3】推論モデル生成装置が、ソフトウェア又はファームウェア等によって実現される場合のコンピュータのハードウェア構成図である。
図4】推論モデル生成装置の処理手順である推論モデル生成方法を示すフローチャートである。
図5】ディープラーニングフレームワーク1aによる浮動小数点型推論モデル1bの生成例を示す説明図である。
図6】Positの表現形式を示す説明図である。
図7】記述変換ツール3aによる推論モデルの変換アルゴリズムを示す説明図である。
図8】高位合成に含まれている処理の1つであるカウンタの処理を示すビヘイビア記述の一例を示す説明図である。
図9】高位合成に含まれている処理の1つであるカウンタの処理を示すHDL記述の一例を示す説明図である。
図10】高位合成ツール4aによる高位合成を示す説明図である。
図11】実施の形態2に係る推論モデル生成装置を示す構成図である。
図12】実施の形態2に係る推論モデル生成装置のハードウェアを示すハードウェア構成図である。
図13】Posit型のディープラーニングフレームワーク1eによるPosit型推論モデル1dの生成例を示す説明図である。
【発明を実施するための形態】
【0009】
以下、本開示をより詳細に説明するために、本開示を実施するための形態について、添付の図面に従って説明する。
【0010】
実施の形態1.
図1は、実施の形態1に係る推論モデル生成装置を示す構成図である。
図2は、実施の形態1に係る推論モデル生成装置のハードウェアを示すハードウェア構成図である。
図1に示す推論モデル生成装置は、推論モデル生成部1及び言語変換部2を備えている。
【0011】
推論モデル生成部1は、例えば、図2に示す推論モデル生成回路11によって実現される。
推論モデル生成部1は、後述する学習データを浮動小数点型のディープラーニングフレームワーク1aに与えることによって、ディープラーニングフレームワーク1aから、浮動小数点型の重みパラメータを含んでいる推論モデルである浮動小数点型推論モデル1bを取得する。
推論モデル生成部1は、例えば、量子化ライブラリ1cを参照して、浮動小数点型推論モデル1bの重みパラメータを量子化済みのPosit型の重みパラメータに変換することによって、量子化済みのPosit型の重みパラメータを含んでいる推論モデルであるPosit型推論モデル1dを生成する。
推論モデル生成部1は、Posit型推論モデル1dを言語変換部2に出力する。
【0012】
ディープラーニングフレームワーク1aは、学習データが与えられると、学習データを浮動小数点型推論モデル1bに与えて、浮動小数点型推論モデル1bに学習させるものである。
浮動小数点型推論モデル1bは、例えば、ONNX(Open Neural Network Exchange)形式の推論モデルである。
浮動小数点型推論モデル1bに含まれている重みパラメータは、浮動小数点型の重みパラメータである。
重みパラメータは、例えば、ディープラーニングのネットワークにおける複数のノード間の結合度を示すパラメータである。
【0013】
量子化ライブラリ1cは、例えば、浮動小数点型の重みパラメータに対応する量子化済みのPosit型の重みパラメータを記憶している。量子化済みのPosit型の重みパラメータは、例えば、Posit型の重みパラメータの一部のビットが削除されている重みパラメータ、又は、Posit型の重みパラメータの小数点〇△以下が四捨五入されている重みパラメータである。
Posit型推論モデル1dは、量子化済みのPosit型の重みパラメータを含んでいる推論モデルである。
【0014】
言語変換部2は、例えば、図2に示す言語変換回路12によって実現される。
言語変換部2は、第1の言語変換処理部3及び第2の言語変換処理部4を備えている。
言語変換部2は、推論モデル生成部1から、Posit型推論モデル1dを取得する。
言語変換部2は、Posit型推論モデル1dのアルゴリズムを示すソースコードを、ハードウェア記述言語によって表現されているソースコードに変換する。
言語変換部2は、ソースコードがハードウェア記述言語によって表現された推論モデル4bを、例えば、推論モデル4bをハードウェアに実装する装置(図示せず)に出力する。
【0015】
第1の言語変換処理部3は、推論モデル生成部1から、Posit型推論モデル1dを取得する。
第1の言語変換処理部3は、例えば、記述変換ツール3aを用いて、Posit型推論モデル1dのアルゴリズムを示すソースコードを、高位合成言語によって表現されているソースコードに変換する。高位合成言語は、例えば、C言語、C++言語、又は、SystemC言語である。
第1の言語変換処理部3は、ソースコード変換後の推論モデル3bを第2の言語変換処理部4に出力する。
【0016】
記述変換ツール3aは、Posit型推論モデル1dのアルゴリズムを示すソースコードを、高位合成言語によって表現されているソースコードに変換するためのアプリケーションである。
推論モデル3bは、ソースコードが高位合成言語によって表現された推論モデルである。
図1に示す推論モデル生成装置では、一例として、高位合成言語がC++言語である推論モデル3bが記載されている。
【0017】
第2の言語変換処理部4は、第1の言語変換処理部3から、ソースコード変換後の推論モデル3bを取得する。
第2の言語変換処理部4は、例えば、高位合成ツール4aを用いて、推論モデル3bのアルゴリズムを示すソースコードを、ハードウェア記述言語によって表現されたソースコードに変換する。ハードウェア記述言語は、例えば、HDL(Hardware Description Language)である。
第2の言語変換処理部4は、ソースコードがハードウェア記述言語によって表現された推論モデル4bを、例えば、推論モデル4bをハードウェアに実装する装置(図示せず)に出力する。
【0018】
高位合成ツール4aは、推論モデル3bのアルゴリズムを示すソースコードを、ハードウェア記述言語によって表現された推論モデル4bに変換するためのアプリケーションである。
推論モデル4bは、ソースコードがハードウェア記述言語によって表現された推論モデルである。
図1に示す推論モデル生成装置では、一例として、ハードウェア記述言語がHDLである推論モデル4bが記載されている。
【0019】
図1では、推論モデル生成装置の構成要素である推論モデル生成部1及び言語変換部2のそれぞれが、図2に示すような専用のハードウェアによって実現されるものを想定している。即ち、推論モデル生成装置が、推論モデル生成回路11及び言語変換回路12によって実現されるものを想定している。
推論モデル生成回路11及び言語変換回路12のそれぞれは、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、又は、これらを組み合わせたものが該当する。
【0020】
推論モデル生成装置の構成要素は、専用のハードウェアによって実現されるものに限るものではなく、推論モデル生成装置が、ソフトウェア、ファームウェア、又は、ソフトウェアとファームウェアとの組み合わせによって実現されるものであってもよい。
ソフトウェア又はファームウェアは、プログラムとして、コンピュータのメモリに格納される。コンピュータは、プログラムを実行するハードウェアを意味し、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、あるいは、DSP(Digital Signal Processor)が該当する。
【0021】
図3は、推論モデル生成装置が、ソフトウェア又はファームウェア等によって実現される場合のコンピュータのハードウェア構成図である。
推論モデル生成装置が、ソフトウェア又はファームウェア等によって実現される場合、推論モデル生成部1及び言語変換部2におけるそれぞれの処理手順をコンピュータに実行させるためのプログラムがメモリ21に格納される。そして、コンピュータのプロセッサ22がメモリ21に格納されているプログラムを実行する。
【0022】
また、図2では、推論モデル生成装置の構成要素のそれぞれが専用のハードウェアによって実現される例を示し、図3では、推論モデル生成装置がソフトウェア又はファームウェア等によって実現される例を示している。しかし、これは一例に過ぎず、推論モデル生成装置における一部の構成要素が専用のハードウェアによって実現され、残りの構成要素がソフトウェア又はファームウェア等によって実現されるものであってもよい。
【0023】
次に、図1に示す推論モデル生成装置の動作について説明する。
図4は、推論モデル生成装置の処理手順である推論モデル生成方法を示すフローチャートである。
推論モデル生成部1の内部メモリには、例えば、図5に示すようなディープラーニングフレームワーク1aが格納されている。
図5は、ディープラーニングフレームワーク1aによる浮動小数点型推論モデル1bの生成例を示す説明図である。
【0024】
推論モデル生成部1が、浮動小数点型推論モデル1bとして、例えば、画像データに含まれている動物の種類を分類する推論モデルを生成する場合、学習データとして、学習用の画像データと、当該画像データに含まれている動物の種類を示す教師データである正解テンソルとがディープラーニングフレームワーク1aに与えられる。
ディープラーニングフレームワーク1aは、学習用の画像データと正解テンソルとが与えられると、学習用の画像データに含まれている動物の種類を浮動小数点型推論モデル1bに学習させ、学習済みの浮動小数点型推論モデル1bを出力する。
浮動小数点型推論モデル1bは、学習用の画像データに含まれている動物の種類を学習する際、浮動小数点型の演算を行うことによって、浮動小数点型の重みパラメータを更新する。
図5に示すディープラーニングフレームワーク1aでは、浮動小数点型の演算として、浮動小数点型の線形関数が実行される例が示されている。図5に示すディープラーニングフレームワーク1aでは、損失計算が行われており、その計算結果は、浮動小数点型の重みパラメータを示している。損失計算自体は、公知の技術であるため詳細な説明を省略する。
図5に示すディープラーニングフレームワーク1aでは、浮動小数点型の演算の結果がONNX形式に変換され、その変換の結果が、浮動小数点型推論モデル1bとして出力されている。ONNX形式の変換処理自体は、公知の技術であるため詳細な説明を省略する。
【0025】
推論モデル生成部1は、例えば、量子化ライブラリ1cを用いて、浮動小数点型推論モデル1bに含まれている浮動小数点型の重みパラメータを量子化済みのPosit型の重みパラメータに変換することによって、Posit型推論モデル1dを生成する(図4のステップST1)。
具体的には、推論モデル生成部1は、量子化ライブラリ1cから、浮動小数点型推論モデル1bに含まれている浮動小数点型の重みパラメータに対応する量子化済みのPosit型の重みパラメータを取得する。
そして、推論モデル生成部1は、浮動小数点型推論モデル1bに含まれている浮動小数点型の重みパラメータを、取得した量子化済みのPosit型の重みパラメータに変換することによって、Posit型推論モデル1dを生成する。
因みに、浮動小数点型推論モデル1bに含まれている浮動小数点型の重みパラメータを量子化すれば、浮動小数点型推論モデル1bの推論速度を高めることができる。浮動小数点型の重みパラメータを量子化する処理としては、例えば、重みパラメータの小数点〇△以下を四捨五入する処理がある。しかし、浮動小数点型の重みパラメータを量子化すれば、浮動小数点型推論モデル1bの推論精度が劣化する可能性がある。
推論モデル生成部1は、Posit型推論モデル1dを言語変換部2に出力する。
【0026】
Positの表現形式は、IEE(Institute of Electrical and Electronics Engineers)標準の1つであるIEE754に記載されている浮動小数点の表現形式と異なるものである。
Positは、図6に示すように、4種類のビットフィールドを含むものである。4種類のビットフィールドは、“sign”、“regime”、“exponent”及び“fraction”である。
図6は、Positの表現形式を示す説明図である。
【0027】
Positは、数値のスケーリングを行う指数部が、“regime”のビットフィールドと“exponent”のビットフィールドとによって表現される点で、IEE754に記載されている浮動小数点と相違している。
また、Positは、それぞれのビットフィールドの長さが可変長である点で、IEE754に記載されている浮動小数点と相違している。
Positのビット数と、IEE754に記載されている浮動小数点のビット数とが同じである場合、表現できる値のレンジの広さが、IEE754に記載されている浮動小数点よりもPositの方が劣るものの、0近傍の値の精度が、IEE754に記載されている浮動小数点よりもPositの方が優れている。このため、Positは、表現対象のデータの精度の劣化を抑えつつ、データを量子化することが可能である。推論モデルに含まれる重みパラメータは、0近傍の値である。
したがって、Posit型推論モデル1dに含まれるPosit型の重みパラメータは、浮動小数点の重みパラメータを量子化するよりも、精度の劣化を招くことなく、量子化することが可能である。
【0028】
第1の言語変換処理部3は、推論モデル生成部1から、Posit型推論モデル1dを取得する。
第1の言語変換処理部3は、例えば、記述変換ツール3aを用いて、Posit型推論モデル1dのアルゴリズムを示すソースコードを、高位合成言語によって表現されているソースコードに変換する(図4のステップST2)。
第1の言語変換処理部3は、ソースコード変換後の推論モデル3bを第2の言語変換処理部4に出力する。
【0029】
以下、記述変換ツール3aによる推論モデルの変換アルゴリズムを説明する。
記述変換ツール3aは、例えば、図7に示すようなPosit型推論モデル1dに係るニューラルネットワークに基づいて、Posit型推論モデル1dが行う複数の演算を認識する。複数の演算としては、例えば、畳み込みの計算、MAXプーリング及び活性化関数の演算がある。
図7は、記述変換ツール3aによる推論モデルの変換を示す説明図である。
【0030】
記述変換ツール3aは、それぞれの演算毎に、Positに対応している関数の呼び出しを行う。当該関数は、Posit型の演算を浮動小数点の演算に変換するものである。
記述変換ツール3aは、それぞれの演算毎に、当該関数を実行することによって、Posit型の演算を浮動小数点の演算に変換する。
記述変換ツール3aは、それぞれの演算を浮動小数点の演算に変換した推論モデルのソースコードを高位合成言語のソースコードに変換することによって、Posit型推論モデル1dを、ソースコードが高位合成言語によって表現された推論モデル3bに変換する。
図7の例では、高位合成言語がC++言語である。
【0031】
ここでは、記述変換ツール3aが、Posit型の演算を浮動小数点の演算に変換し、浮動小数点の演算に変換した推論モデルのソースコードを高位合成言語のソースコードに変換している。しかし、これは一例に過ぎず、記述変換ツール3aが、Posit型推論モデル1dのソースコードを、直接、高位合成言語のソースコードに変換することによって、Posit型推論モデル1dを、ソースコードが高位合成言語によって表現された推論モデル3bに変換するようにしてもよい。
【0032】
第2の言語変換処理部4は、第1の言語変換処理部3から、ソースコードが高位合成言語によって表現された推論モデル3bを取得する。
第2の言語変換処理部4は、例えば、高位合成ツール4aを用いて、推論モデル3bのアルゴリズムを示すソースコードを、ハードウェア記述言語によって表現されているソースコードに変換する(図4のステップST3)。
第2の言語変換処理部4は、ソースコード変換後の推論モデル4bを、例えば、推論モデル4bをハードウェアに実装する装置(図示せず)に出力する。
【0033】
以下、高位合成ツール4aによる推論モデルの変換アルゴリズムを説明する。ただし、高位合成ツール4aは、公知のツールであるため、高位合成ツール4aによる推論モデルの変換アルゴリズムを簡単に説明する。
高位合成言語は、例えばビヘイビア記述であり、ハードウェア記述言語は、例えばHDL記述である。
図8は、高位合成に含まれている処理の1つであるカウンタの処理を示すビヘイビア記述の一例を示す説明図である。図9は、高位合成に含まれている処理の1つであるカウンタの処理を示すHDL記述の一例を示す説明図である。
高位合成ツール4aは、ビヘイビア記述が与えられると、例えば、図10に示すような高位合成を行うことによって、HDL記述を出力する。
図10は、高位合成ツール4aによる高位合成を示す説明図である。
図10の例では、高位合成として、アーキテクチャの自動探索、トップレベル記述の自動生成、高位合成用ライブラリの生成、スケジューリング、バインディング及び電力最適化が行われている。しかし、これは、あくまでも一例であり、これらと異なる高位合成であってもよい。
【0034】
以上の実施の形態1では、浮動小数点型の重みパラメータを含んでいる推論モデルである浮動小数点型推論モデル1bの重みパラメータを量子化済みのPosit型の重みパラメータに変換することによって、量子化済みのPosit型の重みパラメータを含んでいる推論モデルであるPosit型推論モデル1dを生成する推論モデル生成部1と、推論モデル生成部1により生成されたPosit型推論モデル1dのアルゴリズムを示すソースコードを、ハードウェア記述言語によって表現されているソースコードに変換する言語変換部2とを備えるように、推論モデル生成装置を構成した。したがって、推論モデル生成装置は、推論モデルの推論精度の劣化を抑えつつ、推論速度を高めることができる。
【0035】
実施の形態2.
実施の形態2では、Posit型のディープラーニングフレームワーク1eから、Posit型推論モデル1dを取得する推論モデル生成部5を備える推論モデル生成装置について説明する。
【0036】
図11は、実施の形態2に係る推論モデル生成装置を示す構成図である。図11において、図1と同一符号は、同一又は相当部分を示すので、詳細な説明を省略する。
図12は、実施の形態1に係る推論モデル生成装置のハードウェアを示すハードウェア構成図である。図12において、図2と同一符号は、同一又は相当部分を示すので、詳細な説明を省略する。
図11に示す推論モデル生成装置は、推論モデル生成部5及び言語変換部2を備えている。
【0037】
推論モデル生成部5は、例えば、図12に示す推論モデル生成回路13によって実現される。
推論モデル生成部5は、学習データをPosit型のディープラーニングフレームワーク1eに与えることによって、Posit型のディープラーニングフレームワーク1eから、量子化済みのPosit型の重みパラメータを含んでいる推論モデルであるPosit型推論モデル1dを取得する。
推論モデル生成部5は、Posit型推論モデル1dを言語変換部2に出力する。
【0038】
Posit型のディープラーニングフレームワーク1eは、学習データが与えられると、学習データをPosit型推論モデル1dに与えて、Posit型推論モデル1dに学習させるものである。
【0039】
図11では、推論モデル生成装置の構成要素である推論モデル生成部5及び言語変換部2のそれぞれが、図12に示すような専用のハードウェアによって実現されるものを想定している。即ち、推論モデル生成装置が、推論モデル生成回路13及び言語変換回路12によって実現されるものを想定している。
推論モデル生成回路13及び言語変換回路12のそれぞれは、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGA、又は、これらを組み合わせたものが該当する。
【0040】
推論モデル生成装置の構成要素は、専用のハードウェアによって実現されるものに限るものではなく、推論モデル生成装置が、ソフトウェア、ファームウェア、又は、ソフトウェアとファームウェアとの組み合わせによって実現されるものであってもよい。
ソフトウェア又はファームウェアは、プログラムとして、コンピュータのメモリに格納される。コンピュータは、プログラムを実行するハードウェアを意味し、例えば、CPU、GPU、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、あるいは、DSPが該当する。
【0041】
推論モデル生成装置が、ソフトウェア又はファームウェア等によって実現される場合、推論モデル生成部5及び言語変換部2におけるそれぞれの処理手順をコンピュータに実行させるためのプログラムが図3に示すメモリ21に格納される。そして、図3に示すプロセッサ22がメモリ21に格納されているプログラムを実行する。
【0042】
また、図12では、推論モデル生成装置の構成要素のそれぞれが専用のハードウェアによって実現される例を示し、図3では、推論モデル生成装置がソフトウェア又はファームウェア等によって実現される例を示している。しかし、これは一例に過ぎず、推論モデル生成装置における一部の構成要素が専用のハードウェアによって実現され、残りの構成要素がソフトウェア又はファームウェア等によって実現されるものであってもよい。
【0043】
次に、図11に示す推論モデル生成装置の動作について説明する。推論モデル生成部5以外は、図1に示す推論モデル生成装置と同様であるため、ここでは、推論モデル生成部5の動作のみを説明する。
推論モデル生成部5の内部メモリには、例えば、図13に示すようなPosit型のディープラーニングフレームワーク1eが格納されている。
図13は、Posit型のディープラーニングフレームワーク1eによるPosit型推論モデル1dの生成例を示す説明図である。
【0044】
推論モデル生成部5が、Posit型推論モデル1dとして、例えば、画像データに含まれている動物の種類を分類する推論モデルを生成する場合、学習データとして、学習用の画像データと、当該画像データに含まれている動物の種類を示す教師データである正解テンソルとがPosit型のディープラーニングフレームワーク1eに与えられる。
Posit型のディープラーニングフレームワーク1eは、学習用の画像データと正解テンソルとが与えられると、学習用の画像データに含まれている動物の種類をPosit型推論モデル1dに学習させ、学習済みのPosit型推論モデル1dを出力する。
Posit型推論モデル1dは、学習用の画像データに含まれている動物の種類を学習する際、Posit型の演算を行うことによって、Posit型の重みパラメータを更新する。
図13に示すPosit型のディープラーニングフレームワーク1eでは、Posit型の演算として、Posit型の線形関数が実行される例が示されている。図13に示すPosit型のディープラーニングフレームワーク1eでは、損失計算が行われており、その計算結果は、Posit型の重みパラメータを示している。損失計算自体は、公知の技術であるため詳細な説明を省略する。
図13に示すPosit型のディープラーニングフレームワーク1eでは、Posit型の演算の結果がONNX形式に変換され、その変換の結果が、Posit型推論モデル1dとして出力されている。ONNX形式の変換処理自体は、公知の技術であるため詳細な説明を省略する。
【0045】
推論モデル生成部5は、学習データをPosit型のディープラーニングフレームワーク1eに与えることによって、Posit型のディープラーニングフレームワーク1eから、量子化済みのPosit型の重みパラメータを含んでいる推論モデルであるPosit型推論モデル1dを取得する。
推論モデル生成部5は、Posit型推論モデル1dを言語変換部2に出力する。
【0046】
以上の実施の形態2では、学習データをPosit型のディープラーニングフレームワーク1eに与えることによって、Posit型のディープラーニングフレームワーク1eから、量子化済みのPosit型の重みパラメータを含んでいる推論モデルであるPosit型推論モデル1dを取得する推論モデル生成部5と、推論モデル生成部5により取得されたPosit型推論モデル1dのアルゴリズムを示すソースコードを、ハードウェア記述言語によって表現されているソースコードに変換する言語変換部2とを備えるように、推論モデル生成装置を構成した。したがって、推論モデル生成装置は、推論モデルの推論精度の劣化を抑えつつ、推論速度を高めることができる。
【0047】
なお、本開示は、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【0048】
1 推論モデル生成部、1a ディープラーニングフレームワーク、1b 浮動小数点型推論モデル、1c 量子化ライブラリ、1d Posit型推論モデル、1e Posit型のディープラーニングフレームワーク、2 言語変換部、3 第1の言語変換処理部、3a 記述変換ツール、3b 推論モデル、4 第2の言語変換処理部、4a 高位合成ツール、4b 推論モデル、5 推論モデル生成部、11 推論モデル生成回路、12 言語変換回路、13 推論モデル生成回路、21 メモリ、22 プロセッサ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13