Escalonamento e Softmax
Efeito do escalonamento
Frase:
S = softmax(QKᵀ / √dₖ)
O que é dₖ?
É a dimensão dos vetores de query e key. Aqui dₖ = 2 (apenas 2 dimensões, para facilitar a visualização); em modelos reais como o BERT, dₖ = 64.
É a dimensão dos vetores de query e key. Aqui dₖ = 2 (apenas 2 dimensões, para facilitar a visualização); em modelos reais como o BERT, dₖ = 64.
Por que escalonar?
Com dₖ grande, os produtos internos crescem em magnitude: a softmax recebe valores muito extremos, satura e tem gradientes próximos de zero. Dividir por √dₖ estabiliza o treinamento.
Com dₖ grande, os produtos internos crescem em magnitude: a softmax recebe valores muito extremos, satura e tem gradientes próximos de zero. Dividir por √dₖ estabiliza o treinamento.
dₖ vs d_model
d_model é a dimensão total do embedding (ex.: 768 no BERT, 12 288 no GPT-3). Com h cabeças de atenção, cada cabeça usa dₖ = d_model / h — assim, o custo total se mantém igual a uma atenção única de dimensão d_model.
d_model é a dimensão total do embedding (ex.: 768 no BERT, 12 288 no GPT-3). Com h cabeças de atenção, cada cabeça usa dₖ = d_model / h — assim, o custo total se mantém igual a uma atenção única de dimensão d_model.