group-telegram.com/def_model_train/1044
Last Update:
The Surprising Effectiveness of Test-Time Training for Abstract Reasoning
https://ekinakyurek.github.io/papers/ttt.pdf
Все-таки желание ресерчеров обучиться на тесте неискоренимо, и обсуждений про test-time training я вижу сейчас достаточно много. Если раньше, кажется, под этим больше понимали in-context learning и всякий прочий кондишенинг, то теперь выходит целый ряд статей про то, как именно обучаться, используя при этом знания о тестовых данных
Конкретно тут авторы решали бенчмарк ARC – в нем содержатся картинки 30x30 c разными паттернами. Для каждого паттерна есть свой контекст, где основываясь на трансформациях предыдущих примеров, модель должна понять, как нужно изменить текущую тестовую картинку (см. скриншот, на котором это более понятно)
Из вот этого “контекста” авторы и генрировали под каждый пример свой тренировочный датасет. Паттерны из контекста всячески аугментирировали привычными способами, вроде поворота на n градусов, отражения, апскейлинга и так далее. Для каждого тестового примера таким образом создавалось до 250 штук синтетических тренировочных данных. На этом обучалась LoRA, и наконец предсказывался ответ на оригинальное тестовое задание (да, получается, что для 80 задач из ARC авторы натренировали 80 адаптеров)
Качество от этого у них улучшается в 6 раз достигает 61.9% для 8B модели, что на уровне human baseline для ARC. Хотя тут конечно можно обсуждать, насколько адекватно иметь по адаптеру на каждый тестовый пример, и что вообще здесь авторам довольно повезло с самой структурой бенчмарка, где для каждого примера оказывалось относительно легко сгенерить синтетический датасет
Не могу тут не упомянуть статью с более элегантным подходом LESS, про которую я узнала на работе несколько месяцев назад: в ней собираются градиенты с валидационного датасета с каким-нибудь downstream task (например, TruthfulQA) и градиенты с тренировочных данных, и далее мы отбираются примеры, которые больше всего минимизируют лосс на валидации. Это выглядит, на мой взгляд, менее читерски, особенно если мы сразу обговариваем, что нас интересует качество только на одной конкретной задаче
Несмотря на то, что test-time training пока выглядит достаточно костыльно, интерес к этому большой. Например один из авторов o1 Ноам Браун эту статью откомментил так, что в OAI рассматривают обучение o1 как пример test-time training за счет ризонинга, но что это вероятно не единственный и не лучший вариант такой тренировки. Илья Суцкевер в новом интерью также сказал, что scaling up pre-training уже достигло потолка, и нужно скейлить что-то новое. Так что жду дальнейших статей на эту тему