tgoop.com/knowledge_accumulator/324
Last Update:
Я отупел от прочтения Hierarchical Reasoning Model [2025]
На бумаге идея следующая - делаем такую модель, которая состоит из 2 компонент - "медленной" и "быстрой". Медленная будет применяться реже и отвечать за более "глобальное" планирование, а вот быстрая будет дорабатывать детали. Как обычно, приводится неуместная аналогия с человеческим мозгом, который как бы умеет оперировать на разных частотах одновременно. Работает примерно так:
Есть 2 скрытых состояния, который обновляются двумя разными трансформерами. То, что авторы называют forward pass, состоит из N * T шагов. На каждом из них "быстрая сеть" берёт быстрое состояние, медленное состояние, эмбеддинг входа, и выдаёт обновлённое быстрое состояние. Раз в T шагов просыпается медленная сеть, берёт быстрое и медленное состояние, и выдаёт новое медленное состояние. Спустя N * T шагов применяется модель, которая превращает медленное состояние в выходное предсказание.
Авторы говорят - пробрасывать градиенты сквозь всю эту схему - скукотища и занимает кучу памяти. Решение нашли интересное - забить. Градиенты текут только во время последнего шага, для которого все предыдущие состояния считаются константой.
На вопрос "Схуяли?" авторы отвечают "Consider an idealized HRM behavior", приводят пачку невыполняющихся в данной ситуации формул и вуаля - 1-step gradient approximation готов. Unbiased, мамой клянусь.
На самом деле, то, что авторы называют forward pass, это в реальности только 1 шаг применения, и настоящий forward pass это несколько вот этих циклов по N*T шагов, вплоть до 16. Там ещё есть обучаемый на основе Q-learning модуль, который может сказать моделям "Астанавитесь" и тем самым сэкономить ресурсы, если модель нашла решение быстрее.
Вот этот самый 1-step approximation применяется на каждом шаге внешнего цикла, то есть получается, градиенты сквозь время всё-таки пробрасываются, но делается это раз в N*T шагов. По мнению авторов, это уже не так скучно.
Схема вроде работает и показывает неплохой результат, несмотря на подозрительную схему аппроксимации градиентов. Но пока вам рассказывали про сложную схему, фокусник утаил главную деталь. Знаете, какое значение N и T используется во всех экспериментах? Знаете, во сколько раз так называемая быстрая модель применяется чаще, чем медленная? Знаете, сколько памяти экономит one-step gradient approximation?
Ответ убил:
Вся эта мишура с "иерархичностью" не имеет большого смысла. Один шаг применения HRM - это суммарно 6 вызовов трансформера. Там в коде есть for-loop размером в 4 строки, который суммарно вызывает выполняет 4 вызова модели. Посмотрите на картинку поста - там есть многоточия между применениями L Module, которых в реальности нет! На иллюстрации буквально весь граф.
Думаете, в статье есть Ablation о том, как разные значения N и T влияют на результат? Нет, интересно почему? Может быть, от очень честной one-step аппроксимации у модели разболелась голова? Вместо этого авторы оформили куда более интересный подгон - анализ того, как мозг мыши можно представить в виде HRM.
Авторы ARC-бенчмарка, на котором был зарепорчен основной результат, провели анализ модели, и ключевые факты следующие:
- Если вместо HRM применить обычный трансформер такое же количество раз, результат получается почти такой же.
- Буст в качестве достигается засчёт того, что модель применяют много раз. Скор между 1 применением и 16 отличается примерно в 2 раза.
Очередная почти ничем не отличающаяся от бейзлайна поделка от великих учёных, которая не имеет никакого практического смысла, зато в сотый раз похоронившая трансформеры, согласно экспертам в телеграм-канале и в твиттере (в момент выхода). Вкуснота.
@knowledge_accumulator
BY Knowledge Accumulator

Share with your friend now:
tgoop.com/knowledge_accumulator/324