TransformerとAttentionをやさしく学ぶ
数学を理解しなくても、attentionメカニズムによってモデルが関連するコンテキストに集中できる仕組みを学び、Transformerアーキテクチャの謎を解き明かします。
「TransformerとAttentionをやさしく学ぶ」はCoddyKit上の無料AI Engineering Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Engineering Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Engineering Academyコースには全4レッスンが含まれています。
核心となる問題:長距離依存関係
「トロフィーは大きすぎたのでそれはバッグに入らなかった」という文で、「それ」は何を指すでしょうか。従来のモデルは、長い文になるとこのような関係を追跡できなくなりました。これが長距離依存関係の問題です。
重み付きの焦点としてのアテンション
アテンションとは、各単語について、どの単語が最も重要かをモデルが判断する仕組みです。文章のすべての単語を同じように扱うのではなく、重要な部分にハイライトを付けるようなものです。
クエリ、キー、バリュー
アテンションは検索のように機能します。各単語がQueryを送り、それをすべてのKeyと照合して、最も関連性の高いValuesを取り込みます。以下のコードで基本的な考え方を確認できます。
# Simplified self-attention in pseudocode
import numpy as np
def scaled_dot_product_attention(Q, K, V):
d_k = Q.shape[-1] # dimension of keys
scores = Q @ K.T / np.sqrt(d_k) # scale to prevent vanishing gradients
weights = np.exp(scores) / np.sum(np.exp(scores), axis=-1, keepdims=True) # softmax
output = weights @ V # weighted sum of values
return outputマルチヘッドアテンション:複数の視点
一つのアテンションヘッドは、一種類の関係を捉えます。マルチヘッドアテンションでは複数のヘッドを並列で動かすため、モデルは一度に複数の視点から単語を見ることができます。
位置エンコーディング:単語の順序を追加する
アテンションだけでは単語の順序を無視してしまうため、「dog bites man」と「man bites dog」が同じように見えてしまいます。位置エンコーディングは位置情報を追加し、順序が失われないようにします。
アテンション後のフィードフォワード層
アテンションによって文脈が共有された後、フィードフォワードネットワークが各単語を個別に処理します。興味深いことに、モデルの事実に関する知識の多くはここに存在すると考えられています。
エンコーダーのみのモデルとデコーダーのみのモデル
BERT型のエンコーダーのみのモデルは、テキスト全体を一度に読んで理解します。GPT型のデコーダーのみのモデルは、テキストを生成するために左から右へ読みます。ChatGPTもこの方式です。
層の積み重ねと深さ
現代のLLMは、数十個のTransformerブロックを積み重ねています。各層が前の層の結果を洗練し、浅い層は文法を捉え、深い層は推論を処理します。深さが増すほど、より多くの思考が可能になります。
残差接続と層正規化
多数の層を積み重ねるのは簡単ではありません。残差接続と層正規化によって信号を安定させることで、100層以上の深いモデルでも安定して学習できます。
アテンションが大規模化に適している理由
アテンションは並列に実行しやすいため、GPUを増やせば学習を高速化できます。こうして研究者たちは大量のデータで学習し、よく知られたスケーリング則を発見しました。
Flash Attentionと現代的な最適化
長い入力では、標準的なアテンションは大量のメモリを必要とします。FlashAttentionは同じ結果をはるかに効率よく計算し、大きなコンテキストウィンドウを実用的にします。
クイックチェック
このレッスンで学んだAI Engineeringの概念を理解できているか確認しましょう。
レッスンのまとめ
まとめ:自己アテンションはすべての単語を他のすべての単語と結び付け、マルチヘッドアテンションは多くの関係を同時に捉えます。また、残差接続と正規化によってモデルを深くできます。次は、LLMの学習方法を学びます。
よくある質問
「TransformerとAttentionをやさしく学ぶ」レッスンは無料ですか?
はい。「TransformerとAttentionをやさしく学ぶ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Engineering Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Engineering Academyコースには全4レッスンが含まれています。
「TransformerとAttentionをやさしく学ぶ」で何を学びますか?
数学を理解しなくても、attentionメカニズムによってモデルが関連するコンテキストに集中できる仕組みを学び、Transformerアーキテクチャの謎を解き明かします。 ブラウザで直接実行するハンズオンコードでAI Engineering Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AI Engineering Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAI Engineering Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「TransformerとAttentionをやさしく学ぶ」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAI Engineering Academyレッスンでコードを書いて実行できますか?
はい。すべてのAI Engineering Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- AutocompleteからChatGPTまで
- TransformerとAttentionをやさしく学ぶ
- LLMの学習方法
- LLMの能力と限界