Код Middle Attention и трансформеры спрашивают часто обновлено
Scaled dot-product attention
Условие
Напишите attention(Q, K, V, causal): Q, K, V матрицы (списки строк) размера n×d. Посчитайте softmax(QKᵀ / √d)·V; при causal=True позиция i видит только ключи j ≤ i. Softmax устойчивый. Верните матрицу n×d_v, значения округлены до 4 знаков.
Примеры
attention([[1, 0]], [[1, 0]], [[5, 7]], false) // [[5, 7]]
attention([[0, 0], [0, 0]], [[1, 0], [0, 1]], [[1, 0], [0, 1]], false) // [[0.5, 0.5], [0.5, 0.5]]
attention([[0, 0], [0, 0]], [[1, 0], [0, 1]], [[1, 0], [0, 1]], true) // [[1, 0], [0.5, 0.5]]
Как подойти
Подсказки: 2
- Сначала посчитайте вектор оценок для строки i, потом устойчивый softmax.
- При causal пропускайте j > i, а не ставьте им ноль после softmax.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Термины по теме
Ещё по теме «Attention и трансформеры»
- Формула attention
- Блок трансформера
- Сложность attention
- Cross-attention
- BERT против GPT
- Объясните attention
- MQA и GQA
- KV-кеш