DL in NLP
11.4K subscribers
544 photos
9 videos
27 files
1.08K links
Новости и обзоры статей на тему обработки естественного языка, нейросетей и всего такого.

Связь: @dropout05 (рекламы нет)
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Imagen Video: high definition video generation with diffusion models
Ho, Chan, Saharia, Whang, et al. [Google]
Сайт
Статья

🤯 Гугл показал свою модель генерации видео по тексту

Идея относительно простая: текст -> T5 -> видео диффузия -> temporal super-resolution -> spatial super-resolution (x2) -> temporal super resolution (x2) -> spatial super-resolution.

При этом для диффузии в качестве архитектуры используют модифицированный Video U-Net, кторый по аналогии с TimeSformer разделяет attention видео на темпоральный и пространственный attention сокращая сложность вычисления и потребление памяти с O((st)^2) до O(2st).

При тренировки диффузии использовали progressive distilation, то есть сеть в начале обучали дистиллировать t шагов, потом t/2, t/4 и так далее. Такой подход позволяет сильно сократить число требуемых шагов семплирования для получения хорошего изображения/видео.

В отличие от Make-a-Video, Imagen Video использует параллеьные video-text данные (14M пар, внутренний датасет). К этому добавляют LAION-400M и 60M image-text пар (внутренний датасет). Изображение = видео длиной в один фрейм.

Из того что бросается в глаза при просмотре: видео это не просто анимации как в make-a-video, в них зачастую есть какое-то понятное направление, иногда даже нечало и конец. Движения более естественные, физика взаимодействия объектов тоже получше.

Когда вышел DALL-E 2 кажется все говорили что видео следущие. Прошло всего полгода и вот мы тут. Что дальше? text to 3D анимации? text to маленькие 3D игры? Метавёрс?

За наводку спасибо @mishin_learning
Learning to Learn with Generative Models of Neural Network Checkpoints
Peebles, Radosavovic, et al. [Berkeley]
Статья: arxiv.org/abs/2209.12892
Код: github.com/wpeebles/G.pt
Блог: тык

Помните про парадигму learning to learn и всякие оптимитзаторы на основе LSTM? Вот и я не помню, но она оказывается жива и даже показывает забавные результаты.

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

По результатам работают в какие-то тысячи раз быстрее SGD и ADAM, но пробовали только MNIST, CIFAR10 и Cartpole.

Идея забавная, вроде бы авторы даже придумали как её скейлить — просто пилить большие модели на слои во время апдейта (по сути бэкпроп так же делает). А ещё метод назвали G.pt 😁
Please open Telegram to view this post
VIEW IN TELEGRAM
Building makemore Part 3: Activations & Gradients, BatchNorm
youtu.be/P6sfmUTpUmc

🔥🔥🔥
Новое видео от Андрея Карпатого про функции активации, нормализацию и то как тренировать нейросети лучше и быстрее. Must watch как новичкам так и всем остальным, тк это самая актуальная лекция на эту тему.
RL4LMs: A modular RL library to fine-tune language models to human preferences

Помните статьи OpenAI Instruct GPT и Summarizing Books? Они обе использовали фидбек людей и RL для дообучения языковых моделей.

Например в Instruct GPT для того чтобы научить модель лучше следовать инструкциям использовали 👍/👎 пользователей для того чтобы выучить когда модель лучше справляется со своей задачей. После этого использовался reinforcement learning с выученной reward-функцией для того чтобы адаптировать модель. Таким образом очень широкую задачу "следования инструкциям" свели к простой постановки максимизации лайков. Кроме этого показали что RL-подход работает более лучше чем просто файнтюнинг на полученном от пользователей датасете.

В Summarizing Books была другая проблема: заставить разметчиков писать саммари целых книг — очень сложно, долго и дорого, так давайте вместо этого модель будет сама писать саммари, а люди будут просто его оценивать. Дальше та же идея: inverse RL чтобы выучить reward, а потом RL чтобы этот reward максимизировать.

Звучит просто, но RL очень сложно заставить работать, а RL для NLP сложно заставить работать в квадрате. Поэтому сегодняшний релиз RL4LMs от AllenAI это очень крутой шаг в сторону упрощения доступа к этим исследованиям. В либе сейчас имплементированы PPO и NLPO, а также встроен бенчмарк GRUE. Поддерживаются модели 🤗. Выгядит интересно, ещё бы документацию завезли и конфигов поменьше и был бы вообще топ.
Одной строкой #11

