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

Для связи: @kraidiky
Download Telegram
Уходящий год был годом подготовки прорывам и решительным изменениям, когда в принципе уже ясно, что вот сейчас оно и выстрелит, и изменится и переродится, и не только в нейросетях, и в связи с этим желаю чтобы все ваши наработки выстрелили и пошли в дело, все догадки показали себя полезными, на все хватило здоровья и прибавилось понимания вообще и нейросетей.
👍10🙏4🎄31
Новогодняя интеллектуальная абстиненция довела меня до простого и столь же очевидного эксперимента, не требующего вообще ничего кроме добрых намерений.

Огромное количество людей всё ещё считают гроккинг случайным процессом, протекающим когда обычное обучение сошло на нет. Чтобы это оправергнуть берём оригинальный экспериментальный ноутбук от @AbstractDL спасибо ему ещё раз,  https://colab.research.google.com/drive/1r3Wg84XECq57fT2B1dvHLSJrJ2sjIDCJ?usp=sharing Снимаем в коде ограничение на размер батчсайза, в половину трейна, и делаем батчсайз как раз размером в весь учебный датасет, то есть 97*98//2 - все, эксперимент готов. Всего через 5 минут гугловский коллаб обогащает нас картинкой, кучей новых знаний и желанием поиграть гиперпараметрами.

P.S. Столкновения с элементами рельефа также привносят некоторые дёргания не случайные, но дёргания.
🔥5🤔1
modded-nanogpt, соответственно всякие пониженные точности, типа bf16 и тому подобное.

val progress: 20/80 spends:09s/34s val_loss:3.3953
val progress: 80/80 spends:35s/35s val_loss:3.3815
step:1750/2315 val_loss:3.3815 train_time:47m:45s/01h:03mms step_avg:1636.20ms

Записал мдель на диск, считал моджель с диска чтобы продолжить с чекпоинта.

val progress: 20/80 spends:09s/34s val_loss:3.3959
val progress: 80/80 spends:34s/34s val_loss:3.3821
step:1750/2315 val_loss:3.3821 train_time:0.914:ms/1.208:msms step_avg:0.91ms

