Cегодня прочитал Transformer Circuits и это прямо хорошо
Основная идея - представить трансформер как последовательность матричных и тензорных произведений и использовать свойства тензорного произведения чтобы построить эквивалетную сеть, которую проще интерпретировать.
Теперь немного конкретнее про те вещи которые мне показались интересными.
Проще думать о том как работает трансформер, если смотреть на residual сеть как на основную. Остальные слои от неё отбранчовываются и добавляют/убирают информацию.
Attention heads — независимые друг от друга операторы (даже с учётом mixing matrix) которые переносят информацию из одних токенов в другие.
Дальше работают с упрощённым трансформером без LayerNorm и FFN.
Однослойный transformer можно (нестрого) интерпретировать как биграмную и скип-триграмную языковую модель. Что такое скип-триграммы? Например если у вас есть текст
Такой подход позволяет показать ограничения однослойной модели. Например так как триграмма [keep, ...., in] повышает вероятность mind а [keep, ..., at] вероятность bay, то модель также должна повышать верояности [keep, ..., at] -> mind и [keep, ..., in] -> bay. И несколько таких "багов" модели даже нашли.
Основная идея - представить трансформер как последовательность матричных и тензорных произведений и использовать свойства тензорного произведения чтобы построить эквивалетную сеть, которую проще интерпретировать.
Теперь немного конкретнее про те вещи которые мне показались интересными.
Проще думать о том как работает трансформер, если смотреть на residual сеть как на основную. Остальные слои от неё отбранчовываются и добавляют/убирают информацию.
Attention heads — независимые друг от друга операторы (даже с учётом mixing matrix) которые переносят информацию из одних токенов в другие.
Дальше работают с упрощённым трансформером без LayerNorm и FFN.
Однослойный transformer можно (нестрого) интерпретировать как биграмную и скип-триграмную языковую модель. Что такое скип-триграммы? Например если у вас есть текст
twitter.com/username/status
, то [twitter, ..., /]
может быть скиптриграммой в которой пропущено /username
Авторы показали что в обученной модели такая скиптриграмма сильно повышает вероятность status
.Такой подход позволяет показать ограничения однослойной модели. Например так как триграмма [keep, ...., in] повышает вероятность mind а [keep, ..., at] вероятность bay, то модель также должна повышать верояности [keep, ..., at] -> mind и [keep, ..., in] -> bay. И несколько таких "багов" модели даже нашли.
👍40❤5
Кажется Андрея Карпатого потянуло на образование. В прошлом месяце вышла его лекция по backprop, а теперь лекция по n-gram языковым моделям (count-based и neural)
И будет больше! Вот гитхаб: nn zero to hero
И будет больше! Вот гитхаб: nn zero to hero
YouTube
The spelled-out intro to language modeling: building makemore
We implement a bigram character-level language model, which we will further complexify in followup videos into a modern Transformer language model, like GPT. In this video, the focus is on (1) introducing torch.Tensor and its subtleties and use in efficiently…
🔥44👍7❤1
Скоро запускается новый ран Deep Learning Foundations от fast.ai 🔥
У fast.ai есть два главных курса:
1. Deep Learning for Coders, которй использует top-down подход где вас в начале учат black box тулзам и как быстро решать задачи, а потом постепенно знакомят с тем как эти black box работают
1. Deep Learning Foundations — отличное продолжение первого курса, которое работает совсем подругому. Bottom-up подход, объясняются самые основы и постепенно вы доходите от бэкпропа до всяких новых методов. Последний раз курс обновлялся в 2019, что по меркам DL довольно давно.
Новая итерация Deep Learning Foundations будет включать пару новых топиков, в том числе сontrastive learning, latent variables, и диффузионные модели такие как Stable Diffusion.
Курс будет доступен бесплатно "early 2023". Есть платная версия с доступом в октябре (проходить курс вместе с тем как он записывается в University of Queensland), но это стоит $500 😒, что как-то не очень доступно.
В любом случае курсы от fast.ai (даже их старые версии) это неплохой вариант быстро въехать в DL или взглянуть на DL под новым углом. Несмотря на то что у fast.ai много questionable coding practices, мне всё ещё кажется что курс очень интересный и сильно отличается от всех остальных.
У fast.ai есть два главных курса:
1. Deep Learning for Coders, которй использует top-down подход где вас в начале учат black box тулзам и как быстро решать задачи, а потом постепенно знакомят с тем как эти black box работают
1. Deep Learning Foundations — отличное продолжение первого курса, которое работает совсем подругому. Bottom-up подход, объясняются самые основы и постепенно вы доходите от бэкпропа до всяких новых методов. Последний раз курс обновлялся в 2019, что по меркам DL довольно давно.
Новая итерация Deep Learning Foundations будет включать пару новых топиков, в том числе сontrastive learning, latent variables, и диффузионные модели такие как Stable Diffusion.
Курс будет доступен бесплатно "early 2023". Есть платная версия с доступом в октябре (проходить курс вместе с тем как он записывается в University of Queensland), но это стоит $500 😒, что как-то не очень доступно.
В любом случае курсы от fast.ai (даже их старые версии) это неплохой вариант быстро въехать в DL или взглянуть на DL под новым углом. Несмотря на то что у fast.ai много questionable coding practices, мне всё ещё кажется что курс очень интересный и сильно отличается от всех остальных.
Practical Deep Learning for Coders
Practical Deep Learning for Coders - Practical Deep Learning
A free course designed for people with some coding experience, who want to learn how to apply deep learning and machine learning to practical problems.
👍24🔥5❤3
Ускоряем нейросетки с помощью PyTorch 1.2 и nvFuser
Кто такой этот ваш nvFuser? Это новый компилятор который заменяет/дополняет TorchScript и позволяет фьюзить несколько GPU операций в одну. Это особенно хорошо работает с последовательностями поэлементных операций, таких как сложные функции активации или последовательность простых операций как bias->dropout->layerNorm
Чем это отличается от гугловского XLA? Неплохо умеет работать с dynamic shapes, например если у вас у разных батчей разная длина последовательности, XLA придётся всё перекомпилировать, а nvFuser будет работать нормально. Замедление по сравнению со статическими шейпами есть но оно небольшое (сравните столбики Composite Definition и Random Sizes).
А вот тут официальный туториал от PyTorch
Кто такой этот ваш nvFuser? Это новый компилятор который заменяет/дополняет TorchScript и позволяет фьюзить несколько GPU операций в одну. Это особенно хорошо работает с последовательностями поэлементных операций, таких как сложные функции активации или последовательность простых операций как bias->dropout->layerNorm
Чем это отличается от гугловского XLA? Неплохо умеет работать с dynamic shapes, например если у вас у разных батчей разная длина последовательности, XLA придётся всё перекомпилировать, а nvFuser будет работать нормально. Замедление по сравнению со статическими шейпами есть но оно небольшое (сравните столбики Composite Definition и Random Sizes).
А вот тут официальный туториал от PyTorch
👍17🥰2😢1
Forwarded from Hints research (ex Market Research)
Друзья, сейчас важно помочь с релокацией тем, кто хочет уехать, но не может финансово сделать это в одиночку.
Вероятно многим в канале это не актуально, но прошу об услуге
1. Поделитесь с теми, кому это поможет
2. Поставьте в комментарии к городу, в котором вы находитесь, что вы там, это поможет запустить активность чата
——
Чат для поиска людей, с которыми можно скооперироваться для аренды жилья за границей
https://t.iss.one/friends_for_relocate
Зачем это?
- многие уезжают по одиночке
- многим дорого снимать квартиру на одного
- а если снимать вместе то сильно дешевле
- квартиры уже сильно подорожали (в 2-3 раза) плюс однушки заняты
Как использовать
- выбирайте из списка в канале город, куда собираетесь ехать
- пишите в комментарии когда собираетесь ехать, или что уже приехали и ищете соседей
- пишите тем кто едет туда же
- снимайте квартиру совместно
Зовите других людей
- многие не решаются уезжать, потому что уже очень дорого, а зарплата не позволяет
- расскажите им про чат, чтобы они увидели, с кем могут скооперироваться, как могут сэкономить, и наконец решились уехать
Вероятно многим в канале это не актуально, но прошу об услуге
1. Поделитесь с теми, кому это поможет
2. Поставьте в комментарии к городу, в котором вы находитесь, что вы там, это поможет запустить активность чата
——
Чат для поиска людей, с которыми можно скооперироваться для аренды жилья за границей
https://t.iss.one/friends_for_relocate
Зачем это?
- многие уезжают по одиночке
- многим дорого снимать квартиру на одного
- а если снимать вместе то сильно дешевле
- квартиры уже сильно подорожали (в 2-3 раза) плюс однушки заняты
Как использовать
- выбирайте из списка в канале город, куда собираетесь ехать
- пишите в комментарии когда собираетесь ехать, или что уже приехали и ищете соседей
- пишите тем кто едет туда же
- снимайте квартиру совместно
Зовите других людей
- многие не решаются уезжать, потому что уже очень дорого, а зарплата не позволяет
- расскажите им про чат, чтобы они увидели, с кем могут скооперироваться, как могут сэкономить, и наконец решились уехать
👍40💩21🔥4😢3😁2❤1👎1
BigScience announces BigCode project
1. 15B языковая модель для кода
1. Первая задача: сделать хороший большой датасет, причём с оглядкой на лицензии чтобы не было всяких вопросов о GPLv3
1. Вторая задача: разработка новых тулз для эвалюации кодогенерирующих моделей, чтобы они были проще и более доступны
1. Третья задача: исследование всех возможных трюков (включая архитектурные) чтобы сделать инферренс быстрым
1. Деньги на тренировку даёт ServiceNow
1. Если хотите присоединиться к коллаборации, а именно готовы писать код и участвовать в обсуждениях, вот ссылочка
1. 15B языковая модель для кода
1. Первая задача: сделать хороший большой датасет, причём с оглядкой на лицензии чтобы не было всяких вопросов о GPLv3
1. Вторая задача: разработка новых тулз для эвалюации кодогенерирующих моделей, чтобы они были проще и более доступны
1. Третья задача: исследование всех возможных трюков (включая архитектурные) чтобы сделать инферренс быстрым
1. Деньги на тренировку даёт ServiceNow
1. Если хотите присоединиться к коллаборации, а именно готовы писать код и участвовать в обсуждениях, вот ссылочка
👍16🔥8
Одной строкой #10
1. У Tesla прошёл AI day. Показали робота Optimus, который выглядит кривовато, но утверждают что его сделали за несколько месяцев (из личных источников: около года). Это очень быстро для робототехники, где всё не так сильно меняется как в DL. В отличие от boston dynamics - упирают на автономию, а не на remote control (но пока этого нет). Посмотрим что покажут ещё через год.
1. Сontext distillation - step-by-step reasoning для автолейбелинга, а потом дообуение на этих лейблах но без step-by-step. В результате минимальные потери в качестве, но более быстрый инференс.
1. Large Language Models Can Self-Improve - идея в том чтобы модель сгенерировала несколько chain of thought, после чего по majority vote выбирается правильный ответ, потом на этом можно обучаться. Докидывает по 4-5 пунктов.
1. Обзор результатов WMT-22 — метрики всё ещё плохие, сравнивать модели между собой становится всё сложнее, тк они становятся лучше. Самая нерешённая задача: низкоресурсный перевод между далёкими друг от друга языками.
1. Dilated Neighborhood Attention Transformer - vision коммьютини начинает знакомиться с различными сопособами sparse attention. В этот раз сделали dialation. Вангую что в будущем все трансформеры будут с каким-то простым sparse-механизмом типо этого или strided + global tokens.
1. Action Transcription - transcription к почти любому видео в интернете. Если у видео есть приложенные captions, то от их просто загрузит, а если нет — использует OpenAI Whisper для транскрипции и перевода на английский. Интерфейс очень забавный — вы создаёте issue на гитхабе со ссылкой, а дальше всё за вас делает github actions.
1. TorchOK - новая библиотечка которая позволяет строить пайплайны для нейросеток. На мой взгяд это чуть более высокоуровневый Lightning, чуть более prod-oriented, с забавным названием.
1. У Tesla прошёл AI day. Показали робота Optimus, который выглядит кривовато, но утверждают что его сделали за несколько месяцев (из личных источников: около года). Это очень быстро для робототехники, где всё не так сильно меняется как в DL. В отличие от boston dynamics - упирают на автономию, а не на remote control (но пока этого нет). Посмотрим что покажут ещё через год.
1. Сontext distillation - step-by-step reasoning для автолейбелинга, а потом дообуение на этих лейблах но без step-by-step. В результате минимальные потери в качестве, но более быстрый инференс.
1. Large Language Models Can Self-Improve - идея в том чтобы модель сгенерировала несколько chain of thought, после чего по majority vote выбирается правильный ответ, потом на этом можно обучаться. Докидывает по 4-5 пунктов.
1. Обзор результатов WMT-22 — метрики всё ещё плохие, сравнивать модели между собой становится всё сложнее, тк они становятся лучше. Самая нерешённая задача: низкоресурсный перевод между далёкими друг от друга языками.
1. Dilated Neighborhood Attention Transformer - vision коммьютини начинает знакомиться с различными сопособами sparse attention. В этот раз сделали dialation. Вангую что в будущем все трансформеры будут с каким-то простым sparse-механизмом типо этого или strided + global tokens.
1. Action Transcription - transcription к почти любому видео в интернете. Если у видео есть приложенные captions, то от их просто загрузит, а если нет — использует OpenAI Whisper для транскрипции и перевода на английский. Интерфейс очень забавный — вы создаёте issue на гитхабе со ссылкой, а дальше всё за вас делает github actions.
1. TorchOK - новая библиотечка которая позволяет строить пайплайны для нейросеток. На мой взгяд это чуть более высокоуровневый Lightning, чуть более prod-oriented, с забавным названием.
🔥20👍2😁2
Cold Diffusion: Inverting Arbitrary Image Transforms Without Noise
Bansal et al, [University of Maryland and NYU]
arxiv.org/abs/2208.09392
Многое что мы знаем о диффузии, например PLMS sampling или даже в принципе лосс диффузионных моделей опираются на то что мы предполагаем что в генерируемое распределение добавляют случайный гауссовский шум. Авторы этой статьи решили протестировать насколько гауссовость и случайность вообще важны и оказалось что в общем несильно.
Вместо зашумнения они используют такие операции как блюр, пикселизацию, маскирование и даже "снег" и экстраполяцию между разными изображениями. Главная модификация: зашумление производится не как x = D(x, t - 1), а как x = x - D(x, t) + D(x, t - 1) где D - функция шума, а t - степерь шума.
Результаты (FID) хуже чем у обычной (горячей) диффузии, но картинки выглядят весьма неплохо и методв в принципе работает что может немного противоречить текущей теории.
Bansal et al, [University of Maryland and NYU]
arxiv.org/abs/2208.09392
Многое что мы знаем о диффузии, например PLMS sampling или даже в принципе лосс диффузионных моделей опираются на то что мы предполагаем что в генерируемое распределение добавляют случайный гауссовский шум. Авторы этой статьи решили протестировать насколько гауссовость и случайность вообще важны и оказалось что в общем несильно.
Вместо зашумнения они используют такие операции как блюр, пикселизацию, маскирование и даже "снег" и экстраполяцию между разными изображениями. Главная модификация: зашумление производится не как x = D(x, t - 1), а как x = x - D(x, t) + D(x, t - 1) где D - функция шума, а t - степерь шума.
Результаты (FID) хуже чем у обычной (горячей) диффузии, но картинки выглядят весьма неплохо и методв в принципе работает что может немного противоречить текущей теории.
👍5
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
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
🔥11❤2👍2🏆2
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😁
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
👍27🔥5
Building makemore Part 3: Activations & Gradients, BatchNorm
youtu.be/P6sfmUTpUmc
🔥🔥🔥
Новое видео от Андрея Карпатого про функции активации, нормализацию и то как тренировать нейросети лучше и быстрее. Must watch как новичкам так и всем остальным, тк это самая актуальная лекция на эту тему.
youtu.be/P6sfmUTpUmc
🔥🔥🔥
Новое видео от Андрея Карпатого про функции активации, нормализацию и то как тренировать нейросети лучше и быстрее. Must watch как новичкам так и всем остальным, тк это самая актуальная лекция на эту тему.
YouTube
Building makemore Part 3: Activations & Gradients, BatchNorm
We dive into some of the internals of MLPs with multiple layers and scrutinize the statistics of the forward pass activations, backward pass gradients, and some of the pitfalls when they are improperly scaled. We also look at the typical diagnostic tools…
🔥38👍4
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. Поддерживаются модели 🤗. Выгядит интересно, ещё бы документацию завезли и конфигов поменьше и был бы вообще топ.
Помните статьи 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. Поддерживаются модели 🤗. Выгядит интересно, ещё бы документацию завезли и конфигов поменьше и был бы вообще топ.
GitHub
GitHub - allenai/RL4LMs: A modular RL library to fine-tune language models to human preferences
A modular RL library to fine-tune language models to human preferences - allenai/RL4LMs
🔥14👍5👏2
Одной строкой #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.
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.
👍21🔥4
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).
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).
👍26🔥3👏1
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 предпоитает английскую грамматику и порядок слов. Даже в тех языках где можно строить предложения подругому (греческий, испанский).
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 предпоитает английскую грамматику и порядок слов. Даже в тех языках где можно строить предложения подругому (греческий, испанский).
👍17🔥6🤔3❤1
🌶 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. Запасаемся попкорном, может быть интересно. 🍿🍿🍿
Помните бугурт когда 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. Запасаемся попкорном, может быть интересно. 🍿🍿🍿
Githubcopilotinvestigation
GitHub Copilot investigation · Joseph Saveri Law Firm & Matthew Butterick
👍17🤡10🤯3😁2
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. Думаю надо будет заняться этим на выходных.
Увидел в твиттере совершенно огненный тред о том как 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. Думаю надо будет заняться этим на выходных.
🤯66👍17🔥6❤3🍾1