入力埋め込みを作成する
いよいよ独自のTransformerモデル作成を始めます。最初のステップは、入力のトークンIDを埋め込むことです!
次のパラメータを持つ InputEmbeddings クラスを定義します。
vocab_size: モデルの語彙サイズd_model: 入力埋め込みの次元数
torch と math ライブラリ、そして torch.nn を nn としてすでにインポートしてあります。これらはコース全体の演習で使用します。
この演習はコースの一部です
PyTorchで学ぶTransformerモデル
演習の手順
- モデルの次元数と語彙サイズを、それぞれ
d_modelとvocab_sizeの引数に設定します。 - 埋め込み層をインスタンス化します。
- 返り値として、埋め込みに
self.d_modelの平方根を掛けたものを返します。 vocab_sizeを 10,000、d_modelを 512 としてInputEmbeddingsをインスタンス化し、token_idsに適用します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
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)