Получи случайную криптовалюту за регистрацию!

DL in NLP

Логотип телеграм канала @dlinnlp — DL in NLP D
Логотип телеграм канала @dlinnlp — DL in NLP
Адрес канала: @dlinnlp
Категории: Технологии , Образование
Язык: Русский
Страна: Россия
Количество подписчиков: 8.30K
Описание канала:

Новости и обзоры статей на тему обработки естественного языка, нейросетей и всего такого.
Связь и реклама: @dropout05

Рейтинги и Отзывы

4.33

3 отзыва

Оценить канал dlinnlp и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

1

4 звезд

2

3 звезд

0

2 звезд

0

1 звезд

0


Последние сообщения 3

2022-07-03 06:09:11 Новости NLP одной строкой

1. Тренировка BLOOM - 176B модели от BigScience почти завершена. А ещё Optimum уже поддерживает BLOOM
1. Отличный тред о том как CodeParrot искал ошибки в тренировке своей большой модели
1. Minerva - языковая модель от гугл которая может решать математические задачи
1. Named Tensor 2.0 в пайторче с поддержкой einsum
8.8K viewsVlad Lialin, 03:09
Открыть/Комментировать
2022-06-17 15:42:01
3.0K viewsVlad Lialin, 12:42
Открыть/Комментировать
2022-06-17 15:24:44 https://twitter.com/ilyasut/status/1537615955257282560
1.8K viewsVlad Lialin, 12:24
Открыть/Комментировать
2022-06-17 06:43:07
Пара интересных новых фишек в Transformers 4.20

1. Big model inference — позволяет очень просто инферить большие модели (10B+) на каком угодно железе. По возможности распараллелит по всем GPU, если не их хватает — кусок модели будет держаться в памяти процессора и подгружаться в GPU когда надо. Если даже CPU памяти не хватает, будет подгружать веса с диска кусками.
1. Добавили BLOOM от BigScience — одновремено с этим выложены чекпоинты от 0.3B до 6B. Главная модель в 176B должна подоспеть через месяц.
1. Добавили GPT-NeoX-20B, Wav2Vec2-Conformer, Trajectory Transformer, LongT5 (кстати его надо бы на днях разобрать) и ещё несколько интереных моделей.
4.5K viewsVlad Lialin, 03:43
Открыть/Комментировать
2022-06-15 17:29:18
2.5K viewsVlad Lialin, 14:29
Открыть/Комментировать
2022-06-12 20:57:25 Techniques for Training Large Neural Networks
Блогпост от OpenAI с разбором основных способов параллелизации.

Data Parallel (DP) — держать полную копию сети на каждой карточке, обрабатывать несколько батчей параллельно. Проблема в том, что ты можешь упереться в то что даже batch size = 1 перестаёт помещаться в одну карточку.
Pipeline Parallel (PP) — распилить нейросеть послойно (т.е. вертикально) и держать её на разных карточках. При наивной имплементации работает очень неэффективно. Представьте себе что у вас 10 слойная сеть и вы держите по 1 слою на каждой карточке, если вы просто выполняете forward и backward одного батча на них, то в каждый момент времени у вас 9 видеокарт простаивают. Если нарисовать картинку то у вас есть некий "bubble of idle time". Для того, чтобы этого избежать, можно распилить наш минибатч на микробатчи и начать делать forward pass следующего микробатча (MPS) ещё до того как forward текущего микробатча досчитался. Отсюда и название — pipeline parallel (PP).
Tensor Parallel (TP) — альтернативный способ разделения сети на несколько GPU. Если PP разделяет сетку вертикально, то TP делает это горизонтально. То есть ваши тензоры параметров и активаций теперь могут быть попилены на несколько GPU и одно матричное умножение может считаться на нескольких GPU одновременно. Понятно, что такой подход сильно увеличивает требования по скорости коммуникации между GPU, но при эффективной имплементации (и infiniband + nvlink) это не так медленно как кажется.
Mixture of Experts (MoE) — мы уже рассказывали про MoE, идея состоит в том чтобы вместо одного FCN после attention использовать несколько FCN-экспертов (например 128) и использовать только часть из них (например 4) при каждом forward pass. Для того чтобы выбрать эти 4, добавляется специальный router-слой, который по сути считает attention между экспертами и hidden. Так как на каждом проходе используется только малая часть экспертов можно добиться огромного числа параметров в нейросети. Именно это используют все сетки в 1 триллион и более параметров.

Ещё в статье очень вскользь упомянули ZeRo, который имплементирован в DeepSpeed, которы сейчас становится всё более и более популярен во многом благодаря тому что он позволяет тренировать довольно большие модели (вплоть до 10-20B) в почти DataParallel режиме с помощью разделения на несколько GPU стейта оптимизатора (Stage 1) и рассчёта градиентов (Stage 2). Также есть Stage 3, который по сути tensor parallel, да и практически все остальные способы параллелизации.

Кроме этого, все эти методы можно комбинировать. Например BLOOM от BigScience (176B) тренируется с DP=8, PP=12 (MPS 2), TP=4. Для всего этого используется чуть-чуть модифицированный DeepSpeed.

