TGViewer
DS & ML | YeaHub DS & ML | YeaHub @yeahub_data_science · 483 subscribers
Post #183 65
#полезное
😐 Команда дня: einsum или как реализовать multi-head self-attention без единого цикла

Если вы работаете с нейросетями, особенно с трансформерами, то, скорее всего, сталкивались с реализациями self-attention, переполненными циклами. Однако благодаря np.einsum можно выразить всю механику multi-head attention в компактной и векторизованной форме.

Вот пример реализации:
def multi_head_attention(X, W_q, W_k, W_v, W_o):  
d_k = W_k.shape[-1]
Q = np.einsum('si,hij->hsj', X, W_q) # (n_heads, seq_len, d_k)
K = np.einsum('si,hik->hsk', X, W_k)
V = np.einsum('si,hiv->hsv', X, W_v)
scores = Q @ K.transpose(0, 2, 1) / np.sqrt(d_k)
weights = softmax(scores, axis=-1)
output = weights @ V
projected = np.einsum('hsv,hvd->hsd', output, W_o)
return projected.transpose(1, 0, 2).reshape(seq_len, -1)


einsum — мощный инструмент для выражения сложных операций с многомерными массивами. Особенно полезен, когда нужно точно контролировать свёртки и трансформации осей. В задачах NLP и computer vision это буквально незаменимая вещь.

Почему стоит обратить внимание:
🟠 Полная векторизация — минимум циклов, максимум скорости;
🟠 Код ближе к математике, а значит — легче проверять;
🟠 Можно выразить довольно сложные операции с тензорами в одной строке.

👉Новости 👉База вопросов
More from @yeahub_data_science
  1. Oct 14, 2026#Собес #linter 🤔 Какие линтеры используются в Python-проектах 💬 Кратко: Линтеры анализир…
  2. Oct 12, 2026#Собес #asyncio #coroutine #event_loop 🤔 Корутины и event loop. 💬 Кратко: Корутины — это…
  3. Oct 9, 2026#trainer #курсы #тренажеры 📚 CodeChef Онлайн-платформа программирования, которая позволяе…
  4. Oct 8, 2026#Собес #index #select #performance 🤔 Как индексы влияют на производительность SELECT-запр…
  5. Oct 7, 2026#Собес #garbage_collection #memory_management 🤔 Сборщик мусора и счётчик ссылок? 💬 Кратк…
  6. Oct 5, 2026#Собес #ensemble_methods #random_forest #overfitting 🤔 Как реализовать ансамблевый метод…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →