DL in NLP @dlinnlp Channel on Telegram

DL in NLP

@dlinnlp


Новости и обзоры статей на тему обработки естественного языка, нейросетей и всего такого.

Связь: @dropout05 (рекламы нет)

DL in NLP (Russian)

DL in NLP - это Telegram-канал, посвященный новостям и обзорам статей на тему обработки естественного языка, нейросетей и всего такого. Если вы увлечены машинным обучением и интересуетесь разработкой алгоритмов для работы с текстами, то этот канал именно для вас! Здесь вы найдете актуальную информацию о последних технологиях и исследованиях в области обработки естественного языка, а также сможете ознакомиться с обзорами научных статей по этой теме. DL in NLP поможет вам быть в курсе всех новинок в этой увлекательной области и расширить свои знания. Следите за обновлениями и не пропускайте важную информацию! Связь с администратором канала: @dropout05 (рекламы нет).

DL in NLP

10 Oct, 18:51


Но дадут ли нобелевку по литературе за Deep Learning Book

DL in NLP

08 Oct, 16:08


Почему не стоит верить nvidia-smi “GPU utilization”
arthurchiao.github.io/blog/understanding-gpu-performance/

Nvidia использует очень особый способ определения утилизации GPU. 100% означают не что девайс загружен на 100%, а что хотя бы одно ядро было использовано хотя бы чуть-чуть 100% времени за последние N (мили)секунд

Очень яркий пример это примитивы синхронизации: когда вы вызываете torch.barrier GPU Utilization становится 100% при том что на самом деле железо просто «активно ждет».

Для реальной оценки загруженности GPU лучше использовать SM Occupancy которая показывает средний процент загрузки ядер GPU (то что я бы изначально ожидал увидеть от utilization честно говоря).

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

DL in NLP

02 Oct, 16:46


Soumith Chintala (создатель pytorch) выдаёт базу о том как тренироваться на 10К GPU
x.com/soumithchintala/status/1841498799652708712

Оч короткий TL;DR (всем рекомендую прочитать оригинал, он не длинный)

1. Maximize batch size and GPU utilization: 3D parallelism + gradient checkpointing
1. Overlap communication, e.g. while N-1th layer is computing backward, all GPUs with an Nth layer can all-reduce
1. Optimize for your GPU cluster network topology

1. Failure recovery, at 10k GPU scale, things fail all the time -- GPUs, NICs, cables, etc
1. At 10K scale bit flips actually become a problem and can cause loss explosions. Save your model state as frequently and as quickly as you can. To speed it up save it in shards and to CPU memory first and then in a seaprate thread write to disk

DL in NLP

25 Sep, 08:09


https://x.com/hughbzhang/status/1838288923656941860?s=12&t=QgBLS4SmhE8cqdYBmhrqJA

DL in NLP

25 Sep, 08:09


O1 mini inference scaling experiments

Прикольное саммари экспериментов одного чела. Коротко: если убедить модель дольше думать (что пока что непросто) pass@1 реально будет расти лог-линейно. При этом это скорее всего не majority voting или self consistency тк эти методы упираются в потолок

DL in NLP

17 Sep, 03:42


OpenDuck - очень классный проект по опенсорсной (хард+софт) реимплементации диснеевского робота

https://github.com/apirrone/Open_Duck_Mini

Очень мило. Буду следить за ними. А вот тут они уже умеют стоять: https://x.com/antoinepirrone/status/1835679313506562502

DL in NLP

14 Sep, 18:21


Наткнулся в Твиттере на шикарную визуализацию LLM. Как выяснилось, ей уже целый год, но для новичков это все ещё полезная штука.

Кроме красивой 3D-модельки, здесь еще подробный гайд по работе каждого элемента, как говорит автор, до каждого "сложить и умножить".

По архитектурам там есть GPT-2, nanoGPT, GPT-2 XL, ну и GPT-3.

Ссылочка на визуализацию

@ai_newz

DL in NLP

12 Sep, 17:29


🍓
openai.com/index/learning-to-reason-with-llms


1. GPT-o1 это затюненая с помощью RL модель на улучшение reasoning (деталей как это сделано, конечно же нет)
1. Scaling c train-time compute (как долго делать RL) и test-time compute (как долго генерировать ответ) -- на текущих графиках никакого намёка на то чтобы модель выходила на плато 🔥
1. По сравнению с 4o на codeforces o1 получает 89 перцентиль вместо 11
1. В PhD-level GPTQA Diamond по физике pass@1 улучшили с 60% до 93%
1. По human preferences люди предпочитают o1 в 60% случаев в проге, и 70% в математике

