Notice: file_put_contents(): Write of 12546 bytes failed with errno=28 No space left on device in /var/www/tgoop/post.php on line 50

Warning: file_put_contents(): Only 8192 of 20738 bytes written, possibly out of free disk space in /var/www/tgoop/post.php on line 50
DL in NLP@dlinnlp P.1660
DLINNLP Telegram 1660
DL in NLP
Long Sequence Modeling with XGen: A 7B LLM Trained on 8K Input Sequence Length blog.salesforceairesearch.com/xgen/ Команда Salesforce выпустила новую серию опенсорсных моделей модель: XGen. XGen-7B-4K-base натренирована на 800B токенах с длинной текста 2К…
Stack More Layers Differently: High-Rank Training Through Low-Rank Updates
Статья: arxiv.org/abs/2307.05695
Код: GitHub

Мы задались вопросом: если LoRA настолько хороша для файнтюнинга, можем ли мы применить её для претренинга?
Мы представляем ReLoRA — первый метод PEFT, который может использоваться для обучения с нуля! 🔥

Почему мы не можем использовать LoRA для претренинга? Потому что он оптимизирует только в маленьком подпространстве низкого ранга параметров модели. Этого достаточно для файнтюнинга, но не для претренинга. Что мы можем сделать?

Применить LoRA несколько раз подряд. Это работает, потому что параметры LoRA могут быть интегрированы в основную сеть (W += W_A @ W_B) и потому что сумма матриц низкого ранга может иметь ранг больше, ранги слагаемых.

Но теперь у нас новая проблема: оптимизаторы сильно полагаются на momentum который и определяет большую часть направления апдейта по предыдущим градиентам (а не текущему градиенту). Это делает шаги оптимизации сильно скоррелированными

Представьте первый шаг оптимизации после ресета ReLoRA. Он сделает параметры ReLoRA похожими на параметры предыдущей итерации. Это потенциально может "заполнить ранг" параметров LoRA и минимально увеличить суммарный ранг. Поэтому при ресете ReLoRA мы частично ресетим стейт оптимизатора сохраняя только 0-10% весов. Далее, чтобы избежать нестабильностей мы прогреваем LR 10-50 шагов

LayerNorm и эмбеддинги тренируются как обычно, без репараметризации. Наконец, ранняя фаза обучения очень важна, и нам действительно нужно "подогреть" сеть с помощью обычного полноценного обучения. На практике достаточно 3-5 тысяч шагов

TL;DR
1. LoRA + ресеты
1. Частичный сброс стейта оптимизатора
1. "Зубчатый" LR scheduler
1. Прогрев через обычную тренировку

На совсем маленьких сетках всё грустно, но начиная с 250M метод начинает работать близко к обычной тренировке. На 1B видим уменьшение потребления RAM и ускорение на 50%. Сейчас ищем компьют на тренировку 1B-модели

Буду рад ретвиту вот этого треда — продвигать статьи это довольно сложно 😅
🤯44🔥25👍1061



tgoop.com/dlinnlp/1660
Create:
Last Update:

Stack More Layers Differently: High-Rank Training Through Low-Rank Updates
Статья: arxiv.org/abs/2307.05695
Код: GitHub

Мы задались вопросом: если LoRA настолько хороша для файнтюнинга, можем ли мы применить её для претренинга?
Мы представляем ReLoRA — первый метод PEFT, который может использоваться для обучения с нуля! 🔥

Почему мы не можем использовать LoRA для претренинга? Потому что он оптимизирует только в маленьком подпространстве низкого ранга параметров модели. Этого достаточно для файнтюнинга, но не для претренинга. Что мы можем сделать?

Применить LoRA несколько раз подряд. Это работает, потому что параметры LoRA могут быть интегрированы в основную сеть (W += W_A @ W_B) и потому что сумма матриц низкого ранга может иметь ранг больше, ранги слагаемых.

Но теперь у нас новая проблема: оптимизаторы сильно полагаются на momentum который и определяет большую часть направления апдейта по предыдущим градиентам (а не текущему градиенту). Это делает шаги оптимизации сильно скоррелированными

Представьте первый шаг оптимизации после ресета ReLoRA. Он сделает параметры ReLoRA похожими на параметры предыдущей итерации. Это потенциально может "заполнить ранг" параметров LoRA и минимально увеличить суммарный ранг. Поэтому при ресете ReLoRA мы частично ресетим стейт оптимизатора сохраняя только 0-10% весов. Далее, чтобы избежать нестабильностей мы прогреваем LR 10-50 шагов

LayerNorm и эмбеддинги тренируются как обычно, без репараметризации. Наконец, ранняя фаза обучения очень важна, и нам действительно нужно "подогреть" сеть с помощью обычного полноценного обучения. На практике достаточно 3-5 тысяч шагов

TL;DR
1. LoRA + ресеты
1. Частичный сброс стейта оптимизатора
1. "Зубчатый" LR scheduler
1. Прогрев через обычную тренировку

На совсем маленьких сетках всё грустно, но начиная с 250M метод начинает работать близко к обычной тренировке. На 1B видим уменьшение потребления RAM и ускорение на 50%. Сейчас ищем компьют на тренировку 1B-модели

Буду рад ретвиту вот этого треда — продвигать статьи это довольно сложно 😅

BY DL in NLP




Share with your friend now:
tgoop.com/dlinnlp/1660

View MORE
Open in Telegram


Telegram News

Date: |

But a Telegram statement also said: "Any requests related to political censorship or limiting human rights such as the rights to free speech or assembly are not and will not be considered." A Telegram channel is used for various purposes, from sharing helpful content to implementing a business strategy. In addition, you can use your channel to build and improve your company image, boost your sales, make profits, enhance customer loyalty, and more. How to Create a Private or Public Channel on Telegram? “Hey degen, are you stressed? Just let it all out,” he wrote, along with a link to join the group.
from us


Telegram DL in NLP
FROM American