|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
「必要なのは注意だけ」の簡単な内訳¹
A straightforward breakdown of “Attention is All You Need”¹
「必要なのは注意だけ」の簡単な内訳¹
Aveek Goswami
アヴィーク・ゴスワミ
Follow
フォローする
Towards Data Science
データサイエンスに向けて
--
--
Listen
聞く
Share
共有
The transformer came out in 2017. There have been many, many articles explaining how it works, but I often find them either going too deep into the math or too shallow on the details. I end up spending as much time googling (or chatGPT-ing) as I do reading, which isn’t the best approach to understanding a topic. That brought me to writing this article, where I attempt to explain the most revolutionary aspects of the transformer while keeping it succinct and simple for anyone to read.
変圧器は 2017 年に登場しました。その仕組みを説明する記事は数多くありますが、数学的に深入りしすぎているか、詳細が浅すぎるかのどちらかであることがよくあります。私は結局、読書と同じくらいグーグル検索 (または chatGPT 検索) に時間を費やしてしまいますが、これはトピックを理解するための最良のアプローチではありません。そこで私はこの記事を書くことにしました。そこでは、誰でも読めるように簡潔かつ簡単にしながら、変圧器の最も革新的な側面を説明しようと試みています。
This article assumes a general understanding of machine learning principles.
この記事は、機械学習の原理を一般的に理解していることを前提としています。
The ideas behind the Transformer led us to the era of Generative AI
Transformer の背後にあるアイデアが私たちを Generative AI の時代に導きました
Transformers represented a new architecture of sequence transduction models. A sequence model is a type of model that transforms an input sequence to an output sequence. This input sequence can be of various data types, such as characters, words, tokens, bytes, numbers, phonemes (speech recognition), and may also be multimodal¹.
トランスフォーマーは、配列変換モデルの新しいアーキテクチャを表しました。シーケンス モデルは、入力シーケンスを出力シーケンスに変換するモデルのタイプです。この入力シーケンスは、文字、単語、トークン、バイト、数値、音素 (音声認識) などのさまざまなデータ型にすることができ、またマルチモーダル¹ にすることもできます。
Before transformers, sequence models were largely based on recurrent neural networks (RNNs), long short-term memory (LSTM), gated recurrent units (GRUs) and convolutional neural networks (CNNs). They often contained some form of an attention mechanism to account for the context provided by items in various positions of a sequence.
Transformer が登場する以前は、シーケンス モデルは主にリカレント ニューラル ネットワーク (RNN)、長短期記憶 (LSTM)、ゲートリカレント ユニット (GRU)、および畳み込みニューラル ネットワーク (CNN) に基づいていました。これらには、シーケンスのさまざまな位置にある項目によって提供されるコンテキストを説明するための、何らかの形式のアテンション メカニズムが含まれていることがよくあります。
The downsides of previous models
以前のモデルの欠点
Hence, introducing the Transformer, which relies entirely on the attention mechanism and does away with the recurrence and convolutions. Attention is what the model uses to focus on different parts of the input sequence at each step of generating an output. The Transformer was the first model to use attention without sequential processing, allowing for parallelisation and hence faster training without losing long-term dependencies. It also performs a constant number of operations between input positions, regardless of how far apart they are.
そこで、アテンション メカニズムに完全に依存し、再帰と畳み込みを排除する Transformer を導入します。アテンションは、出力を生成する各ステップで入力シーケンスのさまざまな部分に焦点を当てるためにモデルが使用するものです。 Transformer は、逐次処理を行わずにアテンションを使用する最初のモデルであり、並列化が可能になり、長期的な依存関係を失うことなく、より高速なトレーニングが可能になります。また、入力位置間の距離に関係なく、入力位置間で一定の数の操作を実行します。
Walking through the Transformer model architecture
Transformer モデルのアーキテクチャを説明する
The important features of the transformer are: tokenisation, the embedding layer, the attention mechanism, the encoder and the decoder. Let’s imagine an input sequence in french: “Je suis etudiant” and a target output sequence in English “I am a student” (I am blatantly copying from this link, which explains the process very descriptively)
トランスフォーマーの重要な機能は、トークン化、埋め込み層、アテンション メカニズム、エンコーダーおよびデコーダーです。フランス語の入力シーケンス「Je suis etudiant」と、英語のターゲット出力シーケンス「I am a students」を想像してみましょう (私はこのリンクから露骨にコピーしています。プロセスを非常に説明的に説明しています)。
Tokenisation
トークン化
The input sequence of words is converted into tokens of 3–4 characters long
入力された単語のシーケンスは 3 ~ 4 文字の長さのトークンに変換されます
Embeddings
埋め込み
The input and output sequence are mapped to a sequence of continuous representations, z, which represents the input and output embeddings. Each token will be represented by an embedding to capture some kind of meaning, which helps in computing its relationship to other tokens; this embedding will be represented as a vector. To create these embeddings, we use the vocabulary of the training dataset, which contains every unique output token that is being used to train the model. We then determine an appropriate embedding dimension, which corresponds to the size of the vector representation for each token; higher embedding dimensions will better capture more complex / diverse / intricate meanings and relationships. The dimensions of the embedding matrix, for vocabulary size V and embedding dimension D, hence becomes V x D, making it a high-dimensional vector.
入力および出力シーケンスは、入力および出力の埋め込みを表す連続表現 z のシーケンスにマップされます。各トークンは、ある種の意味を捉えるための埋め込みによって表され、他のトークンとの関係を計算するのに役立ちます。この埋め込みはベクトルとして表されます。これらの埋め込みを作成するには、モデルのトレーニングに使用されるすべての一意の出力トークンが含まれるトレーニング データセットの語彙を使用します。次に、各トークンのベクトル表現のサイズに対応する適切な埋め込み次元を決定します。埋め込みの次元が高くなると、より複雑/多様/複雑な意味や関係がよりよく捉えられます。したがって、語彙サイズ V と埋め込み次元 D の埋め込み行列の次元は V x D となり、高次元ベクトルになります。
At initialisation, these embeddings can be initialised randomly and more accurate embeddings are learned during the training process. The embedding matrix is then updated during training.
初期化時に、これらの埋め込みはランダムに初期化でき、トレーニング プロセス中により正確な埋め込みが学習されます。埋め込み行列はトレーニング中に更新されます。
Positional encodings are added to these embeddings because the transformer does not have a built-in sense of the order of tokens.
トランスフォーマーにはトークンの順序の感覚が組み込まれていないため、位置エンコーディングがこれらの埋め込みに追加されます。
Attention mechanism
注意メカニズム
Self-attention is the mechanism where each token in a sequence computes attention scores with every other token in a sequence to understand relationships between all tokens regardless of distance from each other. I’m going to avoid too much math in this article, but you can read up here about the different matrices formed to compute attention scores and hence capture relationships between each token and every other token.
自己注意は、シーケンス内の各トークンがシーケンス内の他のすべてのトークンとの注意スコアを計算し、互いの距離に関係なくすべてのトークン間の関係を理解するメカニズムです。この記事ではあまり多くの計算を避けるつもりですが、注意スコアを計算し、各トークンと他のすべてのトークンの間の関係を把握するために形成されたさまざまな行列については、ここまで読むことができます。
These attention scores result in a new set of representations⁴ for each token which is then used in the next layer of processing. During training, the weight matrices are updated through back-propagation, so the model can better account for relationships between tokens.
これらの注意スコアにより、各トークンの新しい表現セット⁴が生成され、それが次の処理層で使用されます。トレーニング中、重み行列は逆伝播を通じて更新されるため、モデルはトークン間の関係をより適切に説明できます。
Multi-head attention is just an extension of self-attention. Different attention scores are computed, the results are concatenated and transformed and the resulting representation enhances the model’s ability to capture various complex relationships between tokens.
複数の頭による注意は、自己注意の延長にすぎません。さまざまな注意スコアが計算され、結果が連結および変換され、その結果の表現により、トークン間のさまざまな複雑な関係を捕捉するモデルの能力が強化されます。
Encoder
エンコーダ
Input embeddings (built from the input sequence) with positional encodings are fed into the encoder. The input embeddings are 6 layers, with each layer containing 2 sub-layers: multi-head attention and feed forward networks. There is also a residual connection which leads to the output of each layer being LayerNorm(x+Sublayer(x)) as shown. The output of the encoder is a sequence of vectors which are contextualised representations of the inputs after accounting for attention scored. These are then fed to the decoder.
位置エンコーディングを使用した入力エンベディング (入力シーケンスから構築) がエンコーダーに供給されます。入力エンベディングは 6 層であり、各層にはマルチヘッド アテンション ネットワークとフィード フォワード ネットワークという 2 つのサブ層が含まれます。また、図に示すように、各層の出力が LayerNorm(x+Sublayer(x)) になる残りの接続もあります。エンコーダの出力は、注意スコアを考慮した後の入力の文脈化された表現であるベクトルのシーケンスです。これらは次にデコーダに供給されます。
Decoder
デコーダ
Output embeddings (generated from the target output sequence) with positional encodings are fed into the decoder. The decoder also contains 6 layers, and there are
位置エンコーディングを備えた出力エンベディング (ターゲット出力シーケンスから生成) がデコーダーに供給されます。デコーダーには 6 つのレイヤーも含まれており、
免責事項:info@kdj.com
提供される情報は取引に関するアドバイスではありません。 kdj.com は、この記事で提供される情報に基づいて行われた投資に対して一切の責任を負いません。暗号通貨は変動性が高いため、十分な調査を行った上で慎重に投資することを強くお勧めします。
このウェブサイトで使用されているコンテンツが著作権を侵害していると思われる場合は、直ちに当社 (info@kdj.com) までご連絡ください。速やかに削除させていただきます。