멀티헤드 어텐션 구현
직접 MultiHeadAttention 클래스를 구현하기 전에, 이 클래스를 먼저 사용해 보면서 query, key, value 행렬이 어떻게 변환되는지 살펴보겠습니다. 이 행렬들은 학습된 가중치를 사용하는 선형 변환으로 입력 임베딩을 투영해 생성된다는 점을 떠올려 주세요.
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)