Вот теперь сиди и думиай, это у меня какая-то ошибка, или это torch.save на столько подель корраптит. :((
😢2
Из очевидного, но почему-то не очевидного....

Мы же знаем, что обучение в ряде случаев вдоль дна оврага происходит экспоненциально после того как сеть в него спустится.
Из-за этого я всегда на всех бухтю, что график loss нужно рисовать в логарифмических координатах, на нём более или менее видно, идёт ли ещё обучение или оно реально остановилось, тоесть наклонная ли линия loss вниз, или она горизонтальна и мы забились между стенками наглухо. И почему-то только сегодня мне пришло в голову, что если так, то ещё более информативным будет график относительной скорости обучения, тоесть изменение loss в отношении к самому loss, и таки да, он реально довольно информативен.
👍7🔥2
Есть такая штука - низкоранговое обучение.

Вы обучаете на саму матрицу 768x3072, например, а лора-адаптер к ней с узким местом в <768x32>(<32x3072>(x)), а по большой матрице градиент даже не собираете. После этого вы регулярно или каждый раз считаете прибавку от такого адаптера к основной ма трице <768x32>@<32x3072> и перекладываете 90% этой прибавки в большую матрицу, а одну из матриц адаптера, соответственно на 0.1 домножаете (чем реже перекладываете, тем хуже точность, что логично). По очевидным причинам скорость такого действа сильно выше. По не менее очевидным причинам точность несколь ниже. Что не очевидно, так это то, что на некоторых этапах обучения ниже она совсем не на много. Если взять modded-nanogpt, и заменить в ней все матрицы MLP то на некоторых первых шагах она может отличаться не сильно, а за счёт экономии времени даже обгонять этот супер-пупер-гипер-оптимизированный по скорости бейзлайн, что вообще-то, титанически сложно сделать.

Дальше нечинаются менее очевидные вещи. Во-первых, экономия по памяти зависит при этом от размеров батча и может быть даже отрицательной. Для вычисления градиентов в дереве вычислений сохраняются активации до матричного умножения. Дальше, в процессе обратного распостранения в этот слой из backward придёт d(loss)/d(logit), и на их основе считается градиент. Вы выигрываете на том, что не храните матрицу градиентов большой матрицы, но в хранении активаций вы проигрываете, вам теперь нужно хранить активации не только 768xBatchsize+32xBatchsize. Если мы возимся с трансформером, у которого размер эмбедингов может быть крайне не маленьким, и занимает львиную долю места в памяти, может получиться так, что память мы не съэкономили, а как раз наоборот.

Вторая более сложная неочевидность в том, что на поздних этапах обучения, более тонких, алгоритм начинает всё больше и больше проигрывать. Казалось бы, мы же знаем, что чем дальше обучение, тем в целом прямее его траектория, разницы между высоко и низко-ранговым обучением должна рассасываться. А вот не тут то было... Я для себя это объясняю тем, что на больее поздних этапах обучения суммарное направление ведёт себя поспокойнее, но складывается оно из того что отдельные семплы начинают тянуть во всё более разные стороны, и вот эта раскоряка, по всей видимости, плохо представима в lora. Что на первый взгляд как будто бы противоречит тому, что LoRA чаще всего используют как раз для доучивания.

В общем тема крайней благодатная. Исследовать её можно долго и с удовольствием. Говорят, за это даже деньги платят. Пока я разобрался ещё очень поверхностно...
🔥8🥰1
Спросили меня тут, а не могу ли я курс репостнуть, а я подумал, а почему бы и нет. О курсе ничено не знаю, но энтузиазм и желание двигать народ это хорошо.
🐉 Открыт набор на Technical AI Safety курс по оценке LLM: подходы, бенчмарки и методология

Evals for AI Safety — это методология измерения качества, надежности и безопасности ИИ-систем. В условиях повсеместного внедрения языковых моделей в продакшн умение корректно оценивать их возможности и риски становится приоритетным навыком.

Как устроен курс:
🔘Анализ методологии evals на основе современных и классических статей в области
🔘Менторы из Apollo research, AI Lab SKOLKOVO, AIRI Institute, Яндекс и др
🔘Обучение в мини-группах, по 4-6 человек
🔘Формат: оффлайн в Москве или онлайн
🔘Ожидаемая нагрузка: 10-15 часов в неделю
🔘Стоимость: бесплатно, отбор на конкурсной основе

Цель курса:
Дать базу для начала карьеры в области оценки ИИ и понимание того, какую роль evals играет в AI Safety. Программа знакомит с основными концепциями evals, учит анализировать существующие бенчмарки, проектировать собственные оценки и разрабатывать дизайн экспериментов в области evals. Участники курса освоят Inspect AI (один из самых популярных фреймворков для оценки LLM).

Кого мы ждем:
🔘Студентов STEM-направлений, планирующих карьеру в области ИИ
🔘IT-специалистов, желающих освоить навык тестирования языковых моделей
🔘Продвинутых и начинающих специалистов в области ML, которые хотят углубиться в методологию оценки моделей

Подробнее: тут
Подать заявку на участие в курсе, а также на фасилитацию можно до 22 февраля: тут

Если вам интересно менторство, преподавание, сотрудничество с курсом или вы хотите задать вопрос, то напишите Юле
Please open Telegram to view this post
VIEW IN TELEGRAM
5
К вопросу об автоматическом рецензировании статей, провёл эксперимент со статьёй, которую неплохо знал. Сравнивались бесплатный deepseek, Qwen3-Max бесплатный, Kimi бесплатный, z.ai c подпиской и kagi assistant в режиме Research(experimental), платный. Исходный промпт:
1) Найди и прочи статью Let Me Grok for You: Accelerating Grokking via Embedding Transfer from a Weaker Model, и кратко, в два абзаца перескажи общую идею статьи, и то каким конкретным способом предлагается embeding transfer
2) Прочти статьи, на которые ссылеатся эта работа в зазделе связанных работ, проверь действительно ли описаные в этой статье в лиьобзоре присутствуют в исходной стате и правильно переданны.

Не z.ai не смогла найти полного текста статьи, тогда пришлось ей помочь вторым промптом:
Вот по этой ссылке доступен полный текст статьи: https://arxiv.org/html/2504.13292v1и там есть раздел: 1.1 Related Work

Все ответити в разной степени успешно и получилил третий промпт:
В исходной статье указано: Gromov (2023) showed that grokking is robust to different optimizers such as vanilla gradient descent and Adam; and regularization methods including no regularization, weight decay
Приведи цитату из указанной статье, где показывается, что гроккинг возможен без weight_decay

