Sparse Hash AI – Telegram
Sparse Hash AI
134 subscribers
154 photos
257 videos
3 files
340 links
AI обогатительная разработка ML месторождений. Осторожно, в канале ведутся подрывные работы!

Персональный чат https://news.1rj.ru/str/sparsehash
Download Telegram
Forwarded from Алексей
f(X) возвращает вектор ассоциаций для входа X. Самый простой вариант её реализации - ассоциативная память из NTM (нейронной машины). Матрица ключей и матрица значений. Сравниваем вектор запроса с ключами, получаем оценки схожести и взвешенным суммированием собираем из матрицы значений ответ. Это то же самое внимание.

Для небольшого эксперимента ключи и значения можно просто задать вручную. Мы в них формируем граф отношений между токенами.

Собрал эту схему.

По мотивам недавней статьи про местоимения придумал тестовую задачу.

Два варианта:

МАША ЕСТ КАШУ ПОТОМУ ЧТО ОНА ВКУСНАЯ

МАША ЕСТ КАШУ ПОТОМУ ЧТО ОНА ГОЛОДНАЯ

Местоимение ОНА в первом случае должно быть релевантно КАШЕ, во втором - МАШЕ.

Граф заданных отношений:

ОНА = МАША + КАШУ
ВКУСНАЯ = КАШУ
ГОЛОДНАЯ = МАША
МАША = ЕСТ
ЕСТ = КАШУ
ПОТОМУ = ЧТО


Чтобы найти логиты для ОНА, добавил её в конец промпта. Два слоя, измерение для зондового токена ОНА было сделано на третьем.

Логиты для первого предложения:

МАША ЕСТ КАШУ ПОТОМУ ЧТО ОНА ВКУСНАЯ *ОНА

МАША      0.42
ЕСТ -0.1
КАШУ 1.74
ПОТОМУ 0.1
ЧТО 0.01
ОНА -0.03
ВКУСНАЯ 0.98
ГОЛОДНАЯ -0.13


ОНА ассоциируется с КАШУ (ВКУСНАЯ).


Логиты для второго предложения:

МАША ЕСТ КАШУ ПОТОМУ ЧТО ОНА ГОЛОДНАЯ *ОНА

МАША      1.88
ЕСТ -0.1
КАШУ 0.06
ПОТОМУ -0.07
ЧТО 0.05
ОНА 0.75
ВКУСНАЯ 0.11
ГОЛОДНАЯ 0.17


ОНА ассоциируется с МАША (ОНА).
Forwarded from Алексей
Вот ещё часть инфы по второму предложению.

Аттеншен для ГОЛОДНАЯ во втором слое, это МАША и ОНА.

ATT [0.75 0. 0. 0. 0. 0.25]

И аттеншен для зонда *ОНА в третьем слое. Всё внимание на ОНА ГОЛОДНАЯ.

ATT [0. 0. 0. 0. 0. 0.61 0.39]
Forwarded from Алексей
Внимание - это билатеральный фильтр

Обычный билатеральный фильтр (БФ) берёт взвешенную сумму вокруг центрального, текущего пикселя, опираясь на близость соседних ("контекстных") пикселей по цвету. БФ сравнивает скалярные значения цвета пикселя, а внимание делает сравнение запроса через скалярное произведение с ключами. В графике у БФ двумерное симметричное ядро, у внимания одномерное и ассиметричное.
Media is too big
VIEW IN TELEGRAM
Походка всё лучше.
👍1
Forwarded from Алексей
Записал функции внимание и MLP через вызовы одной единственной функции - чтение из ассоциативной памяти - mem(q, K, V).
* напоминаю, что это не та какава (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)


Только чтение из двух типов/банков памяти и ничего более.
An Intuitive Explanation of Sparse Autoencoders for LLM Interpretability
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
🔥2
PIDformer: Transformer Meets Control Theory
https://arxiv.org/abs/2402.15989

Для стабилизации аттеншена добавили в трансформер ПИД-регулятор.

X
🔥2
ZipNN: Lossless Compression for AI Models
https://arxiv.org/abs/2411.05239

Сжимает веса без потерь алгоритмом Хаффмана. Степень сжатия 33%-50%.
Slowing Down Forgetting in Continual Learning
https://arxiv.org/abs/2411.06916

Для борьбы с забыванием на дообучении сети новой задаче по весам реконструируют прошлые тренировочные данные, которые комбинируют с новыми.

X
LAuReL: Learned Augmented Residual Layer
https://arxiv.org/abs/2411.07501

Обучаемые остаточные связи. В каком-то смысле это вертикально развёрнутое внимание (вдоль стрима), где функция g (см. 2) принимает выходы с предыдущих блоков.

X