DL in NLP
12.5K subscribers
547 photos
13 videos
27 files
1.1K links
Новости и обзоры статей на тему обработки естественного языка, нейросетей и всего такого.

Связь: @dropout05 (рекламы нет)
Download Telegram
GPT-3.5 Turbo fine-tuning and API updates
openai.com/blog/gpt-3-5-turbo-fine-tuning-and-api-updates

Теперь GPT-3.5 можно файнтюнить!

Чуть больше подробностей:
1. Все тренировочные данные пропускают через OpenAI Moderation API и через дополнительную систему модерации на GPT4. Кстати если вы не знали про Moderation API — он публично доступен и бесплатен если вы его используете вместе с обычным Chat API.
1. В общем это все детали 🤷‍♂️

Цена:
Training: $0.008 / 1K Tokens
Usage input: $0.012 / 1K Tokens
Usage output: $0.016 / 1K Tokens

Это была очень ожидаемая фича, интересно как пользователи будут её применять.
👍29😁32👎1
Do Batch Sizes Actually Need To Be Powers of 2?
Wandb fully-connected

Много кто из вас наверняка слышал что хороший batch size должен быть степенью двойки. Может быть кто-то слышал, что на самом деле батч сайз должен быть разделим на warp size вашей GPU (обычно 32 или 64). Но насколько это вообще правда?

Для современных нейронок (>100M парметров) делимость батч сайза на 2 (или даже 64) не решает вообще ничего. GPU и так занята полностью так как у таких сеток большие hidden size и seq len (вокруг которых и можно параллелить). А ещё вероятно что ваша GPU просто большую часть своего времени ждёт того как из HBM памяти веса и хиддены перегонятся в SM2 (a.k.a GPU is memory speed bounded).

В статье это вещи проверяют на практике с красивыми графиками в wandb. Оч рекомендую к прочтению, статья короткая.

Однако, от себя добавлю, что шейпы тензоров и правда должны быть кратны 32 (V100) или 64 (A100 и H100) хотя бы по hidden чтобы эффективно использовать CUDA Cores. Так как если кусок вашего тензора не делится на warp, низкоуровневый код на GPU всё равно превратит ваш 65x65 в четыре тензора: 64x64, 1x64, 64x1, 1x1 и потом западит их все до 64x64. PyTorch и CUDA стараются сделать автоматические оптимизации чтобы избежать таких плохих случаев, но не всегда получается. Если я где-то продолбался — пишите в комментариях!

💡Measuring the actual effect on training speed, accuracy and memory consumption when choosing a batch size should be preferred instead of focusing on powers of 2.
🔥44👍205🤔1
Teaching with AI
openai.com/blog/teaching-with-ai

OpenAI выпустил новый пост с гайдом о применении ChatGPT в образовании. Мне кажется что это одна из областей которую до неузнаваемости уже может изменить AI в его текущем проявлении.

В посте рассказывают про текущие успешные кейсы:
1. Role playing challenging conversations - например попросить chatgpt играть интервьюира или критика вашей работы
1. Building quizzes, tests, and lesson plans - составление материалов это очень тяжелая часть преподавания и держать их up to date может быть тяжело. С chatgpt вы же можете просто загрузить вашу лекцию и попросить сделать для неё квиз, ещё и в заданном стиле
1. Reducing friction for non-English speakers - на моём опыте GPT4 сильно обходит google translate в качестве перевода тк вы можете дать ему дополнительный контекст. Например попросить не переводить термины.

Дальше они приводят несколько примеров промптов. Вообще хотелось бы увидеть побольше в посте, но хотя бы мы видим что эта область OpenAI небезынтересна.
31👍6
Пример того о чём я говорил про качество перевода chatgpt / google translate. Для идиом или очень контекстуального перевода обычные переводчики всегда будут хуже языковых моделей.
26
👍69🤔73😁1
🤨255🤣3💩1
ChatGPT be like
🔥88😁443💩3👎2💯2
I can see this conversation at Adept:
AAA: we need to beat LLAMA7b, how do we do it?
BBB: Train an 8B model?
AAA: you’re a genius!

https://www.adept.ai/blog/persimmon-8b
😁47💋2
Flash Attention 2 завезли прямо в 🤗 трансформеры 🔥🔥

Коротко, это мегаэффективный cuda kernel для рассчета attention, который делает ваше потребление памяти линейным вместо квадратичного, да и в принципе работает в несколько раз быстрее наивной имплементации к которой мы все привыкли.

Flash Attention 1 был в 🤗 Optimum и мой опыт с ним... такой себе. Теперь же Flash 2 встроен в основную библиотеку и чтобы его использовать надо просто указать use flash attention 2 в from pretrained.

https://x.com/younesbelkada/status/1705258148045750343
🔥106👍63
🤡156🔥10🥴7🫡5👍1😁1
Дорогие читатели!
Сегодня я сделала шпаргалку по самым известным научным конференциям уровня A* (по CORE2023), связанным с машинным обучением. Большими сойджеками выделены конференции с более высоким h5-индексом в Google Scholar, а маленькими - с h5-индексом поменьше. Забирайте на стену, чтобы не забыть, куда подавать статьи, чтобы потом делать самое сойджековское лицо в своем офисе!

