Интересное что-то
522 subscribers
2.72K photos
253 videos
140 files
4.53K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.me/asisakov_channel
Чат: https://t.me/youknowds_chat
Download Telegram
Forwarded from Data Secrets
How much do language models memorize? Новое исследование от Meta FAIR, Google DeepMind и NVIDIA

Задумывались когда-нибудь, сколько данных может запомнить модель с определенным количеством параметров? А сколько конкретно информации может выучить один параметр? А сколько информации он может обобщить?

Кажется, что посчитать это очень сложно или даже невозможно, но вот у ученых из этой статьи получилось: каждый параметр языковой модели способен запомнить примерно 3.6 бит информации. О том, как это посчитали – ниже.

Сразу дисклеймер: до этого были и другие статьи на эту тему, но там запоминание определялось просто тем, может ли модель воспроизвести определенный кусок трейна. На самом же деле все сложнее, и в этой работе подход не такой наивный.

Авторы опираются на понятия из теории информации Колмогорова и Шеннона, и четко разделяют запоминание и обобщение. Если модель воспроизвела что-либо – не значит, что она это запомнила, а не обобщила. В обратную сторону – то же самое.

Количество информации, которое модель именно запомнила, считают так. Берут две модели одинаковой архитектуры и размера: одна – референсная – обучена на огромном количестве данных, вторая – испытуемая – на ограниченном датасете.

Обе модели пропускают один и тот же тренировочный фрагмент через процедуру предсказания и вычисляют вероятности каждого токена. Если вторая модель даёт более высокие вероятности (то есть «тратит» на их декодинг меньше бит, чем референсная), она экономит относительно референсной модели определённое число бит. Сумма сэкономленных бит по всем фрагментам и есть общий объём выученной информации.

Вот так и получилось число 3.6 бит/параметр.

Самое важное, что этот показатель дает возможность четко определить момент перехода запоминания в обобщение: он происходит, когда объём данных в битах примерно равен общей ёмкости модели. И да, экспериментально это сходится: как раз на этом объеме данных тестовый лосс начинает резко падать. Это, кстати, часто называют грокингом.

Красота, как она есть arxiv.org/abs/2505.24832
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔵Топологический анализ данных (TDA) с помощью ландшафтов устойчивости и его применение к временным рядам

TDA на функциях может быть использован для построения представлений признаков при анализе временных рядов. Ландшафты устойчивости особенно полезны в качестве топологических представлений для анализа сходства/несходства временных рядов. В литературе используются различные представления временных рядов, такие как взвешенное преобразование Фурье в Wang et al. (2018) или преобразование Уолша-Фурье в Chen et al. (2019). Я описываю эти ситуации в следующих разделах.

🔵Метод Ванга (Wang et al. (2018))

Ванг и др. (2018) предложили TDA для измерения структурных изменений во временных рядах электроэнцефалограмм (ЭЭГ). Сначала они построили преобразования Фурье временных рядов, затем применили экспоненциальную схему взвешивания к преобразованиям Фурье, чтобы сфокусироваться на более важных низкочастотных компонентах ЭЭГ. Далее они сгладили взвешенное преобразование Фурье, чтобы превратить его в функцию Морзе (Palais, 1963), это будет показано на первой формуле.

Формально, определим множества:

• I₁ = { j = 0, 1, 2, …, k : |aⱼ| > Tᵤ }

• I₂ = { j = 1, 2, …, k : |bⱼ| > Tᵤ }

где:

• Tᵤ = s√(2log(n))

• aⱼ = 2/T ∑ₜ₌₁ᵀ xₜ cos(((2jπ t)/T))

• bⱼ = 2/T ∑ₜ₌₁ᵀ xₜ sin(((2jπ t)/T))

• a₀ = 1/T ∑ₜ₌₁ᵀ xₜ

Здесь k - степень, определяющая самую высокую частоту [k/T], которая должна быть включена в представление (для T=500 используется k=99 ), n - количество точек данных в каждой фазе, а s - медиана абсолютного отклонения (MAD) коэффициентов Фурье(см. формулу 2)

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

