Tạo input embeddings
Đến lúc bắt tay xây dựng mô hình transformer của riêng bạn, và bước đầu tiên là nhúng (embed) các ID token đầu vào!
Bạn sẽ định nghĩa một lớp InputEmbeddings với các tham số sau:
vocab_size: kích thước từ vựng của mô hìnhd_model: số chiều của các input embedding
Thư viện torch và math đã được nhập sẵn cho bạn, cùng với torch.nn dưới tên nn. Chúng sẽ được sử dụng xuyên suốt các bài tập trong khóa học.
Bài tập này là một phần của khóa học
Các mô hình Transformer với PyTorch
Hướng dẫn bài tập
- Gán số chiều mô hình và kích thước từ vựng lần lượt từ các đối số
d_modelvàvocab_size. - Khởi tạo lớp embedding.
- Trả về các embedding đã được nhân với căn bậc hai của
self.d_model. - Khởi tạo
InputEmbeddingsvớivocab_sizebằng 10.000 vàd_modelbằng 512, rồi áp dụng nó lêntoken_ids.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
class InputEmbeddings(nn.Module):
def __init__(self, vocab_size: int, d_model: int) -> None:
super().__init__()
# Set the model dimensionality and vocabulary size
self.d_model = ____
self.vocab_size = ____
# Instantiate the embedding layer
self.embedding = ____
def forward(self, x):
# Return the embeddings multiplied by the square root of d_model
return ____
# Instantiate InputEmbeddings and apply it to token_ids
embedding_layer = ____
output = ____
print(output.shape)