В архитектурах нейросетевых моделей мы привыкли к связи размера модели и кол-ва вычислительных ресурсов на обработку сэмпла. Вроде как, чем больше ресурсов, тем выше порог сложности решаемой задачи, а значит нужно делать как можно большую модель. Но это не совсем так.
Дело в том, что можно многократно переиспользовать параметры модели. Это удалось сделать ещё в AlphaZero, запуская нейросеть для оценки каждого состояния в дереве поиска, гоняя её миллионы раз. Это делается и в разных конструкциях поверх языковых моделей, например, Tree of Thoughts.
Но можно делать и проще, как в обозреваемой работе. Подобная идея не прям уж уникальна и нова, но давайте взглянем:
1) PonderNet - рекуррентная сеть, принимающая входные данные и текущее скрытое состояние
h.2) На каждом шаге она выдаёт
y, h', p:- Предсказание выхода на текущем шаге
- Новое скрытое состояние
- Вероятность того, что мы останавливаемся
Подбрасываем монетку и в зависимости от результата делаем ещё шаг или выдаём
y как финальный ответ3) Ошибка дифференцируема и считается как мат. ожидание ошибок каждого
y с соответствующей вероятностью того, что мы на нём останавливаемся. Также добавляется регуляризация на p и искусственное ограничение максимального количества шагов.PonderNet тестируют на игрушечных задачах, но она показала способность адаптировать своё размышление - после обучения на простых сэмплах определённой задачи её применяли на сложных, и она брала больше времени на "подумать", выдавая в конце правильный ответ. Интересно, что подобную схему с остановкой по желанию можно применять и в мета-архитектурах, тогда бы они могли сами говорить, когда они хотят перейти к тестированию качества. Будем следить.
@knowledge_accumulator