gonzo-обзоры ML статей – Telegram
gonzo-обзоры ML статей
24.1K subscribers
2.72K photos
2 videos
3 files
1.35K links
Авторы:
Гриша Сапунов, ранее руководитель разработки Яндекс-Новостей, ныне CTO Intento. Области интересов: AI/ML/DL, биоинформатика.
Лёша Тихонов, ранее аналитик в Яндексе, автор Автопоэта, Нейронной Обороны... Области интересов: discrete domain, NLP, RL.
Download Telegram
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://news.1rj.ru/str/gonzo_ML/3176). Микро-разбор этой статьи внутри другого разбора был у нас тут (https://news.1rj.ru/str/gonzo_ML/186). Также Дэвид стабильно участвует в разных немейнстримовых интересных работах, некоторые из которых мы тут разбирали (https://news.1rj.ru/str/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://news.1rj.ru/str/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 и далее в его же канале).
👍277
Во-вторых, для реализации SVF делается небольшая модификация полученных матриц в виде вектора z размерности r (количество сингулярных чисел), который целевым образом модифицирует отдельные сингулярные числа умножая их на соответствующие компоненты вектора z. То есть финально SVF выглядит как W* = UΣ*V’, где Σ* = Σ ⊗ diag(z). Эти вектора z будут соответствовать отдельным экспертам, специализирующимся на различных задачах.

Задача обучения здесь — найти набор этих z-векторов, по одному на каждую downstream задачу. Каждый z-вектор можно представить как одного эксперта, который задаёт силу каждого конкретного сингулярного компонента, полученного после SVD. Какие-то компоненты ослабляются, какие-то усиливаются.

Набор SVF векторов z находится через RL старым-добрым алгоритмом REINFORCE с KL-регуляризацией на отклонение от оригинального поведения модели. Вроде как регуляризационные способности SVF помогают RL не попадать в типичные failure modes, не уходить к обучению на next-token prediction и обучаться на небольшом числе примеров.

У такого подхода есть несколько преимуществ:

1. Файнтюнинг упрощается, потому что на каждую задачу достаточно найти только значения вектора z (r чисел), не трогая все остальные веса. Для LoRA требуется (m+n)×r′, где m и n — размерности исходной матрицы весов, а r’ — гиперпараметр (тот самый LoRA rank), который должен быть достаточно большим для выразительности (может доходить и до 256, https://huggingface.co/blog/mlabonne/sft-llama3). SVF требует r = min(m, n). Это может выглядеть как ведущее к меньшей выразительности, но возможность влиять на матрицу весов полного ранга даёт больше информации, чем низкоранговые методы.

2. Композиционность улучшается. Веса исходной матрицы разбираются на независимые сингулярные компоненты, в итоге обучаемый вектор z также становится более компонуемым и интерпретируемым. У LoRA таких свойств нет (хотя, пожалуй, комбинируемость LoRA адаптеров вроде какая-то есть)

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

После обучения на набор заранее заданных задач мы в test-time можем производить адаптацию на конкретный пример и относящуюся к нему задачу. Адаптация заключается в следующем. Это двухпроходный алгоритм, который комбинирует K экспертов — обученных через SVF векторов z. В первом проходе на заданной задаче или промпте Трансформер^2 смотрит на своё поведение при инференсе и определяет оптимизированный к текущим условиям вектор z’ (выбирает лучшего эксперта). Этот z’ используется во втором проходе инференса для того, чтобы получить итоговый ответ с помощью новых адаптированных весов.

В работе предлагают три разных подхода к определению z’.

1) Prompt engineering. Создаётся специальный адаптационный промпт, который используется LLM для категоризации входного промпта. В зависимости от ответа извлекается одна из категорий, использовавшихся для предобучения экспертов в SVF, и соответствующий z’ для неё. Если никто не подходит, есть generic категория “others”, в случае которой используются базовые веса без модификаций.

2) Classification expert. Используется специальная система для классификации. В лучших традициях разработки компиляторов языков, когда в какой-то момент компилятор языка пишется на этом же языке, для решения этой задачи базовая LLM файнтюнится через SVF. На датасете с K задачами обучается специальный классификационный эксперт z^c, который загружается в первый проход инференса и тем самым делает более качественное определение, кого нужно использовать на втором проходе.
👍97🔥2
3) Few-shot adaptation. Вычисляется новый z′ как взвешенная комбинация имеющихся выученных SVF векторов. Коэффициенты α_k при этих векторах находятся через Cross-entropy method (CEM) на наборе few-shot prompts. Это надо сделать лишь единожды для каждой целевой задачи, при этом в отличие от классического few-shot в промптинге здесь нет нужды увеличивать размер рабочего промпта, добавляя в него примеры.

