- はじめに
- アクセス制御と管理
- ソースとデータセットを管理する
- モデルのトレーニングと保守
- 生成 AI による抽出
- 分析と監視を使用する
- オートメーションと Communications Mining™
- 開発者
- 機械が単語を理解する方法:NLPに埋め込むためのガイド
- トランスフォーマーによるプロンプトベースの学習
- 効率的な変圧器II:知識蒸留と微調整
- 効率的な変圧器I:注意メカニズム
- 階層的な教師なしインテントモデリング:トレーニングデータなしで価値を得る
- Communications Mining™ でアノテーションの偏りを修正する
- アクティブ ラーニング: より優れた ML モデルを短時間で実現
- それはすべて数字にあります-メトリックを使用してモデルのパフォーマンスを評価します
- モデルの検証が重要な理由
- 対話データ分析 AI としての Communications Mining™ と Google AutoML を比較する
- ライセンス
- よくある質問など
効率的な変圧器I:注意メカニズム
Transformer ベースの NLP モデルをより効率的にするために Automation Cloud の IXP Communications Mining で使用されるアテンション メカニズム。
ビジネスはコミュニケーションで成り立っています。顧客は何かが必要なときに手を差し伸べます。同僚は仕事を成し遂げるためにつながります。Communications Mining™ の使命は、企業におけるサービス業務の経済性を根本的に変え、あらゆるインタラクションの価値を引き出し、サービスを効率的かつスケーラブルなものにすることです。これは、最先端のNLPとNLUへのアクセスを民主化することで実現します。
具体的には、Communications Mining のモデルでは、 Transformer と呼ばれるディープ ラーニング アーキテクチャが使用されています。トランスフォーマーは、NLU性能の大幅な向上を促進します。ただし、新しい概念を学習するためのモデルのトレーニングと、その概念を使用して予測を行う方法の両方で、高い計算負荷がかかります。この2部構成のシリーズでは、これらの大規模なTransformerアーキテクチャを使用する速度を向上させ、計算コストを削減するための複数の手法を検討します。
この投稿では、次のことを行います。
- NLPにモデルを埋め込んだ簡単な歴史を紹介します。
- Transformer の自己注意メカニズムの計算ワークロードが高い理由を説明する。
- パフォーマンスを大幅に損なうことなく、トレーニングと実行をより計算効率の高い従来の Transformer アーキテクチャに加えた変更を確認します。
The next post will look at additional computational and approximation techniques that yield further efficiency gains. The next post will:
- 小さなモデルをトレーニングして、大きなモデルのパフォーマンスを近似する蒸留技術について説明します。
- パラメーターの更新が制限されている効率的な微調整手法について説明する。
- これらの各方法をいつ使用するかについての推奨事項を提供します。
背景
過去 10 年間で、NLP 手法はさまざまなタスクの実行において大幅に向上しました。これは主に、手作業による特徴量工学ベースのアプローチから、機械学習によって駆動される方法への移行に起因する可能性があります。
パフォーマンスの最大の改善は、教師なしの事前トレーニング済みセマンティック表現学習の進歩によるものです。これには、自然言語シーケンスをマッピングするモデルのトレーニングが含まれます (例:単語、文)から、それらの意味的意味を表すベクトル(数の列)まで。これらのベクターは、目的のタスクを実行するために使用できます。意図認識、感情分類、名前付き一般フィールド認識など
単語の埋め込み
パラダイムシフトは、2010年代に word2vec や GloVeなどの単語埋め込みメソッドから始まりました。これらの手法では、大規模な自然言語データセットを使用して、教師なしの方法で単語の埋め込み (ベクトルの別の単語) を学習します。
埋め込みは、単語が頻繁に出現するコンテキストに基づいて意味情報をエンコードします。たとえば、「コンピューター」という単語は、「キーボード」、「ソフトウェア」、「インターネット」などの単語と一緒に出現することがよくあります。これらの一般的な隣接する単語は、「コンピューター」の埋め込みがエンコードする必要がある情報を具体化しています。
従来の単語埋め込みには重要な弱点があります - それらは静的です、すなわち、与えられた単語の埋め込みは常に同じです。 たとえば、「銀行」という言葉を考えてみましょう - これは川の端や金融機関を指す場合があります。その埋め込みは、両方の意味をエンコードする必要があります。
コンテキストの埋め込み
この弱点に対処するために、コンテキスト埋め込みメソッドが開発されました。 これらは、シーケンスに応じて単語ごとに異なる埋め込みを持っています(例: 文、文書)それが発生します。 この一連の作業はゲームを変えました。現在、コンテキスト埋め込みに依存しない最先端のメソッドを見つけることは非常にまれです。
最初の一般的なコンテキスト埋め込み手法の1つは、次の単語予測目標を使用して、大規模な自然言語コーパスで再帰型ニューラルネットワーク(RNN)モデルを事前トレーニングする ELMoでした。このモデルの内部表現は、教師ありタスクを実行するための(通常は小さな)モデルへの入力として使用されます。当時、このアプローチは、いくつかのタスクにわたって以前の最先端技術を大幅に改善しました。
RNNからトランスフォーマーへの移行
RNN は各単語を 1 つずつ順番に処理するため、長いドキュメントを処理する場合は処理が遅くなる可能性があります。その結果、ELMoのリカレントコンポーネントを、より並列計算に適したTransformerに置き換える BERT や RoBERTaなどのモデルが、頼りになるアプローチになりました。
これらのモデルは通常、マスクされた言語モデリングの目的を持って事前トレーニングされています。シーケンス内の単語のサブセットを削除し、モデルが不足している単語が何であるかを予測する任務を負います。
ただし、最新のTransformerベースの言語モデルは一般に非常に大きく、数十億のパラメーターを含む可能性があり、実行が非常に計算上要求されます。 一般的なワークフローは次のとおりです。
- 汎用の注釈なしデータセットで言語モデルを事前にトレーニングします。
- ドメイン固有の注釈なしデータセットで言語モデルをさらに事前トレーニングします。
- 注釈付きデータを使用して言語モデルを微調整し、目的の教師ありタスクを実行します。
通常、これらの手順の最初の手順は 1 回限りのコストですが、後の 2 つはそうではありません。 また、計算能力が安価になる一方で、トランスフォーマーのアーキテクチャはますます大きくなっています。 これは、最先端のパフォーマンスのコストが必ずしも減少していないことを意味します。
したがって、この投稿では、パフォーマンスへの影響を最小限に抑えながら、計算ワークロードを軽減するさまざまな手法を紹介します。
自己注意メカニズム
トランスフォーマーはサブワードトークンで動作しますが、この記事では、物事を理解しやすくするために、全体を通して単語を参照しています。
The Transformer architecture begins with a learnable embedding layer. Each subsequent layer builds its internal representations using a ‘self-attention’ mechanism (i.e., the representation for each word looks at every other word in the sequence. Check Figure 1 for an example.). Each self-attention layer comprises multiple ‘heads’ (each head does its own self-attention).
自己注意メカニズム
Suppose there are N words in a sequence. Each self-attention head has D-dimensional query, key and value vectors for each word, which are computed using the output of the previous layer h(n-1):
これらは、それぞれN×D行列 Q、 K 、 およびV に連結されます。アテンション行列は次のように計算されます。
次に、セルフアテンションレイヤーの出力は次のように計算されます。
各層の最終出力は、各ヘッドのセルフアテンション出力を連結し、これを小さなフィードフォワードネットワークを介して供給することによって計算されます。
Although (unlike RNNs) the computation can be done in parallel, Figure 1 shows that there will be N² self-attention operations to perform for a sequence with N words. That is, the computational complexity scales quadratically with sentence length. When considering that modern Transformers use tens of layers, each with tens of heads consisting of thousands of dimensions, there are lots of operations to perform even for a single sequence.
Naturally, one line of research aims to reduce this N² complexity with simpler self-attention mechanisms; this is the biggest area of research into efficient Transformer architectures. Some popular approaches are reviewed in the sections that follow. For more comprehensive coverage, check this survey paper.
ブロックごとに注意を払う
操作の数を減らす1つの方法は、セルフアテンションメカニズムが見るシーケンス内の単語数を制限することです。BlockBERT は、シーケンスをチャンクにセグメント化することでこれを行います。特定のアテンションヘッドでは、チャンク内のアテンションメカニズムは、チャンクの1つの内の単語のみを見ます(例については図2を参照)。すべてのレイヤーのすべてのアテンションヘッドは、アテンションメカニズムが見るチャンクを並べ替えます。
これは、数十のレイヤーの後、各単語の埋め込みがシーケンス全体にわたって存在する可能性が高いことを意味します。モデルのサイズにもよりますが、RoBERTaと比較すると、BlockBERTはトレーニングが12%〜25%速く、必要なメモリが19%〜36%少なく、質問応答タスクでほぼ同じパフォーマンスを発揮します(F1スコアはSQuAD 2.0で~0.8ポイント低くなっています)。
BlockBERT 自己注意メカニズムは、1 つのブロック内の単語にのみ対応します。
複数のアテンションパターンを組み合わせる
同様に、 ロングフォーマー は、自己注意メカニズムが見る単語の数も制限します。これは、複数の単純な注意パターンを組み合わせることによって実現されます (例については、図 3 を参照してください)。
- スライディングウィンドウ
- 隣接するk個の単語にのみ注意を払ってください。
- 拡張スライディングウィンドウ
- Pay attention to every l-th word, up to a predefined limit.
- 世界的な注目
- 事前に選択されたいくつかの位置で、シーケンス全体に注意を払います。
- すべてのポジションで、事前に選択されたポジションに注意してください。
このアテンションパターンの組み合わせにより、いくつかのレイヤーの後、各単語の埋め込みがシーケンス全体に参加した可能性があります。 特に長いシーケンスでは、ロングフォーマーはRoBERTaよりもはるかに高速で、使用するメモリも少なくて済みます。 驚いたことに、Longformerは、質問応答、共参照解決、感情分類など、さまざまなタスクでRoBERTaを実際に上回っています。
ロングフォーマーセルフアテンションメカニズムは、スライディングウィンドウ、拡張スライディングウィンドウ、および事前に選択されたいくつかの位置でのグローバルアテンションを組み合わせたものです
BigBird は別の一般的なアプローチであり、拡張されたスライディングウィンドウの代わりにランダムなアテンションパターンを使用する点を除いて、Longformerと非常によく似ています(つまり、各表現はシーケンス内の固定数のランダムな単語に対応します)。
低ランク近似の使用
これまでに提示したものとは異なるタイプのアプローチは、セルフアテンション操作が低ランクであるという理論的結果に基づく リンフォーマーです。Linformerは、キー行列と値行列(K と V)を長さの次元に沿って、より短い(固定長の)シーケンスに線形に投影し、その上に完全な注意を払わせることができます(例については図4を参照)。
標準的なセルフアテンションと比較して、短いシーケンスの場合、Linformerは1.3〜3倍速く、長いシーケンスの場合、実行速度は3〜20倍高速です。さまざまなテキスト分類タスクで、RoBERTa と同等のパフォーマンスを発揮します (特定のタスクでは、RoBERTa よりもわずかに優れています)。
リンフォーマーの自己注意メカニズムには、長さの次元に沿ってより短いシーケンス(この場合は長さ4)への下向き投影が含まれ、その上に完全な注意を適用できます
概要
この2部構成のシリーズでは、一般的でありながら計算量の多いTransformerベースの言語モデリング手法の変更を探ることにより、最先端のNLPをより効率的にする方法を紹介します。 この投稿:
- 従来の単語埋め込みや文脈埋め込みモデルを含む、NLPにおける意味表現学習の簡単な歴史を紹介しました。
- Transformer アーキテクチャの中心にある自己注意メカニズムと、実行に計算コストがかかる理由について説明しました。
- パフォーマンスを犠牲にすることなく、より計算効率の高い代替アテンションメカニズムを調査しました。
次の投稿では、次の記事を取り上げます。
- 小さなモデルをトレーニングして大きなモデルの出力を再現する方法の概要。
- パラメーター効率の高い方法で言語モデルを微調整する方法。
- さまざまな効率的な Transformer アプローチを使用するシナリオに関する推奨事項。