gonzo-обзоры ML статей – Telegram
gonzo-обзоры ML статей
24.1K subscribers
2.72K photos
2 videos
3 files
1.34K links
Авторы:
Гриша Сапунов, ранее руководитель разработки Яндекс-Новостей, ныне CTO Intento. Области интересов: AI/ML/DL, биоинформатика.
Лёша Тихонов, ранее аналитик в Яндексе, автор Автопоэта, Нейронной Обороны... Области интересов: discrete domain, NLP, RL.
Download Telegram
🔥3👏1🤨1
This media is not supported in your browser
VIEW IN TELEGRAM
20
For Distillation, Tokens Are Not All You Need
Mrigank Raman, Pranav Mani, Davis Liang, Zachary C. Lipton
Статья: https://openreview.net/pdf?id=2fc5GOPYip

Новости дистилляции. Статья с воркшопа Instruction Tuning and Instruction Following на NeurIPS 2023.

TL;DR Авторы предложили метод дистилляции LLM под названием SLIM, использующий значения топ 5% логитов для дистилляции на каждом шаге декодирования + динамическое взвешивание KL/CE лоссов. Результат лучше классической дистилляции, SFT и MiniLLM. Метод скейлится до учителей размером ~70B.

Если поглубже, то современные LLM доросли до огромных размеров и часто используются для аннотирования и генерации инструкций для файнтюнинга малых моделей. Классика файнтюнинга при этом -- supervised fine-tuning (SFT), дообучение на новых (сгенерированных) текстах как на hard labels. Мы знаем, что этот метод несёт сильно меньше информации о распределении, чем мог бы (https://news.1rj.ru/str/gonzo_ML/1911).

Дистилляция уже используется для LLM (и многие маленькие LLM получаются из больших, та же Gemini вроде как) и с ней есть сложности. Например, маленькая модель может быть недостаточно выразительной, чтобы покрыть все моды распределения учителя.

Недавний метод MiniLLM (https://arxiv.org/abs/2306.08543) заменяет forward Kullback-Leibler divergence (KLD) на reverse KLD, чтобы предотвратить переоценку студентом низковероятностных регионов распределения учителя. Там для обучения использовался RL, что добавляло сложности. Текущая работа всё упрощает и улучшает, подход назвали SLIM (Sparse Logit Infused Modeling).

Идея проста. Давайте по нашему датасету для обучения через модель-учителя создадим датасет логитов (выходы нейронов без применения функции активации). Для каждого токена в последовательности получаем соответственно V (размер словаря) значений, это будут soft targets. Проблема с таким подходом, что это требует дофига места. Для уменьшения требований предлагается взять только 5% максимальных логитов для каждого токена, остальные считать нулями, так получаются разреженные логиты.

Дальше запускаем процедуру дистилляции (для тех, кто забыл как это работает, можно почитать тут https://news.1rj.ru/str/gonzo_ML/118), где в качестве целей берутся soft targets и лосс, являющийся взвешенной суммой обычного кросс-энтропийного лосса (CE) и традиционного KL лосса. Вес KD лоссу даётся зависящий от соотношения логита учителя и студента, таким образом он получается адаптивным и у KL компоненты больше вклад, когда у учителя больше уверенность в предсказании, чем у студента.

Подход проверили на задачах следования инструкциям. Оценивали по Rouge-L и через фидбек от GPT-4. Сравнивались с SFT на hard labels и MiniLLM, для обучения использовали 7B модели LLaMA, LLaMA 2, MPT, учитель был 13-30B. SLIM даёт результат лучше бейзлайнов. SFT вообще хуже всех.

Затем проверили на downstream задачах: ARC, Hellaswag, MMLU, TruthfulQA. Здесь сравнивались с SFT на LLaMA 2 70B в качестве учителя и Llama2-7B в качестве студента. Тоже лучше.

Также проверили генерацию данных для предобучения. Взяли Pythia-6.9B и сгенерили ей датасет текстов + 5% логитов. Затем обучили случайно инициализированную Pythia-160M на подвыборках датасета разного размера. По графику перплексии показали, что SLIM более sample efficient, чем SFT и обычная дистилляция. Я тут не до конца понимаю, что именно они всё-таки под обычной дистилляцией подразумевают, более классический KL лосс чтоли и без топ 5%?

Anyway, просто и эффективно. Метод вроде не сильно отличается от классической дистилляции, не назвал бы его радикально новым, по мне так скорее итеративное улучшение. Интересно, как сами OpenAI, Гугл и остальные внутри себя модели дистиллируют. Есть ли большая разница.
👍2010
Проблема, что этот метод сложно применять с blackbox моделями типа OpenAI, но с новыми параметрами про logprobs и top_logprobs (https://platform.openai.com/docs/api-reference/chat/create#chat-create-logprobs) как-то можно к этому приблизиться. Правда лицензия (https://openai.com/policies/terms-of-use) вроде как это запрещает (“Use Output to develop models that compete with OpenAI”), но тут я не очень понимаю, как на сгенерённых GPT-4 датасетах обучают другие модели, там почему можно?
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
🔥6😁4🤣3👍1
An In-depth Look at Gemini's Language Abilities
Статья: https://arxiv.org/abs/2312.11444
Код: https://github.com/neulab/gemini-benchmark

Нанообзор.

CMU и некий BerriAI опубликовали своё сравнение Gemini Pro с GPT-3.5, новой GPT-4 Turbo и Mixtral. В оригинальной статье Гугла как раз самых новых интересных моделей типа GPT-4 Turbo не было. Ещё конечно было бы любопытно с Claude 2.1 сравнить.

В целом от Pro особых ожиданий не было, она и по родному сравнению была примерно сравнима с GPT-3.5 (в текущем сравнении она оказалась похуже). Самая интересная модель Ultra, но она пока недоступна. Интересно, конечно, будет, если OpenAI успеет GPT-4.5 до конца года выкатить.

Ниже одна итоговая картинка со сравнением. За деталями самих сравнений велкам в статью.
5👍3
PathFinder: Guided Search over Multi-Step Reasoning Paths
Olga Golovneva, Sean O'Brien, Ramakanth Pasunuru, Tianlu Wang, Luke Zettlemoyer, Maryam Fazel-Zarandi, Asli Celikyilmaz
Статья: https://arxiv.org/abs/2312.05180

Активно развивается тема многоходовых генераций через LLM. Здесь уже были Tree-of-Thought (https://news.1rj.ru/str/gonzo_ML/1885), есть Graph-of-Thoughts (https://arxiv.org/abs/2308.09687) и даже Everything-of-Thought (https://arxiv.org/abs/2311.04254) с применением MCTS. Взбудораживший общественность Q* от OpenAI (https://www.technologyreview.com/2023/11/27/1083886/unpacking-the-hype-around-openais-rumored-new-q-model/) предположительно тоже связан с многоходовым планированием в LLM. Если посмотреть глобально, то оно всё ложится в концепцию LLM Programs (https://news.1rj.ru/str/gonzo_ML/1584).

FAIR предложили свой подход к многоходовой генерации под названием PathFinder, метод декодирования для генерации и уточнения reasoning chains. Подход состоит из двух этапов: генерации кандидатов (candidate generation) и их отборе (candidate selection). Для генерации используется метод на деревьях, для отбора специальные функции близости внутри пула кандидатов.

На этапе генерации ветвление происходит на уровне шагов рассуждения, не генерации отдельных токенов. То есть каждый узел дерева -- это шаг рассуждения. На ветвление влияют параметры сэмплинга (типа top-k, top-p, температуры -- для неё реализован отжиг, уменьшение с коэффициентом). Делается ветвление из каждого неудалённого (non-pruned) листа с заданным коэффициентом ветвления и продолжается пока не достигли точки останова либо не превысили заданную максимальную глубину. Ветви удаляются на основе скора (нормализованная на длину сумма logprobs токенов).

На генерацию есть ограничения. Так, модель перегенерирует шаг, если сработала одна из двух проверок: 1) шаг по косинусной близости похож на один из предыдущих; 2) шаг противоречит предыдущему контексту (за это отвечает специальная entailment model, классифицирующая шаг по трём классам: entailment, neutral, contradiction). Ветка дерева обрезается, если за две попытки не удалось сгенерить валидный шаг.

Есть также размер буфера b, ограничивающий количество гипотез, хранимых для каждого вопроса. Финальная гипотеза выбирается из пула так, чтобы она максимизировала сумму функций близости (работал вариант с количеством общих n-грамм) со всеми другими кандидатами в пуле, это интуитивно похоже на голосование или self-consistency (https://news.1rj.ru/str/gonzo_ML/1885).

Для тестов используется маленькая LLAMA-7B, проверяют на GSM8K, StrategyQA, CSQA, то есть про арифметический и commonsense reasoning. Для отбора кандидатов пробовали три разных метода: триграммы, и FLAN-T5-XL или text-davinci-003 в качестве verifier model.

Бейзлайны разные: GPT-6.7B, та же LLAMA-7B, MINERVA-8B (ожидаемо рулит на GSM8K) и FLAN-T5-XL 3B (сильно instruction finetuned). В бейзлайнах дефолты в основном на основе greedy decoding + CoT prompts.

Не сказать что PathFinder прямо радикально всех бьёт. На первых двух бенчмарках LLAMA-7B с self consistency выступает прям очень хорошо. Новый подход заметно улучшает только на третьем бенчмарке. Flan силён, но он файнтюнился на части из этих датасетов, так что на цифры смотреть бесполезно.

Отдельно проверили, насколько добавляют качества продвинутые методы оценки (scorers и verifiers через LLM). text-davinci-003 всех бьёт, но до upper bound (с оракулом) ей далеко. В этой части явно есть что улучшать.

Фактор ветвления в сочетании с размером буфера и функцией оценки кандидатов важен. При большом ветвлении функции оценки могут быть сильно подвержены влиянию шума. Для каждого размера буфера свой оптимум. У самого размера буфера тоже есть лимит, после которого качество не улучшается. Также интересно, что для методов на деревьях важно разнообразие, PathFinder начинает перформить лучше end-to-end метода только начиная с 8-кратного ветвления.
👍143
Резюмируя, метод вычислительно более тяжёлый в разы (а с LLM для оценки ответов тем более), в данный момент радикального прорыва относительно других методов не показал, но как proof-of-concept или даже скорее развитие активно прорабатываемой везде темы полезен. Больше разнообразия -- это хорошо. Интересно, насколько другой результат был бы на больших топовых моделях, а не на старой первой маленькой Ламе.
👍3