ホームページ > 記事 > テクノロジー周辺機器 > Transformer 機械学習モデルとは何ですか?
翻訳者 | Li Rui
査読者 | Sun Shujuan
近年、Transformer 機械学習モデルは、ディープラーニングおよびディープ ニューラル ネットワーク テクノロジーの進歩の主要なハイライトの 1 つとなっています。 。主に自然言語処理の高度なアプリケーションに使用されます。 Google は、検索エンジンの結果を強化するためにこれを使用しています。 OpenAI は、Transformer を使用して有名な GPT-2 モデルと GPT-3 モデルを作成しました。
2017 年のデビュー以来、Transformer アーキテクチャは進化を続け、言語タスクから他のドメインまで拡張し、さまざまなバリエーションに拡張してきました。これらは時系列予測に使用されてきました。これらは、DeepMind のタンパク質構造予測モデルである AlphaFold の背後にある重要なイノベーションです。 OpenAI のソース コード生成モデル Codex も Transformer に基づいています。トランスフォーマーは最近コンピュータ ビジョンの分野にも参入しており、多くの複雑なタスクにおいて畳み込みニューラル ネットワーク (CNN) に徐々に置き換えられています。
研究者たちは、Transformer を改良し、新しいアプリケーションで使用する方法をまだ模索しています。ここでは、トランスフォーマーの魅力とその仕組みについて簡単に説明します。
従来のフィードフォワード ニューラル ネットワークは、連続データを追跡し、各入力を出力にマッピングするように設計されていません。画像分類などのタスクにはうまく機能しますが、テキストなどのシーケンス データには失敗します。テキストを処理する機械学習モデルは、各単語を処理するだけでなく、単語がどのように順番に配置され、相互に関連しているかを考慮する必要があります。また、文中でその前後に現れる他の単語によって、単語の意味が変わることもあります。
Transformer が登場する前は、リカレント ニューラル ネットワーク (RNN) が自然言語処理のソリューションとして好まれていました。一連の単語が与えられると、リカレント ニューラル ネットワーク (RNN) が最初の単語を処理し、その結果を次の単語を処理する層にフィードバックします。これにより、各単語を個別に処理するのではなく、文全体を追跡できるようになります。
リカレント ニューラル ネットワーク (RNN) には欠点があるため、その有用性は制限されています。まず、処理が非常に遅いです。データを順次処理する必要があるため、トレーニングや推論に並列コンピューティング ハードウェアやグラフィックス プロセッシング ユニット (GPU) を利用できません。次に、長いテキストのシーケンスを処理できません。リカレント ニューラル ネットワーク (RNN) がテキストの抜粋の奥深くに進むにつれて、文の最初の数単語の効果は徐々に減少します。 「勾配消失」として知られるこの問題は、リンクされた 2 つの単語がテキスト内で遠く離れている場合に発生します。第三に、単語とその前の単語との関係のみを捉えます。実際、単語の意味はその前後にある単語によって決まります。
長短期記憶 (LSTM) ネットワークはリカレント ニューラル ネットワーク (RNN) の後継であり、勾配消失問題をある程度解決でき、より大きなテキスト シーケンスを処理できます。しかし、長短期記憶 (LSTM) はリカレント ニューラル ネットワーク (RNN) よりもトレーニングにさらに時間がかかり、依然として並列コンピューティングを最大限に活用できません。彼らは依然としてテキストシーケンスのシリアル処理に依存しています。
2017 年に発行された「Attendance is All That Is Required」という論文では、Transformer を紹介し、Transformer
が 2 つの重要な貢献をしたと述べています: まず、シーケンス全体の並列処理が可能になり、それによって速度が向上しました。シーケンシャルディープラーニングモデルの能力を前例のない速度まで高めます。第 2 に、非常に長いテキスト シーケンス内の単語間の関係を前方と後方の両方で追跡できる「注意メカニズム」を導入しています。
Transformer モデルがどのように機能するかを説明する前に、シーケンス ニューラル ネットワークが解決する問題の種類について説明する必要があります。
それらの違いにもかかわらず、これらすべてのタイプのモデルには、式を学習するという共通点があります。ニューラル ネットワークの仕事は、あるタイプのデータを別のタイプのデータに変換することです。トレーニング中、ニューラル ネットワークの隠れ層 (入力と出力の間の層) は、入力データ型の特性を最もよく表す方法でパラメータを調整し、それらを出力にマッピングします。オリジナルの Transformer は、機械翻訳用のシーケンスツーシーケンス (seq2seq) モデルとして設計されました (もちろん、シーケンスツーシーケンス モデルは翻訳タスクに限定されません)。これは、ソース言語からの入力文字列を、単語とその相互関係を表すベクトルに圧縮するエンコーダー モジュールで構成されます。デコーダ モジュールは、エンコードされたベクトルをターゲット言語のテキスト文字列に変換します。
入力テキストは処理され、統一された形式に変換される必要があります、その後、Transformer に入力できます。まず、テキストは「トークナイザー」に渡され、個別に処理できる文字の塊に分割されます。トークン化アルゴリズムはアプリケーションによって異なります。ほとんどの場合、各単語と句読点はおおよそ 1 つのトークンとしてカウントされます。一部のサフィックスとプレフィックスは、別個のトークンとしてカウントされます (たとえば、「ize」、「ly」、「pre」)。トークナイザーは、入力テキストのトークン ID を表す数値のリストを生成します。
その後、トークンは「単語埋め込み」に変換されます。単語の埋め込みは、多次元空間で単語の値を取得しようとするベクトルです。たとえば、「猫」と「犬」という単語は、どちらも動物やペットに関する文で使用されるため、いくつかの点で同様の値を持つ可能性があります。しかし、ネコ科とイヌ科を区別する別の側面では、「ネコ」は「オオカミ」よりも「ライオン」に近いです。同様に、「パリ」と「ロンドン」も同じ都市であるため、おそらく近いと思われます。ただし、国の次元が異なるため、「ロンドン」は「イギリス」に近く、「パリ」は「フランス」に近くなります。また、単語の埋め込みには通常、数百の次元があります。
単語の埋め込みは、Transformer とは別にトレーニングされた埋め込みモデルを通じて作成されます。言語タスク用の事前トレーニングされた埋め込みモデルがいくつかあります。
には、より複雑な関係を徐々に捕捉するためのいくつかのアテンション ブロックとフィードフォワード レイヤーが含まれています。
デコーダは、同じトークン化、単語埋め込み、およびアテンション メカニズムを使用して、期待される結果を処理し、アテンション ベクトルを作成します。次に、このアテンション ベクトルとアテンション レイヤーをエンコーダ モジュールに渡して、入力値と出力値の間の関係を確立します。翻訳アプリケーションでは、これはソース言語とターゲット言語の単語が相互にマッピングされる部分です。エンコーダ モジュールと同様に、デコーダ アテンション ベクトルはフィードフォワード層を通過します。次に、結果は非常に大きなベクトルのプール、つまりターゲット データのサイズにマッピングされます (翻訳の場合、これには数万の単語が含まれる可能性があります)。
以上がTransformer 機械学習モデルとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。