Какие результаты у квадратного трансформера?

Взяли три LLM из пары разных семейств: Llama3 8B Instruct, Mistral 7B Instruct v0.3 и Llama3 70B Instruct.

Для каждой модели находят три набора z-векторов под задачи GSM8K, MBPP-pro и ARC-Easy соответственно. То есть математика, program synthesis и reasoning. Для Llama3 8B также обучили вектор для TextVQA. На соответствующих тест-сетах SVF даёт стабильное улучшение, часто превосходящее LoRA с рангом 16 (эти обучались на next token prediction, через RL тоже пробовали, но с RL LoRA хуже SVF). Авторы считают, что тут дело в RL, его training objective не требует идеального решения для каждого примера, что не так в случае лоры. Также SVF более параметр-эффективно, количество обучаемых параметров менее 10% от LoRA.

После обучения SVF и получения z-векторов можно оценить качество адаптации к новым задачам. Оценивают на задачах MATH, Humaneval, ARC-Challenge, OKVQA. Результаты LoRA здесь примерно никакие (всё хуже), а Transformer^2 даёт улучшение почти везде. Метод адаптации Few-shot лучший. Интересно, что даже на VLM задаче с векторами обученными на совсем других текстовых задачах Transformer^2 демонстрирует заметное улучшение. Видимо, реально полезная параметризация.

Интересна визуализация весов отдельных векторов α_k для третьего варианта адаптации. Например, при решении задач MATH там нет доминирования весов от GSM8K, для Llama3 8B почти половину вклада дают веса от ARC. На других задачах и у других моделей тоже нетривиальные миксы. А для первого и второго варианта адаптации, основанных на классификации, confusion matrices показывают, что примеры хорошо матчатся с экспертами, обученными на соответствующих доменах.

Второй проход по времени инференса обычно существенно дольше первого, и вклад первого прохода относительно второго в зависимости от задачи (в реальности от количества генерируемых токенов) составляет от 13% до 47%.

Абляции показали, что применение SVF и к вниманию, и к MLP даёт буст — к MLP больше, но там и весов больше, а лучше сразу к обоим. RL objective даёт сильно лучший результат, чем next token. А LoRA с RL хуже, чем SVF с next token.

Интересный эксперимент с переносом векторов-экспертов между разными LLM. Перенос векторов от Ламы на Мистраль улучшает результат на двух задачах из трёх. На ARC-Challenge это даже лучше собственных результатов Мистраля. Это потенциально интересный результат, надо копать дальше.

В общем, интересная работа. Мне сама параметризация нравится, она красивая и понятная. Может даже к интерпретируемости что-то добавит. Ну и то, что оно лучше Лоры работает, это тоже, конечно, прекрасно. Хотя пока у Лоры остаётся преимущество в виде скорости, там нет двух проходов. Но, может быть, в эпоху test-time scaling (https://news.1rj.ru/str/gonzo_ML/3175) это уже не так важно.

Ну и традиционно напоминаю, что у канала есть Патреон (https://patreon.com/GonzoML) и Boosty (https://boosty.to/gonzoml). Спасибо за то, что вы с нами :)
🔥21👍126❤‍🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
14👍1
Извинити, но это прекрасно.

"Central artificial intelligence agency"

https://www.economist.com/business/2025/01/22/a-500bn-investment-plan-says-a-lot-about-trumps-ai-priorities
😁49🤮9🔥2🤡1
DeepSeek moment

Нельзя ничего не сказать про DeepSeek. Эти ребята просто супер молодцы — так задизраптить всё поле мало кому удавалось. Ну OpenAI со своим ChatGPT, потом Цукерберг с Llama в опенсорсе, теперь вот DeepSeek.

DeepSeek сумели обучить модели хорошего качества по ценам на порядок ниже конкурентов.

Во-первых, DeepSeek-V3 (https://github.com/deepseek-ai/DeepSeek-V3), включает две модели DeepSeek-V3-Base и чат-версию DeepSeek-V3. Обе являются MoE с 671B параметров всего и 37B активных. Не для простых смертных модели, надо иметь неслабую multi-GPU конфигурацию что-то типа 8 H200 (но есть сжатые варианты от разных товарищей). По качеству где-то уровня GPT-4o 0513 и Claude-3.5-Sonnet-1022 и выше LLaMA-3.1 405B.

Есть разные оценки, сколько стоило обучение Ламы 3.1 405B. В самой работе (https://arxiv.org/abs/2407.21783) сказано, что использовалось до 16,384 H100 и упоминается предобучение в 54 дня (но там и другие этапы обучения были). Одна из не самых высоких оценок говорит, что стоить должно было порядка $60M (https://x.com/_LouiePeters/status/1816443587053092917?lang=en).

Про DeepSeek-V3 известно чуть конкретнее. Они использовали H800, урезанный для Китая экспортный вариант H100, и они сами пишут, что для полного обучения потребовалось 2.788M H800 GPU-часов, что соответствует $5.576M при цене аренды H800 в $2 за час.

Ну типа на десятичный порядок меньше. При сравнении с OpenAI наверное разница ещё больше.

Это как с Индией, которая отправляла аппараты на Марс и Луну дешевле, чем в Голливуде фильмы про космос делаются: марсианский Mangalyaan за $74M и лунный Chandrayaan-3 за $75M против фильма “Гравитация” за $100M (https://www.business-standard.com/india-news/what-makes-india-s-space-missions-cost-less-than-hollywood-sci-fi-movies-124110400430_1.html).

Во-вторых, DeepSeek-R1 (https://github.com/deepseek-ai/DeepSeek-R1), модели с ризонингом по типу OpenAI o1 или Google Gemini Thinking. В семействе две модели: DeepSeek-R1-Zero и DeepSeek-R1, обе построены на базе DeepSeek-V3-Base и такого же большого размера.

DeepSeek-R1-Zero (по аналогии с AlphaZero) обучена чистым RL (Group Relative Policy Optimization, GRPO — вариант PPO из другой их статьи, https://arxiv.org/abs/2402.03300), без SFT. Я думаю это очень значимый результат, как в Го оказалось, что можно без человеческих партий, так и здесь постепенно оказывается. Из интересного, во время обучения у модели случился “aha moment”, когда в цепочке рассуждений модель выдала “Wait, wait. Wait. That’s an aha moment I can flag here.” и пересмотрела изначальный подход к решению задачи.

Zero хороша, но иногда уходит в повторы, смешивает языки, не очень читабельна. DeepSeek-R1 перед RL обучена на небольшом (тысячи) количестве CoT примеров, они это называют Cold start data, чтобы дать более качественную начальную точку для RL. Далее тот же Reasoning-oriented RL, что и у Zero. Далее SFT на ризонинг (600k) и не-ризонинг (200k) данных. И потом ещё дополнительный этап RL. Эта модель сравнима с OpenAI-o1-1217.

Из того, что не привело к успеху: Process Reward Model (PRM) и Monte Carlo Tree Search (MCTS).

Также выпущена куча dense дистиллятов (1.5B, 7B, 8B, 14B, 32B, 70B) из R1 на базе Qwen и Llama. Эти сопоставимы с OpenAI-o1-mini.

HuggingFace взялся за Open R1 (https://github.com/huggingface/open-r1), полностью открытое воспроизведение DeepSeek R1. В кои-то веки не Китайские исследователи догоняют западных, а наоборот!

Есть и другая репликация, из Гонконга, от NLP Group @ HKUST (https://github.com/hkust-nlp/simpleRL-reason).

Но и этого DeepSeek показалось мало, и сегодня они выпустили ещё и Janus-Pro, развитие предыдущего Janus (https://github.com/deepseek-ai/Janus) с улучшенным обучением, данными и большим размером. Это мультимодальная моделька на 1B и 7B, умеет принимать на вход текст и картинки и на выходе тоже выдавать текст и картинки. На генерации вроде как бьют Dalle-3, SDXL, SD3-Medium.
10456👍31🔥19
И ещё у них, кстати, есть DeepSeek-VL2 (https://github.com/deepseek-ai/DeepSeek-VL2), llava-style VLM с MoE. На вход текст и картинки, выход текст. Семейство из трёх моделей: DeepSeek-VL2-Tiny, DeepSeek-VL2-Small, DeepSeek-VL2 с 1.0B, 2.8B и 4.5B активными параметрами соответственно.

Следующим, наверное, должна быть генерация видео 🙂

На всё открытая MIT лицензия.


Ажиотаж сегодня как с Pokemon Go в своё время. Котировки NVIDIA и ко быстро просели, хотя не думаю, что это радикально что-то меняет, ещё отыграют. Не знаю, что творится внутри команд OpenAI, Gemini/Gemma, Llama, но наверное не самое простое время. Economist разродился статьями про китайский ИИ (https://www.economist.com/leaders/2025/01/23/chinese-ai-is-catching-up-posing-a-dilemma-for-donald-trump и https://www.economist.com/briefing/2025/01/23/chinas-ai-industry-has-almost-caught-up-with-americas), и конечно интересно, как это всё отразится на Stargate.

В весёлое время живём.
40🔥17👍14🌚1