Pull to refresh
5
-2
Solovjov Daniil @YaphetS7

Deep Learning

Send message

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

Level of difficultyMedium
Reading time8 min
Views3.3K

paper link

hf implementation

Для ответа на вопрос в заголовке - погрузимся в статью.

Саммари статьи:

Обычно LLM-ку предобучают на огромном корпусе, потом адаптируют на down-stream tasks. Если LLM-ка была большая, то мы не всегда можем в full fine-tuning. Авторы статьи предлагают Low-Rank Adaptation (LoRA), который замораживает предобученные веса модели и встраивает "rank decomposition matrices" в каждый слой трансформера, очень сильно понижая кол-во обучаемых параметров для downstream tasks.

Compared to GPT-3 175B fine‑tuned with Adam, LoRA can reduce the number of trainable parameters by 10,000 times and the GPU memory requirement by 3 times. LoRA performs on‑par or better than finetuning in model quality on RoBERTa, DeBERTa, GPT-2, and GPT-3, despite having fewer trainable parameters, a higher training throughput, and, unlike adapters, no additional inference latency.

Многие NLP-приложения требуют решения разных задач, что зачастую достигается путем дообучения большой модели на несколько разных downstream tasks. Самая важная проблема в классическом fine-tuning'е - новая модель содержит столько же параметров, сколько начальная.

Есть работы, где авторы адаптируют только некоторые параметры или обучают внешний модуль для каждой новой задачи. Таким образом, нам необходимо для каждой новой задачи хранить лишь веса, связанные с этой задачей. Однако, имеющиеся методы страдают от:

Inference latency (paper 1 - Parameter-Efficient Transfer Learning for NLP).

Reduced model's usable sequence length (paper 2 - Prefix-Tuning: Optimizing Continuous Prompts for Generation).

Часто не достигают бейзлайнов, если сравнивать с "классическим" fine-tuning'ом

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments0

Deep Learning — как это работает? Часть 4

Reading time5 min
Views8.5K
Часть 1
Часть 2
Часть 3

В этой статье вы узнаете:

  • О том, что такое transfer learning и как это работает
  • О том, что такое semantic/instance segmentation и как это работает
  • О том, что такое object detection и как это работает
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments0

Deep Learning: как это работает? Часть 3 — архитектуры CNN

Reading time6 min
Views8.7K
Часть 1
Часть 2


В этой статье вы узнаете:


  • О соревновании ImageNet Large Scale Visual Recognition Challenge (ILSVRC)
  • О том, какие существуют архитектуры CNN:

    1. LeNet-5
    2. AlexNet
    3. VGGNet
    4. GoogLeNet
    5. ResNet
  • О том, какие проблемы появлялись с новыми архитектурами сетей, как они решались последующими:

    1. vanishing gradient problem
    2. exploding gradient problem
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments4

Deep Learning: как это работает? Часть 2

Reading time3 min
Views9.4K
Часть 1 тут.

В этой статье вы узнаете


  • Что такое CNN и как это работает
  • Что такое карта признаков
  • Что такое max pooling
  • Функции потерь для различных задач глубокого обучения
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments0

Deep Learning: как это работает? Часть 1

Reading time3 min
Views15K

В этой статье вы узнаете



-В чем суть глубокого обучения

-Для чего нужны функции активации

-Что такое FCNN

-Какие задачи может решать FCNN

-Каковы недостатки FCNN и с помощью чего с ними бороться

Читать дальше →
Total votes 17: ↑10 and ↓7+3
Comments3

Идея инерции(SGDm), идея масштабирования (Adagrad) и регуляризация в машинном обучении на примере задачи классификации

Reading time4 min
Views2.6K
Датасет, используемый далее, взят с уже прошедшего соревнования на kaggle отсюда.
На вкладке Data можно прочитать описание всех полей.

Весь исходный код здесь в формате ноутбука.
Читать дальше →
Total votes 3: ↑3 and ↓0+3
Comments2

Стохастический градиентный спуск(SGD) для логарифмической функции потерь(LogLoss) в задаче бинарной классификации

Reading time4 min
Views8.8K
Предыдущая часть (про линейную регрессию, градиентный спуск и про то, как оно всё работает) — habr.com/ru/post/471458

В этой статье я покажу решение задачи классификации сначала, что называется, «ручками», без сторонних библиотек для SGD, LogLoss'а и вычисления градиентов, а затем с помощью библиотеки PyTorch.
Читать дальше →
Total votes 10: ↑7 and ↓3+4
Comments1

Линейная регрессия и градиентный спуск

Reading time3 min
Views22K
Пусть в некоторой предметной области исследуются показатели X и Y, которые имеют количественное выражение.

При этом есть все основания полагать, что показатель Y зависит от показателя X. Это положение может быть как научной гипотезой, так и основываться на элементарном здравом смысле. К примеру, возьмем продовольственные магазины.

Обозначим через:

X — торговую площадь(кв. м.)

Y — годовой товарооборот(млн. р.)

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

Представим, что у нас есть данные о некоторых n магазинах(торговая площадь и годовой товарооборот) — наш датасет и k торговых площадей(X), для которых мы хотим предсказать годовой товарооборот(Y) — наша задача.

Выдвинем гипотезу, что наше значение Y зависит от X в виде: Y = a + b * X

Чтобы решить нашу задачу, мы должны подобрать коэффициенты a и b.
Читать дальше →
Total votes 24: ↑16 and ↓8+8
Comments11

Information

Rating
Does not participate
Location
Россия
Registered
Activity