Ждём когда будет доступно в chatgpt и API публично

DL in NLP

07 Sep, 21:50


И ещё немного новостей о NEO. Собрал всё в батч чтобы не получилось так что канал всё время пишет о 1Х

1. Эпизод S3 где мы больше показываем что мы уже умеем и куда движемся: тык
1. Follow-up эпизод где мы деплоим Neo домой к Джейсону: тык
1. Часовое интервью с Бернтом. Больше технических деталей и больше о нашей стратегии. Кстати Бернт реально неплохо разбирается во всём техническом стаке компании. Он сам сделал наши моторы, периодически помогает с сервисом роботов когда нужны дополнительные руки. Оч советую: тык

1. Заметка Scott Walter об устройстве рук Neo и Оптимуса: тык
1. Подаст First Principles с Эриком, нашим VP of AI: тык

Мы работали над тем чтобы наконец-то показать Neo очень много, включая итерации над железом, controls, RL, остальным AI, и в конце-концов съемками чтобы получить perfect shot. Иногда по 15+ часов в день и без выходных (добро пожаловать в work-life balance кремниевой долины пхпх). Это очень круто осознавать что некоторые вещи которые тебе раньше казались фантастикой это всего лишь очень много работы а не невозможность.

Я всё ещё хочу держать баланс в канале между постами о моей работе и обзорами статей и новостей в NLP и робототехнике. Каждый пост не про NLP пинает меня чтобы сделать обзор новой статьи.

DL in NLP

30 Aug, 17:41


Introducing NEO Beta
youtube.com/watch?v=bUrLuUxv9gE

Мы (1X Technologies) наконец-то показали нашего нового робота публично! Neo это наше второе (и на данный момент уже основное) поколение роботов. В отличие от Eve у Neo пять пальцев и две ноги, что позволяет решать гораздо больше задач. В отличие от других гуманоидных роботов Neo может безопасно находиться радом с людьми из-за compliant моторов, при этом он всё ещё обладает довольно большой силой, сопостовимой с другими гуманоидами (и может быть даже превосходящей некоторых). Надеюсь в ближайшее время мы пошерим больше деталей о том что уже сейчас может Neo.

(Продолжаю орать с комментариев о том что это человек в костюме, разработчики железа воспринимают это как комплемент пхпх)

DL in NLP

28 Aug, 18:48


LeRobotDataset
huggingface.co/blog/video-encoding

HuggingFace потихоньку погружается в робототехнику и вчера они представили свой формат данных и даталоадер для рободанных.

В чём проблема? Большая часть рободанных это видео + syncronized time series. Видео это наибольшая проблема. Если хранить их в том же сжатом формате что мы обычно используем для просмотра, то чтение рандомных кадров будет очень медленным. Если хранить их в разжатом формате, то 1) занимает много места 2) очень нагружает ваш диск / сеть во врема чтения и легко упереться в лимиты железа

HF поглядели на ffmpeg, подкрутили настройки, и нашли отличный баланс между сжатием и скоростью чтения рандомных кадров. Обернули это в LeRobot и описали в блогпосте. Оч советую

DL in NLP

27 Aug, 15:34


Антропик опубликовали систем промты Claude

https://docs.anthropic.com/en/release-notes/system-prompts

Я до сих пор не перестаю удивляться насколько сильно длина систем промта выросла и что в отличие от LLM предыдущего поколения (GPT3, OPT, BLOOM) промты стали выглядеть совсем как обычный текст который ты описываешь как будто общаешься с человеком.

Немного поорал с багфиксов «If Claude cannot or will not perform a task, it tells the user this without apologizing to them» и «Claude responds directly to all human messages without unnecessary affirmations or filler phrases like “Certainly!”, “Of course!”, “Absolutely!”, “Great!”, “Sure!”, etc»

DL in NLP

26 Aug, 17:02


Внимание! Hugging Face представляет конструктор «Собери сам роборуку и обучи ее»

Вкомплект входит:
- Конструктор «Собери сам» — роборука с ссылками для заказа запчастей ~ $300 (опционально есть еще вторая за $250) + файлы для принтера.
Гайды по:
- Cборке и калибровке.
- Записи собственного датасета на камеру телефона.
- Тренировке нейросетей для управления рукой.

Прикольная инициатива, ребята надеются максимально помочь начинающим в надежде привлечь больше рук  (кожаных, а не робо-) в опен-сорс, что, в общем-то, шикарно!

