single
チャレンジ:エンコーダおよびデコーダブロックの構造化
メニューを表示するにはスワイプしてください
エンコーダーブロックとデコーダーブロックの構造を理解することは、Transformerがどのようにテキストを処理し生成するかを習得するための重要なポイントです。Transformerの各エンコーダーブロックは、入力シーケンスを文脈情報を含む表現へと変換するよう設計されており、各デコーダーブロックは、これまでの出力とエンコーダーの表現の両方に注意を向けながら出力シーケンスを生成します。翻訳や要約などのシーケンス間テキストタスクでは、エンコーダーが入力テキストを一連の隠れ状態にエンコードし、デコーダーはこれらの隠れ状態と自身の自己注意機構を用いてターゲットシーケンスを一歩ずつ生成します。エンコーダーとデコーダーブロック間のこの相互作用により、モデルはテキスト内の複雑な依存関係を捉えることができ、Transformerは幅広い自然言語処理タスクで非常に高い効果を発揮します。
以下の表は、Transformerエンコーダーブロックにおける処理の流れをまとめ、テキストデータにおける各処理の重要性を示しています。
| |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Each operation ensures that the encoder builds increasingly abstract and context-aware representations of the input text, which are essential for downstream sequence-to-sequence tasks. |
スワイプしてコーディングを開始
TransformerEncoderBlock クラスの不足部分を完成させ、主要なコンポーネントを正しく初期化し、順序通りに forward 計算で使用することが課題です。
TransformerEncoderBlock クラスは、Transformer アーキテクチャにおける単一のエンコーダーブロックをモデル化しています。クラスのコンストラクタ(__init__ メソッド)で、次の2つの主要コンポーネントを適切に初期化する必要があります:
MultiHeadAttention(hidden_dim)を用いた 自己注意層。この層は、入力内の各トークンが他のすべてのトークンに注意を向けることを可能にし、文脈的な関係を捉えます;FeedForward(hidden_dim)を用いた フィードフォワードネットワーク。この層は、自己注意層の出力に対して各トークン表現ごとに非線形変換を適用し、さらに処理を進めます;forwardメソッドでは、これら2つの層を順番に適用してください:- まず、入力
xを自己注意層に通します; - 次に、自己注意層の出力をフィードフォワードネットワークに通します;
- 最終的な出力を返します。
- まず、入力
MultiHeadAttention と FeedForward の両方を、クラスに渡された hidden_dim パラメータでインスタンス化することを忘れないでください。これらのコンポーネントはエンコーダーブロックの中核構造を表し、正しい順序で適用される必要があります。
解答
フィードバックありがとうございます!
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください