การนำ Multi-Head Attention ไปใช้งาน
ก่อนที่จะเริ่มสร้างคลาส MultiHeadAttention ของตัวเอง ลองใช้คลาสนี้ดูก่อนเพื่อทำความเข้าใจว่ามันแปลงเมทริกซ์ query, key, และ value อย่างไร โดย recall ว่าเมทริกซ์เหล่านี้ได้มาจากการฉายภาพ (projection) ของ input embeddings ผ่าน linear transformation ที่มีน้ำหนักที่เรียนรู้ได้
เมทริกซ์ query, key, และ value ถูกสร้างไว้ให้แล้ว และ MultiHeadAttention ก็ถูกกำหนดไว้ให้เรียบร้อยแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Transformer Models ด้วย PyTorch
คำแนะนำการฝึกหัด
- กำหนดพารามิเตอร์ของ attention สำหรับ attention head จำนวน 8 หัว และ input embeddings ที่มีมิติเท่ากับ
512 - สร้าง instance ของคลาส
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)