注意メカニズムは、機械学習手法であり、ディープラーニング・モデルに、入力データの最も関連性の高い部分を優先(または注意)するように指示します。注意メカニズムのイノベーションにより、ChatGPTなどの人気のアプリケーションを支える最新の大規模言語モデル(LLM)を生み出すTransformerアーキテクチャーが実現しました。
その名前が示すように、注意メカニズムは、人間(および他の動物)が、その瞬間に重要な詳細に選択的に注意を払い、それほど重要でない詳細を無視する能力にヒントを得ています。すべての情報にアクセスでき、最も関連性の高い情報のみに焦点を当てることで、意味のある詳細が失われないようにしながら、限られた記憶と時間を効率的に使用できるようになります。
数学的に言えば、注意メカニズムは、入力シーケンスの各部分の現在のタスクに対する相対的な重要性を反映する注意重みを計算します。次に、それらの注意重みを適用して、入力の各部分の影響を、それぞれの重要度に応じて増加(または減少)させます。注意モデル(注意メカニズムを採用した人工知能モデル)は、大規模なサンプル・データセットに対する教師あり学習、または自己教師あり学習を通じて、正確な注意重みを割り当てるようにトレーニングされます。
注意メカニズムは、機械翻訳に使用されていた当時の最先端であったリカレント・ニューラル・ネットワーク(RNN)モデルの欠点に対処する手法として、2014年にBahdanauらによって最初に導入されました。その後の研究では、画像キャプションや視覚的な質問応答などのタスクに使用される畳み込みニューラル・ネットワーク(CNN)に注意メカニズムが統合されました。その後の研究では、画像キャプションや視覚的な質問応答などのタスクに使用される畳み込みニューラル・ネットワーク(CNN)に注意メカニズムが統合されました。
2017年に発表された画期的な論文「Attention is All You Need」では、再帰と畳み込みを完全に排除し、注意層と標準のフィードフォワード層のみを使用するTransformerモデルが紹介されました。それ以来、Transformerアーキテクチャーは、生成AIの時代を支える最先端モデルのバックボーンとなっています。
注意メカニズムは主に、自然言語処理(NLP)タスク(要約、質問応答、テキスト生成、感情分析などに使用されるLLMに関連付けられていますが、注意ベースのモデルは他の分野でも広く使用されています。画像生成に使用される主要な拡散モデルには、多くの場合、注意メカニズムが組み込まれています。コンピューター・ビジョンの分野では、Vision Transformer(ViT)が、物体検出、1画像セグメンテーション2、視覚的な質問応答3などのタスクで優れた結果を達成しています。
Transformerモデルとそれを動かす注意メカニズムは、ディープラーニングのほぼすべてのサブドメインで最先端の結果を達成しています。注意メカニズムの性質上、畳み込みニューラル・ネットワーク(CNN)で使用される畳み込みメカニズムや、再帰型ニューラル・ネットワーク(RNN)で使用される再帰型ループに比べて、大きなメリットがあります。
ディープラーニングにおける注意メカニズムがどのように機能するのか、そしてなぜそれが生成AIの革命を引き起こすのに役立つのかを理解するには、まず、機械翻訳に使用されるRNNベースのSeq2Seqモデルを改善するための注意が最初に導入された理由を理解することが役立ちます。
RNNは、連続したデータを処理できる「メモリー」に相当する機能を備えた再帰ループを備えたニューラル・ネットワークです。RNNは、順序付けられたシーケンスの入力ベクトルを受け取り、タイム・ステップで処理します。各タイム・ステップの後、結果として得られるネットワーク状態(隠し状態と呼ばれます)が、次の入力ベクトルとともにループに戻されます。
RNNは、トレーニング中にすぐに勾配の消失または爆発に悩まされます。これにより、RNNが処理できる入力文の長さが大幅に制限されるため、多くのNLPタスクでは実用的ではありませんでした。4これらの制限は、ゲーティング・メカニズムを追加して「長期」メモリーを保持する長短期記憶ネットワーク(LSTM)と呼ばれる改良されたRNNアーキテクチャーによっていくらか緩和されました。
注意メカニズムが導入される前は、Seq2Seqモデルが機械翻訳の最先端モデルでした。Seq2Seqは、エンコーダー/デコーダー・アーキテクチャーで2つのLSTMを使用します。
入力シーケンスを固定数の次元でエンコードすると、Seq2Seqはさまざまな長さのシーケンスを処理できるようになりますが、重要な欠陥も生じます。
Bahdanauらは、2014年の論文「Neural Machine Translation by Jointly Learning to Align and Translate」で、エンコーダーとデコーダー間の通信を改善し、情報のボトルネックを取り除くための注意メカニズムを提案しました。
エンコーダーの最終的な隠し状態(コンテキスト・ベクトル)のみをデコーダーに渡すのではなく、このモデルでは、エンコーダーのすべての隠し状態をデコーダーに渡しました。注意メカニズム自体は、デコーダーによって実行される各翻訳ステップでどの隠し状態(つまり、元の文のどの単語)が最も関連しているかを判断するために使用されました。
「これにより、モデルはソース文全体を固定長のベクトルにエンコードする必要がなくなり、次のターゲット語の生成に関連する情報のみにモデルが集中できるようになります」と論文は説明しています。「これは、ニューラル機械翻訳システムが長い文で良い結果を出す能力に大きなプラスの影響を与えます」。5
その後のNLP研究は、主にパフォーマンスの向上と、再帰モデルにおける注目メカニズムの使用例の拡大に重点が置かれました。2017年に注目のみで動作するTransformerモデルが発明されたことで、RNNはNLPにとってほとんど時代遅れとなりました。
注意メカニズムの主な目的は、入力シーケンスのさまざまな部分の相対的な重要性を決定し、モデルが重要な部分に注意を払い、重要でない部分を無視するように影響を与えることです。
注意メカニズムにはさまざまなバリエーションとカテゴリがあり、それぞれ異なるユースケースと優先順位に適していますが、すべての注意メカニズムには3つのコア・プロセスがあります。
影響力のある論文「Attention is All You Need」では、リレーショナル・データベースの用語であるクエリー、キー、値を使用して、その注意メカニズムを明確に説明しました。リレーショナル・データベースは、関連データの保存と取得を簡素化するように設計されています。各データに一意の識別子(「キー」)を割り当て、各キーは対応する値に関連付けられます。NLPでは、モデルの「データベース」は、トレーニング用データセットから学習したトークンの語彙です。
論文「Attention is All You Need」の大きな影響により、以前の注意メカニズムも、遡及的にこれらの用語で説明されるようになりました。一般的に言えば、この注意の概念は、シーケンス内の各トークンの3種類のベクトル表現間の相互作用を伴います。
具体的な注意メカニズムのバリエーションは、主に、ベクトルがどのようにエンコードされるか、どのようにアライメントスコアが計算されるか、モデルに関連情報を提供するために注意の重みが適用されるかによって区別される。
Badhanauの注意メカニズムは、機械翻訳専用に設計されました。双方向RNNを使用して各入力トークンをエンコードし、入力シーケンスを順方向と逆方向の両方で処理して、結果を連結します。このアプローチは、例えば、元の言語と翻訳された言語で名詞と形容詞の順序付け規則が異なる場合に特に便利です。
ここで、翻訳された文の各タイムステップにおけるデコーダーの隠れ状態はクエリー・ベクトルに、ソース文の各ステップにおけるエンコーダーの隠れ状態は、キー・ベクトルに、それぞれ相当します。
次に、アライメント・スコアは、モデルの残りの部分と共同でトレーニングされる単純なフィードフォワード・ニューラル・ネットワークである注意層によって決定されます。この注意層は、学習可能なモデル重みの最大3つのサブセットで構成されます。つまり、隠しデコーダー状態のクエリー重み(「Wq」)、隠しエンコーダー状態のキー重み(「Wk」)、および最終出力をスケーリングする値重み(“wv”)です。これらの重みはモデルの「知識」です。トレーニング中にこれらの重みの特定の値を調整して損失関数を最小限に抑えることで、モデルは正確な翻訳を行うことを学習します。
各ステップで、注意加算法は次のように機能します。
デコーダーが翻訳文を生成するために使用するコンテキスト・ベクトルは、すべてのキー・ベクトルの注目度加重合計として計算されます。注意加算法のメリットの1つは、クエリー・ベクトルとキー・ベクトルが同じ長さである必要がないことです。
2015年、Luongらは、機械翻訳用のBadhanauの注意メカニズムを簡素化および強化するためのいくつかの新しい手法を導入しました。おそらく、手法の最も注目すべき貢献は、加算ではなく乗算を使用する新しいアライメント・スコア関数でした。また、関数を避け、ドット積を使用して隠れ状態ベクトル間の類似性を計算しました。そのため、これはしばしばドット積注意法または注意乗算法と呼ばれます。
ドット積を使用してクエリー・ベクトルを比較する背後にある直感は、数学的かつ実用的です。
ドット積注意法を使用することによる1つの結果として、ドット積の計算では、両方のベクトルの次元数が次の次元と同じであることが必要になります: .
注意加算法はコンテキスト・ベクトルをキー・ベクトルの加重合計として計算しますが、ドット積注意法はコンテキスト・ベクトルをキー・ベクトルの加重平均として計算します。
「Attention is All You Need」の著者は、ドット積注意法は注意加算法よりも高速で計算効率が高いものの、長いベクトルの場合は注意加算法が従来のドット積注意法よりも優れていると指摘しています。
彼らは、 が非常に大きい場合、結果として得られるドット積も非常に大きくなると理論づけました。ソフトマックス関数がそれらの非常に大きな値をすべて0~1の間に収まるように圧縮すると、バックプロパゲーションによって、最適化が困難な極めて小さな勾配が生成されます。実験により、ソフトマックス正規化の前に、長さdkの2つのベクトルのドット積を でスケーリングすると、勾配が大きくなり、トレーニングがスムーズになることがわかりました。
Transformerモデルで使用されるスケールされたドット積注意関数は、次のように記述されます: .
最も初期のタイプの注意メカニズムはすべて、現在では相互注意として分類されるものを実行していました。相互注意では、クエリーとキーは異なるデータ・ソースから取得されます。例えば、機械翻訳タスクでは、キーは1つの言語のテキスト・コーパスから取得され、クエリーは別の言語から取得されます。音声認識タスクでは、クエリーはオーディオ・データであり、キーはそのオーディオを書き起こすテキスト・データです。
自己注意法では、クエリー、キー、値はすべて同じソースから取得されます。BahdanauとLuongの注意メカニズムはどちらも機械翻訳用に明示的に設計されていましたが、Chengらは、機械の読み取り全般を改善する方法として、自己注意法(彼らはこれを「内部注意」と呼んでいました)を提案しました。2016年の論文で概説されている彼らの注意メカニズムは、入力要素が全体的なシーケンスにどのように貢献するかではなく、異なる入力トークンが互いにどのように関係するかを調査しました。
英語のテキストを解釈する言語モデルを考えてみましょう
「on Friday, the judge issued a sentence.」
Chengらの論文は、テキストを読み取って理解する能力のみに焦点を当てていましたが、すぐに、シーケンス内の関係のモデリングもテキストを書くための強力なツールになる可能性があることに気づきました。自己注意のさらなる開発とそれが可能にしたTransformerモデルは、オリジナル・テキストを生成できる最新の生成AIと自己回帰LLMの開発に直接つながりました。
自己回帰型LLMでは、自己注意を利用して機械翻訳を実行することもできますが、タスクへのアプローチは異なります。相互注意は元の原文と翻訳された文を2つの異なるシーケンスとして扱いますが、自己注意は元のテキストと翻訳されたテキストを1つのシーケンスとして扱います。
自己回帰型の自己注意法ベースのLLMがテキストを翻訳できるようにするには、モデルがトレーニング中に遭遇するすべての単語(すべての言語)を、1つの大きな多言語トークン語彙の一部として学習する必要があります。モデルは、シーケンスに「[言語1の単語]を言語2に翻訳する」などの指示が含まれている場合、シーケンスの次の単語は言語2のトークンである必要があることを単純に認識します。
本質的に、自己回帰LLMは、それ自体では必ずしも異なる言語が存在することを理解しているわけではありません。代わりに、特定のトークンのグループ(この場合は、同じ言語の単語に対応するトークン)が互いにどのように関連しているかを理解しているだけです。このコンテキストの理解は、命令チューニングなどの手法によってさらに強化されます。
Viswaniらが執筆した「Attention is All You Need」という論文では、自己注意からヒントを得て、新しいニューラル・ネットワーク・アーキテクチャーであるTransformerを導入しました。彼らのTransformerモデルは、畳み込みと再帰を完全に排除し、代わりに注意層と標準的な線形フィードフォワード層のみを使用しました。
著者らのモデルは、RNNベースの先行モデルと同様のエンコーダー/デコーダー構造を採用していました。その後のTransformerベースのモデルは、このエンコーダー/デコーダー・フレームワークから逸脱しました。Transformerの論文を受けてリリースされた最初の画期的なモデルの1つであるBERT(Transformerからの双方向エンコーダー表現の略)は、エンコーダーのみのモデルです。GPT(Generative Pretrained Transformer)モデルなど、テキスト生成に革命をもたらした自己回帰LLMは、デコーダーのみのモデルです。
「Attention is All You Need」では、イノベーションを提案し、性能を向上させ、まったく新しいモデル構造に注意を適応させるために、注意メカニズムに対するいくつかのことを提案しました。その1つが、拡張ドット積注意法でした。
単語の相対的な順序と位置は、その意味に重要な影響を与える可能性があります。RNNは、隠れた状態を1単語ずつ計算することで本質的に各トークンの位置に関する情報を保持しますが、Transformerモデルは位置情報を明示的にエンコードする必要があります。
位置エンコーディングでは、入力が注意メカニズムに入る前に、モデルは各トークンの埋め込みに相対位置から導出された値のベクトルを追加します。この位置ベクトルは通常、トークン埋め込み自体よりもはるかに少ない次元数であるため、トークン埋め込みの小さなサブセットのみが位置情報を受け取ります。数学はやや複雑ですが、ロジックは単純です。
Viswaniらは、均一な位置にあるトークンには正弦関数を使用し、特異な位置にあるトークンにはコサイン関数を使用する単純なアルゴリズムを設計しました。回転位置エンコーディング(RoPE)などのその後のアルゴリズムにより、非常に長いシーケンスの位置情報を効果的にエンコードできるようになり、より大きなコンテキスト・ウィンドウを備えたLLMが可能になりました。
各トークン埋め込みが位置情報で更新されると、最初の注意層の前にある3つの並列線形(フィードフォワード)ニューラル・ネットワーク層のそれぞれに元のトークン埋め込みを渡すことで、3つの新しいベクトルが生成されます。各並列層には固有の重みマトリックスがあり、その特定の値は大量のテキスト・データセットでの自己教師あり事前トレーニングを通じて学習されます。
注意メカニズムの主な機能は、各トークン間のクエリー・キー・ペアの重要度に重み付けすることです。入力シーケンス内の各トークンxに対して、Transformerモデルは次のように注意重みを計算して適用します。
各注意重みを個別に考慮するのではなく、他のトークンからの注意重みを平均化することは数学的には効率的ですが、詳細が失われます。Transformerアーキテクチャーは、マルチヘッド注意法によりこの問題に対処します。
平均化の効率を享受しながらもトークン間の多面的な関係を考慮するために、Transformerモデルはネットワーク内の各注意層で自己注意操作を複数回並列に計算します。元の入力トークンの埋め込みはそれぞれ、h個の均等サイズのサブセットに分割されます。埋め込みの各部分は、h個の並列Q、K、およびV重み行列の1つに入力されます。これらの重み行列はそれぞれ、クエリー・ヘッド、キー・ヘッド、または値ヘッドと呼ばれます。クエリー、キー、値ヘッドのこれらの並列トリプレットのそれぞれによって出力されるベクトルは、対応する注意ヘッドに入力されます。
各注意ブロックの最終層では、これらのh個の並列回路の出力が最終的に連結されて元に戻ります。実際には、モデルのトレーニングにより、各回路は意味の個別の側面を捉える異なる重みを学習します。これにより、モデルは他の単語のコンテキストが単語の意味に及ぼすさまざまな影響を処理できるようになります。例えば、1つの注意ヘッドは時制の変化に特化し、もう1つは近くの単語がトーンに与える影響に特化します。
ここでは、標準Transformerの注意ブロックにおける行列乗算の回路全体を示します。マルチクエリー注意やグループ化されたクエリー注意など、Transformerの注意メカニズムのその後の進化により、プロセスのいくつかの要素が簡素化または結合され、計算要件が軽減されていることは注目に値します。
Transformerモデルの最後の数層では、多くの場合、注意ヘッドが特定の予測を行うようにトレーニングされます。例えば、LLMの最終層にある1つの注意ヘッドは名前付きエンティティーの認識に特化し、別の注意ヘッドは感情分析に特化する、などです。
自己回帰LLMでは、最後から2番目の層は線形層で、完全に変換されたベクトルを受け取り、モデルが語彙内の各トークンに対して学習したベクトル埋め込みのサイズに一致するように投影します。これにより、結果のベクトルがその語彙内の各トークンにどれだけ近いかを表すスコアを計算できます。最終層はソフトマックス層で、これらのスコアを確率(1から)に変換し、これらの確率を使用して、その前の単語に基づいて、最も可能性の高い次の単語であると判断されたものを出力します。
1. 「Leaderboard: Object Detection on COCO test-dev」、 Papers With Code社、アクセス日:2024年11月18日
2. 「Leaderboards: Image Segmentation」、Papers With Code社、アクセス日:2024年11月18日
3. 「Leaderboard: Visual Question Answering (VQA) on VQA v2 test-dev」、 Papers With Code社、アクセス日:2024年11月18日
4. 「Learning long-term dependencies with gradient descent is difficult」、 IEE Transactions on Neural Networks 5(2): 157-66、1994年2月
5. 「Neural Machine Translation by Jointly Learning to Align and Translate」、 arXiv社、2014年9月1日
6. 「Multiplicative Attention」、Papers With Code社
生成AIが生み出しうる価値、AIに必要な投資、AIがもたらすリスクのバランスを、CEO(最高経営責任者)がどのように取ることができるかについて説明します。
ハンズオン・ラボ、コース、指導付きプロジェクト、トライアルなどで、基本的な概念を学び、スキルを身につけていただけます。
生成AIと機械学習をビジネスに活用する確実な方法を学びましょう。
AIの投資対効果を高めるために、主要な分野で生成AIの活用を拡大することで、どのように革新的な新規ソリューションの構築、提供を支援し、変化をもたらすかを紹介します。
2,000の組織を対象に、AIへの取り組みについて調査を行い、何が機能し、何が機能していないのか、どうすれば前進できるのかを明らかにしました。
IBM Graniteは、ビジネス向けにカスタマイズされ、AIアプリケーションの拡張に合わせて最適化された、オープンで高性能、かつ信頼性の高いAIモデルのファミリーです。言語、コード、時系列、ガードレールのオプションをご覧ください。
ユースケースに最適なAI基盤モデルを選択する方法について説明します。
強力なAIストラテジーの3つの重要な要素である、競争優位性の創出、ビジネス全体へのAIの拡張、信頼できるAIの推進について詳しく説明します。
AI開発者向けの次世代エンタープライズ・スタジオであるIBM watsonx.aiを使用して、生成AI、基盤モデル、機械学習機能をトレーニング、検証、チューニング、導入しましょう。わずかなデータとわずかな時間でAIアプリケーションを構築できます。
業界をリードするIBMのAI専門知識とソリューション製品群を使用すれば、ビジネスにAIを活用できます。
AIの導入で重要なワークフローと業務を再構築し、エクスペリエンス、リアルタイムの意思決定とビジネス価値を最大化します。