实现多头注意力
在开始动手构建您自己的 MultiHeadAttention 类之前,先试用该类,看看它如何变换 query、key 和 value 矩阵。回顾一下,这些矩阵是通过对输入嵌入向量(embedding — 向量表示)施加带有可学习权重的线性变换得到的投影。
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)