Qwen показал лучший результат, он после третьего промпта он понял где искать и отметил, что в случае отсутствия wd нужны очень специальные условия и, возможно, другой оптимизатор, и там вообще не всё там просто, но прямо в разделе выводы запутался в собственной мысли. Но и на том спасибо. В ответ на первый запрос было включено 7 работ с абзацем на каждую, нашёлл две смысловые неточности в кратком описании статей в лоитобзоре, но Громов в список не попал, хотя это статья с наименее тривиальным результатом из всего обзора.
kagi assistant справилась с резюмированием, сотавила таблицу со всеми связанными работами никого не поетряв, нашла один недочёт, причём не там, где Qwen, На прямой уточняющий вопрос сказала что всё норм приведя буквальные цитаты, и это было бы первое место, но она не акцентировала внимания, на том, что эти цуитаты справедливы только для узкого круга оптимизаторов и специальных услловий. Тоесть выполнила приказ слишком буквально. Может быть в некоторых случаях жто и не минус, а плюс, так что можно считать, что первое место поделили. По умолчанию включается дешёвый быстрый поиск, я этого не заметил пока мне не указали.
Kimi на третьем месте. При первом запросе не смогла найти ссылку на html, попыталась питоном сконфертировать PDF-ку, наконец сообразила затянуть через web интерфейс, и тут у неё кончились токены на запрос, и пришлось сказать ей continue. :) Как переносить - осилила. Ни одну из статей на которые ссылалсь не потеряла, но про всех сказаал что все корректно, на мелкие недочёты внимания не обратила. На третий промпт с прямым указанием где искать, сказала, что всё норм, в статье Громова такие утверждения есть, не вчитавшись, что это только для некоторых оптимизаторов и только при очень некоторых условиях.
Deepseek выпал из тройки лидеров. ПРо способ переноса сказал просто "ну там используется", срезюмировать как конкретно, видимо, не осилил. В списке связанных работ сконцентрировался только на 3 работах по чуть-чуть от каждого типа ссылок и зачем-то привёл работу вышедшую позже и тоже обсуждающую роль первого влоя эмбедингов. Ну спасибо, конечно... На прямой вопрос про Громова сказал, что всё нормуль, потому что абстракте фраза с таким посылом действительно есть, значит всё зашибись.
z.ai сумела в способ переноса, в обззоре работ сконцентрировалась на том, академически правильно ли показана роль этой статьи относительно других но в детали или списоке не полезла. На прямой третий вопрос ответить почему-то, ответить не смогла, просто пустой былый ответ и досвидания.
В самой статье не акцентируется внимание, что имеющаяся в модели матрица эмбедингов подменяется двумя более низкоранговыми, и хотя из текста это понятно, и ни одна из сетей не сумела на этом акцентироваться. Возможно это не из хи вина, потмоу что когда я ранее сам читал эту статью я тоже этого не понял, и подумал, что низкоранговым произведением роднаяч высокоранговая матрица инициализируется, становясь фактически меньшего ранга, но дальше учится уже как обычно. Полехз перпроверять только после того как три сети подчеркнулли что обу матрицы обучаемые.

Вывод 1:
для быстрого рецензирования использовать можно, в большей степени только чтобы понять релевантна ли статья или нет, но доверять тому, что они написали решительно нельзя. Если прямо задавать уточняющие вопросыв шанс получить правильное представление выше, но тоже можно упустить самые важные детали.
Вывод 2: Бесплатный Qwen очень неплох там, где нужно подумать.

P.S. Если у вас есть сильно платная подписка на топовый Чатгпт проверьте его этим промптом. Антропик, когда разберусь с авторизацией, тоже попробую.
👍2
Оказывается kagi assistant я использовал в режиме Quick, Переключаемся в режим Research Experimental и вот уэе результат начинает играть совсем новыми красками. Сделан подробный анализ связанных работ, никто не потерялся. В цитировании одной из них найден недочёт, причём не в тех, для которых недочёты находил Квен, на второй уточняющий промпт привел цитаты, единственно что - не съакцентировался на там что эти цитаты правомочны при определённыхз условиях. В таком варианте kagi assistant начинает делить первое место с квеном, или по крейне мере отставать от неё на пол сантиметра.

Первый пост сейчас поправлю, а это для тех, кто уже успел его полностью прочитать.
👍5
Касательно воспроизведения разных статей, и в частности гипотезы златовласки, говорящей, что для гроккинга норма весов сети должна упасть в особую зону.
Стоит посмотреть нормы весов по отдельным слоям, и сразу становится видно, что в большинстве слоёв норма либо падает не ощутимо либо, вообще растёт, а нормы первого слоя эмбедингов падают монотонно и до гроккинга и во время и, после, экспоненциально с постоянной скоростью определяемой 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