Сам блогпост даёт неплохое введение в методы параллелизации, и там куча ссылок на релевантные статьи и имплементации, но честно ожидал увидеть в нём что-то большее, тк OpenAI все-таки первопроходцы в этой области. В качестве продолжения (или даже вместо) я бы предложил почитать How To Fit a Bigger Model и Model Parallelism от HuggingFace, они тоже делают отличное введение в эти методы и на мой вкус более техничны.
3.8K viewsVlad Lialin, 17:57
Открыть/Комментировать
2022-06-11 21:22:58 High-Performance Large-Scale Image Recognition Without Normalization
Brock et al. [DeepMind], 2021
arxiv.org/abs/2102.06171

Внезапно статья по CV, ещё и старая, но давно хотел её прочитать. Вроде бы раз эту архитектуру использовали в Imagen.

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

1. При использовании BN и skip-connections, BN уменьшает норму активаций и позволяет skip-connections лучше проходить в более глубокие слои.
1. Тк мы используем ассиметричные функции активации (ReLU, GELU) это вызывает кучу положительных значений, что делает скалярное произведение векторов разных примеров в батче очень большим. Другими словами — вектора разных примеров очень похожи друг на друга, что плохо. BN позволяет ренормализовать это и добавить отрицательных значений в вектора, что уменьшает эту проблему.
1. Некоторые верят что BN также работает как регуляризатор, тк in-batch статистики mean и var содержат шум.
1. BN увеличивает гладкость loss landscape позволяя использовать бОльшие lr, в особенности при больших размерах батча.

DeepMind решили избавиться от BN и для этого используют следующие трюки:
1. Residual блоки выглядят вот так: h_next = h_prev + a * f(h_prev / b), где f - аккуратно инициалзированный блок нейросети, а=0.02 и b = var(h_prev).
1. Scaled weight standardization, где веса нормализуют как (w - mu) / sqrt(N * var)
1. Adaptive gradient clipping, где градиенты клипают не на основе их нормы, а на основе отношения нормы градиента и нормы параметров слоя / блока.
1. Использовали слегка модифицированную архитектуру блока SE-ResNeXt-D

По результатам: хорошо улучшают скорость тренировки по сравнению с efficientnet, при лучшей финальной accuracy.
1.3K viewsVlad Lialin, 18:22
Открыть/Комментировать
2022-06-10 16:10:29
BIG-Bench: встречам бенчмарк и пейпер «BEYOND THE IMITATION GAME»

Название пейпера «ПО ТУ СТОРОНУ ИГРЫ В ИМИТАЦЮ» отсылает нас к работе Тьюринга, и предоставляет актуальный на 2022 год бенчмарк, призванный количественно оценить большие языковые модели, такие как GPT-3 или PaLM.

Современная мейнстрим парадигма в NLP выглядит так: «не работает на 1.3B — попробуй 12B, не выходит на 12B, бери 175B, и т.д. Не нужно искать новые подходы — attention и параметры are all you need, как говорится..»

Но как оценивать эти огромные модели?

Чтобы решить эту проблему, 442 (WHAT?!) ресерчара из 132 организаций представили тест Beyond the Imitation Game (BIG-bench). Темы теста разнообразны, они связаны с лингвистикой, развитием детей, математикой, биологией, физикой, социальными предубеждениями, разработкой программного обеспечения и т. д.

BIG-bench фокусируется на задачах, которые, как считается, выходят за рамки возможностей текущих языковых моделей.

BIG-bench
Colab для эвала T5
paper

@мишин лернинг
826 viewsVlad Lialin, 13:10
Открыть/Комментировать
2022-06-03 21:11:30 GPT-4chan
Yannic Kilcher




Для тех кто не может дождаться GPT-4 от OpenAI, Янник сделал GPT-4chan. Это зафайнтюненная моделька JPT-J 6B на датасете Raiders of the Lost Kek, который замайнили с Politically Incorrect board (/pol/) на 4chan.

Очень рекомендую видео к просмотру, но TL;DR — отличать ботов от людей на становится всё сложнее, и их выдаёт уже не то что они неконсистентны, или наоборот пишут слишком похожие твиты. То что выдало бота Янника — это что он часто отвечал пустыми постами и то что постил слишком часто. Обе эти вещи, к сожалению, легко пофиксить. Стало как-то не по себе, в особенности если думать про комментарии к политическим твитам.

Но теперь вернёмся к весёлому. Во-первых, моделька заметно обходит GPT-3 и оригинальный GPT-J на бенчмарке Truthful QA (кек). Во-вторых, она выложена на Hub и вы можете с ней поиграться (если есть куда запихать 6 миллиардов параметров).


from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained(“ykilcher/gpt-4chan”)
model = AutoModelForCausalLM.from_pretrained(“ykilcher/gpt-4chan”)
2.1K viewsVlad Lialin, edited  18:11
Открыть/Комментировать
2022-05-25 00:53:45 Для тех кто не может прийти на ACL, также будем обсуждать Life After BERT на Munich NLP. Присоединяйтесь к дискорду, в пятницу 18 МСК будет презентация.
1.5K viewsVlad Lialin, 21:53
Открыть/Комментировать