Forwarded from эйай ньюз
Finetuned Language Models Are Zero-Shot Learners (FLAN)
Новая статейка от Google Research о языковой модели на 137-миллиардов параметров, которая превосходит GPT-3 (few-shot) на различных задачах в zero shot сценарии.
🗯Идея. Предлагается новый метод файнтьюнинга, называемый "instruction tuning". Тут авторы используют идею, что NLP задачи могут быть описаны человеческими словами. Например, “Is the sentiment of this movie review positive or negative?” или “Translate ‘how are you’ into Chinese.” Итак, берется предобученный трансформер на 137-миллиардов параметров (состоит только из декодера), и файнтьюнится на пачке задач с текстовыми инструкциями. После этого его тестируют на новых задачах, также описанных текстом.
✔️Результат. FLAN модель (137 миллиардов параметров) после "instruction tuning" уделывает GPT-3 (175 миллиардов параметров) на 19 из 25 новых языковых задачах.
Статья на arxiv. Кода пока нет, но должен появиться тут.
Новая статейка от Google Research о языковой модели на 137-миллиардов параметров, которая превосходит GPT-3 (few-shot) на различных задачах в zero shot сценарии.
🗯Идея. Предлагается новый метод файнтьюнинга, называемый "instruction tuning". Тут авторы используют идею, что NLP задачи могут быть описаны человеческими словами. Например, “Is the sentiment of this movie review positive or negative?” или “Translate ‘how are you’ into Chinese.” Итак, берется предобученный трансформер на 137-миллиардов параметров (состоит только из декодера), и файнтьюнится на пачке задач с текстовыми инструкциями. После этого его тестируют на новых задачах, также описанных текстом.
✔️Результат. FLAN модель (137 миллиардов параметров) после "instruction tuning" уделывает GPT-3 (175 миллиардов параметров) на 19 из 25 новых языковых задачах.
Статья на arxiv. Кода пока нет, но должен появиться тут.
∞-former: Infinite Memory Transformer
Martins et al.
arxiv.org/abs/2109.00301
Просто бомбическая статья о том, как сделать attention сколько угодно длинным. Для этого attention вычисляется не для N токенов, а как некоторая непрерывная функция. Дальше только веселее — последовательность токенов тоже представляют как непрерывную функцию. Конкретно, как линейную комбинацию из K радиально-базисных функций. При этом число базисных функций K может быть меньше числа токенов N.
Пайплайн выглядит вот так:
1. берём токены, эмбеддим, а дальше аппроксимируем получившуюся матрицу с помощью K базисных функций, точнее как X = B @ F, где B - матрица размера N на K, а F - это K базисных функций
2. берём матрицу B и считаем keys и values для attention с помощью линейных проекций
3. далее мы хотим получить непрерывный attention, который мы моделируем с помощью гауссианы N(mu, sigma). Для этого считаем mu и sigma как attention между keys и queries плюс ещё одно линейное преобразование плюс sigmoid (для mu) или softplus (для sigma^2)
4. теперь делаем взвешенное усреднение values с весами полученными от гаусианы, то есть условное матожидание. Авторы мало про это пишут, скорее всего есть какие-то аналитические решения для матожидания радиальных функций, которые тут использутся.
5. последний шаг — сделать всё это n_heads раз и потом смешать все головы с помощью линейного слоя. Это помогает избавиться от того, что у гаусиана унимодальна (у неё только один пик) и после смешивания нескольких разных гаусиан наш attention может смотреть на несколько разных кусков текста.
Результаты: на wikitext-103 превосходит TransformerXL и Compressive Transformer. Также придумали процедуру "обесконечивания" обычных трансформеров, где обычный attention дополняется бесконечным attention и файнтюнится.
Martins et al.
arxiv.org/abs/2109.00301
Просто бомбическая статья о том, как сделать attention сколько угодно длинным. Для этого attention вычисляется не для N токенов, а как некоторая непрерывная функция. Дальше только веселее — последовательность токенов тоже представляют как непрерывную функцию. Конкретно, как линейную комбинацию из K радиально-базисных функций. При этом число базисных функций K может быть меньше числа токенов N.
Пайплайн выглядит вот так:
1. берём токены, эмбеддим, а дальше аппроксимируем получившуюся матрицу с помощью K базисных функций, точнее как X = B @ F, где B - матрица размера N на K, а F - это K базисных функций
2. берём матрицу B и считаем keys и values для attention с помощью линейных проекций
3. далее мы хотим получить непрерывный attention, который мы моделируем с помощью гауссианы N(mu, sigma). Для этого считаем mu и sigma как attention между keys и queries плюс ещё одно линейное преобразование плюс sigmoid (для mu) или softplus (для sigma^2)
4. теперь делаем взвешенное усреднение values с весами полученными от гаусианы, то есть условное матожидание. Авторы мало про это пишут, скорее всего есть какие-то аналитические решения для матожидания радиальных функций, которые тут использутся.
5. последний шаг — сделать всё это n_heads раз и потом смешать все головы с помощью линейного слоя. Это помогает избавиться от того, что у гаусиана унимодальна (у неё только один пик) и после смешивания нескольких разных гаусиан наш attention может смотреть на несколько разных кусков текста.
Результаты: на wikitext-103 превосходит TransformerXL и Compressive Transformer. Также придумали процедуру "обесконечивания" обычных трансформеров, где обычный attention дополняется бесконечным attention и файнтюнится.
Видосик от Yannic Kilcher c обзором бесконечноформера
www.youtube.com/watch?v=0JlB9gufTw8
www.youtube.com/watch?v=0JlB9gufTw8
YouTube
∞-former: Infinite Memory Transformer (aka Infty-Former / Infinity-Former, Research Paper Explained)
#inftyformer #infinityformer #transformer
Vanilla Transformers are excellent sequence models, but suffer from very harsch constraints on the length of the sequences they can process. Several attempts have been made to extend the Transformer's sequence length…
Vanilla Transformers are excellent sequence models, but suffer from very harsch constraints on the length of the sequences they can process. Several attempts have been made to extend the Transformer's sequence length…
А Jax начинает выглядеть неплохо. Всё-таки надо будет написать на нём что-то посерьёзнее полносвязной сетки, посмотреть как оно в жизни.
On the ability of monolingual models to learn language-agnostic representations
Souza et al, [University of Campinas]
arxiv.org/abs/2109.01942
Авторы заметили, что любая предтренировка помогает мультиязычному трансферу. Например если мы возьмём вьетнамский BERT и зафайнтюним его на португальскую задачу, это будет конечно хуже, чем использовать португальский BERT, но сильно лучше, чем ели не предтренировыват модель вообще.
Экспериментировали с английским, немецким, португальским и вьетнамским. Специально подобрали модели так, чтобы они были натренированы и зафайнюнены примерно на одинаковом количестве данных. Интересно, что качество трансфера слабо зависит от языка — то есть если вы файнюните с немецкого на португальский или с английского метрики будут довольно близки друг к другу.
Ещё одна статья в копилку тех, кто подтверждает что MLM учит довольно общие фичи, полезные для разных языков. Было бы конечно итересно увидеть тут какой-нибудь японский, жаль не завезли.
Souza et al, [University of Campinas]
arxiv.org/abs/2109.01942
Авторы заметили, что любая предтренировка помогает мультиязычному трансферу. Например если мы возьмём вьетнамский BERT и зафайнтюним его на португальскую задачу, это будет конечно хуже, чем использовать португальский BERT, но сильно лучше, чем ели не предтренировыват модель вообще.
Экспериментировали с английским, немецким, португальским и вьетнамским. Специально подобрали модели так, чтобы они были натренированы и зафайнюнены примерно на одинаковом количестве данных. Интересно, что качество трансфера слабо зависит от языка — то есть если вы файнюните с немецкого на португальский или с английского метрики будут довольно близки друг к другу.
Ещё одна статья в копилку тех, кто подтверждает что MLM учит довольно общие фичи, полезные для разных языков. Было бы конечно итересно увидеть тут какой-нибудь японский, жаль не завезли.
XLM-E: Cross-lingual Language Model Pre-training via ELECTRA
Chi et al. [Microsoft]
arxiv.org/abs/2106.16138
Помните XLM-R? BERT-like модельку, где MLM делали на парах [предложение] [SEP] [перевод] и таким образом обучали классную мультиязычную модель?
В этой статье сделали то же самое, но c задачкой ELECTRA, где модель не заменет MASK на пропущенные слова, а пытается детектировать какие слова оригинальные, а какие подменённые (просто бинарная классификация). Подменой слов занимается другая модель, которая учится как BERT.
По результатам XLM-E показывает 100-кратное уменьшение FLOPS для предобучения и заметный буст в cross-lingual zero-shot transfer. Приятно читается, жалко только что кода XLM-E по ссылки из статьи нету.
Chi et al. [Microsoft]
arxiv.org/abs/2106.16138
Помните XLM-R? BERT-like модельку, где MLM делали на парах [предложение] [SEP] [перевод] и таким образом обучали классную мультиязычную модель?
В этой статье сделали то же самое, но c задачкой ELECTRA, где модель не заменет MASK на пропущенные слова, а пытается детектировать какие слова оригинальные, а какие подменённые (просто бинарная классификация). Подменой слов занимается другая модель, которая учится как BERT.
По результатам XLM-E показывает 100-кратное уменьшение FLOPS для предобучения и заметный буст в cross-lingual zero-shot transfer. Приятно читается, жалко только что кода XLM-E по ссылки из статьи нету.
Multi-Sentence Resampling: A Simple Approach to Alleviate Dataset Length Bias and Beam-Search Degradation
Provilkov and Malinin [Yandex Research]
arxiv.org/abs/2109.06253
Есть известная проблема, что при больших beam size системы машинного перевода начинают генерировать более короткие и зачастую неправильные переводы. Этому можно противостоять, если нормализовать вероятности beam search на длину текста, но в чём причина такого поведения?
Ответ банальный, но зато интуитивно понятный. Авторы статьи проанализировали ошибки и увидели, что BELU перевода начинает резко падать, когда перевод длиннее среднего перевода в обучающей выборке. Прямо на графике видно, что примерно после этого числа ошибка начинает расти. Совпадение? Не думаю.
Для решения проблемы предлагают простой метод аугментации — конкатенировать тексты и переводы друг с другом, просто рандомно семплируя их (называется MSR на графике). Это повышает BLEU в общем, но в особенности сильно виден эффект на больших beam size, что подтверждает гипотезу о том, что это просто эффект длины тренировочных текстов.
Provilkov and Malinin [Yandex Research]
arxiv.org/abs/2109.06253
Есть известная проблема, что при больших beam size системы машинного перевода начинают генерировать более короткие и зачастую неправильные переводы. Этому можно противостоять, если нормализовать вероятности beam search на длину текста, но в чём причина такого поведения?
Ответ банальный, но зато интуитивно понятный. Авторы статьи проанализировали ошибки и увидели, что BELU перевода начинает резко падать, когда перевод длиннее среднего перевода в обучающей выборке. Прямо на графике видно, что примерно после этого числа ошибка начинает расти. Совпадение? Не думаю.
Для решения проблемы предлагают простой метод аугментации — конкатенировать тексты и переводы друг с другом, просто рандомно семплируя их (называется MSR на графике). Это повышает BLEU в общем, но в особенности сильно виден эффект на больших beam size, что подтверждает гипотезу о том, что это просто эффект длины тренировочных текстов.
The Importance of Deconstruction
slideslive.com/38938218/the-importance-of-deconstruction
Очень хорошее выступление на NeurIPS 2020, где обсуждают как пишутся ML статьи, чем это отличается от физики и что нужно поменьше доверять хитрым архитектурам. Много хороших примеров с тем, как сложные и интересные методы с хитрыми архитектурами сводились к условному KNN и простому препроцессингу.
slideslive.com/38938218/the-importance-of-deconstruction
Очень хорошее выступление на NeurIPS 2020, где обсуждают как пишутся ML статьи, чем это отличается от физики и что нужно поменьше доверять хитрым архитектурам. Много хороших примеров с тем, как сложные и интересные методы с хитрыми архитектурами сводились к условному KNN и простому препроцессингу.
SlidesLive
Kilian Q. Weinberger · The Importance of Deconstruction
Fine-Tuned Transformers Show Clusters of Similar Representations Across Layers
Phang et al.
arxiv.org/abs/2109.08406
Интересная находка, что после файнтюнинга RoBERTa векторы CLS разных слоёв начинают быть похожи друг на друга. Точнее, условно первые 8 слоёв очень сильно похожи друг на друга и последние 16. Таких блоков немного, обычно 2-3 штуки. Авторы предполагают что это намекает на то, что модель игнорирует много слоёв, так как их фичи неполезны для задачи. Тестировали на SuperGLUE и нескольких других датасетах. До файтнюнинга такой структуры нету. Нашли похожее поведение в ALBERT и в ELECTRA, но в ELECTRA оно проявлено совсем слабо.
После этого авторы решили просто выключить "неиспользуемые" слои и посмотреть как после этого будет работать сетка. Выяснилось, что если делать это аккуратно, качество практически не меняется.
Phang et al.
arxiv.org/abs/2109.08406
Интересная находка, что после файнтюнинга RoBERTa векторы CLS разных слоёв начинают быть похожи друг на друга. Точнее, условно первые 8 слоёв очень сильно похожи друг на друга и последние 16. Таких блоков немного, обычно 2-3 штуки. Авторы предполагают что это намекает на то, что модель игнорирует много слоёв, так как их фичи неполезны для задачи. Тестировали на SuperGLUE и нескольких других датасетах. До файтнюнинга такой структуры нету. Нашли похожее поведение в ALBERT и в ELECTRA, но в ELECTRA оно проявлено совсем слабо.
После этого авторы решили просто выключить "неиспользуемые" слои и посмотреть как после этого будет работать сетка. Выяснилось, что если делать это аккуратно, качество практически не меняется.
Курс по NLP от Open Data Science 🦜
ods.ai/tracks/nlp-course
Очень советую этот курс, тк его ведёт Валентин Малых кто в своё время стартовал курс по NLP в iPavlov. В курсе всё начинается с самых основ, таких как что такое токенизация и зачем нейросети нужны в NLP и идёт вплоть до предобучения трансформеров и более свежих статей. По окончанию курса от студента ожидается финальный проект. Примеры проектов прошлых лет есть тут. Записи первых лекций и первые тесты уже доступны на сайте, новые лекции проходят в Zoom, время записаться ещё есть.
ods.ai/tracks/nlp-course
Очень советую этот курс, тк его ведёт Валентин Малых кто в своё время стартовал курс по NLP в iPavlov. В курсе всё начинается с самых основ, таких как что такое токенизация и зачем нейросети нужны в NLP и идёт вплоть до предобучения трансформеров и более свежих статей. По окончанию курса от студента ожидается финальный проект. Примеры проектов прошлых лет есть тут. Записи первых лекций и первые тесты уже доступны на сайте, новые лекции проходят в Zoom, время записаться ещё есть.
Forwarded from Data Science by ODS.ai 🦜
Summarizing Books with Human Feedback
#OpenAI fine-tuned #GPT3 to summarize books well enough to be human-readable. Main approach: recursively split text into parts and then meta-summarize summaries.
This is really important because once there will be a great summarization #SOTA we won't need editors to write posts for you. And researchers ultimatively will have some asisstance interpreting models' results.
BlogPost: https://openai.com/blog/summarizing-books/
ArXiV: https://arxiv.org/abs/2109.10862
#summarization #NLU #NLP
#OpenAI fine-tuned #GPT3 to summarize books well enough to be human-readable. Main approach: recursively split text into parts and then meta-summarize summaries.
This is really important because once there will be a great summarization #SOTA we won't need editors to write posts for you. And researchers ultimatively will have some asisstance interpreting models' results.
BlogPost: https://openai.com/blog/summarizing-books/
ArXiV: https://arxiv.org/abs/2109.10862
#summarization #NLU #NLP
Recursively Summarizing Books with Human Feedback
Wu et al. [OpenAI]
arxiv.org/abs/2109.10862
openai.com/blog/summarizing-books
Эксперименты OpenAI с суммаризацией книг. По-моему это может быть одним из лучших бенчмарков "умности" текущих методов ML, поэтому я очень хайпаю статью.
Сама статья очень необычная сразу по нескольким причинам. С одной стороны, это OpenAI и мы ожидаем от них безумных экспериментов с почти неограниченными вычислительными ресурсами. С другой стороны, к этому проекту они привлекли ещё более дорогой ресурс — людей. Модель тренируется не один раз на заготовленном датасете по суммаризации, а итеративно улучшается с фидбеком от специальных тренированных людей. Фидбэк бывает двух видов: 1) человек пишет более правильное саммари 2) человек выбирает одно из двух саммари написанных моделью. В случае 1 понятно как улучшить модель — просто зафайнтюнить на дополнительных данных. Случай 2 веселее — тут используется великий и страшный reinforcement learning.
Теперь про сам подход. Он довольно простой. Допустим у вас есть текст размера 10K токенов, а модель может читать только 2К. Разделим текст на 5 чанков по 2К и для каждого из них сгенерируем саммари допустим размера 500 токенов. Потом сконкатим их и получим текст длины 2.5K токенов. Всё ещё слишком длинно — разделим его на два куска и пусть каждый из них сгенерит саммари по 500 токенов. Сконкатим эти результаты, получим текст 1000 токенов. Теперь можно получить из него финальное саммари.
Подход очень простой и решает кучу проблем. Во-первых такую разметку просто делать. Вы не заставляете людей суммаризировать целые книги, а лишь просите из суммаризировать чанки по 2K токенов. Куча плюсов: людям проще такое делать, машинам проще такое учить, плюс с одной книги получаете кучу разметки. В качестве инициализации для модели используют GPT-3.
В результате подход получается на удивление прикладным, итеративным и масштабируемым. Мне кажется, ровно так можно организовать работу команды занимающейся задачей суммаризации где-нибудь в индустрии.
По результатам: некоторые саммари близки по качеству к человекам, но их около 5% 🍒. В среднем скор человека ~6/7, а лучшей модели ~3.5/7. Естественно размер модели важен и 175млрд параметров дают огромный буст по сравнению с 6млрд. Внезапно RL хорошо зашёл и его использование улучшает скор с 2.5 до 3.5. Думаю он эффективен потому что доставать для него данные просто — людям нужно лишь выбрать одно из двух саммари, а не писать новое.
Как всегда в статье от OpenAI много интересных технических деталей, например как они выбрали на каких узлах дерева тренировать модель. Явно стоит того, чтобы потратить час на чтение.
Wu et al. [OpenAI]
arxiv.org/abs/2109.10862
openai.com/blog/summarizing-books
Эксперименты OpenAI с суммаризацией книг. По-моему это может быть одним из лучших бенчмарков "умности" текущих методов ML, поэтому я очень хайпаю статью.
Сама статья очень необычная сразу по нескольким причинам. С одной стороны, это OpenAI и мы ожидаем от них безумных экспериментов с почти неограниченными вычислительными ресурсами. С другой стороны, к этому проекту они привлекли ещё более дорогой ресурс — людей. Модель тренируется не один раз на заготовленном датасете по суммаризации, а итеративно улучшается с фидбеком от специальных тренированных людей. Фидбэк бывает двух видов: 1) человек пишет более правильное саммари 2) человек выбирает одно из двух саммари написанных моделью. В случае 1 понятно как улучшить модель — просто зафайнтюнить на дополнительных данных. Случай 2 веселее — тут используется великий и страшный reinforcement learning.
Теперь про сам подход. Он довольно простой. Допустим у вас есть текст размера 10K токенов, а модель может читать только 2К. Разделим текст на 5 чанков по 2К и для каждого из них сгенерируем саммари допустим размера 500 токенов. Потом сконкатим их и получим текст длины 2.5K токенов. Всё ещё слишком длинно — разделим его на два куска и пусть каждый из них сгенерит саммари по 500 токенов. Сконкатим эти результаты, получим текст 1000 токенов. Теперь можно получить из него финальное саммари.
Подход очень простой и решает кучу проблем. Во-первых такую разметку просто делать. Вы не заставляете людей суммаризировать целые книги, а лишь просите из суммаризировать чанки по 2K токенов. Куча плюсов: людям проще такое делать, машинам проще такое учить, плюс с одной книги получаете кучу разметки. В качестве инициализации для модели используют GPT-3.
В результате подход получается на удивление прикладным, итеративным и масштабируемым. Мне кажется, ровно так можно организовать работу команды занимающейся задачей суммаризации где-нибудь в индустрии.
По результатам: некоторые саммари близки по качеству к человекам, но их около 5% 🍒. В среднем скор человека ~6/7, а лучшей модели ~3.5/7. Естественно размер модели важен и 175млрд параметров дают огромный буст по сравнению с 6млрд. Внезапно RL хорошо зашёл и его использование улучшает скор с 2.5 до 3.5. Думаю он эффективен потому что доставать для него данные просто — людям нужно лишь выбрать одно из двух саммари, а не писать новое.
Как всегда в статье от OpenAI много интересных технических деталей, например как они выбрали на каких узлах дерева тренировать модель. Явно стоит того, чтобы потратить час на чтение.
Openai
Summarizing books with human feedback
Scaling human oversight of AI systems for tasks that are difficult to evaluate.
Forwarded from Silero News (Alexander)
We Have Published a Model For Text Repunctuation and Recapitalization
The model works with SINGLE sentences (albeit long ones) and:
- Inserts capital letters and basic punctuation marks (dot, comma, hyphen, question mark, exclamation mark, dash for Russian);
- Works for 4 languages (Russian, English, German, Spanish) and can be extended;
- By design is domain agnostic and is not based on any hard-coded rules;
- Has non-trivial metrics and succeeds in the task of improving text readability;
Links:
- Model repo - https://github.com/snakers4/silero-models#text-enhancement
- Colab notebook - https://colab.research.google.com/github/snakers4/silero-models/blob/master/examples_te.ipynb
- Russian article - https://habr.com/ru/post/581946/
- English article - https://habr.com/ru/post/581960/
The model works with SINGLE sentences (albeit long ones) and:
- Inserts capital letters and basic punctuation marks (dot, comma, hyphen, question mark, exclamation mark, dash for Russian);
- Works for 4 languages (Russian, English, German, Spanish) and can be extended;
- By design is domain agnostic and is not based on any hard-coded rules;
- Has non-trivial metrics and succeeds in the task of improving text readability;
Links:
- Model repo - https://github.com/snakers4/silero-models#text-enhancement
- Colab notebook - https://colab.research.google.com/github/snakers4/silero-models/blob/master/examples_te.ipynb
- Russian article - https://habr.com/ru/post/581946/
- English article - https://habr.com/ru/post/581960/
GitHub
GitHub - snakers4/silero-models: Silero Models: pre-trained speech-to-text, text-to-speech and text-enhancement models made embarrassingly…
Silero Models: pre-trained speech-to-text, text-to-speech and text-enhancement models made embarrassingly simple - snakers4/silero-models