Introdução ao blog
- Este é o oitavo texto de uma série de posts baseada no livro "Build a Large Language Model (from Scratch)", de Sebastian Raschka.
- Neste artigo, é abordado como implementar "trainable self-attention".
Como funciona um LLM baseado em Transformer do tipo GPT, apenas com decodificador
- Divide-se uma string em tokens e mapeia-se cada token para uma sequência de vetores para criar embeddings de tokens.
- São gerados embeddings posicionais para formar a sequência de embeddings de entrada.
- Usam-se os embeddings de entrada para gerar pontuações de atenção para cada token.
- As pontuações de atenção são normalizadas para gerar pesos de atenção.
- São gerados vetores de contexto para cada token.
Mecanismo de atenção por produto escalar com escala
- As pontuações de atenção são calculadas projetando a sequência de entrada em três matrizes (query, key e value).
- As pontuações de atenção são normalizadas para gerar pesos de atenção, que são usados para calcular os vetores de contexto.
- Todo esse processo é realizado por meio de multiplicações de matrizes eficientes.
Projeção entre espaços usando matrizes
- Matrizes são usadas para projetar vetores em espaços de outras dimensões.
- Os embeddings de entrada são projetados nos espaços de query, key e value para calcular as pontuações de atenção.
Normalização das pontuações de atenção
- A função softmax é usada para normalizar as pontuações de atenção.
- A normalização é feita dividindo pela raiz quadrada da dimensão para resolver o problema de gradientes pequenos.
Geração de vetores de contexto
- Os pesos de atenção são usados para calcular o vetor de contexto de cada token.
- Os embeddings de entrada são projetados no espaço de value e combinados por soma ponderada com os pesos de atenção para gerar vetores de contexto.
Próximos passos
- Serão abordadas self-attention causal e atenção multi-head.
- Está planejada uma exploração do "porquê" do mecanismo de self-attention.
Conclusão
- Este post pode ajudar a entender o mecanismo de self-attention.
- Perguntas ou comentários adicionais podem ser deixados nos comentários.
Ainda não há comentários.