(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-22
(45)【発行日】2023-05-30
(54)【発明の名称】マルチレベル知識蒸留に基づく事前訓練言語モデルの自動圧縮方法およびプラットフォーム
(51)【国際特許分類】
G06N 3/096 20230101AFI20230523BHJP
G06N 3/0985 20230101ALI20230523BHJP
G06N 3/086 20230101ALI20230523BHJP
G06N 3/0495 20230101ALI20230523BHJP
G06F 40/20 20200101ALI20230523BHJP
【FI】
G06N3/096
G06N3/0985
G06N3/086
G06N3/0495
G06F40/20
(21)【出願番号】P 2022566730
(86)(22)【出願日】2020-12-31
(86)【国際出願番号】 CN2020142577
(87)【国際公開番号】W WO2022126797
(87)【国際公開日】2022-06-23
【審査請求日】2022-11-01
(31)【優先権主張番号】202011498328.2
(32)【優先日】2020-12-17
(33)【優先権主張国・地域又は機関】CN
【早期審査対象出願】
(73)【特許権者】
【識別番号】521162399
【氏名又は名称】之江実験室
(74)【代理人】
【識別番号】110000729
【氏名又は名称】弁理士法人ユニアス国際特許事務所
(72)【発明者】
【氏名】王 宏升
(72)【発明者】
【氏名】▲陳▼ 光
【審査官】多賀 実
(56)【参考文献】
【文献】中国特許出願公開第111767711(CN,A)
【文献】中国特許出願公開第111611377(CN,A)
【文献】中国特許出願公開第111291836(CN,A)
【文献】中国特許出願公開第110766142(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 40/00-40/58
(57)【特許請求の範囲】
【請求項1】
マルチレベル知識蒸留に基づく事前訓練言語モデルの自動圧縮方法であって、
マルチレベル知識蒸留を構築し、セルフ・アテンションユニット、隠れ層状態、及び埋め込み層の3つの異なるレベルで大モデルの知識構造を蒸留するステップ1と、
メタ学習の知識蒸留ネットワークを訓練し、複数の事前訓練言語モデルの汎用圧縮アーキテクチャを生成するステップ2と、
進化的アルゴリズムに基づいて最適な圧縮
アーキテクチャを検索するステップ3と、を含
み、
ステップ2では、前記メタ学習の知識蒸留ネットワークを訓練することは、構造生成器のメタネットワークを設計し、ステップ1のマルチレベル知識蒸留に基づいて、知識蒸留符号化ベクトルを構築し、構造生成器を用いて、現在入力されている知識蒸留符号化ベクトルに対応する蒸留構造モデルを生成し、同時に、ベルヌーイ分布サンプリング法を用いて構造生成器を訓練し、繰り返しごとに、ベルヌーイ分布を用いて各エンコーダの遷移したセルフ・アテンションユニットをサンプリングし、対応する知識蒸留符号化ベクトルを構成し、構造生成器に入力する知識蒸留符号化ベクトルと、小バッチの訓練データとを変更し、構造生成器と対応する蒸留構造とを共同訓練することにより、異なる蒸留構造に対する重みを生成する構造生成器を取得することを含み、
前記進化的アルゴリズムの具体的なプロセスは、
知識蒸留符号化ベクトルを蒸留構造モデルの遺伝子Gと定義し、制約条件Cを満たす一連の遺伝子を、初期集団としてランダムに選択するステップ(1)と、
既存集団の各遺伝子Gに対応する蒸留構造モデルの検証セットにおける推論精度accuracyを評価し、最も精度の高い上位k個の遺伝子を選択するステップ(2)と、
ステップ(2)で選択された最も精度の高い上位k個の遺伝子を用いて、遺伝子組換えと遺伝子変異により新しい遺伝子を生成し、新しい遺伝子を既存集団に追加するステップ(3)と、
既存集団の中から精度の高い上位k個の遺伝子を選択して新しい遺伝子を生成して、制約条件Cを満たし、かつ精度が最も高い遺伝子を取得するまで、ステップ(2)とステップ(3)とをN回繰り返すステップ(4)と、を含む
ことを特徴とするマルチレベル知識蒸留に基づく事前訓練言語モデルの自動圧縮方法。
【請求項2】
ステップ3では、訓練済みメタ学習ネットワークを基に、進化的アルゴリズムにより最適な圧縮アーキテクチャを検索することで、タスクに依存しない事前訓練言語モデルの最適な汎用圧縮アーキテクチャを取得する
ことを特徴とする請求項
1に記載のマルチレベル知識蒸留に基づく事前訓練言語モデルの自動圧縮方法。
【請求項3】
ステップ1では、セルフ・アテンション知識と、隠れ
層状態知識と、埋め込み層知識とを蒸留ネットワークとして符号化し、知識蒸留を用いて、大モデルから小モデルへの圧縮を実現する
ことを特徴とする請求項1に記載のマルチレベル知識蒸留に基づく事前訓練言語モデルの自動圧縮方法。
【請求項4】
ステップ1では
、前記マルチレベル知識蒸留は、セルフ・アテンション知識蒸留と、隠れ層状態知識蒸留と、埋め込み層知識蒸留とを含む
ことを特徴とする請求項
3に記載のマルチレベル知識蒸留に基づく事前訓練言語モデルの自動圧縮方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、言語モデル圧縮分野に関し、特に、マルチレベル知識蒸留に基づく事前訓練言語モデルの自動圧縮方法およびプラットフォームに関する。
【背景技術】
【0002】
大規模な事前訓練言語モデルは、自然言語理解と生成タスクの両方で優れた性能を達成している。しかし、大量のパラメータを有する事前訓練言語モデルを、メモリが限られたデバイスに配置することには、まだ大きな課題が残っている。モデル圧縮の分野では、既存の言語モデル圧縮方法は、いずれも特定のタスクの言語モデル圧縮である。他の下流タスクに対して、特定のタスクの知識蒸留を用いて生成した訓練済みモデルは、依然として大モデルの再微調整、および関連する大モデル知識の生成が必要である。大モデルの微調整には、時間と手間がかかり、計算コストも高い。複数の下流タスクに対する圧縮モデルの柔軟性と有効性を向上させるため、タスクに依存しない事前訓練言語モデルの汎用圧縮アーキテクチャを研究している。また、既存の知識蒸留方法は、主に人為的に設計された知識蒸留手法である。コンピューティングリソースなどの制約から、人為的に、すべての可能な蒸留構造を設計し、最適な構造を見つけることはほぼ不可能である。ニューラルネットワークアーキテクチャ検索に着想を得て、特にサンプルが少ない場合、本発明は、マルチレベル知識蒸留に基づき、マルチタスクに対する事前訓練言語モデルの汎用圧縮アーキテクチャを生成する。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明の目的は、既存の技術における欠陥に対応し、マルチレベル知識蒸留に基づく事前訓練言語モデルの自動圧縮方法およびプラットフォームを提供することである。本発明では、まず、マルチレベル知識蒸留を構築し、異なるレベルで大モデルの知識構造を蒸留する。さらに、メタ学習を導入することで、複数の事前訓練言語モデルの汎用圧縮アーキテクチャを生成する。具体的に、構造生成器のメタネットワークを設計し、マルチレベル知識蒸留に基づいて知識蒸留符号化ベクトルを構築し、当該構造生成器を用いて、現在入力されている符号化ベクトルに対応する蒸留構造モデルを生成する。同時に、ベルヌーイ分布サンプリング法を提案し構造生成器を訓練する。繰り返しごとに、ベルヌーイ分布を用いて各エンコーダの遷移したセルフ・アテンション(self-attention)ユニットをサンプリングし、対応する符号化ベクトルを構成する。構造生成器に入力する符号化ベクトルと、小バッチの訓練データとを変更し、構造生成器と対応する蒸留構造とを共同訓練することにより、異なる蒸留構造に対する重みを生成できる構造生成器を取得することができる。同時に、訓練済みメタ学習ネットワークを基に、進化的アルゴリズムにより最適な圧縮構造を検索することで、タスクに依存しない事前訓練言語モデルの最適な汎用圧縮アーキテクチャを取得する。
【課題を解決するための手段】
【0004】
本発明の目的は、以下の技術的解決策によって達成される。
【0005】
マルチレベル知識蒸留に基づく事前訓練言語モデルの自動圧縮方法であって、以下のステップを含む:
【0006】
ステップ1、マルチレベル知識蒸留を構築し、セルフ・アテンションユニット、隠れ層状態、及び埋め込み層の3つの異なるレベルで大モデルの知識構造を蒸留する。
【0007】
ステップ2、メタ学習の知識蒸留ネットワークを訓練し、複数の事前訓練言語モデルの汎用圧縮アーキテクチャを生成する。
【0008】
ステップ3、進化的アルゴリズムに基づいて最適な圧縮構造を検索する。
【0009】
さらに、ステップ2では、構造生成器のメタネットワークを設計し、ステップ1のマルチレベル知識蒸留に基づいて、知識蒸留符号化ベクトルを構築し、構造生成器を用いて、現在入力されている符号化ベクトルに対応する蒸留構造モデルを生成し、同時に、ベルヌーイ分布サンプリング法を用いて構造生成器を訓練し、繰り返しごとに、ベルヌーイ分布を用いて各エンコーダの遷移したセルフ・アテンションユニットをサンプリングし、対応する符号化ベクトルを構成し、構造生成器に入力する符号化ベクトルと、小バッチの訓練データとを変更し、構造生成器と対応する蒸留構造とを共同訓練することにより、異なる蒸留構造に対する重みを生成する構造生成器を取得する。
【0010】
さらに、ステップ3では、訓練済みメタ学習ネットワークを基に、進化的アルゴリズムにより最適な圧縮アーキテクチャを検索することで、タスクに依存しない事前訓練言語モデルの最適な汎用圧縮アーキテクチャを取得する。
【0011】
さらに、ステップ1では、セルフ・アテンション知識と、隠れ層状態知識と、埋め込み層知識とを蒸留ネットワークとして符号化し、知識蒸留を用いて、大モデルから小モデルへの圧縮を実現する。
【0012】
さらに、ステップ1では、セルフ・アテンション知識蒸留と、隠れ層状態知識蒸留と、埋め込み層知識蒸留とを含む。
【0013】
さらに、ステップ2における前記構造生成器のメタネットワークは、2つの全結合層から構成され、セルフ・アテンション知識蒸留符号化ベクトルを入力し、構造生成器の重み行列を出力する。
【0014】
構造生成器の訓練プロセスは以下の通りである:
【0015】
ステップ1、知識蒸留符号化ベクトルを構築し、層サンプリングベクトル、マルチヘッドプルーニングベクトル、隠れ層次元削減ベクトル、埋め込み層次元削減ベクトルなどを含む。
【0016】
ステップ2、構造生成器に基づいて蒸留ネットワークアーキテクチャを構築し、当該構造生成器を用いて、現在入力されている符号化ベクトルに対応する蒸留構造モデルを構築し、構造生成器が出力する重み行列の形状を調整し、セルフ・アテンション符号化ベクトルに対応する蒸留構造の入出力するセルフ・アテンションユニットの数と一致させる。
【0017】
ステップ3、構造生成器と蒸留構造モデルとを共同訓練する:ベルヌーイ分布サンプリング法を用いて構造生成器を訓練し、構造生成器に入力する符号化ベクトルと、小バッチの訓練データとを変更し、構造生成器と対応する蒸留構造とを共同訓練することにより、異なる蒸留構造に対する重みを生成できる構造生成器を取得することができる。
【0018】
さらに、ステップ3では、ネットワーク符号化ベクトルを訓練済み構造生成器に入力し、蒸留ネットワークに対応する重みを生成し、検証セットで蒸留ネットワークを評価して、対応する蒸留ネットワークの精度を取得する。詳しくは以下の通りである。
【0019】
特定の制約条件を満たした上で、まず蒸留ネットワークの遺伝子として一連の蒸留ネットワーク符号化ベクトルを選択し、検証セットで評価することで、対応する蒸留ネットワークの精度を取得し、最も精度の高い上位k個の遺伝子を選択し、遺伝子組換えと変異を用いて新しい遺伝子を生成し、さらに上位k個の最適遺伝子の選択過程と新しい遺伝子の生成過程を繰り返すことで、制約条件を満たし、かつ最も精度の高い遺伝子を取得する。
【0020】
さらに、前記進化的アルゴリズムの具体的なプロセスは、以下の通りである。
【0021】
ステップ1、知識蒸留符号化ベクトルを蒸留構造モデルの遺伝子Gと定義し、制約条件Cを満たす一連の遺伝子を初期集団としてランダムに選択する。
【0022】
ステップ2、既存集団の各遺伝子Giに対応する蒸留構造モデルの検証セットにおける推論精度accuracyを評価し、最も精度の高い上位k個の遺伝子を選択する。
【0023】
ステップ3、ステップ2で選択された最も精度の高い上位k個の遺伝子を用いて、遺伝子組換えと遺伝子変異により新しい遺伝子を生成し、新しい遺伝子を既存集団に追加する。
【0024】
ステップ4、既存集団の中から精度の高い上位k個の遺伝子を選択して新しい遺伝子を生成して、制約条件Cを満たし、かつ精度が最も高い遺伝子を取得するまで、ステップ2とステップ3とをN回繰り返す。
【0025】
マルチレベル知識蒸留に基づく事前訓練言語モデルの自動圧縮プラットフォームであって、以下のコンポーネントを含む:
【0026】
データ読み込みコンポーネント:ログインユーザによってアップロードされた特定の自然言語処理下流タスクのBERTモデルと、マルチタスクに対する事前訓練言語モデルとを含む圧縮すべき訓練サンプルを取得するためのものであり、前記訓練サンプルは教師あり学習タスクを満足する、ラベルを有するテキストサンプルである。
【0027】
自動圧縮コンポーネント:マルチタスクに対する事前訓練言語モデルを自動的に圧縮するためのものであり、知識蒸留ベクトル符号化モジュール、蒸留ネットワーク生成モジュール、構造生成器と蒸留ネットワークの共同訓練モジュール、蒸留ネットワーク検索モジュール、特定タスク微調整モジュールが含まれる。
【0028】
前記知識蒸留ベクトル符号化モジュールは、Transformerの層サンプリングベクトル、セルフ・アテンションのマルチヘッドプルーニングベクトル、隠れ層次元削減ベクトル、及び埋め込み層次元削減ベクトルを含み、順伝播過程で蒸留ネットワーク符号化ベクトルを構造生成器に入力し、構造に対応する蒸留ネットワークと構造生成器の重み行列を生成する。
【0029】
前記蒸留ネットワーク生成モジュールは、構造生成器に基づいて現在入力されている符号化ベクトルに対応する蒸留ネットワークを構築し、構造生成器が出力する重み行列の形状を調整し、セルフ・アテンション符号化ベクトルに対応する蒸留構造の入出力するセルフ・アテンションユニットの数と一致させる。
【0030】
構造生成器と蒸留ネットワークの共同訓練モジュールは、構造生成器をエンドツーエンドで訓練し、マルチレベル知識蒸留符号化ベクトルと小バッチの訓練データとを蒸留ネットワークに入力し、蒸留構造の重みと構造生成器の重み行列を更新する。
【0031】
前記蒸留ネットワーク検索モジュールは、進化的アルゴリズムを用いて、特定の制約条件を満たす最も精度の高い蒸留ネットワークを検索する。
【0032】
前記特定タスク微調整モジュールは、前記自動圧縮コンポーネントによって生成された訓練済みモデル蒸留ネットワーク上に下流タスクネットワークを構築し、蒸留ネットワークの特徴層と出力層を用いて下流タスクシーンを微調整し、最終微調整済みの学生モデル、すなわちログインユーザのニーズである下流タスクを含む事前訓練言語モデルの圧縮モデルを出力し、前記圧縮モデルを、前記ログインユーザがダウンロードできるように、指定されたコンテナに出力し、前記プラットフォームの圧縮モデルを出力するページで、圧縮前後のモデルのサイズの比較情報を表示する。
【0033】
推論コンポーネント:前記プラットフォームから訓練済み圧縮モデルはログインユーザにより取得され、前記自動圧縮コンポーネントにより出力された圧縮モデルを用いて、実際のシーンのデータセットでログインユーザがアップロードした自然言語処理下流タスクの新しいデータを推論する。前記プラットフォームの圧縮モデル推論ページで、圧縮前後の推論速度の比較情報を表示する。
【0034】
さらに、ログインユーザが直接ダウンロード可能な訓練された事前訓練言語モデルを提供し、ユーザの特定の自然言語処理下流タスクに対するニーズに従って、前記プラットフォームで生成された、圧縮された訓練済みモデルアーキテクチャを基にして、下流タスクネットワークを構築し、微調整し、最後に端末デバイスに配置するか、または前記プラットフォームで自然言語処理下流タスクを直接に推論してもよい。
【発明の効果】
【0035】
本発明の有益な効果は:本発明のマルチレベル知識蒸留に基づく事前訓練言語モデルの自動圧縮方法およびプラットフォームは、まず、メタ学習の知識蒸留に基づいて、複数の事前訓練言語モデルの汎用圧縮アーキテクチャを生成することを研究し、次に、訓練済みメタ学習ネットワークを基に、進化的アルゴリズムにより最適な圧縮構造を検索することで、タスクに依存しない事前訓練言語モデルの最適な汎用圧縮アーキテクチャを取得する。
【0036】
本発明のマルチレベル知識蒸留に基づく事前訓練言語モデルの自動圧縮プラットフォームは、マルチタスクに対する事前訓練言語モデルの汎用アーキテクチャを圧縮して生成し、既に圧縮されたモデルアーキテクチャを最大限に用いて下流タスクの圧縮効率を高め、大規模な自然言語処理モデルをメモリが小さい、リソースが限られているなどの端末デバイスに配置することができ、業界で汎用深層言語モデルの実装を促進した。
【図面の簡単な説明】
【0037】
【
図1】マルチレベル知識蒸留に基づく事前訓練言語モデルの自動圧縮プラットフォームの全体的なアーキテクチャ図である。
【
図4】エンコーダモジュールの隠れ層と入力する埋め込み層の次元削減構造を示す模式図である。
【
図5】構造生成器に基づいて蒸留ネットワークを構築するアーキテクチャ図。
【
図6】構造生成器と蒸留ネットワークの共同訓練のフローチャートである。
【
図7】進化的アルゴリズムに基づく蒸留ネットワーク検索のアーキテクチャを示す模式図である。
【発明を実施するための形態】
【0038】
以下は、図面とともに、本発明をさらに説明する。
【0039】
図1に示すように、本発明は、メタ学習に基づく知識蒸留と、進化的アルゴリズムに基づく蒸留ネットワーク自動検索とを含む。マルチタスクに対する大規模な事前訓練言語モデルを自動的に圧縮し、異なるハード制約条件(浮動小数点演算の回数など)を満たす、タスクに依存しない汎用アーキテクチャを生成する。
【0040】
具体的な解決手段は以下の通りである。本発明のマルチレベル知識蒸留に基づく事前訓練言語モデルの自動圧縮方法のプロセスは3段階に分けられる。第1段階では、マルチレベル知識蒸留を構築し、セルフ・アテンションユニット、隠れ層状態、及び埋め込み層の3つの異なるレベルで大モデルの知識構造を蒸留する。第2段階では、メタ学習の知識蒸留ネットワークを訓練し、複数の事前訓練言語モデルの汎用圧縮アーキテクチャを生成する。具体的に、構造生成器のメタネットワークを設計し、第1段階で提案したマルチレベル知識蒸留に基づいて、知識蒸留符号化ベクトルを構築し、構造生成器を用いて、現在入力されている符号化ベクトルに対応する蒸留構造モデルを生成する。同時に、ベルヌーイ分布サンプリング法を提案して構造生成器を訓練し、繰り返しごとに、ベルヌーイ分布を用いて各エンコーダの遷移したセルフ・アテンションユニットをサンプリングし、対応する符号化ベクトルを構成する。構造生成器に入力する符号化ベクトルと、小バッチの訓練データとを変更し、構造生成器と対応する蒸留構造とを共同訓練することにより、異なる蒸留構造に対する重みを生成する構造生成器を取得することができる。第3段階では、進化的アルゴリズムに基づいて最適な圧縮構造を検索し、訓練済みメタ学習ネットワークを基に、進化的アルゴリズムにより最適な圧縮アーキテクチャを検索することで、タスクに依存しない事前訓練言語モデルの最適な汎用圧縮アーキテクチャを取得する。具体的なプロセスは以下の通りである。
【0041】
第1段階:マルチレベル知識蒸留
【0042】
本発明は、
図2に示すように、セルフ・アテンション知識と、隠れ層状態知識と、埋め込み層知識とを蒸留ネットワークとして符号化する。知識蒸留を用いて、大モデルから小モデルへの圧縮を実現し、大モデルのセルフ・アテンション知識を小モデルに最大限遷移する。
【0043】
a.セルフ・アテンション知識蒸留。Transformer層蒸留は、
図2に示すように、セルフ・アテンションに基づく知識蒸留と隠れ層状態に基づく知識蒸留を含む。セルフ・アテンションに基づく蒸留は、豊富な言語知識に焦点を当てることができる。これらの大量な言語知識には、自然言語理解に必要なセマンティクスと関連する情報が含まれている。そこで、セルフ・アテンションに基づく知識蒸留を提案し、豊富な教師モデル知識の学生モデルへの遷移を促す。
【0044】
アテンション関数は、queries、keys、valuesの3つの行列から算出され、それぞれ行列Q,行列K,行列Vと表記される。アテンション関数は以下のように定義される:
【数1】
【0045】
ここで,d
kは行列Kの次元であり、スケールファクタである。Aはセルフ・アテンション行列を表し,行列Qと行列Kからドット積演算によって算出される。最終的なセルフ・アテンション関数Attention(Q,K,V)の出力は、行列Vの1つの重み和とされ、重みは、行列Vの各列に対してsoftmax演算を行うことで算出される。セルフ・アテンション行列Aは大量の言語知識に焦点を当てることができるので、セルフ・アテンションに基づく蒸留は、知識蒸留において重要な役割を担っている。マルチヘッドアテンションは、異なる特徴部分空間からのアテンションヘッドを以下の方法で連結することで得られる:
【数2】
【0046】
ここで、hはアテンションヘッドの数であり、headiはi番目のアテンションヘッドを表し、異なる特徴部分空間のAttention()関数から計算され、Concatは連結することを表し、Wは線形変換行列である。
【0047】
学生モデルは、教師ネットワークのマルチヘッドアテンション知識を模倣して学習する。ここで、損失関数は以下のように定義される:
【数3】
【0048】
ここで、hはアテンションヘッドの数であり、Ai∈Rl×lは教師モデルまたは学生モデルのi番目のアテンションヘッドに対応するセルフ・アテンション行列を表し、Rは実数、lは現在層の入力のサイズを表し、Lは入力テキストの長さであり、MSE()は平均二乗誤差損失関数である。注意すべきことは、ここはsoftmaxの出力softmax(Ai)ではなく、アテンション行列Aiを使用する。
【0049】
b.隠れ層状態知識蒸留。セルフ・アテンションに基づく知識蒸留に加えて、本発明は隠れ層状態に基づく知識蒸留も行い、即ちTransformer層から出力される知識の遷移を行う。隠れ層状態知識蒸留の損失関数は以下の通りとなる:
【数4】
【0050】
ここで、行列HS∈RL×d’とHT∈RL×dはそれぞれ学生ネットワークと教師ネットワークの隠れ状態を表し、スカラー値dとd’はそれぞれ教師モデルと学生モデルの隠れ層のサイズを表し、行列Wh∈Rd’×dは学習可能な線形変換行列であり、学生ネットワークの隠れ層状態を教師ネットワークの隠れ層状態と同じ特徴空間に変換する。
【0051】
c.埋め込み層知識蒸留。本発明は、同時に埋め込み層に基づく知識蒸留を採用し、隠れ層状態に基づく知識蒸留と類似し、次のように定義される:
【数5】
【0052】
ここで、行列ESとETは、それぞれ学生ネットワークと教師ネットワークの埋め込み層を表す。本発明では、埋め込み層行列の形状は隠れ層状態行列と同じである。行列Weは線形変換行列である。
【0053】
第2段階:メタ学習の知識蒸留
【0054】
構造生成器を設計し、構造生成器は2つの全結合層から構成されるメタネットワークである。
図3は構造生成器の訓練プロセスを示す。セルフ・アテンション知識蒸留符号化ベクトルを入力し、構造生成器の重み行列を出力する。
【0055】
構造生成器の訓練プロセスは以下の通りである:
【0056】
ステップ1、知識蒸留符号化ベクトルを構築する。順伝播過程で蒸留ネットワーク符号化ベクトルを構造生成器に入力し、構造生成器の重み行列が出力される。蒸留ネットワーク符号化ベクトルはTransformer層サンプリングベクトル、マルチヘッドアテンションプルーニングベクトル、隠れ層次元削減ベクトル、及び埋め込み層次元削減ベクトルから構成される。蒸留ネットワーク符号化ベクトルの具体的なプロセスは以下の通りである:
【0057】
a、層サンプリングベクトル。層サンプリング段階では、まずベルヌーイ分布を用いてBERTのTransformer層を層サンプリングし、層サンプリングベクトルを生成する。具体的には、現在、遷移が検討されているi番目のTransformerモジュールXiを独立したベルヌーイ確率変数とし、Xiが1(または0)である確率はp(または1-p)である。
【数6】
【0058】
確率変数Xを使用して、BERTの12個のTransformerユニットを順次ベルヌーイサンプリングし、12個の0または1の要素からなるベクトルを生成する。確率変数Xiが1の確率値が0.5以上の場合、層サンプリングベクトルに対応する要素は1であり、現在Transformerモジュールが遷移学習を行うことを表し、確率変数Xiが1の確率値が0.5未満の場合、層サンプリングベクトルに対応する要素は0であり、現在トランスフォーマーモジュールが遷移学習を行わないことを表す。
【0059】
上記のベルヌーイサンプリング法を使用して、BERTに含まれるすべてのTransformer層を順次サンプリングし、ネットワーク符号化ベクトル中の層サンプリングベクトルを構成する。
【数7】
【0060】
注意すべきことは、BERTbaseには合計12個のTransformerモジュールがあり、層サンプリングTransformerモジュールの遷移数(即ち層サンプリングベクトル中に、要素が1の数)が少なすぎることを回避するように、層サンプリング制約条件を加えることを提案し、すなわち、蒸留ネットワーク構造が生成されるたびに、BERTのすべてのTransformer層に対して層サンプリングを行う段階で、制約条件を構築し、最終的に、層サンプリングにより得られたベクトル中に要素が1の数を6以上とさせ、それ以外の場合は層サンプリングを繰り返す。
【0061】
この場合、Transformerに対する知識蒸留を行う時、ネットワーク符号化ベクトル中の層サンプリングベクトルを介して教師モデルと学生モデルとの1対1のマッピング関係を確立し、ネットワーク符号化ベクトル中の層サンプリングベクトルに基づき、対応する蒸留ネットワーク構造を生成する。訓練プロセス全体を高速化するために、教師モデルの層サンプリングベクトルに対応する要素が1のTransformerの重みを用いて学生モデルの遷移したTransformerモジュールを初期化する。
【0062】
b.マルチヘッドプルーニングベクトル。各Transformerモジュールは、マルチヘッドアテンションユニットで構成されている。本発明では、チャンネルプルーニングにヒントを得て、マルチヘッドアテンションユニットに基づくマルチヘッドプルーニングを提案する。蒸留ネットワーク構造が生成されるたびに、マルチヘッドプルーニング符号化ベクトルを生成し、現在遷移したすべてのTransformer層でセルフ・アテンション知識遷移を行うアテンションヘッドの数を表す。数式は以下のように定義される:
【数8】
【0063】
ここで、Headiは、i番目の蒸留ネットワーク構造を生成する時、各Transformer層が含むアテンションヘッド数を表し、ここで、異なる蒸留ネットワーク構造が生成されるたびに、各Transformer層が含むアテンションヘッド数は同じである。headscaleは、各Transformerモジュールが含むセルフ・アテンションヘッド数の減衰係数を表す。SRS_Sampleはシンプルランダムサンプリングを表し、BERTbaseの各Transformerモジュールには12個のセルフ・アテンションユニットがあるので、headmaxは12である。i番目の蒸留ネットワーク構造の生成過程において、まずリスト[0、1、2、...、30]に対するシンプルランダムサンプリングにより乱数Miを得、現在の蒸留構造の減衰係数headscaleを取得し、標準headmaxに乗じて現在の蒸留ネットワーク構造のマルチヘッドアテンションユニット数を取得する。
【0064】
したがって、アテンションマルチヘッドプルーニングに基づく知識蒸留は、蒸留ネットワーク構造が生成されるたびに、遷移を行ったTransformerモジュール、すなわちTransformer層サンプリング符号化ベクトル中の値が1の要素に対して、マルチヘッドプルーニング符号化ベクトルを生成し、現在遷移したすべてのTransformer層でセルフ・アテンション知識遷移を行うアテンションヘッドの数を表す。
【0065】
c.隠れ層次元削減ベクトル。隠れ層状態の知識蒸留は、各Transformer層の最終出力に対して知識蒸留を行い、即ちBERT隠れ層の次元を減少させる。具体的なプロセスは以下の通りであり、毎回生成される蒸留ネットワークのすべてのTransformer層の隠れ層の次元は同じである。生成されるi番目の蒸留ネットワークの隠れ層の次元hidn
iは、以下のように定義される:
【数9】
【0066】
ここで、hidnbaseはハイパーパラメータであり、BERTbaseの隠れ層次元は768であるため、hidnbaseを768の公約数となるように初期化し、ここではhidnbaseを128に初期化する。hidnscaleは隠れ層次元の次元削減係数で、リスト[1,2,3,4,5,6]に対するシンプルランダムサンプリングにより得られた要素である。
【0067】
したがって、隠れ層に基づいて知識蒸留を行い、蒸留ネットワークを生成するとき、毎回シンプルランダムサンプリングを用いて、上記のリストから1つの次元削減係数をサンプリングし、現在の蒸留ネットワークに対応する隠れ層の次元サイズを生成する。
【0068】
d.埋め込み層次元削減ベクトル。
図4には、エンコーダモジュールの隠れ層と入力する埋め込み層の次元削減構造を示す。図から分かるように、隠れ層部分と埋め込み層部分の両方とも残差接続(residual connection)を持っているため、埋め込み層の出力次元サイズは隠れ層の出力次元サイズと等しい。
【0069】
したがって、埋め込み層に基づいて知識蒸留を行い、蒸留ネットワークを生成する場合、毎回埋め込み層の次元を現在の隠れ層の次元と同じサイズにすればよい。
【0070】
ステップ2、構造生成器に基づいて蒸留ネットワークアーキテクチャを構築する。当該構造生成器を用いて、現在入力されている符号化ベクトルに対応する蒸留構造モデルを構築し、しかも構造生成器が出力する重み行列の形状を調整する必要があり、セルフ・アテンション符号化ベクトルの対応する蒸留構造の入出力するセルフ・アテンションユニットの数と一致させる。構造生成器で構築された蒸留構造のネットワークアーキテクチャを
図5に示す。
【0071】
ステップ3、構造生成器と蒸留構造モデルとを共同訓練する。セルフ・アテンション知識蒸留符号化ベクトルと1つの小バッチの訓練データを蒸留構造モデルに入力する。注意すべきことは、逆伝播過程で蒸留構造の重みと構造生成器の重み行列の両方が一緒に更新される。構造生成器の重みは連鎖律により算出できるため、エンドツーエンドで構造生成器を訓練することができる。
【0072】
同時に、ベルヌーイ分布サンプリング法を提案して構造生成器を訓練し、繰り返しごとに、ベルヌーイ分布を用いて各エンコーダの遷移したセルフ・アテンションユニットをサンプリングし、対応する符号化ベクトルを構成する。構造生成器に入力する符号化ベクトルと、小バッチの訓練データとを変更し、構造生成器と対応する蒸留構造とを共同訓練することにより、異なる蒸留構造に対する重みを生成する構造生成器を取得することができる。構造生成器の訓練のプロセスを
図6に示す。
【0073】
第3段階、進化的アルゴリズムに基づく蒸留ネットワーク検索
【0074】
ネットワーク符号化ベクトルを訓練済み構造生成器に入力し、蒸留ネットワークに対応する重みを生成し、検証セットで蒸留ネットワークを評価して、対応する蒸留ネットワークの精度を取得する。次に、特定の制約条件を満たす最も精度の高い蒸留ネットワークを検索するために、進化的アルゴリズムを用いて特定の制約条件を満たす最も精度の高い蒸留ネットワークを検索することを提案し、進化的アルゴリズムに基づく蒸留ネットワーク検索のアーキテクチャを
図7に示す。
【0075】
メタ学習蒸留ネットワークで用いられる進化的アルゴリズムでは、各蒸留ネットワークは、埋め込み層蒸留、隠れ層蒸留、セルフ・アテンション知識蒸留の3つの蒸留モジュールを含むネットワーク符号化ベクトルを符号化することで生成されるため、蒸留ネットワーク符号化ベクトルを蒸留ネットワークの遺伝子と定義する。特定の制約条件を満たした上で、まず蒸留ネットワークの遺伝子として一連の蒸留ネットワーク符号化ベクトルを選択し、検証セットで評価することで対応する蒸留ネットワークの精度を取得する。次に最も精度の高い上位k個の遺伝子を選択し、遺伝子組換えと変異を用いて新しい遺伝子を生成する。遺伝子変異とは、遺伝子の一部の要素値をランダムに変化させることにより、変異を行うことである。遺伝子組換えとは、2つの親の遺伝子をランダムに再構成して次世代を生成することである。規格外の遺伝子を排除することで、簡単に制約を強化することができる。上位k個の最適遺伝子の選択過程と、新しい遺伝子の生成過程をさらに数回繰り返すことで、制約条件を満たし、かつ最も精度が高い遺伝子を取得することができる。第3段階:進化的アルゴリズムに基づく蒸留ネットワーク検索のプロセスを
図7に示す:
【0076】
第2段階で訓練済みメタ学習の知識蒸留ネットワークを基に、特定の制約条件を満たす複数の知識蒸留符号化ベクトルを構造生成器に入力して対応する重み行列を生成し、複数の蒸留構造モデルを取得し、検証セットで各蒸留構造モデルを評価して対応する精度を取得し、進化的アルゴリズムを用いて特定の制約条件(浮動小数点演算の回数など)を満たす最も精度の高い蒸留構造モデルを検索することで、タスクに依存しない事前訓練言語モデルの汎用圧縮アーキテクチャを取得する。進化的検索アルゴリズムの具体的なプロセスは以下の通りである:
【0077】
ステップ1、各蒸留構造モデルは、Transformer層サンプリングに基づく知識蒸留符号化ベクトルにより生成されるため、知識蒸留符号化ベクトルを蒸留構造モデルの遺伝子Gと定義し、制約条件Cを満たす一連の遺伝子を初期集団としてランダムに選択する。
【0078】
ステップ2、既存集団の各遺伝子Giに対応する蒸留構造モデルの検証セットにおける推論精度accuracyを評価し、最も精度の高い上位k個の遺伝子を選択する。
【0079】
ステップ3、ステップ2で選択された最も精度の高い上位k個の遺伝子を用いて、遺伝子組換えと遺伝子変異により新しい遺伝子を生成し、新しい遺伝子を既存集団に追加する。遺伝子変異とは、遺伝子の一部の要素値をランダムに変化させることにより、変異を行うことであり、遺伝子組換えとは、2つの親の遺伝子をランダムに再構成して次世代を生成することである。規格外の遺伝子を排除することで、簡単に制約Cを強化することができる。
【0080】
ステップ4、既存集団の中から精度の高い上位k個の遺伝子を選択して新しい遺伝子を生成して、制約条件Cを満たし、かつ精度が最も高い遺伝子を取得するまで、ステップ2と3をN回繰り返す。
【0081】
本発明のマルチレベル知識蒸留に基づく事前訓練言語モデルの自動圧縮プラットフォームは、以下のコンポーネントを含む:
【0082】
データ読み込みコンポーネント:ログインユーザによってアップロードされた、特定の自然言語処理下流タスクのBERTモデルと、マルチタスクに対する事前訓練言語モデルとを含む圧縮すべき訓練サンプルを取得するためのものであり、前記訓練サンプルは教師あり学習タスクを満足する、ラベルを有するテキストサンプルである。
【0083】
自動圧縮コンポーネント:マルチタスクに対する事前訓練言語モデルを自動的に圧縮するためのものであり、知識蒸留ベクトル符号化モジュール、蒸留ネットワーク生成モジュール、構造生成器と蒸留ネットワークの共同訓練モジュール、蒸留ネットワーク検索モジュール、特定タスク微調整モジュールが含まれる。
【0084】
知識蒸留ベクトル符号化モジュールは、Transformerの層サンプリングベクトル、セルフ・アテンションのマルチヘッドプルーニングベクトル、隠れ層次元削減ベクトル、及び埋め込み層次元削減ベクトルを含む。順伝播過程で蒸留ネットワーク符号化ベクトルを構造生成器に入力し、構造の対応する蒸留ネットワークと構造生成器の重み行列を生成する。
【0085】
蒸留ネットワーク生成モジュールは、構造生成器に基づいて現在入力されている符号化ベクトルの対応する蒸留ネットワークを構築し、構造生成器が出力する重み行列の形状を調整し、セルフ・アテンション符号化ベクトルの対応する蒸留構造の入出力するセルフ・アテンションユニットの数と一致させる。
【0086】
構造生成器と蒸留ネットワークの共同訓練モジュールは、構造生成器をエンドツーエンドで訓練し、具体的に、マルチレベル知識蒸留符号化ベクトルと小バッチの訓練データとを蒸留ネットワークに入力する。蒸留構造の重みと構造生成器の重み行列を更新する。
【0087】
蒸留ネットワーク検索モジュールは、進化的アルゴリズムを用いて、特定の制約条件を満たす最も精度の高い蒸留ネットワークを検索する。ネットワーク符号化ベクトルを訓練済み構造生成器に入力し、蒸留ネットワークに対応する重みを生成し、検証セットで蒸留ネットワークを評価して、対応する蒸留ネットワークの精度を取得する。メタ学習蒸留ネットワークで用いられる進化的アルゴリズムでは、各蒸留ネットワークは、埋め込み層知識蒸留、隠れ層状態の知識蒸留、及びセルフ・アテンション知識蒸留の3つの蒸留モジュールを含むネットワーク符号化ベクトルを符号化することで生成されるため、蒸留ネットワーク符号化ベクトルを蒸留ネットワークの遺伝子と定義する。特定の制約条件を満たした上で、まず蒸留ネットワークの遺伝子として一連の蒸留ネットワーク符号化ベクトルを選択し、検証セットで評価することで対応する蒸留ネットワークの精度を取得する。次に最も精度の高い上位k個の遺伝子を選択し、遺伝子組換えと変異を用いて新しい遺伝子を生成する。上位k個の最適遺伝子の選択過程と、新しい遺伝子の生成過程をさらに数回繰り返すことで、制約条件を満たし、かつ最も精度が高い遺伝子を取得する。
【0088】
特定タスク微調整モジュールは、前記自動圧縮コンポーネントによって生成された訓練済みモデル蒸留ネットワーク上に下流タスクネットワークを構築し、蒸留ネットワークの特徴層と出力層を用いて下流タスクシーンを微調整し、最終微調整済みの学生モデル、すなわちログインユーザのニーズである下流タスクを含む事前訓練言語モデルの圧縮モデルを出力する。前記圧縮モデルを、前記ログインユーザがダウンロードできるように、指定されたコンテナに出力し、前記プラットフォームの圧縮モデルを出力するページで、圧縮前後のモデルのサイズの比較情報を表示する。
【0089】
推論コンポーネント:ログインユーザは、前記プラットフォームから訓練済み圧縮モデルを取得し、ユーザが前記自動圧縮コンポーネントにより出力された圧縮モデルを用いて、実際のシーンのデータセットでログインユーザがアップロードした自然言語処理下流タスクの新しいデータを推論する。前記プラットフォームの圧縮モデル推論ページで、圧縮前後の推論速度の比較情報を表示する。
【0090】
ログインユーザは、本発明のプラットフォームが提供した訓練された事前訓練言語モデルを直接ダウンロードすることができ、ユーザの特定の自然言語処理下流タスクに対するニーズに従って、前記プラットフォームで生成された、圧縮された訓練済みモデルアーキテクチャを基にして、下流タスクネットワークを構築し、微調整し、最後に端末デバイスに配置する。または、前記プラットフォームで自然言語処理下流タスクを直接に推論してもよい。
【0091】
以下、映画レビューに対する感情分類タスクで本発明の技術的解決策をさらに詳細に説明する。
【0092】
前記プラットフォームのデータ読み込みコンポーネントにより、ログインユーザがアップロードした個々の文のテキスト分類タスクのBERTモデルおよび感情分析データセットSST-2を取得する。
【0093】
前記プラットフォームの自動圧縮コンポーネントにより、マルチタスクに対するBERT事前訓練言語モデルを生成する。
【0094】
前記プラットフォームが自動圧縮コンポーネントによって生成されたBERT訓練済みモデルを読み込むことで、前記生成された訓練済みモデルの上にテキスト分類タスクのモデルを構築する。
【0095】
前記自動圧縮コンポーネントの特定タスク微調整モジュールに基づき、得られた学生モデルを微調整し、自動圧縮コンポーネントによって生成されたBERT訓練済みモデルの特徴層と出力層とを用いて下流テキスト分類タスクシーンを微調整し、最終的に、プラットフォームは、ユーザのニーズであるテキスト分類タスクを含むBERTモデルの圧縮モデルを出力する。
【0096】
前記圧縮モデルを、前記ログインユーザがダウンロードできるように、指定されたコンテナに出力し、前記プラットフォームの圧縮モデルを出力するページで、圧縮前後のモデルのサイズの比較情報を表示し、圧縮前のモデルのサイズは110Mで、圧縮後は53Mであり、圧縮率は51.8%であり、表1に示す。
【表1】
【0097】
前記プラットフォームの推論コンポーネントにより、前記プラットフォームによって出力された圧縮モデルを用いて、ログインユーザがアップロードしたSST-2テストセットデータに対して推論を行い、圧縮後の推論速度が圧縮前の1.95倍、推論精度が圧縮前の91.5%から92.3%に向上したことを前記プラットフォームの圧縮モデル推論ページで表示する。