Из очевидного, но почему-то не очевидного....
Мы же знаем, что обучение в ряде случаев вдоль дна оврага происходит экспоненциально после того как сеть в него спустится.
Из-за этого я всегда на всех бухтю, что график loss нужно рисовать в логарифмических координатах, на нём более или менее видно, идёт ли ещё обучение или оно реально остановилось, тоесть наклонная ли линия loss вниз, или она горизонтальна и мы забились между стенками наглухо. И почему-то только сегодня мне пришло в голову, что если так, то ещё более информативным будет график относительной скорости обучения, тоесть изменение loss в отношении к самому loss, и таки да, он реально довольно информативен.
Мы же знаем, что обучение в ряде случаев вдоль дна оврага происходит экспоненциально после того как сеть в него спустится.
Из-за этого я всегда на всех бухтю, что график 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 чаще всего используют как раз для доучивания.
В общем тема крайней благодатная. Исследовать её можно долго и с удовольствием. Говорят, за это даже деньги платят. Пока я разобрался ещё очень поверхностно...
Вы обучаете на саму матрицу 768x3072, например, а лора-адаптер к ней с узким местом в <768x32>(<32x3072>(x)), а по большой матрице градиент даже не собираете. После этого вы регулярно или каждый раз считаете прибавку от такого адаптера к основной ма трице <768x32>@<32x3072> и перекладываете 90% этой прибавки в большую матрицу, а одну из матриц адаптера, соответственно на 0.1 домножаете (чем реже перекладываете, тем хуже точность, что логично). По очевидным причинам скорость такого действа сильно выше. По не менее очевидным причинам точность несколь ниже. Что не очевидно, так это то, что на некоторых этапах обучения ниже она совсем не на много. Если взять modded-nanogpt, и заменить в ней все матрицы MLP то на некоторых первых шагах она может отличаться не сильно, а за счёт экономии времени даже обгонять этот супер-пупер-гипер-оптимизированный по скорости бейзлайн, что вообще-то, титанически сложно сделать.
Дальше нечинаются менее очевидные вещи. Во-первых, экономия по памяти зависит при этом от размеров батча и может быть даже отрицательной. Для вычисления градиентов в дереве вычислений сохраняются активации до матричного умножения. Дальше, в процессе обратного распостранения в этот слой из backward придёт d(loss)/d(logit), и на их основе считается градиент. Вы выигрываете на том, что не храните матрицу градиентов большой матрицы, но в хранении активаций вы проигрываете, вам теперь нужно хранить активации не только 768xBatchsize+32xBatchsize. Если мы возимся с трансформером, у которого размер эмбедингов может быть крайне не маленьким, и занимает львиную долю места в памяти, может получиться так, что память мы не съэкономили, а как раз наоборот.
Вторая более сложная неочевидность в том, что на поздних этапах обучения, более тонких, алгоритм начинает всё больше и больше проигрывать. Казалось бы, мы же знаем, что чем дальше обучение, тем в целом прямее его траектория, разницы между высоко и низко-ранговым обучением должна рассасываться. А вот не тут то было... Я для себя это объясняю тем, что на больее поздних этапах обучения суммарное направление ведёт себя поспокойнее, но складывается оно из того что отдельные семплы начинают тянуть во всё более разные стороны, и вот эта раскоряка, по всей видимости, плохо представима в lora. Что на первый взгляд как будто бы противоречит тому, что LoRA чаще всего используют как раз для доучивания.
В общем тема крайней благодатная. Исследовать её можно долго и с удовольствием. Говорят, за это даже деньги платят. Пока я разобрался ещё очень поверхностно...
🔥8🥰1
Спросили меня тут, а не могу ли я курс репостнуть, а я подумал, а почему бы и нет. О курсе ничено не знаю, но энтузиазм и желание двигать народ это хорошо.
Forwarded from ЦДО “Моноид”
Evals for AI Safety — это методология измерения качества, надежности и безопасности ИИ-систем. В условиях повсеместного внедрения языковых моделей в продакшн умение корректно оценивать их возможности и риски становится приоритетным навыком.
Как устроен курс:
Цель курса:
Дать базу для начала карьеры в области оценки ИИ и понимание того, какую роль evals играет в AI Safety. Программа знакомит с основными концепциями evals, учит анализировать существующие бенчмарки, проектировать собственные оценки и разрабатывать дизайн экспериментов в области evals. Участники курса освоят Inspect AI (один из самых популярных фреймворков для оценки LLM).
Кого мы ждем:
Подробнее: тут
Подать заявку на участие в курсе, а также на фасилитацию можно до 22 февраля: тут
Если вам интересно менторство, преподавание, сотрудничество с курсом или вы хотите задать вопрос, то напишите Юле
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
К вопросу об автоматическом рецензировании статей, провёл эксперимент со статьёй, которую неплохо знал. Сравнивались бесплатный deepseek, Qwen3-Max бесплатный, Kimi бесплатный, z.ai c подпиской и kagi assistant в режиме Research(experimental), платный. Исходный промпт:
Не z.ai не смогла найти полного текста статьи, тогда пришлось ей помочь вторым промптом:
Все ответити в разной степени успешно и получилил третий промпт:
Qwen показал лучший результат, он после третьего промпта он понял где искать и отметил, что в случае отсутствия wd нужны очень специальные условия и, возможно, другой оптимизатор, и там вообще не всё там просто, но прямо в разделе выводы запутался в собственной мысли. Но и на том спасибо. В ответ на первый запрос было включено 7 работ с абзацем на каждую, нашёлл две смысловые неточности в кратком описании статей в лоитобзоре, но Громов в список не попал, хотя это статья с наименее тривиальным результатом из всего обзора.
kagi assistant справилась с резюмированием, сотавила таблицу со всеми связанными работами никого не поетряв, нашла один недочёт, причём не там, где Qwen, На прямой уточняющий вопрос сказала что всё норм приведя буквальные цитаты, и это было бы первое место, но она не акцентировала внимания, на том, что эти цуитаты справедливы только для узкого круга оптимизаторов и специальных услловий. Тоесть выполнила приказ слишком буквально. Может быть в некоторых случаях жто и не минус, а плюс, так что можно считать, что первое место поделили. По умолчанию включается дешёвый быстрый поиск, я этого не заметил пока мне не указали.
Kimi на третьем месте. При первом запросе не смогла найти ссылку на html, попыталась питоном сконфертировать PDF-ку, наконец сообразила затянуть через web интерфейс, и тут у неё кончились токены на запрос, и пришлось сказать ей continue. :) Как переносить - осилила. Ни одну из статей на которые ссылалсь не потеряла, но про всех сказаал что все корректно, на мелкие недочёты внимания не обратила. На третий промпт с прямым указанием где искать, сказала, что всё норм, в статье Громова такие утверждения есть, не вчитавшись, что это только для некоторых оптимизаторов и только при очень некоторых условиях.
Deepseek выпал из тройки лидеров. ПРо способ переноса сказал просто "ну там используется", срезюмировать как конкретно, видимо, не осилил. В списке связанных работ сконцентрировался только на 3 работах по чуть-чуть от каждого типа ссылок и зачем-то привёл работу вышедшую позже и тоже обсуждающую роль первого влоя эмбедингов. Ну спасибо, конечно... На прямой вопрос про Громова сказал, что всё нормуль, потому что абстракте фраза с таким посылом действительно есть, значит всё зашибись.
z.ai сумела в способ переноса, в обззоре работ сконцентрировалась на том, академически правильно ли показана роль этой статьи относительно других но в детали или списоке не полезла. На прямой третий вопрос ответить почему-то, ответить не смогла, просто пустой былый ответ и досвидания.
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. Если у вас есть сильно платная подписка на топовый Чатгпт проверьте его этим промптом. Антропик, когда разберусь с авторизацией, тоже попробую.
Вывод 1: для быстрого рецензирования использовать можно, в большей степени только чтобы понять релевантна ли статья или нет, но доверять тому, что они написали решительно нельзя. Если прямо задавать уточняющие вопросыв шанс получить правильное представление выше, но тоже можно упустить самые важные детали.
Вывод 2: Бесплатный Qwen очень неплох там, где нужно подумать.
P.S. Если у вас есть сильно платная подписка на топовый Чатгпт проверьте его этим промптом. Антропик, когда разберусь с авторизацией, тоже попробую.
👍2
Оказывается kagi assistant я использовал в режиме Quick, Переключаемся в режим Research Experimental и вот уэе результат начинает играть совсем новыми красками. Сделан подробный анализ связанных работ, никто не потерялся. В цитировании одной из них найден недочёт, причём не в тех, для которых недочёты находил Квен, на второй уточняющий промпт привел цитаты, единственно что - не съакцентировался на там что эти цитаты правомочны при определённыхз условиях. В таком варианте kagi assistant начинает делить первое место с квеном, или по крейне мере отставать от неё на пол сантиметра.
Первый пост сейчас поправлю, а это для тех, кто уже успел его полностью прочитать.
Первый пост сейчас поправлю, а это для тех, кто уже успел его полностью прочитать.
👍5
Касательно воспроизведения разных статей, и в частности гипотезы златовласки, говорящей, что для гроккинга норма весов сети должна упасть в особую зону.
Стоит посмотреть нормы весов по отдельным слоям, и сразу становится видно, что в большинстве слоёв норма либо падает не ощутимо либо, вообще растёт, а нормы первого слоя эмбедингов падают монотонно и до гроккинга и во время и, после, экспоненциально с постоянной скоростью определяемой weight-decay. и если смотреть на графике с линейными осями и в смеси с другими слоями, то можно просто непраавильно это интерпретировать. На этом одну из популярных гипотез можно вычёркиваь. При наличии бейзлайна эксперимент аннулирующий популярную работу с 270 цитат на google scholar занял меньше часа.
UPD: Я погорячился, в оригинальной статье wd не применялся к embeding, Но если к немсу не применять картина получается точно такая же - есть один слой, который экспоненциально падает, и остальные, которые вообще-то растут, и общая динамика зависит от этой комбинации движений, а никакой зоны куда быся сеть сползала не прослеживается. Картина отдельным постом.
Стоит посмотреть нормы весов по отдельным слоям, и сразу становится видно, что в большинстве слоёв норма либо падает не ощутимо либо, вообще растёт, а нормы первого слоя эмбедингов падают монотонно и до гроккинга и во время и, после, экспоненциально с постоянной скоростью определяемой weight-decay. и если смотреть на графике с линейными осями и в смеси с другими слоями, то можно просто непраавильно это интерпретировать. На этом одну из популярных гипотез можно вычёркиваь. При наличии бейзлайна эксперимент аннулирующий популярную работу с 270 цитат на google scholar занял меньше часа.
UPD: Я погорячился, в оригинальной статье wd не применялся к embeding, Но если к немсу не применять картина получается точно такая же - есть один слой, который экспоненциально падает, и остальные, которые вообще-то растут, и общая динамика зависит от этой комбинации движений, а никакой зоны куда быся сеть сползала не прослеживается. Картина отдельным постом.
🔥6❤🔥2
UPD: Я погорячился, в оригинальной статье wd не применялся к embeding, Но если к немсу не применять картина получается точно такая же - есть один слой, который экспоненциально падает, и остальные, которые вообще-то растут, и общая динамика зависит от этой комбинации движений, а никакой зоны куда быся сеть сползала не прослеживается. Картина отдельным постом. Кстати, обратите внимание норма model.1 начала быть видимой только после того как гроккинг стал заметен. Интересно.
🤔1
Шитпостинг, конечно, но отражающий глубинные и сложные чувства... Подводных камней в этом деле целая гора, но с другой стороны x5 примерно вырисовывается. Осталось понять какие из проектов не жалко...
Почти год назад @import_sklearn навёл меня на статью https://www.arxiv.org/abs/2504.13292, где начало гроккинга ускоряют обучив сначала мелкую модель, а потом её слой эмбединга передают через случайную проекцию большой модели. И вот наконец я сподобился её воспроизвести. В работе обнаружился подводный камень. Во-первых, они предлагают заменять слой на два умножения. Вместо этого можно умножить их и отдать только веса, в этом случае впереди окажется большая но низкоранговая матрица, но и это не до конца спасает положение. Низкий ранг первого слоя сильно мешает обучению на последних этапах. То есть начало гроккинга ускоряется, но конец замедляется. Но если побороть эту низкоранговость, то да, имеем способ реально ускорять начало гроккинга. Идею победы над низким рангом тут не рассказываю, она не моя, и врядли кто-то бкдет повторять это исследование, но по крайней мере теперь вы знаете, что даже в такой зыбкой форме передача информации из маленкой модели в большую ускоряет обобщения, и теперь вы знаете, что это создаёт на входе бутылочное горлышко низкого ранга, и если вы его преодолеете своим способом, коих много, то это не проблема.
arXiv.org
Let Me Grok for You: Accelerating Grokking via Embedding Transfer...
''Grokking'' is a phenomenon where a neural network first memorizes training data and generalizes poorly, but then suddenly transitions to near-perfect generalization after prolonged training....
👀2🤔1
https://youtube.com/shorts/EmBgVx6jYBg?is=M03FVtMAvQ6IWqYq Потому что мозг получает награду не за предсказание разметки, а за предсказывание наблюдаемого будущего, причем не любого, а того, которое воспринимается как новое или необычное. Не просто Некст токен, а баланс изучение-использование, критерий новизны и предсказание последствий своих действий на следующем этапе, примерно через пол года после рождения. Я вот давно с этой идеей ношусь. Дробышевский одобряет! :))
YouTube
Почему людям Нравится Музыка? Дробышевский про музыку #дробышевский #fyp #наука
Палеоантрополог и популяризатор науки Станислав Дробышевский @fondnauk
👍1
Ответил тут, на вот этот https://xn--r1a.website/chivinya/215 важный пост и подумалось мне, что ответ заслуживает более широкого распространения. Потому что пора бы уже человечеству думать такие мысли, хотя бы тут в нашем маленьком кластере:
Усреднённое только, а не сжатое. Это примерно то же самое, что оценивать геном человечества сложив общую последовательность всех генов этого самого человечества, встречающихся, например, чаще 5%. У этого слепка человечества будет две X хромосомы (женщин больше), но и Y тоже будет, ведь мужчин много. А как мы все знаем человек с хромосомами XXY это генетическое заболевание.
Ключевым свойством культуры как явление является наличие большого количества внутренне непротиворечивых кластеров, хорошо и согласованно работающих внутри, но резко проседающих если их смешать. И кластеры мужчин и женщин тут лишь один из примеров. Только благодаря этому разнообразию и кластеризации в культуре возможен естественный отбор, и люди как вид, как и вообще любые животные имеют механизмы поддержания этой кластеризации, на нужном уровне уменьшая вероятность скрещивания с чужаками, и на нужном уровне поддерживая уровень заимствования чужих мемов, чтобы с одной стороны не разрушать свой образ жизни, а с другой позволяя ему улучшаться за счёт заимствований.
Вот эта составляющая в данный момент полностью игнорируется. Справедливости ради, её и биологи или культурологи не все осознаюют, что уж говорить о компьютерщиках. Интересно что Mixture of Experts, возможно, частично разрешает эту проблему, но поскольку компьюю терщики её не осознают, но и бенчмарков, которые бы это проверяли попросту нет.
LLM-ки - это фактически сжатое представление культуры. Её текущий слепок.
Усреднённое только, а не сжатое. Это примерно то же самое, что оценивать геном человечества сложив общую последовательность всех генов этого самого человечества, встречающихся, например, чаще 5%. У этого слепка человечества будет две X хромосомы (женщин больше), но и Y тоже будет, ведь мужчин много. А как мы все знаем человек с хромосомами XXY это генетическое заболевание.
Ключевым свойством культуры как явление является наличие большого количества внутренне непротиворечивых кластеров, хорошо и согласованно работающих внутри, но резко проседающих если их смешать. И кластеры мужчин и женщин тут лишь один из примеров. Только благодаря этому разнообразию и кластеризации в культуре возможен естественный отбор, и люди как вид, как и вообще любые животные имеют механизмы поддержания этой кластеризации, на нужном уровне уменьшая вероятность скрещивания с чужаками, и на нужном уровне поддерживая уровень заимствования чужих мемов, чтобы с одной стороны не разрушать свой образ жизни, а с другой позволяя ему улучшаться за счёт заимствований.
Вот эта составляющая в данный момент полностью игнорируется. Справедливости ради, её и биологи или культурологи не все осознаюют, что уж говорить о компьютерщиках. Интересно что Mixture of Experts, возможно, частично разрешает эту проблему, но поскольку компьюю терщики её не осознают, но и бенчмарков, которые бы это проверяли попросту нет.
Telegram
Чивиня (Multi-layer Parkinson)
Пришла мысль, что LLM-ки - это фактически сжатое представление культуры. Её текущий слепок. Этакая форма существования культуры отдельно от её носителя - человека.
❤2👍1
Провел интереснейший эксперимент над гроккингом с помощью Claude Code, и сделал из них парочку крутых выводов, один из которых готов рассказать прямо тут не дожидаясь датафеста. А интересно в этой истории то, что ни один из выводов, которые я сделал Клод сделать не смог, хотя смотрел на те же картинки что и я. И я его специально просил предположить в чём же дело, и почему в картинках возникает такой парадокс. Всё это говорит, что пока перспективы у автоматического ресёрча были бы не особо блестящие даже если бы агенты не тонули в своих глупых ошибках. Возможно об этом додложусь на будущем фесте на секции про агентов.
Если этот пост наберёт больше десятка лайков, мне будет гораздо приятнее рассказывать чего же я такое интересное нашёл, и я напишу следующий пост на много быстрее. :)
Если этот пост наберёт больше десятка лайков, мне будет гораздо приятнее рассказывать чего же я такое интересное нашёл, и я напишу следующий пост на много быстрее. :)
👍41⚡4🔥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. Ещё не все аблейшены проведены, возможно выводы о пользе и вреде нормализации слегка изменятся.
Ну так вот, есть такая идея - нормировать все выходы матрицы на 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