Свидетели Градиента
635 subscribers
161 photos
31 files
71 links
Этот канал предназначен для общения и обсуждений среди тех, кто как и я, хочет видеть что происходит под капотом у нейросетей, и старается развивать интуицию об их природе и свойствах.

Для связи: @kraidiky
Download Telegram
Касательно воспроизведения разных статей, и в частности гипотезы златовласки, говорящей, что для гроккинга норма весов сети должна упасть в особую зону.
Стоит посмотреть нормы весов по отдельным слоям, и сразу становится видно, что в большинстве слоёв норма либо падает не ощутимо либо, вообще растёт, а нормы первого слоя эмбедингов падают монотонно и до гроккинга и во время и, после, экспоненциально с постоянной скоростью определяемой weight-decay. и если смотреть на графике с линейными осями и в смеси с другими слоями, то можно просто непраавильно это интерпретировать. На этом одну из популярных гипотез можно вычёркиваь. При наличии бейзлайна эксперимент аннулирующий популярную работу с 270 цитат на google scholar занял меньше часа.

UPD: Я погорячился, в оригинальной статье wd не применялся к embeding, Но если к немсу не применять картина получается точно такая же - есть один слой, который экспоненциально падает, и остальные, которые вообще-то растут, и общая динамика зависит от этой комбинации движений, а никакой зоны куда быся сеть сползала не прослеживается. Картина отдельным постом.
🔥6❤‍🔥2
UPD: Я погорячился, в оригинальной статье wd не применялся к embeding, Но если к немсу не применять картина получается точно такая же - есть один слой, который экспоненциально падает, и остальные, которые вообще-то растут, и общая динамика зависит от этой комбинации движений, а никакой зоны куда быся сеть сползала не прослеживается. Картина отдельным постом. Кстати, обратите внимание норма model.1 начала быть видимой только после того как гроккинг стал заметен. Интересно.
🤔1
Шитпостинг, конечно, но отражающий глубинные и сложные чувства... Подводных камней в этом деле целая гора, но с другой стороны x5 примерно вырисовывается. Осталось понять какие из проектов не жалко...
Forwarded from Градиент обреченный (Sergei Averkiev)
Коротко как провел выходные
🙈9😁4💯1
Почти год назад @import_sklearn навёл меня на статью https://www.arxiv.org/abs/2504.13292, где начало гроккинга ускоряют обучив сначала мелкую модель, а потом её слой эмбединга передают через случайную проекцию большой модели. И вот наконец я сподобился её воспроизвести. В работе обнаружился подводный камень. Во-первых, они предлагают заменять слой на два умножения. Вместо этого можно умножить их и отдать только веса, в этом случае впереди окажется большая но низкоранговая матрица, но и это не до конца спасает положение. Низкий ранг первого слоя сильно мешает обучению на последних этапах. То есть начало гроккинга ускоряется, но конец замедляется. Но если побороть эту низкоранговость, то да, имеем способ реально ускорять начало гроккинга. Идею победы над низким рангом тут не рассказываю, она не моя, и врядли кто-то бкдет повторять это исследование, но по крайней мере теперь вы знаете, что даже в такой зыбкой форме передача информации из маленкой модели в большую ускоряет обобщения, и теперь вы знаете, что это создаёт на входе бутылочное горлышко низкого ранга, и если вы его преодолеете своим способом, коих много, то это не проблема.
👀2🤔1
https://youtube.com/shorts/EmBgVx6jYBg?is=M03FVtMAvQ6IWqYq Потому что мозг получает награду не за предсказание разметки, а за предсказывание наблюдаемого будущего, причем не любого, а того, которое воспринимается как новое или необычное. Не просто Некст токен, а баланс изучение-использование, критерий новизны и предсказание последствий своих действий на следующем этапе, примерно через пол года после рождения. Я вот давно с этой идеей ношусь. Дробышевский одобряет! :))
👍1
Ответил тут, на вот этот https://xn--r1a.website/chivinya/215 важный пост и подумалось мне, что ответ заслуживает более широкого распространения. Потому что пора бы уже человечеству думать такие мысли, хотя бы тут в нашем маленьком кластере:

LLM-ки - это фактически сжатое представление культуры. Её текущий слепок.


Усреднённое только, а не сжатое. Это примерно то же самое, что оценивать геном человечества сложив общую последовательность всех генов этого самого человечества, встречающихся, например, чаще 5%. У этого слепка человечества будет две X хромосомы (женщин больше), но и Y тоже будет, ведь мужчин много. А как мы все знаем человек с хромосомами XXY это генетическое заболевание.

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