1. Building makemore Part 4: Becoming a Backprop Ninja — новая лекция Андрея по бэкпропу. Теперь более хардкорно: пишем градиенты через MLP, cross-entropy, BatchNorm. Вы получите максимальную пользу если в начале попытаетесь решить задачки, а уже после этого посмотрите решения в видосе.
1. State of AI Report 2022 — топовый обзор что произошло в области за последний год. Написан довольно доступным языком, must read.
1. Очень math-forward введение в диффузионные модели с кодом на JAX.
1. Deep Dive on Google's Exascale TPUv4 AI Systems🔥 одна из самых подробных статей о TPU которые я видел в открытом доступе. Много интересных деталей, но если хотите просто узнать насколько 2048 TPUv4 быстрее 2048 A100 для трансформеров, то ответ на 15%.
1. Transformers 4.23: добавили несколько моделей включая Whisper и Deformable DETR. Начинают избавляться от pickle, сейчас экспериментируют с Safetensors.
1. A Gentle Introduction to 8-bit Matrix Multiplication — о том как использовать 8-bit с Transformers и экономить 4x памяти по сравнению с fp32.
Guess the Instruction! Flipped Learning Makes Language Models Stronger Zero-Shot Learners
Ye et al. [KAIST and LG]
arxiv.org/abs/2210.02969

Люблю простые и работающие статьи — эта как раз одна из них. Обычно когда мы делаем zero-shot learning на языковых моделях мы составляем промпт таким образом: инструкция + вопрос и генерируем ответ. Т0 при обучении так и делал и обучался просто как языковая модель максимизируя вероятность правильного ответа. Потом, для классификации, можно сравнить вероятности всех возможных ответов и выбрать наибольший. Подход работает неплохо, если модель большая.

В этой статье предлагают сделать два небольших изменения которые приводят к большим улучшениям. Во-первых они предлагают добавить unlikelihood loss для того чтобы оучаться на негативных примерах — неправильных ответах/классах, которые мы случайно семплируем из датасета. В результате модель минимизировать L_lm(pos) + L_unlikelihood(neg).

Во-вторых, для выбора класса сравнивают не вероятность класса а вероятность вопроса. То есть не p(ответ | инструкция + вопрос), а p(инструкция | вопрос + ответ).

Предобучаются на сабсете P3 (так же как T0), по результатам получают SOTA на zero-shot BigBench. Также в zero-shot режиме обходят 3-shot GPT-3 (175B).
This media is not supported in your browser
VIEW IN TELEGRAM
Одной строкой #12

1. GENIE: Higher-Order Denoising Diffusion Solvers — генерировать с помощью диффузионных моделей сложно, простым методам нужно 200-1000 шагов чтобы сойтись. PMLS-метод который основан на схемах решения дифференциальных уравнений может делать это за 50 шагов и благодаря ему Stable Diffusion очень быстрый. В GENIE развивают эту идею дальше и делают ещё более хитрый метод который позволяет гененировать хорошие изображения всего за 15 шагов.
1. Pre-Training for Robots — новый SOTA метод для предтренировки роботов, идея простая: берёте все offline RL датасеты и обучаетесь на них (с парой трюков), после online RL работает очень быстро — всего за 10-15 попыток.
1. PyTorch Contributor: Why And How To Become One — хороший гайд для тех кто хочет начать контрибьютить в пайторч (и какие плюшки это может вам дать).
1. Multilingual BERT has an accent — mBERT предпоитает английскую грамматику и порядок слов. Даже в тех языках где можно строить предложения подругому (греческий, испанский).
🌶 GitHub Copilot investigation 🌶

Помните бугурт когда Copilot запустился? Кто-то был очень рад (как я сейчас), а кто-то говорил что их код использовали для обучения нейросети без их ведома и против лицензии. Например, GPLv3 обязывает делать ваш проект опенсорсным если вы используете какой-то другой GPLv3 проект. Даже более того, если у вас не указана лицензия, по законам США вам всё ещё принадлежит копирайт на написанный вами код. То есть в принципе вы можете подать в суд на того кто этот код использует без вашего ведома. Вы ведь явно не указали условия.

Сейчас использование данных для обучения находится в серой зоне и его надеются подогнать под fair use. Это очень амерканская штука, которая групо говоря позволяет использовать копирайченные материалы если ты не делаешь ими ничего плохого, чуть более конкретно "the effect of the use upon the potential market for or value of the copyrighted work". Решается насколько это плохо судом. Из того что я слышал, основная защита Github Copilot это что он не использет код как код, а лишь обучается на коде, так же как человек мог бы обучаться.

Matthew Butterick решил что аргумент это такой себе и сейчас ведёт активное расследование которое может завершиться судом против Github. Запасаемся попкорном, может быть интересно. 🍿🍿🍿
You are GPT-3

Увидел в твиттере совершенно огненный тред о том как GPT-3 использет википедию, ipython и другие штуки, чтобы отвечать на вопросы. Выглядит это примерно так. Всё начинается с промта