Основной вклад данной работы заключается в том, что на основе имитационного моделирования было показано, что предложенная система TDA устойчива к сохраняющим топологию преобразованиям, таким как перевод, масштабирование амплитуды и частоты, и в то же время чувствительна к разрушающим топологию преобразованиям. Они утверждали, что топологическое изменение происходит только при наличии структурных изменений во временном ряду.

🔵Метод Чена (Chen et al. (2019))

Чен и др. (2019) описали TDA категориальных временных рядов с помощью их преобразований Уолша-Фурье (которые не являются функциями Морзе). Они построили ландшафты устойчивости первого порядка на основе преобразований Уолша-Фурье категориальных временных рядов, которые затем использовали в качестве признаков для кластеризации. Они применили этот анализ к большому набору данных о путешествиях и активности, выполняя вычисления параллельно. Они показали, что построение ландшафта устойчивости первого порядка включает в себя только линейное преобразование преобразования Уолша-Фурье.

Учитывая последовательность WFT dT(n,λⱼ) , где j=0, 1, ..., T₂-1 для временного ряда x(n,t) , где n=1,2,...,N , обозначим минимум и максимум значений WFT временного ряда x_(n,t) через:

На рисунке 3 будут обозначены минимальное и максимальное значения WFT для всех N временных рядов:

Ландшафт устойчивости первого порядка для x_(n,t) получается для ℓ = 1, 2,..., L как показано на формуле 4 и 5. Где (a)₊ обозначает положительную часть действительного числа a . Для ℓ = 1, 2,..., L и n=1,...,N , PL(n,ℓ) - это кусочно-линейные функции, которые представляют собой признаки, построенные для каждого из N временных рядов и полезные для кластеризации.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from rizzearch
Transformers for Supervised Online Continual Learning

мы уже когда-то давно писали про continual (reinforcement) learning - здесь, здесь, здесь, и здесь. но есть и супервайзд формулировка этой же задачи - меняется не ревард с течением времени или другие факторы среды, а онлайн поток лейблов (уметь классифицировать новый класс без забывания предыдущих)

в этой статье дипмаинды попытались подогнать трансформер под такой сетап на примере континуал емнист и цифар10. нету привычного батчированного предобучения (разве что используются предобученные картиночные feature extractors), а есть кое-что другое

что же все-таки смогли учудить авторы?

- обновляют модель в онлайн формате, чтобы соответствовать ограничениям задачи
- при этом сохраняют в КВ кэше предыдущие вычисления в sliding window стиле. да и кв кэш не один, а их несколько таких буферов (которые, видимо, рандомно сменяют друг друга, здесь авторы не совсем ясно расписали)
- таким образом и аттеншн утилизируется более стандартным способом, как мы привыкли, так еще и имитирует момент обучения по эпохам ввиду попеременной смены кв кэшей при градиентном обновлении. еще конечно интересно, как они реализовали online gradient шаг в комбинации с кв кэшами, поскольку к этому надо подойти аккуратно (и еще аккуратнее, чтобы достичь минимального оверхеда по обновлению состояний), но этого мы видимо не узнаем
- так же они попробовали 2 подхода по вставке лейблов - просто в контекст (и при next-token prediction задаче моделировать надо только их) или как доп проекция для kv, которые показывают себя примерно одинаково на существующих бенчмарках

кода нет (разве что псевдокод, по которому мало что понятно), толкового описания имплементации тоже. есть только интересные рассуждения, которыми нас кормят авторы, по поводу натуральности применения трансформеров к онлайн континуал задачам, поскольку они хорошо справляются с законом Ципфа) и контекстуальности входящих данных → это больше подходит не к i.i.d данным, а нестационарности

имхо, сухой остаток из этой статьи помимо домена континуал лернинга можно вынести в интересном сочетании in-weights & in-context лернинга, которые дополняют друг друга для такой онлайн задачи. в виде трансформера такое решение выглядит покрасивее, чем надстройка внешней памяти над каким-то нативным классификатором, потому что в архитектуре уже это заложено в тандеме (и другие ресерчеры ни раз уже упоминали об аналогиях между кв кэшем и памятью, в том числе и с линейным аттеншном)