Вот эта составляющая в данный момент полностью игнорируется. Справедливости ради, её и биологи или культурологи не все осознаюют, что уж говорить о компьютерщиках. Интересно что Mixture of Experts, возможно, частично разрешает эту проблему, но поскольку компьюю терщики её не осознают, но и бенчмарков, которые бы это проверяли попросту нет.
2👍1
Провел интереснейший эксперимент над гроккингом с помощью Claude Code, и сделал из них парочку крутых выводов, один из которых готов рассказать прямо тут не дожидаясь датафеста. А интересно в этой истории то, что ни один из выводов, которые я сделал Клод сделать не смог, хотя смотрел на те же картинки что и я. И я его специально просил предположить в чём же дело, и почему в картинках возникает такой парадокс. Всё это говорит, что пока перспективы у автоматического ресёрча были бы не особо блестящие даже если бы агенты не тонули в своих глупых ошибках. Возможно об этом додложусь на будущем фесте на секции про агентов.

Если этот пост наберёт больше десятка лайков, мне будет гораздо приятнее рассказывать чего же я такое интересное нашёл, и я напишу следующий пост на много быстрее. :)
👍414🔥4
Последний месяц я интенсивно осваиваю кодирование на Claude Code, врчуную в код не вмешиваюсь даже для простых однострочных исправлений.

Ну так вот, есть такая идея - нормировать все выходы матрицы на 1, ну или все выходы какой-нибудь L2 или L1 нормой. Я её подглядел у Ветрова в его докладе про гроккинг, они такое с сетками на CIFAR10 делали, и я некоторое время вынашивал мысль такое тоже попробовать. Перед реализацией послал агента поискать связанные статьи. Он нашёл работу nvidia-вцев nGPT: Normalized Transformer with Representation Learning on the Hypersphere (arxiv 2410.01131v1), вроде как у них что-то там получилось. Ну ок, беру свой любимый бейзлан на гроккинг прикручиваю два флага, один включает нормализацию внутри kvq, второй делает то же с полносвязанными слоями. Пробую отключив weight_decay и Клод радостно рапортует, что никакого грокинга, всё плохо. Смотрю я на первую картинку, и говорю, ничего себе ничего интересного... Пробую отключить нормализацию MLP, вторая картинка, уже хуже, отключаю в трансформере, но оставляю в MLP, третья картинка, совсем всё плохо. Говорю Claude посмотреть на картинки, он выдает ещё одно свое предположение, а может сети просто емкости не хватило? Типа с такими матрицами (унарными их называют, если ничего не путаю) пространство исследуемое меньше, мы типа на поверхности гипершара, выразительная сила меньше, сомневаюсь, конечно, но ок, пробуем добавить в два раза размеры эмбединга сети, а ей от этого только хуже.

И тут у меня закралось подозрение. Почему именно ~50%? Постоянные читатели моего канала или слушатели моих лекций могут помнить, что датасет то у нас хоть и неупорядоченный, но с явно выраженной симметрией, см четвёртая картинка. Разделение на train и val 50%, это значит, что к каждому примеру из val в train с вероятностью 50% найдется симметричный пример среди train и если сеть раз об этом догадается как-то подогнав под это первую матрицу эмбедингов, это сильно облегчает задачу. Я даже как-то раз проводил опыт https://xn--r1a.website/GradientWitnesses/124 Отломав ровно половину датасета, и это в три раза отодвинуло наступлении гроккинга.

Пробуем то же самое, давая Клоду половину датасета, и получаем пятую картинку - полный рандом.
Тут надо Клоду дать поблажку, это я этот датасет гоняю в стопятьсотый раз, а он то его первый раз видит, и даже не видит, я только читает его код, то что он не догадался эту версию проверить не удивительно. Но когда я ему сказал посмотреть на итоговую картинку он выдал шедевр мысли, что задача стала сложнее, ведь теперь в трейне нет некоторых токенов. Эпик фейл так то, потому что во-первых, в валидейшене же их теперь тоже нет, а во-вторых, ну даже если так, задача стала сложнее, но не на столько же чтобы правильные ответы оставались на уровень практически случайного шума!

