マルチヘッド・アテンションの実装
独自の MultiHeadAttention クラスを実装する前に、このクラスを実際に使って、クエリ・キー・バリューの各行列がどのように変換されるかを確認します。これらの行列は、学習された重みによる線形変換で入力埋め込みを射影して生成されることを思い出してください。
query、key、value の各行列はすでに用意されており、MultiHeadAttention も定義済みです。
この演習はコースの一部です
PyTorchで学ぶTransformerモデル
演習の手順
- アテンションヘッドを 8 個、入力埋め込みの次元を
512としてパラメータを定義します。 - 定義したパラメータを使って
MultiHeadAttentionクラスのインスタンスを作成します。 query、key、valueの各行列をmultihead_attnメカニズムに通します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Define attention parameters
d_model = ____
num_heads = ____
# Instantiate a MultiHeadAttention instance
multihead_attn = ____
# Pass the query, key, and value matrices through the mechanism
output = ____
print(output.shape)