"You are GPT-3. Answer the following questions. If you can't answer it directly, consult IPython, if you need to answer questions about events past your latest training data April 2021, consult wikipedia." (полный промт на картинке)

Это позволяет GPT-3 отвечать не только на вопросы типа "сколько сантиметров в дюйме" или "как зовут первого президента США", но и на

1. вычислительные задачи — 7 + 19^3
1. операции со строками — разворот строки
1. вопросы о недавних ивентах — когда умерла Елизавета вторая
1. точные даты — когда был выпущен последний эпизод Lost
1. вопросы требущие комбинации common sense и вычислений — число ног паука в третьей степени (сложно перееоценить важность этого вопроса 🤣)

Идея основана на статье Prompt Programming for Large Language Models

По сути в 10 строчек промпта и 100 строк кода вы можете написать своего Google Assistant. Думаю надо будет заняться этим на выходных.
Howto
github.com/Guitaricet/howto

Я тут за выходные сделал небольшой пет-проект: баш команду которая может писать за вас баш-команды с помощью Codex. Потому что хватит пытаться запомнить все команды конды, tar, awk и прочюю дичь.

Теперь если вы хотите установить новый кернел для юпитера или найти все файлы больше 100Mb, не надо идти в гугл. Можно просто вести в терминал

howto add kernel to jupyter

и получить нужную команду.

Вся тулза очень простая: это просто промпт для Codex, где вы просите дать баш команду для вашего текста. Работает на удивление хорошо. На данный момент для того чтобы работало надо чтобы у вас был аккаунт на OpenAI.
Forwarded from AI Для Всех
Нейрокомпрессия звука

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

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

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

Они добились примерно 10-кратной степени сжатия по сравнению с MP3 при 64 кбит/с без потери качества. Хотя подобные методы уже применялись для речи, они первыми применили их для стереофонического аудио с частотой дискретизации 48 кГц (т.е. качество CD), которое является стандартом для распространения музыки.

Pied Piper только что стал реальностью, более того - опенсорсной.

🦦 Блог-пост
📖 Статья
🤤 Код
Forwarded from addmeto (Grigory Bakunov)
А вот и первая нормальная подача в суд на GitHub Copilot. Фирма не особенно известная, Joseph Saveri, и если вы изучите дело чуть глубже, вы поймете, что это чисто юридический нонсенс, надеюсь, они в суде предъявят больше доказательств своей правоты. Самое смешное, кажется, на странице 18, там показывается вот такой кусок кода, созданного Copilot:


function isEven(n) {
return n % 2 === 0;
}


и уточняется, что этот кусок совершенно точно “основан на существующем коде. А именно, пример кода, который фигурирует в онлайн-книге Mastering JS, написанной Валерием Карповым”. Любой программист вам скажет, что это просто смехотворный пример, как утверждать, что слово “смехотворный” я списал из словаря. Так что дело они, конечно, проиграют, но хайп свой уже поймали.

https://githubcopilotlitigation.com/
"Broken" neural scaling laws
Caballero et al.
arxiv.org/abs/2210.14891

Давно не видел такого кликбейтного заголовка (скобочки добавил я, чтобы снизить ожидания). В статье Scaling Laws for Neural Language Models показали довольно строгую powerlaw-зависимость между размером нейросети и тестовым лоссом. Это сказало две вещи: 1) увеличение сети (при соответственном увеличении данных) это всегда хорошо (для LM) 2) насколько оно становится лучше, можно предсказать простой формулой loss = (n/N)^a, где n - число параметров сети, N=8.8 10^13, a=0.076.

Этот подход несколько раз улучшали, обобщали на другие задачи и архитектуры, но была проблема что хоть метод и точен для языкового моделирования, на downstream-задачах (например, классификации) он не работает. Более того зачастую зависимость между размером сети и качеством классификации немонотонна (иногда увеличение сети делает её хуже).

В статье broken scaling laws предлагают использовать не обычный powerlaw, а кусочную (отсюда — broken) функцию которая является powerlaw на отрезках. Это позвляет более точно фитить текущие данные о соотношении метрики и размера сети, но собственно вопрос в том а зачем это вообще надо? Ведь если функция кусочная, про экстраполяцию особенно не поговоришь, тк вдруг зависимость снова изменится.

В broken power law говорят что обычно после 1-2 разрывов немонотонное поведение прекращается и что с помощью предложенной формы powerlaw на практике можно более точно экстраполировать изменение метрик чем обычным (n/N)^a. Применили подход к ImageNet, BigBench, NMT, и некоторым играм AlphaZero.

То есть scaling laws не сломали, но зато у нас теперь есть ещё одна тулза, которая применима не только к LM, но и к другим задачам.
Одной строкой #13

