惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
L
LangChain Blog
云风的 BLOG
云风的 BLOG
M
MIT News - Artificial intelligence
A
About on SuperTechFans
J
Java Code Geeks
量子位
博客园 - 三生石上(FineUI控件)
博客园 - Franky
博客园_首页
H
Hackread – Cybersecurity News, Data Breaches, AI and More
IT之家
IT之家
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Apple Machine Learning Research
Apple Machine Learning Research
Engineering at Meta
Engineering at Meta
雷峰网
雷峰网
D
DataBreaches.Net
人人都是产品经理
人人都是产品经理
Martin Fowler
Martin Fowler
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания
Проклятие адаптивности: почему живучесть нейросетей ваш г...
YH7H22 · 2026-05-18 · via Все публикации подряд на Хабре

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

Сверх адаптивность нейросетей это худший кошмар инженера.

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

Позвольте рассказать вам историю моего главного архитектурного фиаско, которое доказало мне, что верить нельзя даже падающему лоссу.

Идеальное преступление: Triton, RoPE и потерянный градиент

Я работал над оптимизацией инференса и обучения для кастомного Трансформера. Все мы знаем, что стандартные реализации слоев в Pytorch могут быть медленными, поэтому я решил написать собственное ядро на triton для RoPE

Я написал forward пас. Он работал молниеносно, тесты на размерности проходили, профилировщик GPU показывал великолепную утилизацию памяти. Затем я написал backward пас для вычисления градиентов.

Запустил обучение. Loss начал падать. Графики выглядели поразительно хорошо. Модель сходилась быстро, тексты генерировались осмысленно.

А потом, спустя время, при дебаге я решил проверить градиентные графы. И у меня похолодела кровь.

Анатомия катастрофы

Из-за глупой ошибки в backward функции triton ядра я забыл пропустить градиент обратно к матрицам проекций Wq и Wk

Давайте осмыслим масштаб трагедии. Матрицы Wq и Wk это суть механизма внимания. Они решают, какое слово должно смотреть на какое. Из-за моего бага они вообще не получали градиентов. На протяжении всего обучения Wq и Wk оставались замороженными в состоянии случайной инициализации!

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

Почему она сошлась? Эффект "Bag of Words" на максималках

Так почему же Loss падал, а модель генерировала адекватный текст? В этом и заключается ужасающая сила нейросетей.

Оптимизатор понял: "Так, позиции слов я больше не вижу. Механизм Внимания выдает мне случайную матрицу связей. Что у меня осталось?" У него остались матрицы Value и могучий FFN

Нейросеть мгновенно перестроилась. Раз она не могла понимать синтаксис и порядок слов (потому что Q и K были сломаны, а RoPE мертв), она решила стать самым продвинутым в мире мешком слов.

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

  • Видит токены "Король", "Мужчина", "Женщина" -> выдает "Королева". Ей было неважно, в каком порядке они стоят.

  • Случайные веса просто работали как фиксированный случайный роутер, а сеть адаптировала свои слои так, чтобы расшифровывать этот случайный шум.

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

Выводы, написанные кровью (и часами на GPU)

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

  2. Нейросеть скроет ваши баги. Если вы сломали skip connection, сеть увеличит веса основного пути. Если вы сломали position embeddings, сеть выучит статистику частотности. Если вы перепутали view и reshape, разрушив структуру тензора, сеть просто выучит новую, исковерканную топологию данных.

  3. Проверяйте градиенты, а не только loss. Если вы пишете кастомные слои (особенно на triton), первый ваш тест это не forward, это проверка того, что .grad не содержит нулей и имеет адекватную норму.

Заключение

Мы любим смеяться над классическими программистами с их тестами и строгой типизацией. Но в мире ML цена бага гораздо выше.

В следующий раз, когда ваша новая гениальная архитектура "поразительно хорошо сойдется" с первой попытки, не спешите открывать шампанское. Возможно, где-то в недрах autograd'а ваша модель прямо сейчас изобретает костыль, чтобы обойти вашу ошибку.

Будьте параноиками. Проверяйте градиенты.