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

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

▶ 富士通株式会社の特許一覧

特開2024-58881機械学習プログラムおよび機械学習方法
<>
  • 特開-機械学習プログラムおよび機械学習方法 図1
  • 特開-機械学習プログラムおよび機械学習方法 図2
  • 特開-機械学習プログラムおよび機械学習方法 図3
  • 特開-機械学習プログラムおよび機械学習方法 図4
  • 特開-機械学習プログラムおよび機械学習方法 図5
  • 特開-機械学習プログラムおよび機械学習方法 図6
  • 特開-機械学習プログラムおよび機械学習方法 図7
  • 特開-機械学習プログラムおよび機械学習方法 図8
  • 特開-機械学習プログラムおよび機械学習方法 図9
  • 特開-機械学習プログラムおよび機械学習方法 図10
  • 特開-機械学習プログラムおよび機械学習方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024058881
(43)【公開日】2024-04-30
(54)【発明の名称】機械学習プログラムおよび機械学習方法
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240422BHJP
   G06N 3/04 20230101ALI20240422BHJP
   G06N 3/08 20230101ALI20240422BHJP
【FI】
G06N20/00
G06N3/04
G06N3/08
【審査請求】未請求
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2022166277
(22)【出願日】2022-10-17
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110003649
【氏名又は名称】弁理士法人真田特許事務所
(74)【代理人】
【識別番号】100189201
【弁理士】
【氏名又は名称】横田 功
(72)【発明者】
【氏名】坂井 靖文
(57)【要約】
【課題】機械学習モデルの推論精度を向上させる。
【解決手段】事前学習された複数の層と、ダウンストリームタスクに合わせて形成され複数の層のうちの最終層に接続される第一出力層と、複数の層のうちの最終層以外の層のそれぞれの出力に接続され、第一出力層と同じ構成を有する複数の第二出力層とを有する機械学習モデルに対して、機械学習モデルの第一出力層および第二出力層だけをダウンストリームタスクで訓練した後に、第一出力層および第二出力層を含む機械学習モデル全体をダウンストリームタスクで訓練する。
【選択図】図5
【特許請求の範囲】
【請求項1】
事前学習された複数の層と、ダウンストリームタスクに合わせて形成され前記複数の層のうちの最終層に接続される第一出力層と、前記複数の層のうちの前記最終層以外の層のそれぞれの出力に接続され、前記第一出力層と同じ構成を有する複数の第二出力層とを有する機械学習モデルに対して、
前記機械学習モデルの前記第一出力層および前記第二出力層だけを前記ダウンストリームタスクで訓練し、
前記第一出力層および前記第二出力層を含む前記機械学習モデル全体を前記ダウンストリームタスクで訓練する
処理をコンピュータに実行させることを特徴とする機械学習プログラム。
【請求項2】
事前学習された前記複数の層を有する事前学習済みモデルに対して、前記複数の層のうちの前記最終層に接続された出力層を、前記ダウンストリームタスクに合わせて形成された前記第一出力層に置換し、
前記複数の層のうちの前記最終層以外の層のそれぞれの出力に、前記第一出力層と同じ構成を有する前記第二出力層をそれぞれ接続することで、前記機械学習モデルを生成する
処理を前記コンピュータに実行させることを特徴とする請求項1に記載の機械学習プログラム。
【請求項3】
事前学習された複数の層と、ダウンストリームタスクに合わせて形成され前記複数の層のうちの最終層に接続される第一出力層と、前記複数の層のうちの前記最終層以外の層のそれぞれの出力に接続され、前記第一出力層と同じ構成を有する複数の第二出力層とを有する機械学習モデルに対して、
前記機械学習モデルの前記第一出力層および前記第二出力層だけを前記ダウンストリームタスクで訓練し、
前記第一出力層および前記第二出力層を含む前記機械学習モデル全体を前記ダウンストリームタスクで訓練する
処理をコンピュータが実行することを特徴とする機械学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習プログラムおよび機械学習方法に関する。
【背景技術】
【0002】
近年、BERT(Bidirectional Encoder Representations from Transformers)などの事前学習済みモデルを活用した転移学習が実現されている。
【0003】
転移学習においては、事前学習タスクを用いて訓練(機械学習)を行なった機械学習モデルの一部を、ユーザが行なわせたいタスク(ダウンストリームタスク:downstream task)に合わせて変更する。事前学習タスクを用いて訓練を行なった機械学習モデルを事前学習済みモデルといってよい。例えば、事前学習済みモデルの出力層をダウンストリームタスクに合わせた出力層に置換してよい。ダウンストリームタスクを下流タスクといってもよい。
【0004】
転移学習においては、このように出力層などの一部をダウンストリームタスクに合わせて変更した事前学習済みモデルを、ダウンストリームタスクを用いて再訓練する。事前学習済みモデルをダウンストリームタスクを用いて再訓練することをファインチューニングといってよい。
【0005】
機械学習モデルの転移学習手法として、例えば、ファインチューニングにおいて、事前学習済みモデルに含まれる分類器だけを訓練する技術(例えば、特許文献1および特許文献2参照)や、事前学習済みモデルの全体を訓練する技術(例えば、特許文献3参照)が知られている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】米国特許出願公開第2019/0095764号明細書
【特許文献2】特開2020-119508号公報
【特許文献3】特開2022-102095号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
このような従来の転移学習手法において、機械学習モデルの推論精度の向上が求められている。
【0008】
1つの側面では、本発明は、機械学習モデルの推論精度を向上させることを目的とする。
【課題を解決するための手段】
【0009】
このため、この機械学習プログラムは、事前学習された複数の層と、ダウンストリームタスクに合わせて形成され前記複数の層のうちの最終層に接続される第一出力層と、前記複数の層のうちの前記最終層以外の層のそれぞれの出力に接続され、前記第一出力層と同じ構成を有する複数の第二出力層とを有する機械学習モデルに対して、前記機械学習モデルの前記第一出力層および前記第二出力層だけを前記ダウンストリームタスクで訓練し、前記第一出力層および前記第二出力層を含む前記機械学習モデル全体を前記ダウンストリームタスクで訓練する処理をコンピュータに実行させる。
【発明の効果】
【0010】
一実施形態によれば、機械学習モデルの推論精度を向上させることができる。
【図面の簡単な説明】
【0011】
図1】実施形態の一例としてのモデル生成装置の機能構成を示す図である。
図2】実施形態の一例としてのモデル生成装置の機能を実現するコンピュータのハードウェア構成を示すブロック図である。
図3】実施形態の一例としてのモデル生成装置のバックボーン生成部によって生成されるバックボーンを説明するための図である。
図4】実施形態の一例としてのモデル生成装置のアーリーエグジット向けモデル生成部によって生成されるアーリーエグジット向けモデルを説明するための図である。
図5】実施形態の一例としてのモデル生成装置によるモデル生成方法を説明するためのフローチャートである。
図6】実施形態の一例としてのモデル生成装置の第一ファインチューニング処理部および第二ファインチューニング処理部による訓練対象モデルの訓練方法を説明するためのフローチャートである。
図7】実施形態の一例としてのモデル生成装置により訓練されたモデルの推論精度を従来手法で訓練されたモデルと比較して示す図である。
図8】実施形態の一例としてのモデル生成装置により訓練されたモデルの推論精度を従来手法で訓練されたモデルと比較して示す図である。
図9】第一ファインチューニング処理部および第二ファインチューニング処理部による訓練対象モデルの訓練方法の第一変形例を示すフローチャートである。
図10】第一ファインチューニング処理部および第二ファインチューニング処理部による訓練対象モデルの訓練方法の第二変形例を示すフローチャートである。
図11】アーリーエグジットを適用した事前学習済みモデルを例示する図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して本機械学習プログラムおよび機械学習方法にかかる実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形(実施形態および各変形例を組み合わせる等)して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【0013】
(A)関連技術
ニューラルネットワークの推論高速化を実現する手法として、アーリーエグジット(Early exit)が知られている。
【0014】
図11はアーリーエグジットを適用した事前学習済みモデルを例示する図である。
【0015】
図11においては、複数(図11に示す例ではL個)の層(Encoder block)と、最終層の分類器(Teacher-Classifier)とを有する基本モデルが示されている。この基本モデルをバックボーン(Backbone)といってよい。また、アーリーエグジットを適用した事前学習済みモデルをアーリーエグジット適用モデルといってよい。
【0016】
バックボーンにおける複数の層のそれぞれはエンコーダであってよく、バックボーンにおいては、これらの複数の層が繰り返しスタックされてよい。バックボーンにおける複数の層は、それぞれ事前学習タスクを用いて事前学習済みである。
【0017】
バックボーンの最終層には、事前学習において用いられた分類器に代えて、ダウンストリームタスクに応じて構成された分類器が接続される。この最終層に接続される分類器は、訓練開始前(初期状態)においては、未学習の(例えばランダムな)パラメータを有する。
【0018】
また、バックボーンに備えられる各層の出力には、最終層に接続される分類器と同じ構成の分類器(Student-Classifier)がそれぞれ接続される。これらの各出力に接続される分類器をブランチ(Branch)といってよい。
【0019】
このようなアーリーエグジット適用モデルにおいては、推論時に、各分類器の出力で推論データの不確かさ(Uncertainty)を計算する。計算された不確かさが所定の閾値を満たす場合に、その分類器の予測を最終結果とし、それより後段の層に推論データを流さないことで推論を高速化することができる。
【0020】
また、アーリーエグジット適用モデルに対するファインチューニングは、アーリーエグジットを未適用の事前学習済みモデルに対するファインチューニングと同様に行なわれる。すなわち、ファインチューニングにおいて、バックボーンとブランチとに対して一度にダウンストリームタスクを用いた訓練が行なわれる。これにより、バックボーンにおける事前学習済みの部分(各層)の訓練と、訓練がされていない各分類器(Teacher-ClassifierおよびStudent-Classifier)の訓練とが同時に行なわれる。
【0021】
しかしながら、このようにファインチューニングされたアーリーエグジット適用モデルの推論精度は、アーリーエグジットなしのモデルに比べて低下する。
【0022】
これは、バックボーンの最終層に接続された分類器やブランチの各分類器が、それぞれ訓練されていないランダムなパラメータを有し、ファインチューニングにおいて、これらの分類器から逆伝搬される勾配がより大きくなり、この大きな勾配が各層のパラメータに悪影響を及ぼすことが原因と考えられる。
【0023】
ニューラルネットワークにおいては、タスクの推論を高精度で行なうことが求められており、転移学習により訓練時間の短縮を実現する代わりにモデルの推論精度が低下することは望ましくない。
【0024】
また、アーリーエグジットは、モデルの浅い層で推論結果を出力させることで推論の高速化を実現する手法であるが、モデルの浅い層で推論結果を出力させるには、浅い層における推論精度の改善が必要とされる。換言すると、推論精度が低下すると、アーリーエグジットによる推論の高速化を実現することができない。
【0025】
本モデル生成装置1においては、アーリーエグジット適用モデルに対して性能低下を生じさせることなくファインチューニングを行なう。
【0026】
(B)実施形態
図1は実施形態の一例としてのモデル生成装置1の機能構成を示す図である。
【0027】
本モデル生成装置1は、アーリーエグジット適用モデルを生成する。本モデル生成装置1は、転移学習を用いて作成した基本モデル(バックボーン)に基づいてアーリーエグジット向けモデルを生成する。さらに、本モデル生成装置1は、生成したアーリーエグジット向けモデルに対してファインチューニングを実施する。基本モデルはニューラルネットワークである。
【0028】
(B-1)ハードウェア構成例
図2は実施形態の一例としてのモデル生成装置1の機能を実現するコンピュータ10のハードウェア(HW)構成を示すブロック図である。モデル生成装置1の機能を実現するHWリソースとして、複数のコンピュータが用いられる場合は、各コンピュータが図2に例示するHW構成を備えてよい。
【0029】
図2に示すように、コンピュータ10は、HW構成として、例示的に、プロセッサ10a、グラフィック処理装置10b、メモリ10c、記憶部10d、IF(Interface)部10e、IO(Input / Output)部10f、および読取部10gを備えてよい。
【0030】
プロセッサ10aは、種々の制御や演算を行なう演算処理装置の一例であり、種々の処理を実行する制御部である。プロセッサ10aは、コンピュータ10内の各ブロックとバス10jで相互に通信可能に接続されてよい。なお、プロセッサ10aは、複数のプロセッサを含むマルチプロセッサであってもよいし、複数のプロセッサコアを有するマルチコアプロセッサであってもよく、或いは、マルチコアプロセッサを複数有する構成であってもよい。
【0031】
プロセッサ10aとしては、例えば、CPU、MPU、APU、DSP、ASIC、FPGA等の集積回路(IC;integrated circuit)が挙げられる。なお、プロセッサ10aとして、これらの集積回路の2以上の組み合わせが用いられてもよい。CPUはCentral Processing Unitの略称であり、MPUはMicro Processing Unitの略称である。APUはAccelerated Processing Unitの略称である。DSPはDigital Signal Processorの略称であり、ASICはApplication Specific ICの略称であり、FPGAはField-Programmable Gate Arrayの略称である。
【0032】
グラフィック処理装置10bは、IO部10fのうちのモニタ等の出力装置に対する画面表示制御を行なう。また、グラフィック処理装置10bは、機械学習モデルを利用した機械学習処理および推論処理を実行するアクセラレータとしての構成を有してよい。グラフィック処理装置10bとしては、種々の演算処理装置、例えば、GPU(Graphics Processing Unit)、APU、DSP、ASICまたはFPGA等の集積回路(IC)が挙げられる。
【0033】
メモリ10cは、種々のデータやプログラム等の情報を格納するHWの一例である。メモリ10cとしては、例えばDRAM(Dynamic Random Access Memory)等の揮発性メモリ、および、PM(Persistent Memory)等の不揮発性メモリ、の一方または双方が挙げられる。
【0034】
記憶部10dは、種々のデータやプログラム等の情報を格納するHWの一例である。記憶部10dとしては、HDD(Hard Disk Drive)等の磁気ディスク装置、SSD(Solid State Drive)等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、SCM(Storage Class Memory)、ROM(Read Only Memory)等が挙げられる。
【0035】
記憶部10dは、コンピュータ10の各種機能の全部若しくは一部を実現するプログラム10h(機械学習プログラム)を格納してよい。
【0036】
例えば、モデル生成装置1のプロセッサ10aは、記憶部10dに格納されたプログラム10hをメモリ10cに展開して実行することにより、機械学習モデルを訓練するモデル生成機能を実現できる。
【0037】
IF部10eは、本コンピュータ10と他のコンピュータとの間の接続および通信の制御等を行なう通信IFの一例である。例えば、IF部10eは、イーサネット(登録商標)等のLAN(Local Area Network)、或いは、FC(Fibre Channel)等の光通信等に準拠したアダプタを含んでよい。当該アダプタは、無線および有線の一方または双方の通信方式に対応してよい。
【0038】
例えば、モデル生成装置1は、IF部10eおよびネットワークを介して、図示しない他の情報処理装置と相互に通信可能に接続されてよい。なお、プログラム10hは、当該通信IFを介して、ネットワークからコンピュータ10にダウンロードされ、記憶部10dに格納されてもよい。
【0039】
IO部10fは、入力装置、および、出力装置、の一方または双方を含んでよい。入力装置としては、例えば、キーボード、マウス、タッチパネル等が挙げられる。出力装置としては、例えば、モニタ、プロジェクタ、プリンタ等が挙げられる。また、IO部10fは、入力装置および出力装置が一体となったタッチパネル等を含んでもよい。出力装置は、グラフィック処理装置10bに接続されてよい。
【0040】
読取部10gは、記録媒体10iに記録されたデータやプログラムの情報を読み出すリーダの一例である。読取部10gは、記録媒体10iを接続可能または挿入可能な接続端子または装置を含んでよい。読取部10gとしては、例えば、USB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体10iにはプログラム10hが格納されてもよく、読取部10gが記録媒体10iからプログラム10hを読み出して記憶部10dに格納してもよい。
【0041】
記録媒体10iとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等の半導体メモリが挙げられる。
【0042】
上述したコンピュータ10のHW構成は例示である。従って、コンピュータ10内でのHWの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、または、バスの追加若しくは削除等は適宜行なわれてもよい。
【0043】
(B-2)機能構成例
図1に示すように、本モデル生成装置1は、例示的に事前学習済みモデル取得部2,バックボーン生成部3,アーリーエグジット向けモデル生成部4,第一ファインチューニング処理部5および第二ファインチューニング処理部6としての機能を備えてよい。これらの機能は、コンピュータ10(図2参照)のハードウェアにより実現されてよい。
【0044】
事前学習済みモデル取得部2は、事前学習済みモデルを取得する。事前学習済みモデル取得部2は、事前学習タスクを用いて機械学習モデルの訓練を行なうことで事前学習済みモデルを生成(取得)してよい。また、事前学習済みモデル取得部2は、他の情報処理装置等が生成(用意)した事前学習済みモデルをネットワーク等を介して取得してもよい。
【0045】
事前学習済みモデルは、ニューラルネットワークモデルであってよい。事前学習済みモデルは、複数の層(Encoder block)と、最終層の分類器(Teacher-Classifier)とを有してよい。
【0046】
事前学習済みモデル取得部2は、取得した事前学習済みモデルの情報を記憶部10dの所定の記憶領域等に記憶させる。
【0047】
バックボーン生成部3は、事前学習済みモデル取得部2が取得(生成)した事前学習済みモデルに基づき、ダウンストリームタスクに合わせたバックボーン(基本モデル)を生成する。
【0048】
バックボーン生成部3は、事前学習タスクに合わせて構成された事前学習済みモデルに含まれる複数の層のうちの最終層に接続される出力層(例えば、分類器)を、ダウンストリームタスクに合わせて形成された新たな出力層(第二出力層:新たな分類器)を用いて置換することで、バックボーンを生成する。
【0049】
このバックボーンにおける新たな出力層(新たな分類器)は、初期状態として、例えばランダムなパラメータを有してよい。
【0050】
バックボーン生成部3は、生成したバックボーンの情報を、記憶部10dの所定の記憶領域等に記憶させる。
【0051】
図3は実施形態の一例としてのモデル生成装置1のバックボーン生成部3によって生成されるバックボーンを説明するための図である。
【0052】
この図3において、符号Aは、事前学習済みモデル取得部2が取得(生成)した事前学習済みモデル100を示し、符号Bは、バックボーン生成部3が符号Aに示した事前学習済みモデル100に基づいて生成したバックボーン101を示す。
【0053】
符号Aに示す事前学習済みモデル100は、3層のエンコーダE1~E3と、これらの3層のエンコーダE1~E3のうちの最終層のエンコーダE3に接続された分類器C1とを有する。分類器C1が出力層に相当する。事前学習済みモデル100は、例えば、巨大データで事前学習されたモデルであってよい。
【0054】
バックボーン生成部3は、この事前学習済みモデル100の分類器C1を、ダウンストリームタスクに合わせて構成された分類器C2に置換することでバックボーン101を生成する。分類器C2が第一出力層に相当する。
【0055】
バックボーン生成部3は、事前学習された複数の層であるエンコーダE1~E3を有する事前学習済みモデル100に対して、これらのエンコーダE1~E3のうちの最終層であるエンコーダE3に接続された分類器C1(出力層)を、ダウンストリームタスクに合わせて形成された分類器C2(第一出力層)に置換するのである。
【0056】
アーリーエグジット向けモデル生成部4は、バックボーン生成部3が生成したバックボーンに備えられる複数の層(中間層)の出力に、当該バックボーンの最終層に接続された分類器(第一出力層)と同じ構成の分類器(Student-Classifier:第二出力層)をそれぞれ接続することで、アーリーエグジット向けモデルを生成する。
【0057】
アーリーエグジット向けモデルに備えられる各分類器(第一出力層,第二出力層)のそれぞれをヘッド(head)といってよい。アーリーエグジット向けモデルにおける各分類器(ヘッド)は、それぞれ未学習の(例えば、ランダムな)重みを有する層(訓練されていないレイヤ)である。
【0058】
アーリーエグジット向けモデル生成部4は、生成したアーリーエグジット向けモデルの情報を、記憶部10dの所定の記憶領域等に記憶させる。
【0059】
図4は実施形態の一例としてのモデル生成装置1のアーリーエグジット向けモデル生成部4によって生成されるアーリーエグジット向けモデルを説明するための図である。
【0060】
この図4において、符号Aは、バックボーン生成部3が生成したバックボーン101を示し、符号Bは、符号Aに示したバックボーン101に基づいてアーリーエグジット向けモデル生成部4が生成したアーリーエグジット向けモデル102を示す。
【0061】
アーリーエグジット向けモデル生成部4は、符号Aに示すバックボーン101に備えられる3層のエンコーダE1~E3のうち、分類器C2が接続されていないエンコーダE1,E2の各出力に、分類器C2と同じ構成の分類器C2′をそれぞれ接続する。このように、アーリーエグジット向けモデル生成部4は、バックボーン101に基づいてアーリーエグジット向けモデル102を生成する。
【0062】
アーリーエグジット向けモデル生成部4は、バックボーン101の複数の層(エンコーダE1~E3)のうちの最終層以外の層(E1~E2)のそれぞれの出力に、分類器C1(第一出力層)と同じ構成を有する分類器C2′(第二出力層)をそれぞれ接続することで、アーリーエグジット向けモデル102(機械学習モデル)を生成するのである。
【0063】
第一ファインチューニング処理部5は、アーリーエグジット向けモデル生成部4が生成したアーリーエグジット向けモデルに含まれる各分類器のそれぞれに対して、ダウンストリームタスクを用いて訓練(ファインチューニング)を行なう。
【0064】
すなわち、第一ファインチューニング処理部5は、アーリーエグジット向けモデルに含まれる分類器(第一出力層)C2および分類器(第二出力層)C2′だけをダウンストリームタスクで訓練する。第一ファインチューニング処理部5は、アーリーエグジット向けモデルにおける、訓練されていないヘッドだけをダウンストリームタスクを用いて訓練するのである。
【0065】
第一ファインチューニング処理部5による各ヘッドの訓練は、既知の手法を用いて行なってよい。第一ファインチューニング処理部5は、各ヘッドのそれぞれに対して、例えば、順伝播,損失関数の計算,逆伝播および重みの更新の各処理を、これらの順で終了条件を満たすまで繰り返し実施することで訓練を行なう。
【0066】
ここで、順伝播においては、ヘッド(分類器)に訓練データ(ダウンストリームタスク)を入力し、ヘッドの出力層から計算結果を出力させる。
【0067】
また、損失関数の計算においては、ヘッドの出力層からの計算結果を用いて損失関数を計算する。逆伝播においては、計算された損失関数を用いて、ヘッドの出力層から入力層にかけて各層の勾配を計算する。重みの更新においては、計算された勾配を用いて、各層の重みの値を更新する。
【0068】
終了条件は、例えば、順伝播,損失関数の計算,逆伝播および重みの更新を含む一連の処理を、ユーザが設定した訓練回数だけ行なうことであってよい。
【0069】
第一ファインチューニング処理部5による、アーリーエグジット向けモデルに含まれる各分類器のそれぞれに対するダウンストリームタスクを用いた訓練(ファインチューニング)は、後述する第二ファインチューニング処理部6による、アーリーエグジット向けモデル全体に対するダウンストリームタスクを用いた訓練に先行して実施される。
【0070】
第二ファインチューニング処理部6は、第一ファインチューニング処理部5によって訓練された全ての分類器と、アーリーエグジット向けモデル生成部4が生成したアーリーエグジット向けモデルに含まれる事前学習済みの各中間層とを、ダウンストリームタスクを用いて訓練(ファインチューニング)する。
【0071】
すなわち、第二ファインチューニング処理部6は、第一ファインチューニング処理部5によって訓練された全ての分類器を含むアーリーエグジット向けモデル全体を、ダウンストリームタスクを用いて訓練する。
【0072】
第二ファインチューニング処理部6によるアーリーエグジット向けモデル全体の訓練は、第一ファインチューニング処理部5による各分類器に対する訓練と同様に行なってよい。すなわち、第二ファインチューニング処理部6は、アーリーエグジット向けモデル全体に対して、例えば、順伝播,損失関数の計算,逆伝播および重みの更新の各処理を、これらの順で終了条件を満たすまで繰り返し実施することで行なってよい。
【0073】
(B-3)動作
上述の如く構成された実施形態の一例としてのモデル生成装置1によるモデル生成方法を図5に示すフローチャート(ステップA1~A5)に従って説明する。
【0074】
ステップA1において、事前学習済みモデル取得部2が、例えば、事前学習タスクを用いて機械学習モデルの訓練を行なうことで事前学習済みモデルを生成(取得)する。
【0075】
ステップA2において、バックボーン生成部3が、事前学習タスクに合わせて構成された事前学習済みモデルの最終層(分類器)を、ダウンストリームタスクに合わせて構成された最終層(分類器)を用いて置換することで、バックボーンを生成する。
【0076】
ステップA3において、アーリーエグジット向けモデル生成部4が、バックボーン生成部3が生成したバックボーンに備えられる各中間層の出力に、当該バックボーンの最終層に接続された分類器と同じ構成の分類器をそれぞれ接続することで、アーリーエグジット向けモデルを生成する。
【0077】
ステップA4において、第一ファインチューニング処理部5が、アーリーエグジット向けモデルにおける、訓練されていないヘッド(分類器)だけをダウンストリームタスクを用いて訓練する。
【0078】
ステップA5において、第二ファインチューニング処理部6が、第一ファインチューニング処理部5によって訓練された全ての分類器と、アーリーエグジット向けモデル生成部4が生成したアーリーエグジット向けモデルに含まれる事前学習済みの各中間層とを、ダウンストリームタスクを用いて一度に訓練する。すなわち、第二ファインチューニング処理部6は、アーリーエグジット向けモデル全体を同時にファインチューニングする。その後、処理を終了する。
【0079】
次に、実施形態の一例としてのモデル生成装置1の第一ファインチューニング処理部5および第二ファインチューニング処理部6による訓練対象モデルの訓練方法を、図6に示すフローチャート(ステップB1~B5)に従って説明する。
【0080】
なお、第一ファインチューニング処理部5の訓練対象モデルは、アーリーエグジット向けモデルにおける訓練されていないヘッド(分類器)であり、第二ファインチューニング処理部6の訓練対象モデルは、アーリーエグジット向けモデル全体である。
【0081】
ステップB1において、第一ファインチューニング処理部5もしくは第二ファインチューニング処理部6は、モデル(分類器)に訓練データ(ダウンストリームタスク)を入力し、出力層から計算結果を出力させる順伝播を実施する。
【0082】
ステップB2において、第一ファインチューニング処理部5もしくは第二ファインチューニング処理部6は、出力層からの計算結果を用いて損失関数を計算する。
【0083】
ステップB3において、第一ファインチューニング処理部5もしくは第二ファインチューニング処理部6は、計算された損失関数を用いて、出力層から入力層にかけて各層の勾配を計算する、逆伝播を実施する。
【0084】
ステップB4において、第一ファインチューニング処理部5もしくは第二ファインチューニング処理部6は、算された勾配を用いて各層の重みの値を更新する。
【0085】
ステップB5において、第一ファインチューニング処理部5もしくは第二ファインチューニング処理部6は、ステップB1~B4の処理を、ユーザが設定した訓練回数だけ行なったかを確認する。すなわち、第一ファインチューニング処理部5もしくは第二ファインチューニング処理部6は、終了条件が満たされたかを確認する。
【0086】
確認の結果、ステップB1~B4の処理を、ユーザが設定した訓練回数だけ行なっていない場合には(ステップB5のNOルート参照)、終了条件が満たされていないとして、処理がステップB1に戻る。
【0087】
一方、ステップB1~B4の処理を、ユーザが設定した訓練回数だけ行なった場合には(ステップB5のYESルート参照)、終了条件が満たされたとして、処理を終了する。
【0088】
(B-4)効果
このように、実施形態の一例としてのモデル生成装置1によれば、先ず、第一ファインチューニング処理部5が、アーリーエグジット向けモデルにおける訓練されていないヘッド(分類器)だけをダウンストリームタスクを用いて訓練する。その後、第二ファインチューニング処理部6が、アーリーエグジット向けモデル全体を同時にファインチューニングする。
【0089】
これにより、第二ファインチューニング処理部6によるアーリーエグジット向けモデル全体のファインチューニング時において、バックボーンにおける全ての分類器は、第一ファインチューニング処理部5により訓練済みとなる。
【0090】
従って、第二ファインチューニング処理部6によるアーリーエグジット向けモデル全体のファインチューニング時に、各分類器から逆伝搬される勾配が小さくなり、各分類器から逆伝播される勾配がバックボーンの各層のパラメータに悪影響を及ぼすことを抑止できる。これにより、ファインチューニングされたアーリーエグジット適用モデルの精度の低下を抑止することができる。また、その結果、ファインチューニングされたアーリーエグジット適用モデルによる推論を高速化することができる。
【0091】
図7および図8は、それぞれ実施形態の一例としてのモデル生成装置1により訓練されたモデルの推論精度を従来手法で訓練されたモデルと比較して示す図である。
【0092】
これらの図7および図8においては、GLUEタスクを用いた場合の各レイヤの推論精度を、本モデル生成装置1により生成されたモデルと、上述した関連技術に記載した手法(図7および図8においては従来手法と表記する)で訓練されたアーリーエグジット適用モデルと、アーリーエグジットなしのモデルとで比較して示す。これらの図7および図8においては、GLUEタスクのうち、QQP,SST-2,QNLIおよびMNLIの各タスクを用いてファインチューニングを行なった例を示す。GLUEはGeneral Language Understanding Evaluationの略語である。
【0093】
図7においては、GLUEタスクの開発セット(development set)のBERTベース(BERT_base)による推論精度(Accuracy)と平均出口レイヤ(Average exit layer)との関係を表すグラフを示す。なお、レイヤ1は、入力に最も近いレイヤを表し、レイヤ12は最終レイヤを表す。
【0094】
QQP,SST-2,QNLIおよびMNLIいずれのタスクを用いた場合においても、本モデル生成装置1により訓練されたモデルの推論精度が改善することがわかる。
【0095】
図8においては、図7に示したQQP,SST-2,QNLIおよびMNLIの各タスクについての推論の高速化率を、本モデル生成装置1により生成されたモデルと、上述した関連技術に記載した手法で訓練されたアーリーエグジット適用モデルと、アーリーエグジットなしのモデルとで比較して示す。
【0096】
なお、この図8において、本モデル生成装置1により生成(訓練)されたモデルの高速化率は、アーリーエグジットなしと同等の推論精度になるように不確かさの閾値を調整して測定したものである。
【0097】
また、図8中のアーリーエグジットあり(本モデル生成装置で訓練)に関するQQP,SST-2,QNLIおよびMNLIの各タスクに対する値のうち、上段の値(%値)は精度を表し、下段の値は推論の高速化率を表す。
【0098】
これらの図7および図8に示すように、本モデル生成装置1により訓練されたモデルにより、アーリーエグジットなしの場合と同等の推論精度での推論の高速化を実現することができることがわかる。
【0099】
(C)その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
【0100】
例えば、上述した実施形態において、第一ファインチューニング処理部5または第二ファインチューニング処理部6による各ヘッドの訓練の終了条件が、ユーザが設定した訓練回数に到達することであるが、これに限定されるものではない。
【0101】
例えば、第一ファインチューニング処理部5または第二ファインチューニング処理部6による各ヘッドの訓練の終了条件が、モデルの推論精度がユーザが設定した精度に到達することであってよい。
【0102】
図9は、第一ファインチューニング処理部5および第二ファインチューニング処理部6による訓練対象モデルの訓練方法の第一変形例を示すフローチャート(ステップB1~B5′)である。
【0103】
なお、図中、既述の符号と同一の符号を付した処理は同様の処理を示しているので、その説明は省略する。
【0104】
ステップB5′において、第一ファインチューニング処理部5もしくは第二ファインチューニング処理部6は、重み更新後のモデルの推論精度が、ユーザが設定した精度(閾値)に到達したかを確認する。
【0105】
確認の結果、重み更新後のモデルの推論精度が、ユーザが設定した精度(閾値)に到達していない場合には(ステップB5′のNOルート参照)、終了条件が満たされていないとして、処理がステップB1に戻る。
【0106】
一方、重み更新後のモデルの推論精度が、ユーザが設定した精度(閾値)に到達している場合には(ステップB5′のYESルート参照)、終了条件が満たされたとして、処理を終了する。
【0107】
また、第一ファインチューニング処理部5または第二ファインチューニング処理部6による各ヘッドの訓練の終了条件が、モデルの推論精度が前回(1つ前の訓練時)よりも劣化したことであってよい。
【0108】
図10は、第一ファインチューニング処理部5および第二ファインチューニング処理部6による訓練対象モデルの訓練方法の第二変形例を示すフローチャート(ステップB1~B5″,B6)である。
【0109】
なお、図中、既述の符号と同一の符号を付した処理は同様の処理を示しているので、その説明は省略する。
【0110】
ステップB5″において、第一ファインチューニング処理部5もしくは第二ファインチューニング処理部6は、重み更新後のモデルの推論精度が、一つ前の訓練における推論精度、すなわち、前回の重み更新後のモデルの推論精度、よりも劣化したかを確認する。
【0111】
確認の結果、重み更新後のモデルの推論精度が、一つ前の訓練における推論精度と同じもしくは向上した場合には(ステップB5″のNOルート参照)、終了条件が満たされていないとして、処理がステップB1に戻る。
【0112】
一方、重み更新後のモデルの推論精度が、一つ前の訓練における推論精度よりも劣化した場合には(ステップB5″のYESルート参照)、終了条件が満たされたと判断してよい。
【0113】
ステップB6において、第一ファインチューニング処理部5もしくは第二ファインチューニング処理部6は、ステップB4において更新した重みを、更新前の重み(一つ前の訓練において更新した重み)の値を用いて更新する。その後、処理を終了する。
【0114】
また、上述した実施形態において、機械学習モデルの出力層が分類器である例を示したが、これに限定されるものではない。
【0115】
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【0116】
(D)付記
以上の実施形態に関し、さらに以下の付記を開示する。
【0117】
(付記1)
事前学習された複数の層と、ダウンストリームタスクに合わせて形成され前記複数の層のうちの最終層に接続される第一出力層と、前記複数の層のうちの前記最終層以外の層のそれぞれの出力に接続され、前記第一出力層と同じ構成を有する複数の第二出力層とを有する機械学習モデルに対して、
前記機械学習モデルの前記第一出力層および前記第二出力層だけを前記ダウンストリームタスクで訓練し、
前記第一出力層および前記第二出力層を含む前記機械学習モデル全体を前記ダウンストリームタスクで訓練する
処理をコンピュータに実行させることを特徴とする機械学習プログラム。
【0118】
(付記2)
事前学習された前記複数の層を有する事前学習済みモデルに対して、前記複数の層のうちの前記最終層に接続された出力層を、前記ダウンストリームタスクに合わせて形成された前記第一出力層に置換し、
前記複数の層のうちの前記最終層以外の層のそれぞれの出力に、前記第一出力層と同じ構成を有する前記第二出力層をそれぞれ接続することで、前記機械学習モデルを生成する
処理を前記コンピュータに実行させることを特徴とする付記1に記載の機械学習プログラム。
【0119】
(付記3)
事前学習された複数の層と、ダウンストリームタスクに合わせて形成され前記複数の層のうちの最終層に接続される第一出力層と、前記複数の層のうちの前記最終層以外の層のそれぞれの出力に接続され、前記第一出力層と同じ構成を有する複数の第二出力層とを有する機械学習モデルに対して、
前記機械学習モデルの前記第一出力層および前記第二出力層だけを前記ダウンストリームタスクで訓練し、
前記第一出力層および前記第二出力層を含む前記機械学習モデル全体を前記ダウンストリームタスクで訓練する
処理をコンピュータが実行することを特徴とする機械学習方法。
【0120】
(付記4)
事前学習された前記複数の層を有する事前学習済みモデルに対して、前記複数の層のうちの前記最終層に接続された出力層を、前記ダウンストリームタスクに合わせて形成された前記第一出力層に置換し、
前記複数の層のうちの前記最終層以外の層のそれぞれの出力に、前記第一出力層と同じ構成を有する前記第二出力層をそれぞれ接続することで、前記機械学習モデルを生成する
処理を前記コンピュータが実行することを特徴とする付記3に記載の機械学習方法。
【符号の説明】
【0121】
1 モデル生成装置
2 事前学習済みモデル取得部
3 バックボーン生成部
4 アーリーエグジット向けモデル生成部
5 第一ファインチューニング処理部
6 第二ファインチューニング処理部
10 コンピュータ
10a プロセッサ
10b グラフィック処理装置
10c メモリ
10d 記憶部
10e IF部
10f IO部
10g 読取部
10h プログラム
10i 記録媒体
10j バス
100 事前学習済みモデル
101 バックボーン
102 アーリーエグジット向けモデル
E1~E3 エンコーダ
C1,C2,C2′ 分類器
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11