Transformer^2: Self-adaptive LLMs
Qi Sun, Edoardo Cetin, Yujin Tang
Статья: https://arxiv.org/abs/2501.06252
Блог: https://sakana.ai/transformer-squared/
Код: https://github.com/SakanaAI/self-adaptive-llms
“Трансформер в квадрате” (Transformer-squared) — новая работа от Sakana.ai, компании, которую я уважаю, особенно их фаундера David Ha. В частности он, вместе со Шмидхубером, написал одну из статей (https://arxiv.org/abs/1803.10122), стартовавших новую волну работ по World Models (https://t.me/gonzo_ML/3176). Микро-разбор этой статьи внутри другого разбора был у нас тут (https://t.me/gonzo_ML/186). Также Дэвид стабильно участвует в разных немейнстримовых интересных работах, некоторые из которых мы тут разбирали (https://t.me/gonzo_ML/233). Они же выпустили недавно нашумевшего AI Scientist (https://sakana.ai/ai-scientist/). Они же занимаются nature-inspired алгоритмами и artificial life. Если вы в Японии или только хотите туда, рассмотрите вариант с этой компанией-лабой в Токио, они подняли раунд A и набирают людей.
С момента появления статьи я сколь-нибудь внятных разборов так ни у кого и не увидел, придётся сделать.
Transformer^2 — это интересный способ адаптации LLM, альтернатива файнтюнингу и LoRA в частности. В двух словах идея в том, что мы все матрицы обученных весов LLM раскладываем через SVD, а затем файнтюн/адаптация будет заключаться в масштабировании сингулярных чисел этого разложения — какие-то сингулярные компоненты усиливаем, другие гасим. И будут разные "эксперты" с разным миксом имеющихся в модели сингулярных компонентов. Выучить коэффициенты при сингулярных числах — это сильно меньше чем полный файнтюн и даже чем LoRA. И более того, эти коэффициенты можно находить в test-time, когда в первом проходе forward pass мы анализируем задачу и выясняем тему (как нужно адаптировать эти коэффициенты = какие эксперты нужны для решения данной задачи), а во втором проходе forward pass просто применяем нужные коэффициенты (активируем нужных экспертов) и решаем задачу.
Далее к деталям.
Традиционный подход к адаптации предобученной модели — fine-tuning, он же post-training. Идейно он простой — собрали данные и дообучили — но на практике ресурсоёмкий, требует достаточно времени и компьюта. Самоадаптирующиеся (self-adaptive) модели более гибки. Вместо того чтобы сразу обучить LLM на все задачи за один шаг, можно независимо дорабатывать модули с экспертами и добавлять к модели по необходимости. В целом направление MoE (Mixture-of-Experts, про него мы писали много, можно поискать в канале, например, https://t.me/gonzo_ML/472) ныне очень популярно, одно из свежих решений — Self-MoE (https://arxiv.org/abs/2406.12034), но текущие MoE всё же в основном задаются до обучения и обучаются классически.
Transformer-squared заходит с чуть иной стороны. Обычный файнтюнинг занимается модификацией матриц весов, полученных в процессе обучения и содержащих достаточно богатую информацию, чтобы решать различные задачи. Вместо того чтобы пытаться добавлять новые фичи файнтюнинг должен концентрироваться на выявлении этих латентных способностей и делании их более выраженными. То есть надо найти, какие эксперты уже есть в модели (даже без MoE), и научиться применять их к релевантным задачам, модифицируя веса прямо в test-time.
Transformer^2 строится на основе Singular Value Fine-tuning (SVF), который обеспечивает эффективную параметризацию для файнтюнинга и даёт композициональность для адаптации. Во время обучения делается SVF, во время инференса само-адаптация (self-adaptation).
SVF делает это следующим образом.
Во-первых, как я понял из кода, сначала каждая матрица весов W предобученной модели раскладывается через SVD в W = UΣV’. Тут никакой экзотики, чистый
Qi Sun, Edoardo Cetin, Yujin Tang
Статья: https://arxiv.org/abs/2501.06252
Блог: https://sakana.ai/transformer-squared/
Код: https://github.com/SakanaAI/self-adaptive-llms
“Трансформер в квадрате” (Transformer-squared) — новая работа от Sakana.ai, компании, которую я уважаю, особенно их фаундера David Ha. В частности он, вместе со Шмидхубером, написал одну из статей (https://arxiv.org/abs/1803.10122), стартовавших новую волну работ по World Models (https://t.me/gonzo_ML/3176). Микро-разбор этой статьи внутри другого разбора был у нас тут (https://t.me/gonzo_ML/186). Также Дэвид стабильно участвует в разных немейнстримовых интересных работах, некоторые из которых мы тут разбирали (https://t.me/gonzo_ML/233). Они же выпустили недавно нашумевшего AI Scientist (https://sakana.ai/ai-scientist/). Они же занимаются nature-inspired алгоритмами и artificial life. Если вы в Японии или только хотите туда, рассмотрите вариант с этой компанией-лабой в Токио, они подняли раунд A и набирают людей.
С момента появления статьи я сколь-нибудь внятных разборов так ни у кого и не увидел, придётся сделать.
Transformer^2 — это интересный способ адаптации LLM, альтернатива файнтюнингу и LoRA в частности. В двух словах идея в том, что мы все матрицы обученных весов LLM раскладываем через SVD, а затем файнтюн/адаптация будет заключаться в масштабировании сингулярных чисел этого разложения — какие-то сингулярные компоненты усиливаем, другие гасим. И будут разные "эксперты" с разным миксом имеющихся в модели сингулярных компонентов. Выучить коэффициенты при сингулярных числах — это сильно меньше чем полный файнтюн и даже чем LoRA. И более того, эти коэффициенты можно находить в test-time, когда в первом проходе forward pass мы анализируем задачу и выясняем тему (как нужно адаптировать эти коэффициенты = какие эксперты нужны для решения данной задачи), а во втором проходе forward pass просто применяем нужные коэффициенты (активируем нужных экспертов) и решаем задачу.
Далее к деталям.
Традиционный подход к адаптации предобученной модели — fine-tuning, он же post-training. Идейно он простой — собрали данные и дообучили — но на практике ресурсоёмкий, требует достаточно времени и компьюта. Самоадаптирующиеся (self-adaptive) модели более гибки. Вместо того чтобы сразу обучить LLM на все задачи за один шаг, можно независимо дорабатывать модули с экспертами и добавлять к модели по необходимости. В целом направление MoE (Mixture-of-Experts, про него мы писали много, можно поискать в канале, например, https://t.me/gonzo_ML/472) ныне очень популярно, одно из свежих решений — Self-MoE (https://arxiv.org/abs/2406.12034), но текущие MoE всё же в основном задаются до обучения и обучаются классически.
Transformer-squared заходит с чуть иной стороны. Обычный файнтюнинг занимается модификацией матриц весов, полученных в процессе обучения и содержащих достаточно богатую информацию, чтобы решать различные задачи. Вместо того чтобы пытаться добавлять новые фичи файнтюнинг должен концентрироваться на выявлении этих латентных способностей и делании их более выраженными. То есть надо найти, какие эксперты уже есть в модели (даже без MoE), и научиться применять их к релевантным задачам, модифицируя веса прямо в test-time.
Transformer^2 строится на основе Singular Value Fine-tuning (SVF), который обеспечивает эффективную параметризацию для файнтюнинга и даёт композициональность для адаптации. Во время обучения делается SVF, во время инференса само-адаптация (self-adaptation).
SVF делает это следующим образом.
Во-первых, как я понял из кода, сначала каждая матрица весов W предобученной модели раскладывается через SVD в W = UΣV’. Тут никакой экзотики, чистый
U, S, V = torch.svd(v)
. Кто плохо знаком с SVD (Singular Value Decomposition), разберитесь, это крайне полезный алгоритм линейной алгебры (хороший текстовый ресурс: https://gregorygundersen.com/blog/2018/12/10/svd/, хорошее видео интро https://www.youtube.com/watch?v=gXbThCXjZFM и далее в его же канале).