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

Связь: @dropout05 (рекламы нет)
Download Telegram
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

#промо
Мою статью с амазоновской стажировки приняли на воркшоп 🎉🎉🎉

Как только разрешим всю бюрократию и опубликуем, сразу сделаем обзор в канал. Если коротко: текущие датасеты для предобучения на видео настолько плохи что автолейбелинг с помощью Image Captioning работает лучше их. А если добавить несколько миллиардов параметров и предобученную LM, то приближаемся к SOTA.

Это было очень хардкорное лето и оно окупилось. Пусть не NeurIPS, но в январе я еду на Гавайи 🏝️
The State of Multilingual AI
ruder.io/state-of-multilingual-ai

В 2019 был взрыв мультиянычных моделей. Что изменилось с тех пор?

Status Quo
В 2008 году 63% статей на ACL были исключительно об английском. Сейчас — 70%. Но мы учимся тренировать мультиязычные модели (mBERT, XLM-R, mDeBERTa, ...) и вот что для них важно: большой словать, зашаривание токенов между языками, subword fertility (сколько нужно токенов на одно слово). В осноном модели тренируются на <100 языках (в мире 400 языков с более чем 1М носителей). Одна из причин: curse of multilinguality. Большое чило языков требует больших моделей и данных. Из > 100B моделей только BLOOM включает в себя несколько десятков языков. Данные тоже проблема — в интернете не так много языков как кажется и после первых двух сотен уже сложно найти хоть сколько-нибудь качестенные данные.

Recent Progress
Активно появляются новые датасеты. Например в 2018 году аналога SQuAD не было даже для русского, но теперь QA есть для десятков языков. Появляется больше неанглийских моделей: AfriBERTa, KinyaBERT, IndicBERT, MuRIL, ... и они также проникают в индустрию.

Challenges and Opportunities
Главная проблема — данные. Интересные источники: рукописные или печатные книги. Многие из них даже уже отсканированы, но не транскрибированны. Также нужно искать новые способы алайнмента текстов между языками. Вторая проблема — compute. Как можно дёшево адаптировать модели под новые языки? Третья проблема — различная топология языков. Мы видим что китайский NLP довольно заметно отличается от обычного западного NLP, в особенности в токенизации. Скорее всего у большого числа non-western языков есть своя специфика и её стоит учитывать.

Кажется что прогресс в мультиязычном NLP замедлился. Новых методов немного, а те что есть не дают огромных улучшений. Посмотрим что изменится в 2023. Может быть мы увидим многотрилионные мультиязычные модели которые решат кучу проблем грубой силой. А может быть появятся новые классные способы предтренировки, алайнмента и майнинга или адаптации моделей.
Forwarded from эйай ньюз
Временами страдаете от NaN во время обучения сеточек? А все потому что вы не любите свои тензоры.

Делюсь с вами классной либой для дебага и красивого принта тензоров: Lovely Tensors 😍

Эта либка умеет даже пропатчить pytorch и подменить стандартную функцию repr у тензоров.

@ai_newz
На этой неделе в Новом Орлеане проходит NeurIPS 2022, пожалуй самая большая конференция в диплернинге. И мне даже удалось на неё поехать. 🎉

Если вы тоже на NeurIPS - пишите и буду рад встретиться. Если нет - все мои впечатления и интересные штуки будут в канале.
text-davinci-003

Обновленная версия GPT-3 от OpenAI, вот что она умеет:
1. Лучше следует инструкциям (сделано с помощью RL и метода InstructGPT)
1. Higher quality writing — предположу что модельку потюнили на большем количестве текстов и у неё перплексия получше.
1. Лучше продолжает длинные тексты. Но лимит токенов всё ещё 4К, что в два раза меньше code-davinci-002, так что ждём ещё апдейтов.

Цена та же что и у 002, так что нет причин не использовать.