Os shapes em redes neurais
This is really an important topic. Even Karpathy states that quando foi explicar como se procede, ele, com o desenvolvimento de redes neurais. Tem uma etapa apenas sobre checar os shapes, entendê-los, realizar que estão corretos. Enfim, muito interessante.
No contexto do modelo de embeddings, com o passo que demos dos logits a partir da camada de embeddings com o tamanho do vocabulário, podemos discutir a respeito.
Tem-se que a camada de embeddings seria uma tabela com estrutura do tamanho do vocabulário pelo tamanho do vocabulário. E quanto aos logits?
Lembremos que no forward se tem a seguinte instrução.
logits = self.token_embeddings(idx)
So, o que se obtem como resultado?
O idx seria um batch com dados de treinamento, mas um batch. Pode ser also apenas inference.
O Karpathy usa a seguinte estrutura (B, T, C), como representação de dimensões.
O B seria a dimensão do batch, o T seria quantos caracteres tem cada exemplo e o C, de channel, seria o tamanho da representação de cada caractere.
Muito importante compreender os shapes.
Really great learning.