так что да, очередная статья про интересные свойства трансформера

👀LINK
Forwarded from rizzearch
Memory Mosaics

хоть недавно и вышла альтернатива трансформеру от саканы, она все равно использует аттеншн как основной механизм и не выглядит как вывод из bitter lesson

здесь же хочется написать про айклировские 2025 мозаики памяти, которые базируются на ассоциативной памяти (да, она мне нравится и я про нее уже писал здесь и здесь + китай тоже что-то пытается с ней делать, разбавляя текст цитатами из goodreads)

вместо селф аттеншна идет же база на основе Надарая-Ватсона [1], [2]
- где моделируют необходимые ключи k и значения v для ассоциаций
- при том ключи вычисляются по токенам вплоть до данного таймстепа, а значения же на один шаг вперед (хотя можно в теории сделать и на большее количество шагов + нам еще так не придется вставлять позиционное кодирование), а на инференсе получается путем интерполяции
- и итоговый аутпут вычисляется через Надарая-Ватсона (который в теории должен сходиться к истинному какому-то там условному мат ожиданию значений v от ключей k)
- и поскольку теоретически один такой модуль сходится, то и интерпретация его (по словам авторов) лучше, чем один модуль селф аттеншна, да и даже эффективнее. так они эмпирически показывают, что inductive bias может появиться уже с одним таким блоком памяти, в то время как аттеншну нужно минимум 2 слоя
- для того, чтобы хендлить длинные последовательности и больше укрепить вопрос о позиционности токенов в архитектуре, авторы добавили нормализацию и leaky average, которую можно реализовать через свертку
- если же наслаивать эти модули друг на друга, каждый в отдельности будет отвечать за свой кусок меморизации, нужный для цельной картины - отсюда и название мозаик памяти (а и еще это наводит на мысли о связи мета-лернинга и градиентного обучения, про которое мы и тут упоминали)

что по экспам?
- супер-пупер маленький скейл (сравнивают с маленькой гпт2)
- игрушечные датасеты (3 луны) + языковое моделирование как BabiStories + in-context learning on RegBench
- обгоняет по перплексии, обгоняет в ин-контекст лернинг сетапе + нужно меньше слоев (в том числе в сравнении и с рнн и ссм)
- добавляют еще аналог FFN в виде Persistent Associative Memory (где количество kv фиксировано и они побольше подходят с теории кернел регрессии)
- но масштабируемо ли?

seems like not. иначе их predictive disentanglement (свойство мозаики) сравнивался с бОльшим скейлом моделек + были бы аблации на чувствительность к гиперам

но материал хорош для повторения всей этой теории и нового взгляда на аттеншн

👀 paper, code
Обещанный аналитический ноутбук от бигтеха!

Доброе воскресеннее утро!
Здесь приложил ссылку на google colab с реальным кейсом на собес Миддла!

Как с ним работать?
1. Первое и самое главное - нажимаем на "файл" - "сохранить копию на диске"
2. Выполняем задачи, по возможности засекайте время выполнения таких вещей как: распарсить данные, выполнение 1, 2 и тд задач
3. Если необходимо закидываем общую инфу из датасета в чат GPT и просим придумать еще задания.


* Если же вы еще маленький или сомневаетесь в себе, но очень интересно - там внизу есть мое решение с комментариями того как я мыслю


Вот вам отличная возможность поработать с датасетом с собеса + ответить на типовые вопросы на скорость решения (причем такие, которые часто самому надо сделать).

Че думаете по поводу сложности кейса?

По традиции ставим прогрессивного жаба 📈, если ждете больше крутых и удобных материалов, заинтересованного жаба 📃 если было интересно глянуть решение и просто лайк ❤️, чтобы я увидел ваш фидбек
Please open Telegram to view this post
VIEW IN TELEGRAM