#ML_в_мемах
👍339🤮2
Image input в ChatGPT начали раскатывать на обычных пользователей 🔥

(по крайней мере я получил)

Если бы не дедлайны, провёл бы весь день с этим делая всякие интересные и полезные штуки, пока что лучше держите мем.
👍62🔥14😱125
Effective Long-Context Scaling of Foundation Models
Xiong, Liu, et al., [FAIR]
arxiv.org/abs/2309.16039

Команда LLaMA взяла датасет с длинными текстами, (400B токенов в сумме), и увеличили контекст LLaMA2 с 4K до 32K токенов. Важный трюк: увеличить период RoPE embeddings с 10K до 50K.

Что интересно, выяснилось что предобучать модели на длинных контекстах с самого начала смысла нет. Для этого предобучили несколько LLaMA7B с нуля. Один из них всё время тренировался c 32K-len, другие модели первые 20/40/80% обучения тренировались с 4K, после чего прееключались на 32K. Разница получилась минимальной.

Кроме этого показали scaling law с длинной контекста (см. картинку). Это удобно тем что можно наперёд предсказывать лосс и использовать это как sanity check того что ваша тренировка идёт хорошо.

Финальные модельки обходят всё что есть в опенсорсе (на тот момент Mistral ещё не было). По метрикам в статье, включая human eval, LLaMA2 Long 70B работает так же хорошо как и chatgpt-3.5-16k.
43🤯9🔥3
Новый дайджест из мира NLP

1. Лекции MIT по эффективному DL
1. Гайд по distributed training и PEFT
1. Deep Neural Networks Tend to Extrapolate Predictably — чем более OOD инпут тем больше решение сходится к среднему ответу (лучшему input-independent ответу)
1. Ring Attention with Blockwise Transformers for Near-Infinite Context — эффективная коммуникация для параллелизации attention между разными GPU
1. Value-Guided Monte-Carlo Tree Search decoding — MCTS применили к NLP и получилось отлично

Надеюсь что у вас все хорошо
🇮🇱
🔥4010👍7😁1
Google закроет и этот продукт #293

Когда конкуренты в виде WandB и CometML начали давить на Tensorboard, гугл решил что их проблема не ненадёжный интерфейс, не невозможность строить графики с любыми X и Y уже после того как вы всё залогали, или очень убогий логгинг гиперпараметров. Гугл решили что проблема в том что у них нету своего облака для лога экспериментов и сделали tensorboard.dev

Сегодня это облако закрывается. Если вы храните на нём что-то полезное, в имеиле описано как это скачать.

Но серьёзно, кто-то ещё пользуется tensorboard вместо wandb/clearml?
😁28👍2😢21
Large Language Models (in 2023)
Видео, слайды

Лекция от Hyung Won Chung из OpenAI о языковых модельках. Где мы находимся и куда мы идём. Очень рекомендую, а вот короткий пересказ:

Perspective of "Yet"
Если что-то не работает на текущем размере LLM, не стоит думать что это в принципе не работает, мы это много раз видели. Те свойства моделей которые мы нашли в 2022 могут не быть в моделях 2024 года. Из-за этого те кто только погружаются в DL могут иногда иметь лучшую интуицию чем те кто там уже давно и выработал её за предыдущие 10 лет. А ещё пишите свои скрипты так чтобы вы могли перезапустить их через год на новых модельках 😅

How is the scaling actually done?
Натренировать самую большую в мире модель гораздо сложнее чем просто написать новый конфиг где в 20 раз больше слоёв. Для эффективного использования серверов надо правильно понимать боттлеки в системах текущего размера и того размера которые вы хотите тренировать. Они могут быть разными.

Рассказал почему GSPMD так крут, и я теперь понял почему гугловцы так любили Mesh-Tensorflow. Для того чтобы параллелизовать матричное умножение в нём одновременно по нескольких осям (data parallel + tensor parallel + model parallel) вам не нужно переписывать модель, вы просто декорируете train_step и пишите по каким осям тензоров он распределяется.

Post-training
Тут классический рассказ о том как работает RLHF

Can we learn an objective function?
В RLHF мы больше не задаём reward-функцию, она выучивается другой моделью. Hyung Won Chung делает ещё один шаг и говорит что кросс-энтропия это серьёзный текущий боттлнек тк она может учить модель только очень конкретным вещам, таким как предсказание следующего токена. Возможно будущие модели мы будем учить на более абстрактых reward-функциях вместо этого. По аналогии с тем что мы со вреенем отказались от hand-written фичей в пользу DL и скоро мы откажемся от hand-written objective functions в пользу выучивания reward model.

Последний тейк интересен, мне лично в это не очень верится (так что скорее всего правда 🤣)
🔥35👍75🥰2
Пара слайдов о GSPMD. Статические графы реально очень круты для параллелизации.
6👍1🤯1