Telegram Web
Практический пример.
Давайте разберем по кусочкам z-тест - популярный тест, используемый для проверки равенства математического ожидания некоторому числу. Допустим, у нас есть сайт, для которого мы сделали новый дизайн, и мы хотим узнать, приносит ли он дополнительную прибыль. Мы проверяем только то, что он приносит больше денег - тогда тест односторонний. Если бы мы хотели проверить, что у нас вообще есть какие-то изменения, как положительные, так и отрицательные, то есть смотрели бы в обе стороны, то тест был бы двусторонним.
Нулевая гипотеза будет звучать так: новый дизайн приносит столько же прибыли, сколько и старый, либо меньше (но для одностороннего стат.теста это не важно - равенство или неравенство), то есть mu (математическое ожидание прибыли от нового дизайна) = mu0 (математическое ожидание старого дизайна, известное нам). Альтернативная гипотеза - mu > mu0.
z-тест основан на ЦПТ - при достаточно большом размере выборки ее среднее распределено нормально, при верности нулевой гипотезы распределение будет N(mu0, sigma^2 / n). Тогда (выборочное среднее - mu0)/sigma * sqrt(n) будет распределено как N(0, 1), что и будет нашей статистикой. Выберем уровень значимости 5% - как стандарт индустрии. Что тогда будет критическим регионом?
При верности нулевой гипотезы 95% статистик будут меньше 95-го перцентиля N(0, 1). Тогда, если мы возьмем этот перцентиль как критическое значение, а все, что больше него - как критический регион, то мы неверно отклоним нулевую гипотезу ровно в 5% случаев - что нам и нужно!) Соответственно, тест будет выглядеть так - посчитать нашу статистику, и сравнить с 95-ым перцентилем нормального распределения. Если она больше - отклоняем нулевую гипотезу, то есть дизайн приносит больше прибыли, если же меньше - мы не собрали достаточно статистических доказательств, что новый дизайн повысит прибыль. Тут возникает важный момент - то, что нулевая гипотеза не отвергнута, не означает, что она верна. Вот мы и приняли решение.
Спасибо за внимание, если вам понравилось то поддержите пост активностью!!!
🔥65👍43🤮3🤡2
Полезный пост с разбором работы multi-head attention
🤡85🤮3
Тотальное Уничтожение Multihead-Attention 😎

Для начала вам стоит прочитать пост про Self-Attention для более лучшего понимания данного поста. Если ты действительно хочешь понять MHA, то к данному посту нужно подходить ни один раз, спрашивая в комментах или у GPT.

Главная суть MHA - Multihead Attention 🤨
- Распараллеливание: Каждая голова в MHA обрабатывается независимо, что позволяет эффективно использовать вычислительные ресурсы (например, GPU).
- Интерпретация разных смыслов: Разные головы фокусируются на различных аспектах текста, что помогает модели "замечать" важные связи между словами с разных точек зрения.

Детальный разбор 😎
Представим, что batch_size=1, seq_len=4, embedding_dim=6, heads=3 (количество голов).
На вход поступает последовательность ["Я", "Хочу", "Пиццу", "<eos>"]. Каждый токен - это слово, которое преобразуется в эмбеддинг (вектор). На выходе имеем матрицу эмбеддингов X, смотрите на картинку 1

1️⃣ Генерация матриц Q, K, V
Картинка 1:
- На вход в MHA поступает матрица эмбеддингов X.
- Имеем веса Wq, Wk, Wv, которые обучаются.
- Путём матричного умножения X на Wq, Wk, Wv получаем три матрицы: Q, K, V.

Размерности:
- X → (batch_size, seq_len, embedding_dim)
- Wq, Wk, Wv → (embedding_dim, embedding_dim)
- Q, K, V → (batch_size, seq_len, embedding_dim)

2️⃣ Деление на головы
Картинка 2:
Вот у нас получились матрицы Q, K, V. Важно понимать, что MHA — это не создание новых отдельных матриц Q, K, V, а деление каждой из них на головы.
Условно, для каждого токена мы уменьшаем длину его вектора, разделяя его между головами. Например, на картинке 2 токен "пиццу" изначально представлен эмбеддингом длиной 6 → [13,14,15,16,17,18]. Если количество голов равно 3, то теперь этот токен преобразуется в 3 вектора по 2 элемента каждый → [[13,14],[15,16],[17,18]], теперь токен "пиццу" представили как три вектора с размером вектора два. Для этого выполняются операции reshape и swap, у нас появляется новая переменная head_dim = embedding_dim/heads 😐

Размерности:
- Q, K, V(batch_size, seq_len, embedding_dim) = (1, 4, 6)
- Q, K, V после reshape(batch_size, seq_len, heads, head_dim) = (1, 4, 3, 2)
- Q, K, V после swap(batch_size, heads, seq_len, head_dim) = (1, 3, 4, 2)

3️⃣ Self-Attention по каждой голове
Картинки 3-5:
Теперь происходит обычная формула Self-Attention по каждой голове: softmax((Q x K.T)/sqrt(head_dim)) * V
И основная суть, что каждая голова обрабатывается параллельно на одном устройстве (например, GPU), что обеспечивает эффективное распараллеливание вычислений ☝️

Размерности:
Attention Output для каждой головы имеет размерность → (batch_size, seq_len, head_dim) = (1, 4, 2).

4️⃣ Объединение голов
Картинки 6-8:

Вот мы посчитали для каждой головы Attention Output, а теперь время всё конкатить, восстанавливая исходную размерность эмбеддингов. Делаем обратные операции что и на втором шаге. Сначала reshape, а потом swap 🤪

Размерности:
- Attention Output каждой головы → (batch_size, text, seq_len, head_dim) = (1, 3, 4, 2)
- После swap(batch_size, seq_len, heads, head_dim)=(1, 4, 3, 2)
- После reshape(batch_size, seq_len, heads×head_dim)=(1, 4, 6)

5️⃣ Финальная обработка
Картинка 9:

Ну и наконец-то получаем наш Attention Output, который матрично умножается на матрицу весов Wo: Attention Output x Wo. По итогу получается FinalOutput, которая идёт в следующие слои 😋

Размерности:
- Wo → (embedding_dim, embedding_dim) = (6, 6)
- Attention Output → (batch_size, seq_len, embedding_dim) = (1, 4, 6)
- FinalOutput → (batch_size, seq_len, embedding_dim) = (1, 4, 6)
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
16🤡7👍5❤‍🔥4🤮3
Я уже день нахожусь под впечатлением от информации, что я засветился в ролике гендерфлюидного вертосексуала про Алексея Поднебесного (ссылка, 4:11, таймкод выставлен)
😁225🤮3🤡2
Привет мистер легушька
❤‍🔥29👍9🔥7🥰2🤡2
65🥰13❤‍🔥5👍1💯1
Если ты шортишь боинг в падающем самолете является ли это инсайдерской торговлей?
😁61😭9🔥2🤮2🤡1
😁6216👍4🔥2🤡1
💯7311🤮5🤡1🌚1
Пока одни учат ллмки и умрут от старости, другие вычисляют протеины и будут жить вечно
👍49🥴1310👏3💯2
👍13💯7🤩3💩1🤡1
2025/07/12 22:55:11
Back to Top
HTML Embed Code: