(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025017237
(43)【公開日】2025-02-05
(54)【発明の名称】情報処理方法、プログラム並びに情報処理装置
(51)【国際特許分類】
G06N 3/082 20230101AFI20250129BHJP
【FI】
G06N3/082
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023120248
(22)【出願日】2023-07-24
(71)【出願人】
【識別番号】500433225
【氏名又は名称】学校法人中部大学
(74)【代理人】
【識別番号】110001128
【氏名又は名称】弁理士法人ゆうあい特許事務所
(72)【発明者】
【氏名】山下 隆義
(72)【発明者】
【氏名】藤吉 弘亘
(72)【発明者】
【氏名】平川 翼
(72)【発明者】
【氏名】小濱 大和
(57)【要約】
【課題】事前学習済みの学習モデルのモデルサイズを所定割合まで圧縮しつつ、処理性能の確保が可能な情報処理方法、プログラム並びに情報処理装置を提供する。
【解決手段】所定の学習データを用いて事前学習をした所定の学習モデルを、下流タスクでの再学習前に、事前学習済みのパラメータの評価値を算出する。パラメータの評価値は、マグニチュードベースの評価値と勾配ベースの評価値とを合算した合算評価値である。そして、事前学習済みのパラメータのうち合算評価値が低い順に、当該学習モデルのモデルサイズが所定の割合に至るまで枝刈りを行う。
【選択図】
図3
【特許請求の範囲】
【請求項1】
所定の学習データを用いて事前学習をしたニューラルネットワークを用いる所定の学習モデルにおいて、事前学習後のパラメータの一部の枝刈りを行うことで前記学習モデルのモデルサイズを所定の割合まで圧縮する情報処理方法であって、
下流タスクにおける再学習を行う前に、前記枝刈りをシングルショットで行うことと、
前記枝刈りを行う前に、前記パラメータについてマグニチュードベースの評価値と勾配ベースの評価値とを合算した合算評価値を算出することと、を含み、
前記枝刈りにおいては、前記パラメータのうち前記合算評価値が低い順に前記モデルサイズの前記所定の割合に至るまで枝刈りを行う、情報処理方法。
【請求項2】
前記合算評価値を算出することにおいては、事前学習後かつ再学習前の前記パラメータそれぞれについて前記パラメータの大きさを用いて前記マグニチュードベースの評価値を算出し、事前学習後の前記パラメータそれぞれについて前記パラメータの下流タスクに対する誤差の量を前記勾配ベースの評価値として算出し、前記マグニチュードベースの評価値にハイパーパラメータを乗じて得た値と前記勾配ベースの評価値とを合算する、請求項1に記載の情報処理方法。
【請求項3】
所定の学習データを用いて事前学習をしたニューラルネットワークを用いる所定の学習モデルにおいて、学習後のパラメータの一部の枝刈りを行うことで前記学習モデルのモデルサイズを所定の割合まで圧縮するために用いられるプログラムであって、
下流タスクにおける再学習を行う前に、前記枝刈りをシングルショットで行う枝刈り処理と、
前記枝刈りを行う前に、前記パラメータについてマグニチュードベースの評価値と勾配ベースの評価値とを合算した合算評価値を算出する算出処理と、を含み、
前記枝刈り処理においては、前記パラメータのうち前記評価値が低い順に前記モデルサイズの前記所定の割合に至るまで枝刈りを実行する、プログラム。
【請求項4】
前記合算評価値を算出することにおいては、事前学習後かつ再学習前の前記パラメータそれぞれについて前記パラメータの大きさを用いて前記マグニチュードベースの評価値を算出し、事前学習後の前記パラメータそれぞれについて前記パラメータの下流タスクに対する誤差の量を前記勾配ベースの評価値として算出し、前記マグニチュードベースの評価値にハイパーパラメータを乗じて得た値と前記勾配ベースの評価値とを合算する、請求項3に記載のプログラム。
【請求項5】
情報処理装置であって、
所定の学習データを用いて事前学習をしたニューラルネットワークを用いる所定の学習モデルにおいて、学習後のパラメータの一部の枝刈りを行うことで前記学習モデルのモデルサイズを所定の割合まで圧縮するために用いられるプログラム(42)を記録したメモリ(4)と、
前記プログラムを読み込んで実行する処理部(5)と、を備え、
前記プログラムは、下流タスクにおける再学習を行う前に、前記枝刈りをシングルショットで行う枝刈り処理と、前記枝刈りを行う前に、前記パラメータについてマグニチュードベースの評価値と勾配ベースの評価値とを合算した合算評価値を算出する算出処理と、を含み、前記枝刈り処理においては、前記パラメータのうち前記評価値が低い順に前記モデルサイズの前記所定の割合に至るまで枝刈りを実行する、情報処理装置。
【請求項6】
前記合算評価値を算出することにおいては、事前学習後かつ再学習前の前記パラメータそれぞれについて前記パラメータの大きさを用いて前記マグニチュードベースの評価値を算出し、事前学習後の前記パラメータそれぞれについて前記パラメータの下流タスクに対する誤差の量を前記勾配ベースの評価値として算出し、前記マグニチュードベースの評価値にハイパーパラメータを乗じて得た値と前記勾配ベースの評価値とを合算する、請求項5に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、事前学習を必要とする大規模な学習モデルのモデルサイズを圧縮する情報処理方法、プログラム並びに情報処理装置に関する。
【背景技術】
【0002】
従来、深層学習モデルとして、Transformerモデルが知られている。Transformerモデルは、大規模な事前学習を行うことで、例えば、画像分類、物体検出、セグメンテーション、言語処理などの様々なタスクで高い性能を発揮する。Transformerモデルの一種としては、画像認識モデルに適用されたVision Transformer(以下「ViT」という)が挙げられる(例えば非特許文献1)。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Dosovitskiy, A., Beyer, L., Kolesnikov, A., Weissenborn,D., Zhai, X., Unterthiner, T., Dehghani, M., Minderer, M., Heigold, G., Gelly, S., Uszkoreit, J. and Houlsby, N.:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale, International Conference on Learning Representations (2021).
【発明の概要】
【発明が解決しようとする課題】
【0004】
画像分類等に適用されたTransformerモデルは、内積を用いてデータ間の関連性を計算するため、情報の局在性を仮定するCNN(Convolutional Neural Network)と比較して帰納的バイアスが弱くなる。そのため、TransformerモデルがCNNの性能を超えるためには、多くのパラメータと大量の学習データを必要とする。また、実際にコンピュータビジョンの分野でTransformerモデルを用いる場合には、例えばImageNetのような大規模データセットを用いて事前学習した後、様々な下流タスクに対して再学習することが多い。
【0005】
しかしながら、パラメータ数の多いTransformerモデルは、高い汎化性能を発揮する一方、精度に寄与しない冗長なパラメータを多く含むことが知られており、必要以上の計算リソースを消費してしまう。このため、Transformerモデルを、計算リースの限られた端末や、高い推論速度が求められる環境に展開するためには、精度に寄与しない冗長なパラメータを枝刈りすることが重要となる。
【0006】
本開示は、上記の点に鑑み、大規模な事前学習を必要とする学習モデルを、再学習前に最小限の性能劣化でそのモデルサイズを圧縮することが可能な情報処理方法、プログラム並びに情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
本開示の1つの観点によれば、情報処理方法、プログラム並びに情報処理装置は、所定の学習データを用いて事前学習をしたニューラルネットワークを用いる所定の学習モデルにおいて、事前学習後のパラメータの一部の枝刈りを行うことで学習モデルのモデルサイズを所定の割合まで圧縮する。
【0008】
情報処理方法は、下流タスクにおける再学習を行う前に、枝刈りをシングルショットで行うことと、枝刈りを行う前に、パラメータについてマグニチュードベースの評価値と勾配ベースの評価値とを合算した合算評価値を算出することと、を含み、枝刈りにおいては、パラメータのうち合算評価値が低い順にモデルサイズの所定の割合に至るまで枝刈りを行う。
【0009】
プログラムは、下流タスクにおける再学習を行う前に、枝刈りをシングルショットで行う枝刈り処理と、枝刈りを行う前に、パラメータについてマグニチュードベースの評価値と勾配ベースの評価値とを合算した合算評価値を算出する算出処理と、を含み、枝刈り処理においては、パラメータのうち評価値が低い順にモデルサイズの所定の割合に至るまで枝刈りを実行する。
【0010】
情報処理装置は、学習後のパラメータの一部の枝刈りを行うことで学習モデルのモデルサイズを所定の割合まで圧縮するために用いられるプログラム(42)を記録したメモリ(4)と、プログラムを読み込んで実行する処理部(5)と、を備え、プログラムは、下流タスクにおける再学習を行う前に、枝刈りをシングルショットで行う枝刈り処理と、枝刈りを行う前に、パラメータについてマグニチュードベースの評価値と勾配ベースの評価値とを合算した合算評価値を算出する算出処理と、を含み、枝刈り処理においては、パラメータのうち評価値が低い順にモデルサイズの所定の割合に至るまで枝刈りを実行する。
【0011】
情報処理方法、プログラム並びに情報処理装置は、事前学習済みのパラメータについて、下流タスクの再学習前に、マグニチュードベースの評価値と勾配ベースの評価値とを合算した合算評価値を算出し、合算評価値の低い順にシングルショットで枝刈りを行う。このため、大規模な事前学習を必要とする学習モデルを、再学習前に、最小限の性能劣化に抑えつつ、そのモデルサイズを圧縮することが可能となる。
【0012】
なお、各構成要素等に付された括弧付きの参照符号は、その構成要素等と後述する実施形態に記載の具体的な構成要素等との対応関係の一例を示すものである。
【図面の簡単な説明】
【0013】
【
図1】実施形態に係る情報処理装置の構成例を示すブロック図である。
【
図2】ニューラルネットワークを用いる学習モデルおよびその枝刈りの説明図である。
【
図3】大規模な学習モデルに対する枝刈りの実行手順を示すフローチャートである。
【
図4】実施形態に係る事前学習を考慮した枝刈りのアルゴリズムの説明図である。
【
図5】ImageNet-21kで事前学習したViT-B/16の学習モデルについて、CIFAR-10を下流タスクとして再学習を行う前後のパラメータの変化を示すグラフである。
【
図6】ImageNet-21kで事前学習したMixer-B/16の学習モデルについて、CIFAR-10を下流タスクとして再学習を行う前後のパラメータの変化を示すグラフである。
【
図7】ImageNet-1kで事前学習したViT-B/16の学習モデルについて、CIFAR-10を下流タスクとして再学習を行う前後のパラメータの変化を示すグラフである。
【
図8】ImageNet-1kで事前学習したMixer-B/16の学習モデルについて、CIFAR-10を下流タスクとして再学習を行う前後のパラメータの変化を示すグラフである。
【
図9】事前学習を行わないViT-B/16の学習モデルについて、CIFAR-10を下流タスクとして学習を行う前後のパラメータの変化を示すグラフである。
【
図10】事前学習を行わないMixer-B/16の学習モデルについて、CIFAR-10を下流タスクとして学習を行う前後のパラメータの変化を示すグラフである。
【
図11】事前学習後のパラメータと再学習によるパラメータの変化量との関係を示すグラフである。
【
図12】各種Transformerモデルについて実施例の枝刈りを行った場合とランダムの枝刈りを行った場合の分類精度の比較結果を示す図である。
【
図13】各種Transformerモデルについて実施例の98%枝刈りを行った場合と比較例の98%枝刈りを行った場合において、CIFAR-10で再学習した後の分類精度の比較結果を示す図である。
【
図14】各種Transformerモデルについて実施例の98%枝刈りを行った場合と比較例の98%枝刈りを行った場合において、CIFAR-100で再学習した後の分類精度の比較結果を示す図である。
【
図15】2つのTransformerモデルについて実施例の98%枝刈りを行った場合と比較例の98%枝刈りを行った場合において、ImageNet-1kで再学習した後の分類精度の比較結果を示す図である。
【
図16】事前学習済みのTransformerモデルについて、枝刈り前、実施例の枝刈り後および比較例の枝刈り後の枝刈り率と分類精度との関係を示すグラフである。
【発明を実施するための形態】
【0014】
以下、本開示の実施形態について図に基づいて説明する。なお、以下の各実施形態相互において、互いに同一もしくは均等である部分には、同一符号を付して説明を行う。
【0015】
(実施形態)
実施形態に係る情報処理装置1について説明する。
【0016】
実施形態に係る情報処理装置1は、例えば
図1に示すように、操作装置2と、表示装置3と、メモリ4と、処理部5とを有してなる。情報処理装置1は、例えば、メモリ4に記録された学習済みの学習モデル41を用い、学習内容に応じて画像認識、言語処理、物体検出、セグメンテーションなどの各種の処理、すなわち下流タスクを実現する。情報処理装置1は、後述のプログラム42によって、事前学習済みの学習モデルに用いる大規模なパラメータ数のうち下流タスクにおける重要度の低いパラメータを削除することで、モデルサイズが圧縮された学習モデル41の構築が可能となっている。この詳細については、後述する。
【0017】
操作装置2は、例えば、人の操作を受け付け、受け付けた操作に応じた信号を処理部5に出力する装置である。操作装置2は、例えば、マウス、キーボード、タッチパネル等の任意の入力装置とされうる。
【0018】
表示装置3は、例えば、画像を表示する装置である。表示装置3は、例えば、学習モデル41を用いた各種の下流タスクによる結果、あるいはそのための操作などに関連する画像を表示する。
【0019】
メモリ4は、例えば、書き換え可能な揮発性記憶媒体であるRAM、書き換え不可能な不揮発性記憶媒体であるROM、書き換え可能な不揮発性記憶媒体であるフラッシュメモリなどで構成される。RAM、ROM、フラッシュメモリは、非遷移的実体的記憶媒体である。RAM、ROMとは、それぞれ、Random Access Memory、Read Only Memoryの略称である。メモリ4には、例えば、学習済みの学習モデル41のデータ、および学習モデル41のモデルサイズを圧縮するためのプログラム42があらかじめ記録されている。
【0020】
処理部5は、メモリ4に記憶された学習モデル41およびプログラム42を実行し、その実行の際にRAMを作業領域として用いることで、学習モデル41のモデルサイズの圧縮および種々の処理を実現する。
【0021】
ここで、学習モデル41およびプログラム42について説明する。
【0022】
例えば、学習モデル41は、
図2に示すように、多数のノードNを有し、縦方向に並んだノードNによりなる層が形成されるとともに、異なる層のノードN同士がエッジEにより繋がれたニューラルネットワークを用いた機械学習モデルである。学習モデル41は、例えば、Transformerモデルである。なお、
図2では、学習モデル41を分かり易くするため、ノードNおよびエッジEの数を少なくデフォルメしたものを示しており、事前学習済みの学習モデル41は、図示したものよりも多数のノードNおよびエッジEを有している。
【0023】
学習モデル41は、例えば、ViTのような画像認識モデルとする場合には、画像枚数が約3億枚のJFT-300Mや画像枚数が1400万枚以上のImageNet-21kなどの大量のデータセットで事前学習し、小規模のデータセットで再学習することで構築される。また、学習モデル41は、例えば、GPT-3のような大規模言語モデルとする場合には、Common Crawl、Web Text、Wikipediaなどの様々なテキストデータを混合して事前学習をすることで構築される。なお、GPTとは、Generative Pre-trained Transformerの略称である。学習モデル41は、例えば、上記の大規模なデータセットを用いて事前学習をしたTransformerモデルであり、プログラム42の実行により枝刈りがなされ、所定のモデルサイズとなっている。なお、大規模なデータセットとは、例えば、限定するものではないが、1000万以上の学習用データを有するものである。
【0024】
ここで、大規模な事前学習を行ったTransformerモデルは、高い汎化性能を有するものの、パラメータ数が非常に多く、精度に寄与しない冗長なパラメータを多く含み、必要以上の計算リソースを消費してしまう。例えば、Transformerモデルは、ViT-Hである場合、パラメータ数が6.3億であり、これらのパラメータを保持しておくために必要な容量が2.35GB(ギガバイト)となる。また、Transformerモデルは、例えば、GPT-3である場合、パラメータ数が1750億であり、これらのパラメータを保持しておくために必要な容量が558.8GBとなる。このため、大規模な事前学習を行ったTransformerモデルは、計算リソースが限られた端末に展開するためには、モデルサイズの圧縮が必要となる。なお、上記したパラメータを保持するために必要な容量は、学習モデルの構造を保持するための容量も必要となるため、1パラメータあたり4バイトで算出したものである。
【0025】
情報処理装置1は、プログラム42を実行することにより、例えば
図2に示すように、事前学習済みのTransformerモデルのノードNおよびエッジEの一部を削除する枝刈りを実行し、当初のモデルサイズを所定の割合まで圧縮した学習モデル41を構築する。これにより、情報処理装置1は、性能低下を最低限に抑えた上で、計算リソースが限られた端末や高い推論速度が求められる環境で Transformer モデルである学習モデル41を展開することを可能とする。なお、枝刈りとは、プルーニング(Pruning)とも称される。
【0026】
プログラム42は、事前学習済みのTransformerモデルの個々のパラメータについて後述の方法により評価値を算出する算出処理と、算出した評価値に基づく枝刈りの枝刈り処置とを実行するように構成されている。プログラム42は、枝刈り処理では、事前学習したパラメータのうち算出した評価値が低い順にモデルサイズが所定の割合に至るまで削除する枝刈りをシングルショットで実行するように構成されている。ここでいう所定の割合とは、事前学習済みのTransformerモデルの枝刈り前のモデルサイズを100%として、枝刈り後のモデルサイズの目標値(%)であり、例えば、Transformer モデルを展開させたい端末の計算リソースなどに応じて任意の値が設定されうる。
【0027】
以上が、情報処理装置1の基本的な構成である。なお、情報処理装置1は、例えば、プログラム42を処理部5で実行し、メモリ4に記録された、あるいは外部の記録媒体に記録されたTransformerモデルのモデルサイズの圧縮を主に実行する枝刈り専用のコンピュータとして構成されてもよい。
【0028】
〔枝刈りのアルゴリズム〕
次に、情報処理装置1による学習モデルの枝刈りのアルゴリズムについて説明する。
【0029】
下流タスクに対して最適化された学習モデル41は、例えば
図3に示す処理を経て構築される。ステップS110では、例えば、公知の方法により初期化したネットワークを作成する。続いて、ステップS120では、例えば、JFT-300MやImageNet-21kの大規模データセットを用い、ステップS110で作成したTransformerモデルに事前学習をさせる。
【0030】
次いで、ステップS130では、例えば、情報処理装置1は、プログラム42を読み込んで実行し、ステップS120で事前学習したTransformerモデルのパラメータのそれぞれについて後述する評価値を算出する。そして、ステップS140では、例えば、情報処理装置1は、事前学習したパラメータのうちステップS130で算出した評価値が低い順に、Transformerモデルのモデルサイズが所定の割合となるように枝刈りを実行する。なお、ステップS130、S140の処理は、下流タスクで再学習を行う前に実行される。
【0031】
最後に、ステップS150では、ステップS140で枝刈りしたTransformerモデルを下流タスクに対して最適化する処理を行う。
【0032】
以上の処理により、モデルサイズが所定の目標値に圧縮されつつも、性能低下が最低限に抑えられた学習モデル41を得ることができる。
【0033】
ステップS130ないしS140における事前学習を考慮した枝刈りについては、例えば
図4に示すアルゴリズムに従って実行される。
【0034】
例えば、第1段階では、学習データの集合Dから第3段階の評価値を算出するデータをランダムで選択する処理を行う。第2段階では、事前学習済みパラメータθのそれぞれについて、θqの値を算出する処理を行う。なお、θqとは、学習モデルのネットワークに含まれるq番目(q:2以上の整数)のパラメータである。
【0035】
第3段階では、パラメータθqについて、摂動を加えた場合におけるパラメータの変化についての評価値とパラメータθqの大きさそのものについての評価値とを合算した合算評価値を算出する。言い換えると、第3段階では、パラメータθqについて後述する勾配ベースの評価値とマグニチュードベースの評価値とを合算したスコアを算出する。第4段階では、第3段階の処理を事前学習済みのパラメータθのすべてに実行する。
【0036】
第5段階では、第4段階で算出したスコアに基づいて、圧縮したい割合である枝刈り率k(%)に対応する閾値を算出する。枝刈り率kとは、枝刈り前の学習モデルのモデルサイズを100%として、枝刈りにより削除するモデルサイズの割合である。例えば、枝刈り率kを90%に設定したとき、得られる学習モデル41のモデルサイズは、枝刈り前のモデルサイズの約10%となる。
【0037】
第6段階では、パラメータのうち第5段階で算出した閾値以下のものを削除するためのマスクを作成する。最後の第7段階では、第6段階で作成したマスクを用い、第5段階で算出した閾値以下のパラメータの削除、すなわち枝刈りを実行する。
【0038】
〔事前学習とパラメータの変化〕
事前学習の有無によって、Transformerモデルを下流タスクに最適化する際にパラメータが、再学習の前後でどのように変化するのかを調査したところ、
図5ないし
図11に示す結果が得られた。具体的には、学習モデルについてはImageNet-1kまたはImageNet-21kで事前学習したViT-B/16およびMixer-B/16とし、下流タスクについては画像認識タスクCIFAR-10で再学習した際のパラメータを比較した。
【0039】
なお、
図5~
図8に示すグラフの横軸が学習モデルの事前学習後のパラメータであり、縦軸がCIFAR-10による再学習後のパラメータである。
図9、
図10に示すグラフの横軸が学習モデルの初期のパラメータであり、縦軸がCIFAR-10による学習後のパラメータである。また、
図5~
図10では、パラメータの変化の度合いを分かり易くするため、CIFAR-10による学習の前後におけるパラメータが変化しないと仮定した場合を破線で示している。
図11に示すグラフにおける横軸は学習モデルの事前学習後のパラメータであり、縦軸がCIFAR-10による再学習に伴うパラメータの変化量である。
【0040】
以下、説明の便宜上、ImageNet-1kで事前学習したViT-B/16を「ViT-B/16 ImageNet-1k」、ImageNet-21kで事前学習したViT-B/16を「ViT-B/16 ImageNet-21k」、事前学習なしのViT-B/16を「ViT-B/16 Scratch」、とそれぞれ称する。また、ImageNet-1kで事前学習したMixer-B/16を「Mixer-B/16 ImageNet-1k」、ImageNet-21kで事前学習したMixer-B/16を「Mixer-B/16 ImageNet-21k」、事前学習なしのMixer-B/16を「Mixer-B/16 Scratch」、とそれぞれ称する。
【0041】
なお、CIFAR-10 を学習する際のバッチサイズを128とし、初期学習率を0.0001として、Adamによる最適化を200エポックの学習で行った。また、誤差関数としては、交差エントロピーを使用した。
【0042】
例えば
図5、
図6に示すように、ViT-B/16 ImageNet-21kおよびMixer-B/16 ImageNet-21kのように、大規模なデータセットを用いて事前学習を行った場合、パラメータは、再学習の前後において、値がほぼ変化しなかった。一方、
図7、
図8に示すように、ImageNet-21kよりも事前学習のデータセットの規模が小さいViT-B/16 ImageNet-1kおよびMixer-B/16 ImageNet-1kでは、パラメータは、値が再学習の前後において不規則に変化した。さらに、
図9、
図10に示すように、事前学習なしのViT-B/16 ScratchおよびMixer-B/16 Scratchでは、パラメータは、下流タスクでの学習の前後において、値が最も大きく変化した。つまり、学習モデルのパラメータの値は、事前学習に用いるデータセットの規模に比例して、再学習の前後における変化が減少した。これらの結果は、ImageNet-21kの事前学習によって得られた知識が、CIFAR-10 のような下流タスクで十分に活用されていることを意味している。
【0043】
また、再学習の前後におけるパラメータの変化量は、例えば
図11に示すように、事前学習後かつ再学習前のパラメータの値が0に近いほど大きく、当該パラメータの値が大きくなるほど小さくなる傾向が得られた。このため、パラメータのうち再学習前後においてほぼ変化しないスケールの大きいものは、事前学習で得られる有用な知識であると考えられる。また、パラメータのうち値が0付近であって、他のものと比べて再学習前後における変化が大きいものは、下流タスクから得られる新たな知識であると考えられる。
【0044】
実施形態に係る枝刈り方法は、上記の結果に鑑み、下流タスクへの再学習前に重要度の高いパラメータを予測し、重要度の低いパラメータから順に削除する、いわば非構造的な枝刈りを実行することで学習モデルのモデルサイズの圧縮を行うものである。
【0045】
〔枝刈りにおけるパラメータの評価〕
次に、実施形態に係る枝刈りにおけるパラメータの評価について説明するが、まず、従来の枝刈り方法について述べる。
【0046】
従来のニューラルネットワークの枝刈り方法としては、例えば、magnitude pruning(以下、単に「マグニチュード」という)が知られている。マグニチュードは、学習後のパラメータを絶対値の小さいものから順番に削除する枝刈り方法である。パラメータの大きさを用いて枝刈りを行う従来のマグニチュードベースの方法は、学習と枝刈りを繰り返すことで学習モデルのモデルサイズの圧縮を行う。
【0047】
Transformerモデルの枝刈りは、主にマルチヘッドアテンションのヘッドを削除することで行われる。例えば、マルチヘッドアテンションに含まれるヘッドに対してゲーティングパラメータを付加し、それらをL0 lossを用いて正則化することで冗長なヘッドを削除する方法が提案されている。また、Attention Confidence に基づいて各ヘッドを評価して枝刈りを実現する方法も提案されている。しかしながら、これらの枝刈り方法は、適用範囲がマルチヘッドアテンションに限られるため、multi-layerperceptron(MLP)のパラメータを圧縮することができない。また、これらの枝刈り方法は、MLP-MixerやPoolFormerのように、マルチヘッドアテンションを持たないTransformerモデルに対しては適用することができない。
【0048】
学習を必要としない従来の枝刈り方法としては、例えば、Single-Shot Network Pruning(SNIP)が知られている。SNIPは、以下の(1)式 に示すように、パラメータに摂動δを与えた際に、学習モデルのネットワークの誤差Lがどの程度影響を受けるのかを定量的に評価する方法である。
【0049】
【数1】
(1)式におけるθ
qは、学習モデルのネットワークに含まれるq番目のパラメータであり、O(||δθ
q||
2) は、二次以上のオーダー表記である。パラメータのうちΔLが小さいものは、削除した際の誤差への影響が小さいと考えることができる。このため、SNIPは、ΔLが小さいパラメータを順番に削除することにより、効率的に枝刈りを行うことができる。
【0050】
また、SNIPの派生方法としては、例えば、Gradient Signal Preservation(GraSP)が挙げられる。GraSPは、以下の(2)式に示すように、へシアンを考慮することで、学習モデルのパラメータ同士の関係性をより厳密に定義する方法である。
【0051】
【数2】
(2)式におけるHgは Hessian-vector productである。GraSPは、(2)式を用いてgradient flowを低下させるパラメータを枝刈りすることで、モデル圧縮を行う手法である。以下、説明の簡便化のため、パラメータと誤差の感度を評価するSNIPやパラメータ同士の関係性を評価するGraSPなどの枝刈りにおける評価方法を「勾配ベースの方法」と称する。
【0052】
次に、実施形態に係る枝刈り方法におけるパラメータの評価について説明する。
【0053】
本評価は、値が0付近の変化しやすいパラメータを評価する手法に基づく第1の評価値Sa、およびスケールの大きいほぼ変化しないパラメータを評価する手法に基づく第2の評価値Sbを算出し、これらを合算した合算評価値Sを算出する。第1の評価値Saは、勾配ベースの方法であり、以下の(3)式により算出される。
【0054】
【数3】
(3)式におけるLは下流タスクに対する誤差、xは下流タスクの学習データ、θ
qはある1つの事前学習済みのパラメータ(θq∈θ)、δは摂動である。これにより、事前学習済みの各パラメータについて、下流タスクにおける誤差への感度の評価値S
aが算出される。
【0055】
しかしながら、大規模なデータセットにより十分な事前学習が行われた場合、または次元数が大きいネットワークを用いている場合においては、パラメータの勾配は、極端に小さくなる。このようなパラメータがほぼ変化しない場合に、勾配ベースの第1の評価値Saのみを用いて枝刈りを行っても、その効果を十分に得ることができない。そこで、情報処理装置1は、第2の評価値Sbを算出する。
【0056】
第2の評価値Sbは、マグニチュードベースの方法であり、以下の(4)式により算出される。
【0057】
【数4】
これにより、事前学習で得られたパラメータの大きさをそのまま評価した第2の評価値S
bが算出される。しかしながら、マグニチュードベースの第2の評価値S
bのみでは、値が0付近と小さく、再学習前後で変化しやすいパラメータについては適切に評価できず、第2の評価値S
bのみを用いて枝刈りを行った場合も、その効果を十分に得ることができない。
【0058】
そこで、情報処理装置1は、以下の(5)式により、第1の評価値Saと第2の評価値Sbとに基づいた合算評価値Sを算出する。
【0059】
【数5】
(5)式におけるαは、パラメータの大きさを考慮するためのハイパーパラメータである。これにより、下流タスクに最適化されるパラメータと、事前学習によって得られたほぼ変化しないパラメータとの両方を同時に評価し、事前学習済みの学習モデル特有の知識獲得傾向を考慮した合算評価値Sが得られる。
【0060】
〔実施形態に係る枝刈りの効果〕
次に、実施形態に係る枝刈りの効果について説明する。
【0061】
様々なTransformerモデルを用いて評価実験を行ったところ、
図12~
図16に示す結果が得られた。
図12では、ランダムに枝刈りをした場合における分類精度の結果を括弧内に示し、実施例の枝刈りをした場合における分類精度の結果を括弧外に示している。
【0062】
なお、この評価実験では、Transformerモデルとして、ViT-B/16、ViT-L/16、Mixer-B/16、Mixer-L/16、Pool-M36およびPool-M48を用い、事前学習にはImageNet-21kを使用した。また、下流タスクとしては、CIFAR-10、CIFAR-100、及びImageNet-1kを用い、各Transformerモデルについて、枝刈り率を90%、95%、98%に設定し、実施例の枝刈りを行った場合とランダムの枝刈りを行った場合における分類精度の比較を行った。また、CIFAR-10とCIFAR-100を学習する際のバッチサイズを128とし、ImageNet-1kを学習する際のバッチサイズを512とした。また、実施例の枝刈り方法で使用するハイパーパラメータαを0.001とした。
【0063】
さらに、枝刈りする対象は、全てのトークンミキサーとチャンネルミキサーである。ただし、PoolFormerの学習モデルについては、トークンミキサーがノンパラメトリックであるため、チャンネルミキサーのみ枝刈りを行った。また、枝刈りは、非構造的にシングルショットで行った。枝刈りしたネットワークは、初期学習率を0.0001として、Adamを用いて最適化を行った。学習回数は、CIFAR-10では200エポック、CIFAR-100では250エポック、ImageNet-1kでは200エポックとした。誤差関数としては、交差エントロピーを使用した。
【0064】
実施例の枝刈りをしたモデルは、
図12に示すように、ランダムに枝刈りをしたモデルと比較して、CIFAR-10とCIFAR-100を用いて再学習した際の評価用データに対する分類精度が上記した各Transformerモデルにおいても向上した。以下、説明の簡便化のため、CIFAR-10またはCIFAR-100を用いて再学習した際の評価用データに対する分類精度を単に「CIFAR-10での分類精度」、「CIFAR-100での分類精度」と称する。
【0065】
例えば、枝刈り率90%、95%、98%でランダムに枝刈りしたViT-B/16は、CIFAR-10での分類精度がそれぞれ85.70%、83.45%、81.95%、CIFAR-100での分類精度がそれぞれ61.24%、57.22%、55.59%であった。
【0066】
一方、枝刈り率90%、95%、98%で実施例の枝刈りしたViT-B/16は、CIFAR-10での分類精度がそれぞれ95.92%、94.37%、90.92%、CIFAR-100での分類精度がそれぞれ81.09%、77.05%、68.35%であった。このように、実施例の枝刈りをしたViT-B/16は、ランダムに枝刈りをした場合に比べて、いずれの枝刈り率においてもCIFAR-10、CIFAR-100での分類精度がすべて向上した。
【0067】
また、ViT-L/16、Mixer-B/16、Mixer-L/16、Pool-M36およびPool-M48のいずれのモデルについても、実施例の枝刈りをした場合のほうがランダムに枝刈りをした場合に比べて、いずれの枝刈り率においてもCIFAR-10、CIFAR-100での分類精度がすべて向上した。さらに、実施例の枝刈りをした各Transformerモデルは、枝刈り率90%および95%では、すべて分類精度が90%を超えており、枝刈り率98%であっても、Mixer-B/16、Mixer-L/16を除き、すべて分類精度が90%を超えていた。
【0068】
なお、PoolFormer の学習モデルは、ViTやMLP-Mixerの学習モデルと比較して、分類精度が高くなる傾向であった。これは、枝刈りによってViTやMLP-Mixer のトークンミキサーがパッチ間の特徴量のほとんどを失う一方で、PoolFormerのトークンミキサーが枝刈りの影響を受けず、プーリング層のみで安定したパッチ間の情報の混合を行えているためであると考えられる。
【0069】
次に、枝刈り率98%で実施例の枝刈りをしたモデルおよび比較例の枝刈りをしたモデルについて、CIFAR-10またはCIFAR-100での分類精度を比較したところ、
図13、
図14に示す結果が得られた。
【0070】
比較例の枝刈り方法は、従来手法であるマグニチュード、SNIPおよびGraSPとした。実施例の枝刈り方法におけるハイパーパラメータαは、すべて0.001とした。
【0071】
ViT-B/16は、
図13に示すように、CIFAR-10での分類精度がマグニチュードでは83.38%、SNIPでは88.50%、GraSPでは85.70%に対し、実施例では90.92%であり、比較例よりも高かった。ViT-L/16、Mixer-L/16、Pool-M36およびPool-M48は、ViT-B/16と同様に、CIFAR-10での分類精度がマグニチュード、SNIP、GraSPに比べて高かった。Mixer-B/16は、CIFAR-10での分類精度がマグニチュードでは84.20%、SNIPでは89.57%、GraSPでは84.84%に対し、実施例では87.05%であり、マグニチュードやGraSPよりも高かった。
【0072】
また、ViT-B/16は、
図14に示すように、CIFAR-100での分類精度がマグニチュードでは57.99%、SNIPでは63.82%、GraSPでは60.71%に対し、実施例では68.35%であり、比較例よりも高かった。ViT-L/16、Mixer-L/16、Pool-M36およびPool-M48は、ViT-B/16と同様に、CIFAR-100での分類精度がマグニチュード、SNIP、GraSPに比べて高かった。Mixer-B/16は、CIFAR-10での分類精度がマグニチュードでは62.44%、SNIPでは67.31%、GraSPでは61.07%に対し、実施例では63.26%であり、マグニチュードやGraSPよりも高かった。
【0073】
次に、枝刈り率98%で実施例の枝刈りをしたモデルおよび比較例の枝刈りをしたモデルについて、ImageNet-1kを用いて再学習した際の評価用データに対する分類精度(以下「ImageNet-1kでの分類精度」という)を比較した。
【0074】
ViT-B/16は、
図15に示すように、ImageNet-1kでの分類精度がマグニチュードでは78.62%、SNIPでは79.07%、GraSPでは77.23%に対し、実施例では79.02%であり、比較例以上であった。ViT-L/16は、ImageNet-1kでの分類精度がマグニチュードでは80.60%、SNIPでは80.61%、GraSPでは78.53%に対し、実施例では80.79%であり、比較例よりも高かった。
【0075】
図13~
図15に示す結果は、実施例の枝刈り方法が比較例に比べて高い分類精度が得られるとともに、CIFAR-10からImageNet-1kまでの様々な規模のデータセットにおいても有効であることを意味している。
【0076】
また、枝刈り前、実施例の枝刈り後、比較例の枝刈り後のそれぞれのViT-L/16モデルについて、枝刈り率と分類精度との関係を比較したところ、
図16に示す結果が得られた。
図16は、事前学習をImageNet-21kにより行い、枝刈り前のパラメータ数が3.1億であり、このパラメータ数を保持するために要する容量が1.15GBであり、下流タスクをCIFAR-10として得られた結果を示している。
【0077】
実施例は、枝刈り率90%、95%、98%のいずれにおいても、比較例のマグニチュード、SNIP、GraSPのいずれよりも分類精度が高く、その分類精度が94%以上であった。また、枝刈り前の学習モデルの分類精度が約98%であることから、
図16に示す結果は、実施例の枝刈り方法が従来の枝刈り方法に比べて、枝刈り前後における分類精度の低下を最も抑制し、モデルサイズを90%以上削減しながらも処理性能を高く維持できていることを意味している。
【0078】
上記では、Transformerモデルに大規模な画像データセットを用いた事前学習をさせ、画像認識モデルとしたものの枝刈りについて説明したが、言語モデルなどの他のモデルとして構築した場合であっても、性能確保およびモデルサイズ圧縮の両立が期待される。例えば、画像認識モデルViT-Hについて実施例の枝刈りにより98%の圧縮を行った場合、性能低下を最小限に抑えつつ、パラメータを保持するために必要な容量が2.35GBから47MB(メガバイト)に削減される。また、言語モデルGPT-3について実施例の枝刈りにより98%の圧縮を行った場合、パラメータを保持するために必要な容量が558.8GBから11.2GBに削減される。
【0079】
本実施形態によれば、大規模データセットにより事前学習したTransformerモデルのパラメータを下流タスクでの再学習前に評価値を算出し、当該評価値の低い順に所定の枝刈り率kで枝刈りを実行する情報処理装置1、プログラム42および枝刈り方法となる。これにより、性能低下を抑制しつつも、計算リソースが限られた端末にも展開可能なモデルサイズにまで圧縮された学習モデル41の構築が可能となる。
【0080】
また、枝刈りをシングルショットで行うため、モデルサイズの圧縮における学習および枝刈りの繰り返しが不要となる。さらに、下流タスクでの再学習前に枝刈りを実行するため、枝刈り後の学習モデルの再学習時の計算コストが削減され、推論時間が高速化される効果も得られる。
【0081】
また、事前学習を考慮したパラメータの評価指標に基づくスコアを算出し、パラメータの評価および枝刈りを実行するため、学習モデルのネットワーク構造に依存せず、様々なモデルに対して適用することが可能となる。
【0082】
なお、上記では、学習モデルを画像認識モデルや言語モデルとして最適化する場合について説明したが、これに限定されるものではなく、勿論、他の用途にも適用されうる。また、実施形態に係る枝刈り方法は、大規模データセットによる事前学習済みの学習モデルの圧縮に適用されると好適であるが、中規模以下のデータセットによる事前学習済みの学習モデルに適用しても、性能低下の抑制とサイズ圧縮とを両立する効果が得られる。
【0083】
(他の実施形態)
なお、上記実施形態において、実施形態を構成する要素は、特に必須であると明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。また、上記実施形態において、実施形態の構成要素の個数、数値、量、範囲等の数値が言及されている場合、特に必須であると明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではない。また、上記実施形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に特定の形状、位置関係等に限定される場合等を除き、その形状、位置関係等に限定されるものではない。
【0084】
また、上記実施形態の情報処理装置1および枝刈り方法は、実施例に準拠して記載したが、当該実施例や構成に限定されるものではなく、可能な範囲内において変更されてもよい。
【符号の説明】
【0085】
4 メモリ
42 プログラム
5 処理部