Свидетели Градиента – Telegram
Свидетели Градиента
489 subscribers
128 photos
29 files
61 links
Этот канал предназначен для общения и обсуждений среди тех, кто как и я, хочет видеть что происходит под капотом у нейросетей, и старается развивать интуицию об их природе и свойствах.

Для связи: @kraidiky
Download Telegram
Forwarded from Neural Shit
Наткнулся на интересный препринт, который объясняет, почему спорить с LLM'ками бесполезно, а доверять им проверку научных идей может быть опасно.

Автор провел "брутально простой" эксперимент и вскрыл две фундаментальные дыры в логике современных нейронок.

1. Цикл ложного исправления. Мы привыкли думать: если модель галлюцинирует, надо её поправить, и она исправится. Как бы не так.

В эксперименте автор давал модельке реальные ссылки на свои свежие препринты. Нюанс в том, что это были короткие отчеты на пару страниц. Модель же, не имея возможности их прочитать (или просто игнорируя это), ни разу не ответила: "Я не имею доступа к файлу", а уверенно заявляла: "Я прочитала всё от начала до конца". И начинала цитировать несуществующие 12-ю и 24-ю страницы, выдумывать теоремы и графики.

Когда автор тыкал носом в ложь, включался адский цикл: Модель извиняется ("Ой, простите!") —> Клянется, что теперь-то она точно открыла файл —> И тут же генерирует новую порцию галлюцинаций, но уже с учетом внесенной ранее правки.

Это повторялось более 18 раз подряд. Модели выгоднее притвориться, что она поняла задачу и начать выполнять эту задачу с помощью выдуманных данных (получить награду за "связность"), чем признать, что она не может прочитать файл.


2. Режим вахтера. ИИ обучен на старых данных и на старых авторитетах. Если на вход модельке подать какую-то инфу от NASA или, например, Nature, то модель верит информации слепо. Если же это новая идея от независимого автора, то модель включает скептика, вешает ярлыки "сомнительно" и начинает галлюцинировать против вас, лишь бы защитить общепринятую норму. В данном случае модель не просто врет, она строит потемкинские деревни из науки.

Мы создали идеального бюрократа. Он очень вежлив и сыплет умными словами, но если ваша идея не вписывается в Википедию — он её задушит выдуманными фактами.
👍73🤣1
Я прикручивал к modded-nanogpt загрузку сохраненного состояния, а оно загружаться не хотело и орало про неожиданный тип. Ошибку удалось локализовать в torch.optim.Optimizer.load_state_dict от которого ее наследует NorMuon, Библиотечный метод из своих вредительских соображений скрыто кастит тип загружаемого содержимого, приводя его в соответствие с типом соответствующего этому стейту параметра, полагаю чтобы не усложнять жизнь тем, у кого лапки, и он за всем этим самостоятельно следить не способен.

