Forwarded from Алексей
Вот ещё часть инфы по второму предложению.
Аттеншен для ГОЛОДНАЯ во втором слое, это МАША и ОНА.
ATT [0.75 0. 0. 0. 0. 0.25]
И аттеншен для зонда *ОНА в третьем слое. Всё внимание на ОНА ГОЛОДНАЯ.
ATT [0. 0. 0. 0. 0. 0.61 0.39]
Аттеншен для ГОЛОДНАЯ во втором слое, это МАША и ОНА.
ATT [0.75 0. 0. 0. 0. 0.25]
И аттеншен для зонда *ОНА в третьем слое. Всё внимание на ОНА ГОЛОДНАЯ.
ATT [0. 0. 0. 0. 0. 0.61 0.39]
Forwarded from Алексей
Внимание - это билатеральный фильтр
Обычный билатеральный фильтр (БФ) берёт взвешенную сумму вокруг центрального, текущего пикселя, опираясь на близость соседних ("контекстных") пикселей по цвету. БФ сравнивает скалярные значения цвета пикселя, а внимание делает сравнение запроса через скалярное произведение с ключами. В графике у БФ двумерное симметричное ядро, у внимания одномерное и ассиметричное.
Обычный билатеральный фильтр (БФ) берёт взвешенную сумму вокруг центрального, текущего пикселя, опираясь на близость соседних ("контекстных") пикселей по цвету. БФ сравнивает скалярные значения цвета пикселя, а внимание делает сравнение запроса через скалярное произведение с ключами. В графике у БФ двумерное симметричное ядро, у внимания одномерное и ассиметричное.
Forwarded from Алексей
Записал функции внимание и MLP через вызовы одной единственной функции - чтение из ассоциативной памяти - mem(q, K, V).
* напоминаю, что это не та какава (QKV), что в формулах трансформера
Сама функция чтения mem, как говорил, - это функция внимания, она же ассоциативная память нейронной машины.
Возвращаемся к рисунку схемы внимания.
Начальное значение вектора запроса q равно вектору последнего токена (входа).
q = X[-1]
Запрос отправляется в постоянную ассоциативную память внимания. Результат чтения из памяти r_ass дополняет через skip connection запрос q.
r_ass = mem(q, K, V)
K и V - матрицы ключей и значений релевантных/ассоциативных связей между токенами.
q = q + r_ass
Расширенный ассоциациями запрос теперь отправляется в оперативную, динамическую контекстную память, которой является контекст/промпт.
У контекстной памяти ключи и значения равны входу.
Аналогично делаем запрос к памяти, ответ прибавляем к запросу.
r_ctx = mem(q, X[0:-1], X[0:-1])
q = q + r_сtx
В этом месте q это выход слоя внимания. Он поступает на вход MLP, который реализован опять же через чтение постоянной ассоциативной памяти, но с рокировкой ключей и значений (см. выше для чего это сделано).
r_mlp = mem(q, V, K)
q = q + r_mlp
Всё, прошли оба слоя: attention и MLP. Далее по необходимости повторяем.
Всё вместе:
Только чтение из двух типов/банков памяти и ничего более.
* напоминаю, что это не та какава (QKV), что в формулах трансформера
Сама функция чтения mem, как говорил, - это функция внимания, она же ассоциативная память нейронной машины.
def mem(q, K, V, temp):
return softmax(q @ K.T / temp) @ V
Возвращаемся к рисунку схемы внимания.
Начальное значение вектора запроса q равно вектору последнего токена (входа).
q = X[-1]
Запрос отправляется в постоянную ассоциативную память внимания. Результат чтения из памяти r_ass дополняет через skip connection запрос q.
r_ass = mem(q, K, V)
K и V - матрицы ключей и значений релевантных/ассоциативных связей между токенами.
q = q + r_ass
Расширенный ассоциациями запрос теперь отправляется в оперативную, динамическую контекстную память, которой является контекст/промпт.
У контекстной памяти ключи и значения равны входу.
Аналогично делаем запрос к памяти, ответ прибавляем к запросу.
r_ctx = mem(q, X[0:-1], X[0:-1])
q = q + r_сtx
В этом месте q это выход слоя внимания. Он поступает на вход MLP, который реализован опять же через чтение постоянной ассоциативной памяти, но с рокировкой ключей и значений (см. выше для чего это сделано).
r_mlp = mem(q, V, K)
q = q + r_mlp
Всё, прошли оба слоя: attention и MLP. Далее по необходимости повторяем.
Всё вместе:
q = X[-1]
q += mem(q, K, V)
q += mem(q, X[0:-1], X[0:-1])
q += mem(q, V, K)
Только чтение из двух типов/банков памяти и ничего более.
Операция Ы, Напарники International - Переведено с ИИ Merlin Clone
https://www.youtube.com/watch?v=0g0ApeG5bW8
https://www.youtube.com/watch?v=0g0ApeG5bW8
YouTube
Операция Ы, Напарники International - Переведено с ИИ Merlin Clone
💡 Отрывок из серии "Напарники" фильма "Операция Ы" представлен в этом захватывающем видео, где он переведен на множество языков благодаря ИИ Merlin Clone.
🎥 От английского до китайского, от испанского до арабского - каждый перевод приоткрывает новые аспекты…
🎥 От английского до китайского, от испанского до арабского - каждый перевод приоткрывает новые аспекты…
An Intuitive Explanation of Sparse Autoencoders for LLM Interpretability
https://adamkarvonen.github.io/machine_learning/2024/06/11/sae-intuitions.html
https://adamkarvonen.github.io/machine_learning/2024/06/11/sae-intuitions.html
❤1
Sparse Autoencoders Reveal Universal Feature Spaces Across Large Language Models
https://arxiv.org/abs/2410.06981
Sparse Autoencoders Find Highly Interpretable Features in Language Models
https://arxiv.org/abs/2309.08600
https://arxiv.org/abs/2410.06981
Sparse Autoencoders Find Highly Interpretable Features in Language Models
https://arxiv.org/abs/2309.08600
🔥2
PIDformer: Transformer Meets Control Theory
https://arxiv.org/abs/2402.15989
Для стабилизации аттеншена добавили в трансформер ПИД-регулятор.
X
https://arxiv.org/abs/2402.15989
Для стабилизации аттеншена добавили в трансформер ПИД-регулятор.
X
🔥2
ZipNN: Lossless Compression for AI Models
https://arxiv.org/abs/2411.05239
Сжимает веса без потерь алгоритмом Хаффмана. Степень сжатия 33%-50%.
https://arxiv.org/abs/2411.05239
Сжимает веса без потерь алгоритмом Хаффмана. Степень сжатия 33%-50%.
Slowing Down Forgetting in Continual Learning
https://arxiv.org/abs/2411.06916
Для борьбы с забыванием на дообучении сети новой задаче по весам реконструируют прошлые тренировочные данные, которые комбинируют с новыми.
X
https://arxiv.org/abs/2411.06916
Для борьбы с забыванием на дообучении сети новой задаче по весам реконструируют прошлые тренировочные данные, которые комбинируют с новыми.
X
LAuReL: Learned Augmented Residual Layer
https://arxiv.org/abs/2411.07501
Обучаемые остаточные связи. В каком-то смысле это вертикально развёрнутое внимание (вдоль стрима), где функция g (см. 2) принимает выходы с предыдущих блоков.
X
https://arxiv.org/abs/2411.07501
Обучаемые остаточные связи. В каком-то смысле это вертикально развёрнутое внимание (вдоль стрима), где функция g (см. 2) принимает выходы с предыдущих блоков.
X
Визуализация "обучения" loss-ом, движение по градиенту в мультивселенной.
https://www.youtube.com/clip/Ugkx-h7PSe5RmOHgiptnROkAkWqnRdFfvcu_
https://www.youtube.com/clip/Ugkx-h7PSe5RmOHgiptnROkAkWqnRdFfvcu_
YouTube
✂️ Loss
17 seconds · Clipped by Алексей Тарасов (4815162342) · Original video "Rick and Morty Death Crystals (SEASON 4)" by Play Frame
👍1