1. Training Transformers — очень классный разбор того что важно в тренировке трансформеров от lr warmup и PreNorm до хитрых способов инициализации
1. DALL·E API Available in Public Beta — можно запрашивать как просто генерацию, так и editing, и вариации. Наверное через editing можно замутить и outpainting. Цена вопроса $0.02 за изображение 1024x1024
1. Midjourney V4 — новые картинки выглядят прямо на порядок лучше и детальнее. Ждём новых новостей того как Midjorney выигрывает art competitions?
1. LangChain — простая тулза которая запихает за вас длинные тексты в модельку. Работает так: нарезка на чатки, суммарицазия чанков, запихать все саммари в сетку.
1. Короткий рассказ о том как автоматизировали clapper detection с помощью диплёрнинга
1. Key to successful projects in Deep Learning are fast turnaround times of experiments. Тред о том как ускорять ваши эксперименты и за чем следить. Говорит про многие стандартные ошибки, буду всем студентам скидывать.
1. XONSH — a Python-powered shell. Сейчас ищу альтернативу zsh/fish и xonish выглядит забавно.

Промпт к картинке: Yann LeCun fighting thinking machines, Dune 2021. Midjorney v4
To recommend or not to recommend?

Бесплатный урок по основам рекомендательных систем от OTUS для тех кто уже знает ML и хочет погрузиться в recsys. На нём разберут несколько подходов к построению рекомендательных систем, как и почему они работают. Вы также реализуете одну из этих систем своими руками 🔥

Вебинар пройдет 16 ноября в 18:00 в преддверии старта онлайн-курса «Machine Learning. Advanced» от OTUS. Это шанс протестировать формат обучения и познакомиться с Марией Тихоновой, руководителем курсов по ML в OTUS и специалистом по анализу данных в команде AGI NLP в Сбере.

🔖промокод BLACKFRIDAY22 скидка -20% на курс до 30.11.2022

👉Регистрация: https://otus.pw/HsiZ/

#промо
BLOOM: A 176B-Parameter Open-Access Multilingual Language Model
BigScience
arxiv.org/abs/2211.05100

Мы уже много говорили про BigScience и BLOOM и вот наконец-то вышла статья со всеми деталями включая особенности архитектуры, тренировки и то как модель эвалюировали.

Интересно насколько сильно мир больших моделей изменился за последний год. Если после релиза T0 я совершенно не знал как запихать 11B для инференса в 4 V100, сейчас совершенно без проблем инферить 30B (в int8) всего с двумя 3090, а 11B помещается и в одну. И мне кажется BigScience оказал огромное косвенное влияние на развитие как коммьюнити тренирующего большие модели, так и тулз вокруг них: DeepSpeed, Accelerate, Megatron, bitsandbytes, ...

Но давайте про интересные моменты:
1. ROOTS (статья) — корпус на 1.6Tb текста на котором тренировали модель он разбит на датасеты по языкам и доменам и доступен на 🤗 Datasets
1. Архитектура (статья) — Decoder-only transformer, ALiBi positional embeddings, embedding LayerNorm. Нормализация эмбеддингов сильно помогает стабильности тренировки (в fp16). Токенизация делалась с помощью BPE и словать оптимизировали под fertility токенизатора для всех языков.
1. Тренировка: bfloat16 (сильно улучшает стабильность), 3D parallelism, cosine scheduler, lr=6e-5, beta2=0.95, batch size=2048.
1. Environment impact (статья) — тренировка GPT-3 выработала порядка 500 тонн CO2, тренировка BLOOM — 25. Это стало возможно благодаря более современным GPU, эффективным методам параллелизации и, самое главное, атомной электростанции которая питает суперкомьютер Jean Zay.

В общем статья BLOOM неплохо суммаризирует результаты BigScience и на удивление не очень большая (42 страницы). Рекомендую пройтись по ней и почитать те главы что вам интересны.

С моделькой можно поиграться в Spaces или запустить её локально. Веса модели в fp32 (?) занимают 360Гб. Вот тут гайд по использованию int8 в трансформерах. С ними вы можете запустить модель хоть на картошке, но если у вас меньше 300Гб GPU RAM будет считаться довольно медленно.
Кстати если вы всё ещё не перешли на Python 3.10 (или даже 3.11) оно того очень стоит. Главная причина — новые красивые и более удобочитаемые сообщения об ошибке.
Тинькофф проведет NLP-митап в Москве 🦾

Встречу AI-команда Тинькофф проведет вместе с VK.

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

— А исследователи из Тинькофф поделятся собственным методом эффективного файнтюнинга моделей и объяснят, как можно линейно интерполировать их веса.
Ждут всех, кто интересуется обработкой текстов или сопереживает ей.

Митап пройдет 22 ноября в БЦ «Водный». Зарегистрироваться и прочитать о докладах подробнее: https://o.tinkoff.ru/monolog-ai.tinkoff

#промо