Параметр, например:
'blocks.1.attn.attn_gate.weight': (torch.Size([6, 12]), torch.bfloat16),
Ты грузишь сохранённый стейт какой-то такой:
{'state': {
0: {'momentum_buffer': (torch.Size([768, 3072]), torch.float32), 'second_momentum_buffer': (torch.Size([10, 1, 3072]), torch.float32)},
1: {'momentum_buffer': (torch.Size([768, 3072]), torch.float32)},
....
10: {'momentum_buffer': (torch.Size([6, 12]), torch.bfloat16), 'second_momentum_buffer': (torch.Size([10, 1, 12]), torch.float32)},
11: {'momentum_buffer': (torch.Size([6, 12]), torch.bfloat16)},

А получаешь в состоянии оптимизатора:

{'state': {
0: {'momentum_buffer': (torch.Size([768, 3072]), torch.float32), 'second_momentum_buffer': (torch.Size([10, 1, 3072]), torch.float32)},
1: {'momentum_buffer': (torch.Size([768, 3072]), torch.float32)},
....
10: {'momentum_buffer': (torch.Size([6, 12]), torch.bfloat16), 'second_momentum_buffer': (torch.Size([10, 1, 12]), torch.bfloat16)},
11: {'momentum_buffer': (torch.Size([6, 12]), torch.bfloat16)},

Здравствуй несоответствие типа, а если вручную привести тип ещё раз, то потеря точности при загрузке.

И я бы ещё долго проверял и перепроверял свой код, если бы это не была уже вторая найденная мной потеря точности при загрузке сохранённых моделей с помощью родных классов pytorch
👍1
Приключения с modded-nanogpt продолжаются.

_cum_lengths = torch.full((max_num_docs,), num_tokens_local)

Переводить переводчиком не очень понятные названия переменных было не самой хорошей идеей. Если вы ещё не поняли прикола, прошу вас - НЕ ПЫТАЙТЕСЬ ЕГО ПОНЯТЬ.


Или не жалуйтесь потом....
😁2
Подписался на материалы митапа, который проводили эти ребята, и это, конечно, очень большой стимул, показывающий на сколько я, пока, отстаю от переднего края, хотя именно мне, работающему в одиночку над довольно масштабными в плане кода проектами это всё, по идее, должно быть наиболее полезно. Сам я пока остановился в своём развитии на том чтобы скопировать кусок кода в окно чата, что лишь частично обхясняется тем, что я работаю, в основном, с пропритарным кодом.
👍1😁1
Forwarded from AI и грабли
Реальные кейсы про ИИ в разработке

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

Инфа о работающих подходах обычно скапливается в головах у энтузиастов, у кого есть время и ресурсы на эксперименты и обмен практиками с другими энтузиастами. В итоге, к зиме 2025го приходим к ситуации, что все уже плюс минус приняли – ИИ может ускорять разработку. Но почти никто не понимает, как это сделать в реальности.

Мы с @the_ai_architect и @max_about_ai решили устроить глобальное переопыление – собираем с сообщества реальные кейсы, а потом обезличенно делимся со всеми, кто оставил осмысленную инфу

- Как конкретно настроили свои инструменты
- Какие подходы успешны, и что, наоборот, не оправдало ожиданий
- В каких задачах самый большой прирост, а что пока лучше делать руками
- ...

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

А если пошерите этот пост в канале на 100+ человек, добавим ссылку на ваш канал в страницу с итогами 🤗

Ссылка на участие
👍2
Обычно бытует представление, что языковые модели, обучающиеся на одной эпохе не переобучаются. Но если задать вопрос - "тоесть они только обощают?" любой, кто хоть сколько-то с ними общался начинает возмущённо размахивать руками и аргументированно возражать. Причём возражают всё включая Суцкивера и ЛеКуна. Получается, что в головах людей живут явно взамоисключающие пункты, и им норм. Интересно, что при этом у людей много занимающихся языковыми сетями начисто отсутствуют мысли о том, как с переобучением бороться. Вплоть до того, что они говорят, вот все данные кончатся, мы их пять-шесть эпох прогоним и все умрём. Максимум у людей включён weight_decay = 0.1 ну и то это с давних времён значение по умолчанию, и никто даже не проверяет оптимально ли это значение.

Так на сколько же на самом деле переобучается зяыковая модель? Собирать train_loss по вполне очевидным причинам бесполезно - модель эти данные впервые видит точно так же как и свой валидейшен. А что будет если мы попробуем посмотреть лосс на пакете данных которые модель уже только что прошла train[-2560:], для простоты назову их train[-1], И на тех данных, с которых когда-то давно начиналось обучение, и которые модель должна была уже изрядно подзабыть train[:2560], обозначим их просто train[0]
Для малюсенькой GPT-2 от Карпаты, обученной на небольшой части опенвеба имеем примерно такое:

val_loss:3.2793
train[-1].loss:3.1503
train[0].loss:3.2809

Не скажу, что это прямо большое откровение, конечно, но наблюдение небезинтересное...
🔥3🤔3
https://vkvideo.ru/video454832249_456267605
Ашманов про ИИ-комапанейщину. Уже смотрели? Интересно мнение аудитории, которая глубоко погружена в тему. Я прикреплю опрос, а если есть желание прокомментировть по пунктам с удовольствием выслушаю и выскажу своё мнение, если будет что сказать.
А тем временем наш паровоз вперёд летит, и если вы вдруг по какому-то недоразумению не подписаны на @data_secrets-ы немедленно прекращайте. Это один из двух или парочки каналов, который мне приходится репостить своим друзьям и знакомых чаще чем всё остальное вместе взятое.
🥴2
Forwarded from Data Secrets
Самый крутой скачок GPT-5.2 произошел, пожалуй, на ARC-AGI

На ARC-AGI 1 модель достала 86.2% (GPT-5.1 берет 72.8%, Gemini 3 Pro – 75). Это серьезный рост.

При этом GPT-5.2 Pro с повышенным уровнем ризонинга X-High скорит уже 90.5% при стоимости $11.64/задачу. Всего год назад сотой считалась нерелизнутая o3-High с результатом 88% и $4.5k/задачу. Это означает, что за год эффективность выросла в 390 раз.

На ARC-AGI 2 все еще интереснее. Там скачок произошел с 17.6 до 52.9%! Самый близкий по скору конкурент – Claude Opus 4.5 – выбивает всего 37.6%. Просто напоминаем, что между релизами GPT-5.1 и 5.2 прошел месяц 😐

GPT 5.2 Pro X-High точно скорит еще больше, но организаторы бенчмарка пишут, что пока не смогли достоверно проверить ее результаты из-за API timeouts. Средний уровень человека на ARC-AGI 2 – около 60%. Интересно, побьет ли.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔2
Слушал тут подкаст Семихатова и Сурдина с автором N+1 - Коняевым, и сформулировал одну простую мысль к которой сводится всё то из-за чего у меня подгорало и хотелось прокомментировать. Мысль такая:

"Всё важное и интересное в нейросетях - это то, что выходит за рамки интерполяционной задачи."

P.S. Парадоксальным образом гроккинг может оказаться неинтересным, если окажется просто способом решать интерполяционную задачу на одном слое идеально. Не хотелось бы, с одной стороны, с другой - если понять как - было бы неплохо...
🤔6👍3
modded-nanogpt по дефолту запускается на 8xH100-ой силы. Арендовал себе тоже H100-ого немножко чтобы гонять эксперементы с с нормальной скоростью. Не 8 конечно, но тем не менее.
То чувство когда у твоего компьютера зарплата больше чем у тебя.... :))
😁14🔥1
Уходящий год был годом подготовки прорывам и решительным изменениям, когда в принципе уже ясно, что вот сейчас оно и выстрелит, и изменится и переродится, и не только в нейросетях, и в связи с этим желаю чтобы все ваши наработки выстрелили и пошли в дело, все догадки показали себя полезными, на все хватило здоровья и прибавилось понимания вообще и нейросетей.
👍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 на столько подель корраптит. :((
😢1