QUANT_PRUNE_DISTILL Telegram 178
RoSA: Accurate Parameter-Efficient Fine-Tuning via Robust Adaptation
[Статья] [Код]

Введение

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

Однако, данное утверждение - приближенное, и поэтому LoRA, по всей природе неспособная учить высокоранговые добавки, не всегда сравнивается по качеству с дообучением всей модели.

Другая опция малопараметрической добавки к матрице весов - разреженные матрицы.
А совместив низкоранговую с разреженной добавкой получаем своего рода Robust PCA - метод принциапиальных компоненты с шумом, который используется много где (рекомендую видео со Стивом Брантоном).

Основная техническая сложность использования разреженных матриц - эффективная реализация на GPU. Благо при сильном прореживании неплохо работают ядра из специальных библиотек, в частности, sputnik.

Метод

Как можно догадаться, суть работы в том что совместили низкоранговый и low-rank adapter и дообучили на downstream задачах. Разреженную маску получают на основе самых больших элементов диагонали матрицы Фишера. Авторы отмечают, что отдельно диагональ для sparse адаптера работает не очень, но хорошо в связке с низкоранговым адаптером.

Авторы анализируют точность приближения суммой низкорангового и sparse приближения на одном слое, и оказывается, что минимум ошибки достигается при сопоставимом вкладе от low-rank и sparse компоненты. Чем больше доля параметров от исходной - тем эффективнее перекладывать в sparse (который уже не такой sparse).

Эксперименты

Метод валидируют на Llama-2-7b и датасетах Viggo, GSM-8k (математика без подвоха 🤡), SQL. При фиксированном бюджете некоторая смесь, обычно с примерно равной долей sparse и low-rank компоненты, дает лучшее качество. По отдельности low-rank и sparse не так хороши. Больший адаптер работает обычно лучше и самой большой (с суммарным числом обучаемых параметров 160M) почти сравнивается по качеству с полным файнтьюном. Все эксперименты влезают на одну RTX3090 (24Gb памяти).

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

Вывод

Поиск эффективных и выразительных адаптеров - архиважная задача, ибо пользователи без high-end GPU только так и могут обучать современные LLMки на целевую подзадачу. LoRA и ортогональные адаптеры OFT показывают себя неплохо в конкретных приложениях, но ограничены в выразительности по природе своей и оптимальный адаптер, по всей видимости, представляет собой некоторую смесь низкопараметрических матриц. Ее правда, надо еще сначала найти 😅️
👍4🔥1



tgoop.com/quant_prune_distill/178
Create:
Last Update:

RoSA: Accurate Parameter-Efficient Fine-Tuning via Robust Adaptation
[Статья] [Код]

Введение

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

Однако, данное утверждение - приближенное, и поэтому LoRA, по всей природе неспособная учить высокоранговые добавки, не всегда сравнивается по качеству с дообучением всей модели.

Другая опция малопараметрической добавки к матрице весов - разреженные матрицы.
А совместив низкоранговую с разреженной добавкой получаем своего рода Robust PCA - метод принциапиальных компоненты с шумом, который используется много где (рекомендую видео со Стивом Брантоном).

Основная техническая сложность использования разреженных матриц - эффективная реализация на GPU. Благо при сильном прореживании неплохо работают ядра из специальных библиотек, в частности, sputnik.

Метод

Как можно догадаться, суть работы в том что совместили низкоранговый и low-rank adapter и дообучили на downstream задачах. Разреженную маску получают на основе самых больших элементов диагонали матрицы Фишера. Авторы отмечают, что отдельно диагональ для sparse адаптера работает не очень, но хорошо в связке с низкоранговым адаптером.

Авторы анализируют точность приближения суммой низкорангового и sparse приближения на одном слое, и оказывается, что минимум ошибки достигается при сопоставимом вкладе от low-rank и sparse компоненты. Чем больше доля параметров от исходной - тем эффективнее перекладывать в sparse (который уже не такой sparse).

Эксперименты

Метод валидируют на Llama-2-7b и датасетах Viggo, GSM-8k (математика без подвоха 🤡), SQL. При фиксированном бюджете некоторая смесь, обычно с примерно равной долей sparse и low-rank компоненты, дает лучшее качество. По отдельности low-rank и sparse не так хороши. Больший адаптер работает обычно лучше и самой большой (с суммарным числом обучаемых параметров 160M) почти сравнивается по качеству с полным файнтьюном. Все эксперименты влезают на одну RTX3090 (24Gb памяти).

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

Вывод

Поиск эффективных и выразительных адаптеров - архиважная задача, ибо пользователи без high-end GPU только так и могут обучать современные LLMки на целевую подзадачу. LoRA и ортогональные адаптеры OFT показывают себя неплохо в конкретных приложениях, но ограничены в выразительности по природе своей и оптимальный адаптер, по всей видимости, представляет собой некоторую смесь низкопараметрических матриц. Ее правда, надо еще сначала найти 😅️

BY КПД


Share with your friend now:
tgoop.com/quant_prune_distill/178

View MORE
Open in Telegram


Telegram News

Date: |

A few years ago, you had to use a special bot to run a poll on Telegram. Now you can easily do that yourself in two clicks. Hit the Menu icon and select “Create Poll.” Write your question and add up to 10 options. Running polls is a powerful strategy for getting feedback from your audience. If you’re considering the possibility of modifying your channel in any way, be sure to ask your subscribers’ opinions first. “[The defendant] could not shift his criminal liability,” Hui said. Today, we will address Telegram channels and how to use them for maximum benefit. How to create a business channel on Telegram? (Tutorial) Telegram users themselves will be able to flag and report potentially false content.
from us


Telegram КПД
FROM American