Потому он сделал ещё одно провальное предположение, о котором не сейчас. Там он вообще самое интересное обнаруженное явление назвал ошибкой обучения. Справедливости ради ошибкой его считают и при классическом обучении LLM-ок, так что он оказался не то чтобы тупым, скорее не более умным, чем срадний датасатанист. Невозможность явно сформулировать своё отличное от других мировоззрение и отстаивать его явно перед лицом статистики играет с LLM-ками злую шутку когда речь заходит о ресёрче. В общем выводы из всего этого такие, пока мечты об автоматическом ресчёрче остаются мечтами, в этом месяце.

P.S. Я обнаруживал, что все оценочные суждения о нейросетях становятся более точными, если к ним в конце приписывать "В этом месяце".

P.P.S. Похоже нормализация конкретно помогает элементарным обобщенийм, но так же конкретно мешает менее очевидным, что делает её бесполезной кроме особых случаев.
P.P.P.S. Ещё не все аблейшены проведены, возможно выводы о пользе и вреде нормализации слегка изменятся.
😁6
Щаз будет пост академической честности. :( Буквально проверил, какие сиды из val проходят в acc на val и есть ли в трейне их симметричный пример, и выяснилось, что симметрия на влияет, на гроккинг, до сетки не допирает, а влияет только размер доступного датасета, уменьшаете датасет вдвое приготовтесь втрое больше ждать. Клод всё ещё неправ, глядя на очевидные графики стаблилизации, он говорит, что может если ещё подождать, всё наладится, и может гроккинг будет, но и я оказался неправ. А огромное значение, как оказалось, играют сиды, которые в случае нормализации могут от 60% до 2% скачки давать. Теперь все выводы с лучшими и худшими сидами перепроверяю сижу. В защиту себя могу сказать, что я хоть и был неправ, но перпроверил.
👍8🔥1
Получил новый третий способ гроккинга, на этот раз полностью без weight_decay или какой либо второй силы преобразующей веса. Плохонький, конечно, val acc едва в 96% выползает, но гораздо важнее что это значит для генерализации обучения в нейросетях вообще как для явления. Не факт, что применимо в боллее крупных сетях. ПОпробуюю для начала на modded-nanogpt чуть по позже.
🔥7👍3
А теперь придумал ещё один способ ускорить начало гроккинга в несколько раз. Правда на модельной задаче он и так слишком быстрый, так что приходится уменьшать weight_decay или усложнять задачу. Первое уже сделал - работает, второе в очереди. Учитывая какой отстой по теме гроккинга с удовольствием берут на топовые конференции получается, что за месяц, что у меня на вооружении програмирующий агент, я статей на 4-5 конфы уже результатов набил.
🔥10
Ах как интересно... Если weight_decay применить только к attention матрице(-ам) этого хватает для гроккинга. А вот если её не трогать, то даже и всех остальных недостаточно. Как считаете, хватит такого открытия на шорт статью на какую-нибудь топовую конференцию? :))))
4🤔1
За три дня вооружённый одним агентом для осмысленного экспериментирования и двумя авторесёрчерами занимающимися микрооптимизацией на основе промпта Карпаты (который не работает как задумано), довёл умножение матрицы Input (2048, 12288) На матрицу выесов (12288, 50257) спарсифицированнуюю до 97% с получением на выходе пллотной (2048, 50257) до 13.1x быстрее, чем просто умножить плотные матрицы такого же размера. Это самая тяжёлая из матриц GPT-3 175B на стадии обучения.

Авторесерчер выдал классную фразу: Теоретический максимум при 3% nnz: 33x меньше FLOPs, но dense использует tensor cores (4x throughput) → теоретический предел ~8x. Мы достигаем 10.7x — выше теоретического за счёт того что bandwidth-bound, не compute-bound (загружаем 3% данных при 100% bandwidth efficiency).

Это при том, что я хоть и разбираюсь в том как устроен и как оптимизируется компьютер, но кернелы писать не умею и никогда этого раньше не делал. Это всё из хороших новостей. А из плохих - все крупные перестроения архитектуры сделаны с моей подачи в непосредственном диалоге с агентом, авторесерчер ни на что подобное не способен из коробки.

В этом месяце...

P.S. Из затраченных ресурсов подписка на Клод и 2-3 карты 3090 на удалённых серверах.
P.P.S. За день умножение на вектор (инференс токен за токеном) дошло до 19.1×, но для обучения нужны батчи, а там пока только 2.25x. Уже быстрее, чем dense, но не на много.
👍7🔥3🤡1