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

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

<>
  • 特許-ドメイン固有モデル圧縮 図1
  • 特許-ドメイン固有モデル圧縮 図2
  • 特許-ドメイン固有モデル圧縮 図3
  • 特許-ドメイン固有モデル圧縮 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-22
(45)【発行日】2024-05-01
(54)【発明の名称】ドメイン固有モデル圧縮
(51)【国際特許分類】
   G06N 3/02 20060101AFI20240423BHJP
【FI】
G06N3/02
【請求項の数】 14
(21)【出願番号】P 2022520692
(86)(22)【出願日】2020-10-01
(65)【公表番号】
(43)【公表日】2022-12-20
(86)【国際出願番号】 IB2020059205
(87)【国際公開番号】W WO2021070019
(87)【国際公開日】2021-04-15
【審査請求日】2023-03-24
(31)【優先権主張番号】16/597,920
(32)【優先日】2019-10-10
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】ワン、ハオユイ
(72)【発明者】
【氏名】ユイ、ヤン
(72)【発明者】
【氏名】タン、ミン
(72)【発明者】
【氏名】ポルダー、サロニ
【審査官】福西 章人
(56)【参考文献】
【文献】国際公開第2013/118224(WO,A1)
【文献】米国特許第10140581(US,B1)
【文献】米国特許出願公開第2018/0032866(US,A1)
【文献】米国特許出願公開第2019/0392323(US,A1)
【文献】米国特許出願公開第2019/0138896(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 18/00-18/40
(57)【特許請求の範囲】
【請求項1】
コンピュータの情報処理により、ドメイン固有モデル圧縮をする方法であって、
1つ又は複数のコンピュータプロセッサによって、ニューラルネットワーク・モデルの候補演算に対して重み付けパラメータを提供することと、
前記1つ又は複数のコンピュータプロセッサによって、前記重み付けパラメータを前記候補演算の出力ベクトルに適用することと、
前記1つ又は複数のコンピュータプロセッサによって、前記出力ベクトルへの前記重み付けパラメータの前記適用の正則化を実行することと、
前記1つ又は複数のコンピュータプロセッサによって、前記正則化の結果に応じて前記ニューラルネットワーク・モデルを圧縮することと、
前記1つ又は複数のコンピュータプロセッサによって、圧縮後の前記ニューラルネットワーク・モデルを提供することと
を含む方法
【請求項2】
前記ニューラルネットワーク・モデルが言語処理モデルを含む、請求項1に記載の方法
【請求項3】
前記1つ又は複数のコンピュータプロセッサによって、ラベルなしドメインデータを用いて前記ニューラルネットワークを訓練することをさらに含む、請求項1又は請求項2に記載の方法
【請求項4】
前記1つ又は複数のコンピュータプロセッサによって、2つの目的で前記ニューラルネットワークを訓練することであって、1つの目的がドメイン分類タスクを含む、訓練することをさらに含む、請求項1から請求項3までのいずれかに記載の方法
【請求項5】
前記1つ又は複数のコンピュータプロセッサによって、ラベル付きドメインデータを用いて前記ニューラルネットワークを訓練することをさらに含む、請求項1から請求項4までのいずれかに記載の方法
【請求項6】
前記1つ又は複数のコンピュータプロセッサによって、ニューラルネットワーク・モデルのアテンションヘッド重み値をゼロに減少させることをさらに含む、請求項1から請求項5までのいずれかに記載の方法
【請求項7】
ドメイン固有モデル圧縮のためのコンピュータ・システムであって、
1つ又は複数のコンピュータプロセッサと、
1つ又は複数のコンピュータ可読ストレージデバイスと、
前記1つ又は複数のコンピュータプロセッサによる実行のために前記1つ又は複数のコンピュータ可読ストレージデバイス上に格納されたプログラム命令と
を含み、前記格納されたプログラム命令が、
ニューラルネットワーク・モデルの候補演算に対して重み付けパラメータを提供するためのプログラム命令と、
前記重み付けパラメータを前記候補演算の出力ベクトルに適用するためのプログラム命令と、
前記出力ベクトルへの前記重み付けパラメータの前記適用の正則化を実行するためのプログラム命令と、
前記正則化の結果に応じて前記ニューラルネットワーク・モデルを圧縮するためのプログラム命令と、
圧縮後の前記ニューラルネットワーク・モデルを提供するためのプログラム命令と
を含む、コンピュータ・システム。
【請求項8】
前記ニューラルネットワーク・モデルが言語処理モデルを含む、請求項7に記載のコンピュータ・システム。
【請求項9】
ラベルなしドメインデータを用いて前記ニューラルネットワークを訓練するためのプログラム命令をさらに含む、請求項7又は請求項8に記載のコンピュータ・システム。
【請求項10】
2つの目的で前記ニューラルネットワークを訓練するためのプログラム命令であって、1つの目的がドメイン分類タスクを含む、プログラム命令をさらに含む、請求項7から請求項9までのいずれかに記載のコンピュータ・システム。
【請求項11】
ラベル付きドメインデータを用いて前記ニューラルネットワークを訓練するためのプログラム命令をさらに含む、請求項7から請求項10までのいずれかに記載のコンピュータ・システム。
【請求項12】
ニューラルネットワーク・モデルのアテンションヘッド重み値をゼロに減少させるためのプログラム命令をさらに含む、請求項7から請求項11までのいずれかに記載のコンピュータ・システム。
【請求項13】
理回路により可読であって、請求項1から請求項6までのいずれかに記載の方法を行うために前記処理回路が実行するための命令を格納する、コンピュータ可読ストレージ媒体
【請求項14】
ンピュータ・プログラムであって、前記コンピュータ・プログラムがコンピュータ上で動作したときに請求項1から請求項6までのいずれかに記載の方法を前記コンピュータが行うためのソフトウェアコード部分を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、機械学習モデルの圧縮に関する。本開示は、具体的には、ドメイン固有モデル圧縮によって機械学習モデルのコンピューティング要件を低減することに関する。
【背景技術】
【0002】
畳み込みニューラルネットワーク(CNN)などの人工知能モデルは広く知られている。こうしたモデルは、入力データにおけるパターンを認識し、次いで予測可能な方式で応答する機能を提供する。これらのモデルは、そのモデルを用いて処理することになるデータに類似したデータセットを用いて訓練される。訓練後、モデルは入力データを処理して、モデルの訓練に応じた出力を生成する。
【0003】
訓練済みモデルは過度に複雑になることがある。正則化を用いて、訓練済みモデルの複雑さを減らすことができる。正則化は、モデルのコスト関数を変更し、複雑なモデル項にペナルティを課すペナルティ項をコスト関数に追加することで、訓練済みモデルの複雑さを低減する。
【0004】
リッジ又はL2正則化は、過剰適合した回帰モデルを一般化するために用いられ、モデルの複雑さを低減し、モデルが訓練データセットを超えたデータを扱う能力を向上させる。リッジ正則化は、係数の二乗に関連付けられたペナルティ項をコスト関数に追加して、モデルの複雑さと、その結果として生じるモデルの過剰適合とを低減させる。
【0005】
ラッソ(Lasso:Least Absolute Shrinkage and Selection Operator)又はL1正則化は、係数の絶対値に関連付けられた項をコスト関数に追加して、重要度又は影響度の低い特徴を関数から除去する。
【0006】
したがって、当技術分野では、前述の問題に対処する必要がある。
【発明の概要】
【0007】
第1の態様からみると、本発明は、ドメイン固有モデル圧縮のためのコンピュータ実施方法を提供し、本方法は、1つ又は複数のコンピュータプロセッサによって、ニューラルネットワーク・モデルの候補演算に対して重み付けパラメータを提供することと、1つ又は複数のコンピュータプロセッサによって、重み付けパラメータを候補演算の出力ベクトルに適用することと、1つ又は複数のコンピュータプロセッサによって、出力ベクトルへの重み付けパラメータの適用の正則化を実行することと、1つ又は複数のコンピュータプロセッサによって、正則化の結果に応じてニューラルネットワーク・モデルを圧縮することと、1つ又は複数のコンピュータプロセッサによって、圧縮後のニューラルネットワーク・モデルを提供することと、を含む。
【0008】
さらに別の態様からみると、本発明は、ドメイン固有モデル圧縮のためのコンピュータ・システムを提供し、本コンピュータ・システムは、1つ又は複数のコンピュータプロセッサと、1つ又は複数のコンピュータ可読ストレージデバイスと、1つ又は複数のコンピュータプロセッサによる実行のために1つ又は複数のコンピュータ可読ストレージデバイス上に格納されたプログラム命令とを含み、格納されたプログラム命令は、ニューラルネットワーク・モデルの候補演算に対して重み付けパラメータを提供するためのプログラム命令と、重み付けパラメータを候補演算の出力ベクトルに適用するためのプログラム命令と、出力ベクトルへの重み付けパラメータの適用の正則化を実行するためのプログラム命令と、正則化の結果に応じてニューラルネットワーク・モデルを圧縮するためのプログラム命令と、圧縮後のニューラルネットワーク・モデルを提供するためのプログラム命令とを含む。
【0009】
さらに別の態様からみると、本発明は、ドメイン固有モデル圧縮のためのコンピュータ・プログラム製品を提供し、本コンピュータ・プログラム製品は、処理回路により可読であって、本発明のステップを行う方法を行うために処理回路が実行するための命令を格納するコンピュータ可読ストレージ媒体を含む。
【0010】
さらに別の態様からみると、本発明は、コンピュータ可読媒体上に格納され、デジタルコンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、プログラムがコンピュータ上で動作したときに本発明のステップを行うためのソフトウェアコード部分を含む、コンピュータ・プログラムを提供する。
【0011】
さらに別の態様からみると、本発明は、ドメイン固有モデル圧縮のためのコンピュータ・プログラム製品を提供し、コンピュータ・プログラム製品は、1つ又は複数のコンピュータ可読ストレージデバイスと、1つ又は複数のコンピュータ可読ストレージデバイス上に格納されたプログラム命令とを含み、格納されたプログラム命令は、ニューラルネットワーク・モデルの候補演算に対して重み付けパラメータを提供するためのプログラム命令と、重み付けパラメータを候補演算の出力ベクトルに適用するためのプログラム命令と、出力ベクトルへの重み付けパラメータの適用の正則化を実行するためのプログラム命令と、正則化の結果に応じてニューラルネットワーク・モデルを圧縮するためのプログラム命令と、圧縮後のニューラルネットワーク・モデルを提供するプログラム命令と、を含む。
【0012】
本発明の態様は、ニューラルネットワーク・モデルの候補演算に対して重み付けパラメータを提供することと、重み付けパラメータを候補演算の出力ベクトルに適用することと、重み付けパラメータと出力ベクトルとの組み合わせ(weighting parameter output vector combination)の正則化を実行することと、正則化の結果に応じてニューラルネットワーク・モデルを圧縮することと、圧縮後のニューラルネットワーク・モデルを提供することと、によるドメイン固有モデル圧縮に関連付けられた方法、システム及びコンピュータ可読媒体を開示する。
【図面の簡単な説明】
【0013】
ここで、本発明を、例示として、以下の図に示される好ましい実施形態を参照して説明する。
【0014】
図1】本発明の一実施形態によるシステムの概略図である。
図2】本発明の一実施形態によるオペレーション・シーケンスを示すフローチャートである。
図3】本発明の一実施形態によるクラウド・コンピューティング環境を示す。
図4】本発明の一実施形態による抽象化モデル層を示す。
【発明を実施するための形態】
【0015】
事前訓練済み言語モデル(pre-trained language model)は、その本来の範囲を超えたタスクに適用可能であることがわかっている。BERT(Bidirectional Encoder Representations from Transformers)及びGPT(Generative Pre-Training)モデルなどのモデルは、それらのモデルに対して本来提案されたタスクを超えて用いられている。これらのモデルは、通常、合理的な訓練時間を確保するために、大きな計算リソースを必要とする。訓練が完了した後であっても、これらのモデルを用いる推論に必要な計算リソースは、所望の演算毎秒レベルでの演算を達成するには、やはり大きくなることがある。
【0016】
事前訓練済み言語モデルを深層学習モデルに追加することによって、深層学習モデルのインテント分類精度を向上させることができる。モデルは何百万ものパラメータを含むことがあり、計算コストが高いので、この追加は些細なものではない。統合されたモデルを圧縮して計算コストを削減することができれば、低コストの選択肢を提供する一方で、性能を向上させることになるであろう。タスク固有の深層学習モデルを圧縮して、必要なコンピューティング・リソース及びコストを削減する方法が必要とされる。
【0017】
一実施形態において、本方法は、事前訓練済み言語モデルを用いて開始する。この実施形態において、事前訓練済みモデルは、BERT、GPT、ELMo、又は他の言語モデルとすることができる。モデルは、TRANSFORMERベースのモデル、再帰型ニューラルネットワーク(RNN)、又はモデルネットワーク内に繰返しパターンを有する畳み込みニューラルネットワーク(CNN)ベースのモデルとすることができる。一実施形態において、モデルは、特定の言語又は主題分野、スポーツ、金融、一般ニュース、科学ニュースといった特定のドメインを処理するように事前訓練される。この実施形態において、モデルは、言語翻訳、自然言語処理、質問回答、テキスト分類といった定義されたタスクを完成させるように事前訓練することもできる(注:「BERT」、「GPT」、「ELMo」、及び「TRANSFORMER」という用語は、世界中の様々な管轄区域において商標権の対象となっている場合があり、本明細書では、そうした商標権が存在し得る範囲で、それら標章によって適正に称される製品又はサービスを参照するためにのみ用いられる)。
【0018】
一実施形態において、本方法は、事前訓練済みモデルの各経路又は候補演算に対して、付加的な重み付けパラメータwを導入する。BERTモデルを使用する実施形態において、追加の重み付けパラメータは、モデルの各層の各アテンションヘッドに対して導入される。モデルは、モデルの各層の出力ベクトルに、新たな重み付けパラメータを乗算する。一実施形態において、新しい重み付けパラメータの初期値はすべて1に設定される。これらのパラメータを出力ベクトルにわたって乗算しても、モデルには何の影響もない。
【0019】
一実施形態において、本方法は、新しい重み付けパラメータを含む改訂モデルを用いて、ラベルなしデータ、すなわちデータを説明するラベル又はそれ以外にデータをセグメント化するラベルによるカテゴリ分け又は分類がなされていないデータのセットを処理する。この実施形態において、本方法は、新しい重み付け係数に対して正則化を行う。この実施形態において、正則化は、重み付け係数に基づくL1正則化又はL2正則化のいずれかである。
【0020】
L1正則化は、モデルのコスト関数を変更する。一実施形態において、本方法は、新しい重み付けパラメータwの絶対値を含む項を追加することによって、コスト関数を変更する。この実施形態において、変更されたコスト関数を最適化することで、処理モデルの重要度の低い特徴を表す候補演算を識別する。この実施形態において、モデルがラベルなしデータを処理すると、その重み付けパラメータの値はゼロになる。一実施形態において、このようにして重要度の低い候補演算を除去することにより、残りの演算に、これらの重要度の低い候補演算によって表される情報を捕捉させる。この実施形態では、モデルの全体としての情報コンテンツを維持する一方で、非ゼロの候補演算の数を減らすことができる。
【0021】
一実施形態において、L1正則化を用いて、ユーザは、正則化によって生じるべきゼロ値候補演算の割合、並びに、所望のモデル精度を指定する。この実施形態において、ユーザは、小さい、非ゼロの重み付けパラメータ値を、正則化によって生じる候補演算の割合に含めるように指定することもできる。この実施形態において、本方法は、正則化されたモデルの速度と精度とのバランスをとる。この実施形態において、ゼロ重みを有する候補演算はもはや計算されなくなるので、モデルの速度に影響を与える。この実施形態において、本方法は、そのモデルについて、ゼロ値候補演算の数を増加させると精度が低下し、ゼロ値候補演算の数を減少させるとモデルの速度が低下するところの、ゼロ値候補演算の割合を与える。
【0022】
一実施形態において、本方法は、正則化が完了した後、ゼロ値重み付けパラメータwを有するすべての候補演算を除去することによって、事前訓練済みモデルを改訂する。この実施形態において、改訂モデルは圧縮され、より少ないリソースを使用し、そのドメイン及びタスクにおいて許容できる精度を達成する。
【0023】
一実施形態において、本方法はL2正則化を用いてモデルを圧縮する。この実施形態において、本方法は、モデルの候補演算に新たな重み付けパラメータを再び追加する。この実施形態において、本方法は、パラメータの絶対値ではなく、重み付けパラメータの二乗に関連付けられたペナルティ項を追加することによって、モデルのコスト関数を変更する。この実施形態において、正則化は、変更されたコスト関数を最適化しながら進行する。この実施形態において、ユーザは、重み付けパラメータの閾値レベルと、この閾値未満の候補演算の所望の割合、並びに所望のモデル精度を指定する。本方法は、閾値未満の重み付けパラメータ値を有する候補演算の所望の割合と、所望の精度との組み合わせが達成されるまで、ラベルなしデータを用いて正則化を進める。
【0024】
一実施形態において、本方法は、1つ又は複数の追加のタスク項をモデルのコスト関数に追加することによって、追加の重み付けパラメータを用いてモデルの正則化を拡張する。こうした項をコスト関数に追加することで、元のドメインにおける元のタスク並びに追加されたタスクを達成することが可能な、正則化された圧縮モデルが得られる。この実施形態において、モデルのコスト関数に追加のタスク及び正則化項を追加した後、改訂モデルは、ラベル付きデータ、すなわちその属性の1つ又は複数によって特徴付けられたデータを処理する。例えば、言語モデリングのための単一目的モデルは、重み付きテキスト分類項をモデルのコスト関数に追加し、改訂版のモデルでインテントデータのラベル付きテキスト分類を処理することによって、インテント検出タスクのためのテキスト分類を含むように拡張されることができる。
【0025】
一実施形態において、本方法は、直接使用するための圧縮モデル、又は同じドメインに関連する別のモデルと統合するための圧縮モデルを提供する。この実施形態において、圧縮モデルの統合は、機械翻訳、自然言語処理、質問回答、テキスト分類などの追加のタスク特徴をドメイン内の元のモデルに追加する。この実施形態において、圧縮統合モデルは、本発明によるモデルの圧縮ゆえに、クラウド・サービス、エッジクラウド・サービス、及び独立型ローカルサービス提供としての使用のために提供される。
【0026】
図1は、開示される発明を実施することに関連付けられた例示的なネットワークリソースの概略図である。本発明は、命令ストリームを処理する、開示される要素のいずれかのプロセッサにおいて実施することができる。図に示すように、ネットワーク接続されたクライアント・デバイス110は、サーバ・サブシステム102に無線で接続する。クライアント・デバイス104は、ネットワーク114を介してサーバ・サブシステム102に無線で接続する。クライアント・デバイス104及び110は、モデル圧縮プログラム(図示せず)を、そのプログラムを実行するのに十分なコンピューティング・リソース(プロセッサ、メモリ、ネットワーク通信ハードウェア)とともに含む。図1に示すように、サーバ・サブシステム102は、サーバ・コンピュータ150を含む。図1は、本発明の一実施形態による、ネットワーク化コンピュータ・システム1000内のサーバ・コンピュータ150のコンポーネントのブロック図を示す。図1は、1つの実装の例示のみを提供するものであり、異なる実施形態を実装することができる環境に関して、いかなる制限も意味しないことを理解すべきである。図示される環境に対して多くの変更を行うことができる。
【0027】
サーバ・コンピュータ150は、プロセッサ154と、メモリ158と、永続ストレージ170と、通信ユニット152と、入力/出力(I/O)インターフェース156と、通信ファブリック140とを含むことができる。通信ファブリック140は、キャッシュ162と、メモリ158と、永続ストレージ170と、通信ユニット152と、入力/出力(I/O)インターフェース156との間の通信を提供する。通信ファブリック140は、プロセッサ(マイクロプロセッサ、通信及びネットワークプロセッサなど)と、システムメモリと、周辺デバイスと、システム内の他のハードウェア・コンポーネントとの間でデータもしくは制御情報又はその両方を渡すために設計された任意のアーキテクチャで実装することができる。例えば、通信ファブリック140は、1つ又は複数のバスで実装することができる。
【0028】
メモリ158及び永続ストレージ170は、コンピュータ可読ストレージ媒体である。この実施形態において、メモリ158は、ランダム・アクセス・メモリ(RAM)160を含む。一般に、メモリ158は、任意の適切な揮発性又は不揮発性のコンピュータ可読ストレージ媒体を含むことができる。キャッシュ162は、最近アクセスされたデータ、及び最近アクセスされたデータに近いデータをメモリ158から保持することによって、プロセッサ154の性能を向上させる高速メモリである。
【0029】
本発明の実施形態を実施するために用いられるプログラム命令及びデータ、例えばモデル圧縮プログラム175は、キャッシュ162を介したサーバ・コンピュータ150のそれぞれのプロセッサ154の1つ又は複数による実行もしくはアクセス又はその両方のために、永続ストレージ170に格納される。この実施形態において、永続ストレージ170は、磁気ハードディスクドライブを含む。代替的に、又は磁気ハードディスクドライブに加えて、永続ストレージ170は、ソリッドステートハードドライブ、半導体ストレージデバイス、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリメモリ(EPROM)、フラッシュメモリ、又はプログラム命令もしくはデジタル情報を格納することができる任意の他のコンピュータ可読ストレージ媒体を含むことができる。
【0030】
また、永続ストレージ170が用いる媒体は、取り外し可能なものであってもよい。例えば、取り外し可能なハードドライブを永続ストレージ170に用いることができる。他の例としては、永続ストレージ170の一部でもある、別のコンピュータ可読ストレージ媒体に転送するためにドライブに挿入される、光ディスク及び磁気ディスク、サム・ドライブ、及びスマート・カードがある。
【0031】
通信ユニット152は、これらの例において、クライアント・コンピューティングデバイス104及び110のリソースを含む、他のデータ処理システム又はデバイスとの通信を提供する。これらの例において、通信ユニット152は、1つ又は複数のネットワークインターフェースカードを含む。通信ユニット152は、物理通信リンク及び無線通信リンクのいずれか又は両方を用いて通信を提供することができる。ソフトウェア配布プログラム、及び本発明の実装に用いられる他のプログラム及びデータは、通信ユニット152を通してサーバ・コンピュータ150の永続ストレージ170にダウンロードすることができる。
【0032】
I/Oインターフェース156は、サーバ・コンピュータ150に接続することができる他のデバイスとのデータの入出力を可能にする。例えば、I/Oインターフェース156は、キーボード、キーパッド、タッチスクリーン、マイクロフォン、デジタルカメラ、もしくは他の適切な入力デバイス又はそれらの組み合わせなどの外部デバイス190への接続を提供することができる。外部デバイス190は、例えば、サム・ドライブ、ポータブル光ディスク又は磁気ディスク、及びメモリカードなどのポータブル・コンピュータ可読ストレージ媒体を含むこともできる。本発明の実施形態を実施するために用いられるソフトウェア及びデータ、例えば、サーバ・コンピュータ150上のモデル圧縮プログラム175は、このようなポータブル・コンピュータ可読ストレージ媒体に格納することができ、I/Oインターフェース156を介して永続ストレージ170にロードすることができる。I/Oインターフェース156は、ディスプレイ180にも接続される。
【0033】
ディスプレイ180は、データをユーザに表示する機構を提供し、例えば、コンピュータモニタとすることができる。また、ディスプレイ180は、タブレットコンピュータのディスプレイのようなタッチスクリーンとして機能することもできる。
【0034】
図2は、本開示の実施に関連付けられた例示的な活動を示すフローチャート200を提供する。プログラム開始後、210において、プログラム175は、訓練済みニューラルネットワークの候補演算に、重み付けパラメータ、すなわち係数を追加する。ニューラルネットワークは、機械翻訳、自然言語処理、質問回答、テキスト分類などのために訓練することができる。ニューラルネットワークは、TRANSFORMERベースのモデル、RNN、CNN、又はニューラルネットワークの候補演算に関連付けられた繰り返しパターンを有する他のいずれかのニューラルネットワーク・アーキテクチャとすることができる。一実施形態において、ニューラルネットワークは、12個のレベルと、レベルごとに12個のアテンションヘッド又は候補演算を有するBERTモデルを含む。
【0035】
一実施形態において、220で、プログラム175は、重み付けパラメータwを、訓練済みニューラルネットワークの候補演算の出力ベクトルに適用する。この実施形態において、本方法は、重み付けパラメータの値を1.0に初期設定する。これらの単位値(unitary value)の重み付けパラメータの適用は、モデルの出力に直ちに影響を与えない。この実施形態において、本方法は、重み付けパラメータを、ニューラルネットワーク・モデルの各レベルにおける候補演算の出力ベクトル、例えば、BERTモデルの12個のレベルの出力ベクトルに適用する。
【0036】
一実施形態において、230で、プログラム175は、モデルの正則化を実行する。この実施形態において、本方法は、重み付けパラメータwに基づいて、モデルのL1正則化、又はL2正則化を実行する。この実施形態において、本方法は、モデルへの入力としてラベルなしデータを用いて正則化を実行する。正則化は、層の出力及びモデル全体の出力にほとんど、あるいはまったく影響を与えない候補演算を識別する。識別された候補の係数は、正則化が進むにつれて、初期値である1から徐々に減少する。一実施形態において、本方法は、L1正則化を用いて、ラベルなしデータを処理している間に、ゼロ値係数を有する候補演算を識別する。この実施形態において、本方法は、正則化によって生じるべき、ゼロ重みの候補演算の数についての閾値を設定する。この実施形態において、本方法は、モデルの精度を低下させることなく、正則化が識別するゼロ値係数の候補演算の数を最大化するように閾値を設定する。ゼロ値係数を有する候補演算は、典型的には、モデル出力精度に影響を与えるとしても、ほとんど影響はない。
【0037】
一実施形態において、本方法は、L2正則化を用いて、モデル出力への影響が小さい候補演算を識別する。この実施形態において、本方法は、モデルへの影響が小さいことを定義する閾値を設定し、本方法は、正則化処理によって生じるべき、影響が小さいことの閾値未満の候補演算の数を定義する第2の閾値を設定する。この実施形態において、本方法は、識別される候補演算の数を最大化することと、モデルの精度を低下させることとの間のバランスとして、これらの閾値を設定する。
【0038】
一実施形態において、240で、プログラム175は、ステップ230で識別された候補演算を除去することにより、モデルを圧縮する。本方法は、ステップ230の閾値を用いて、モデルの精度に影響を与えずに無視できる候補演算の最大数を識別する。この実施形態において、本方法は、これらの識別された候補演算をモデルから除去し、モデルのサイズ及び計算の複雑性を圧縮し、モデルの実行速度を向上させる。適切に設定された閾値は、圧縮モデルが正確な結果を提供することを保証する。
【0039】
一実施形態において、250で、プログラム175は、使用のための圧縮モデルを提供する。圧縮モデルは、元のモデルよりも候補演算が少なく、モデルの格納及び実行に必要なメモリ及びCPUリソースが小さい。一実施形態において、圧縮モデルは、モデルが必要とするシステムリソースがより小さく、より広い範囲のシステムで使用することができるという意味で、よりポータブルである。例えば、大規模なクラウドリソースを用いて開発されたモデルを、エッジクラウド又はローカルコンピューティング・リソースで使用できる点まで圧縮することができる。
【0040】
本開示はクラウド・コンピューティングについての詳細な説明を含むが、本明細書に記載される教示の実施は、クラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本開示の実施形態は、現在既知の又は後で開発されることになる他のあらゆるタイプのコンピューティング環境とともに実施することができる。
【0041】
クラウド・コンピューティングは、最小限の管理労力又はサービス・プロバイダとの対話で迅速にプロビジョニング及び解放することができる構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの、便利なオンデマンドのネットワークアクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、及び少なくとも4つのデプロイメント・モデルを含むことができる。
【0042】
特徴は、以下の通りである。
オンデマンド・セルフ・サービス:クラウド・コンシューマは、必要に応じて、サーバ時間及びネットワーク・ストレージ等のコンピューティング機能を、人間がサービスのプロバイダと対話する必要なく自動的に、一方的にプロビジョニングすることができる。
広範なネットワークアクセス:機能は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的な機構を通じてアクセスされる。
リソースのプール化:プロバイダのコンピューティング・リソースは、マルチテナント・モデルを用いて複数のコンシューマにサービスを提供するためにプールされ、異なる物理及び仮想リソースが要求に応じて動的に割り当て及び再割り当される。コンシューマは、一般に、提供されるリソースの正確な位置についての制御又は知識を持たないという点で位置とは独立しているといえるが、より抽象化レベルの高い位置(例えば、国、州、又はデータセンタ)を特定できる場合がある。
迅速な弾力性:機能を、迅速かつ弾力的に、場合によっては自動的に、プロビジョニングして素早くスケールアウトし、迅速に解放して素早くスケールインすることができる。コンシューマにとって、プロビジョニングに利用可能な機能は、多くの場合、無制限であるように見え、いつでもどんな量でも購入できる。
計測されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザアカウント)に適した何らかの抽象化レベルでの計量機能を用いることによって、リソースの使用を自動的に制御及び最適化する。リソース使用を監視し、制御し、報告して、利用されるサービスのプロバイダとコンシューマの両方に対して透明性をもたらすことができる。
【0043】
サービス・モデルは以下の通りである。
Software as a Service(SaaS):コンシューマに提供される機能は、クラウド・インフラストラクチャ上で動作する、プロバイダのアプリケーションを使用することである。これらのアプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを通じて、種々のクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定を想定される例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション機能をも含めて、基礎をなすクラウド・インフラストラクチャを管理又は制御しない。
Platform as a Service(PaaS):コンシューマに提供される機能は、プロバイダによってサポートされるプログラミング言語及びツールを用いて生成された、コンシューマが生成した又は取得したアプリケーションを、クラウド・インフラストラクチャ上にデプロイすることである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージなどの基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、デプロイされたアプリケーション、及び場合によってはアプリケーションホスティング環境構成に対する制御を有する。
Infrastructure as a Service(IaaS):コンシューマに提供される機能は、コンシューマが、オペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアをデプロイ及び動作させることができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースをプロビジョニンングすることである。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションに対する制御、及び場合によってはネットワーク・コンポーネント(例えば、ホストのファイアウォール)選択に対する限定された制御を有する。
【0044】
デプロイメント・モデルは以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運営される。このクラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、オンプレミス又はオフプレミスに存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャは、幾つかの組織によって共有され、共通の関心事項(例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。このクラウド・インフラストラクチャは、それら組織又は第三者によって管理することができ、オンプレミス又はオフプレミスに存在することができる。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループに利用可能であり、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションのポータビリティを可能にする標準化技術又は専用技術(例えば、クラウド間の負荷分散のためのクラウドバースティング)によって互いに結び付けられた2つ以上のクラウド(プライベート、コミュニティ、又はパブリック)の混成である。
【0045】
クラウド・コンピューティング環境は、サービス指向であり、ステートレス性、低結合性、モジュール性、及びセマンティック相互運用性に焦点を置く。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0046】
ここで図3を参照すると、例示的なクラウド・コンピューティング環境50が描かれている。図示のように、クラウド・コンピューティング環境50は、クラウド・コンシューマによって用いられる例えば携帯情報端末(PDA)又は携帯電話54A、デスクトップコンピュータ54B、ラップトップ・コンピュータ54C、もしくは車載コンピュータ・システム54N又はそれらの組み合わせなどのようなローカル・コンピューティング・デバイスと通信することができる、1つ又は複数のクラウド・コンピューティング・ノード10を含む。ノード10は、互いに通信することができる。これらのノードを物理的又は仮想的にグループ化して(図示せず)、上述のようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、もしくはハイブリッド・クラウド、又はこれらの組み合わせなど、1つ又は複数のネットワークにすることができる。このことは、クラウド・コンピューティング環境50が、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のない、infrastructure as a service、platform as a service、もしくはsoftware as a service又はそれらの組み合わせを提供することを可能にする。図3に示されるコンピューティング・デバイス54A~Nのタイプは単に例示であることを意図しており、コンピューティング・ノード10及びクラウド・コンピューティング環境50は、あらゆるタイプのネットワーク上でもしくはネットワーク・アドレス指定可能な接続(例えば、ウェブ・ブラウザを用いる)上で又はその両方で、あらゆるタイプのコンピュータ化されたデバイスと通信できることが理解される。
【0047】
ここで図4を参照すると、クラウド・コンピューティング環境50(図3)によって提供される機能抽象化層のセットが示される。図4に示されるコンポーネント、層、及び機能は単に例示であることを意図し、本発明の実施形態はそれらに限定されないことを予め理解されたい。図示されるように、以下の層及び対応する機能が提供される。
【0048】
ハードウェア及びソフトウェア層60は、ハードウェア及びソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、メインフレーム61、RISC(Reduced Instruction Set Computer(縮小命令セットコンピュータ))アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージデバイス65、並びにネットワーク及びネットワーキング・コンポーネント66が含まれる。幾つかの実施形態において、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67及びデータベース・ソフトウェア68を含む。
【0049】
仮想化層70は、仮想エンティティの以下の例、すなわち、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーション及びオペレーティング・システム74、並びに仮想クライアント75を提供することができる抽象化層を提供する。
【0050】
一例において、管理層80は、以下で説明される機能を提供することができる。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格決定82は、クラウド・コンピューティング環境内でリソースが利用されたときのコスト追跡と、これらのリソースの消費に対する課金又は請求とを提供する。一例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクについての識別情報の検証と、データ及び他のリソースに対する保護とを提供する。ユーザ・ポータル83は、コンシューマ及びシステムアドミニストレータに対してクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス・レベル・アグリーメント(Service Level Agreement、SLA)の計画及び履行85は、SLAに従って将来的な必要性が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。
【0051】
ワークロード層90は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができるワークロード及び機能の例として、マッピング及びナビゲーション91、ソフトウェア開発及びライフサイクル管理92、仮想教室教育配信93、データ分析処理94、トランザクション処理95、及びモデル圧縮プログラム175が挙げられる。
【0052】
本発明は、集積のあらゆる可能な技術的詳細レベルの、システム、方法、もしくはコンピュータ・プログラム製品又はそれらの組み合わせとすることができる。本発明は、命令ストリームを処理する単一又は並列の任意のシステムにおいて有益に実施することができる。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有する1つ又は複数のコンピュータ可読ストレージ媒体を含むことができる。
【0053】
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のために命令を保持及び格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁気ストレージデバイス、半導体ストレージデバイス、又は上記のものの任意の適切な組み合わせとすることができるがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュメモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、メモリスティック、フロッピーディスク、記録された命令を有するパンチカードもしくは溝内に隆起した構造等の機械式コード化デバイス、及び上記のものの任意の適切な組み合わせを含む。コンピュータ可読ストレージ媒体は、本明細書で用いられる場合、無線波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通って伝搬する電磁波(例えば光ファイバケーブルを通る光パルス)、又は電線を通って伝送される電気信号のような一時的な信号自体と解釈すべきではない。
【0054】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスにダウンロードすることも、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワークもしくは無線ネットワーク又はそれらの組み合わせを経由して、外部コンピュータもしくは外部ストレージデバイスにダウンロードすることもできる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジサーバ又はそれらの組み合わせを含むことができる。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カード又はネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、そのコンピュータ可読プログラム命令をそれぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体にストレージのために転送する。
【0055】
本発明のオペレーションを実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、又は、SmalltalkもしくはC++などのオブジェクト指向プログラミング言語及び「C」プログラミング言語もしくは類似のプログラミング言語のような手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータもしくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続が行われる場合もある(例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて)。幾つかの実施形態において、例えばプログラム可能論理回路、フィールドプログラム可能ゲートアレイ(FPGA)、又はプログラム可能論理アレイ(PLA)を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することにより、コンピュータ可読プログラム命令を実行することができる。
【0056】
本発明の態様は、本明細書において、本発明の実施形態による方法、装置(システム)、及びコンピュータ・プログラム製品のフローチャート図もしくはブロック図又はその両方を参照して説明される。フローチャート図もしくはブロック図又はその両方の各ブロック、並びにフローチャート図もしくはブロック図又はその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装することができることが理解されるであろう。
【0057】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロック内で指定された機能/動作を実装するための手段を作り出すようにすることができる。これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、もしくは他のデバイス又はそれらの組み合わせを特定の方式で機能させるように指示することができるコンピュータ可読ストレージ媒体内に格納し、それにより、その中に格納された命令を有するコンピュータ可読媒体が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む製品を含むようにすることもできる。
【0058】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置又は他のデバイス上にロードして、一連のオペレーションステップをコンピュータ、他のプログラム可能データ処理装置又は他のデバイス上で行わせてコンピュータ実装のプロセスを生成し、それにより、コンピュータ、他のプログラム可能装置又は他のデバイス上で実行される命令が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロックにおいて指定された機能/動作を実装するようにすることもできる。
【0059】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及びオペレーションを示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又は命令の一部を表すことができる。幾つかの代替的な実装において、ブロック内に記された機能は、図中に記された順序とは異なる順序で行われることがある。例えば、連続して示された2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図もしくはフローチャート図又はその両方の各ブロック、及びブロック図もしくはフローチャート図又はその両方の中のブロックの組み合わせは、指定された機能又は動作を実行する専用ハードウェア・ベースのシステムによって実装することもでき、又は専用ハードウェアとコンピュータ命令との組み合わせを実行することもできることにも留意されたい。
【0060】
本明細書中の「1つの実施形態」、「一実施形態」、「例示的な実施形態」などの言及は、記載される実施形態が特定の特徴、構造、又は特性を含むことができるが、あらゆる実施形態が必ずしもその特定の特徴、構造、又は特性を含むわけではないことを示す。さらに、このような語句は、必ずしも同じ実施形態を指しているわけではない。さらに、ある実施形態に関連して特定の特徴、構造、又は特性が記載されている場合、明示的に記載されているか否かにかかわらず、他の実施形態に関連してこのような特徴、構造、又は特性に影響を与えることは、当業者の知識の範囲内であることが提示される。
【0061】
本明細書で用いられる用語は、特定の実施形態を説明することのみを目的としたものであり、本発明を限定することを意図したものではない。本明細書で使用される単数形「a」、「an」及び「the」は、前後関係から明らかに別の意味を示さない限り、複数形態も含むことを意図する。さらに、本明細書内で使用する場合に、「備える、含む」もしくは「備えている、含んでいる」又はその両方の用語は、そこに述べた特徴、整数、ステップ、オペレーション、要素もしくはコンポーネント又はそれらの組み合わせの存在を明示しているが、1つ又は複数のその他の特徴、整数、ステップ、オペレーション、要素、コンポーネントもしくはそれらの群又はそれらの組み合わせの存在又は付加を排除するものではないことは理解されるであろう。
【0062】
本発明の種々の実施形態の説明は、例証の目的で提示したものであるが、網羅的であることも、又は開示された実施形態に限定することも意図しない。本発明の範囲から逸脱することなく、多くの修正及び変形が当業者には明らかであろう。本明細書で用いる用語は、実施形態の原理、実際的な用途、もしくは市場において見いだされる技術に優る技術的改善を最も良く説明するように、又は当業者が本明細書で開示される実施形態を理解することを可能にするように、選択されたものである。
図1
図2
図3
図4