Расходники вышли дороговатыми, но это уже не $108K за домашнего робогуманоида + скоро обещают выпустить новую версию, говорят уложились в $150 за обе руки.

Чел научил две роборуки складывать футболки на 100 примерах за одну ночь тренировки. Здесь для обучения используется способ, похожий на тот, что я описывал в посте про живую сталь. Там можно почитать подробнее.

Хотел бы я подарить такую штуку себе 15 лет назад.

Туториал на гитхабе
Тред с гайдом получше (есть и видео и ноутбуки с тренировкой нейронок)

@ai_newz

DL in NLP

18 Jul, 16:17


Не прошло и недели, а у Mistral новый релиз!

Новую "малую" модель NeMo тренировали совместно с Nvidia. У неё 12 миллиардов параметров, 128k контекста, инференс в fp8 без потери в качестве, сделана так, чтобы влезала в 4090.

NeMo - нативно мультиязычная модель, тренировали в том числе на русском, немецком, японском, китайском. И тут она конкурентов и в хвост, и в гриву. Обновили и токенизатор - он теперь на 36% эффективнее для русского, на 11% для английского, а на некоторых языках прирост по эффективности в 3-4 раза. Интересно, в токенах найдутся пасхалки?

С бенчами опять шалят: сравнивают только базовые модели, а бенчи для Instruct версий публикуют только специализированные, не общие.

Заметьте, как "малые" модельки растут в размере: 7B превратилось в 8, потом в 9, а сейчас уже 12

Веса
Блог

@ai_newz

DL in NLP

12 Jul, 02:51


FlashAttention-3 📸

Блог и статья: tridao.me/blog/2024/flash3/
Код: github.com/Dao-AILab/flash-attention

1.5-2.0 раза быстрее чем FlashAttention 2 в FP16, почти в 3 раза быстрее в FP8

Flash 2 был оптимизирован под А100 и достигал 70% теоретических max flops, Flash 3 оптимизирован под H100 и достигает 75%. Для этого активно использовали библиотеку NVIDIA CUTLASS которая почти напрямую общается с железом и позволяет использовать хитрые фичи H100. Например использовать специальное железо (Tensor Memory Accelerator) для копирования тензоров между global и shared memory и Warpgroup Matrix Multiply-Accumulate (который я так и не понял что такое, но как-то связан с тензорными ядрами)

Сверху этого переписали код чтобы матричное умножение вычислялось (на tensor cores) параллельно с softmax (на multi-function unit) и сделали пару хаков чтобы FP8 давал более точные результаты

Выглядит очень классно, надо пробовать. Жаль что еще нету edge железа на Hopper

DL in NLP

17 Jun, 18:23


Тут знакомая DL-школа DeepSchool, про которых я уже писал раньше ищет преподавателей на курс по LLM с опытом работы в индустрии

Я когда-то сам вел лекции и если вы хотите заполнить пробелы в своих знаниях и систематизировать их, то преподавание — отличный вариант, плюс есть возможность пообщаться с другими препами и узнать их мнения / заполнить пробелы в каких-то очень узких областях

Что ребята дают:
— доступ ко всем курсам школы: можно приходить на лекции, задавать вопросы, сдавать домашки и получать ревью
— оплата за подготовку материалов
— оплата за лекции и ревью заданий
— редактор поможет с текстами
— а дизайнер нарисует красивую презентацию

Что ребята ждут:
— опыт в DL-индустрии/ресёрче от 3 лет
— опыт работы с LLM от 1 года

Если вы работаете с LLM, хотите пообщаться с другими практикующими инженерами, вместе поработать и перенять опыт, заполните, пожалуйста, эту форму

DL in NLP

14 Jun, 15:51


MLKV: Multi-Layer Key-Value Heads for Memory Efficient Transformer Decoding
Zuhri et al
arxiv.org/abs/2406.09297

Помните multi-query attention где вместо того чтобы у вас были разные key, query, value на каждую голову вы используете одни и те же kv для всех и разными бывают только query? Это очень классная идея которая сильно сокращает размер kv cache позволяя упихивать более длинные тексты или большие батчи в тот же объем памяти с минимальной потерей качества.

Авторы multi-layer kv heads предлагают сделать еще один шаг в эту сторону и предлагают шарить kv между соседними слоями тоже. То есть мы разбиваем наши слои на блоки, например по 4 слоя. И в каждой группе из 4 слоёв только лишь первый слой считает kv, остальные используют только query.

Потеря качества хоть и небольшая, но достаточно заметная, но иногда приходится упихивать неупихиваемое в GPU и хорошо иметь больше способов делать tradeoffs.