Modelo simples com embeddings
So, com o estudo do Karpathy, para pesquisa em mechanistic interpretability.
Construção do GPT seria a meta, man. Transformer architecture. E o Karpathy começa com esse modelo.
O post aqui seria para ensinar, relembrando como seria a implementação. Modelo simples aqui, apenas a definição com código considerando PyTorch e até a definição dos logits.
Implementemos.
class EmbeddingModel(nn.Module):
def __init__(self, vocab_size):
super().__init__()
self.token_embedding_table = nn.Embedding(vocab_size, vocab_size)
def forward(self, idx, targets=None):
logits = self.token_embedding_table(idx)
Simple like that. Temos um modelo para a predição do próximo caractere. Então, precisamos saber o vocab_size na inicialização do modelo para saber como se dá a construção da tabela, que deixa uma linha para cada caractere e o número de colunas seria o tamanho also do vocab_size para a construção da tabela. A tabela dos embeddings seria então, em cada posição, cada célula, a relação entre um caractere da linha e o próximo em termos de predição para o da coluna.
Os valores do logits indicariam isso.
Really great learning.