Life after BERT: What do Other Muppets Understand about Language?
Lialin, Zhao, et al
arxiv.org/abs/2205.10696
Наша новая статья по анализу моделей 🔎. В NLP много кто забывает, что BERT дичайше устарел и зоопарк предтренированных моделей очень большой. В особенности это заметно в статьях по пробингу, где в лучшем случае можно увидеть 3 семейств моделей в одной статье.
Мы решили что так жить нельзя и запробили 29 предобученных моделей (8 семейств) в zero-shot режиме на простых лингвистических / common sense задачах, таких как сравнение возрастов "26 year old is younger/older than 42 year old", antonym negation "It was not/really a fracture, it was a break", и ещё 7 других. Мы хотели понять как архитектура модели, число параметров, pre-training objective, и размер датасета используемого для предобучения влияет на лингвистические способности модели.
И они не влияют. Мы не смогли найти никакой зависимости между тем какие задачи лучше решают encoder-decoder модели чем encoder-only. Или что LM работает лучше чем MLM или Sentence Restoration на каких-то определённых задачах. Но самое главное: число параметров не коррелирует с метриками ни на одной из наших задач, ни у одного класса моделей (кроме T5). Ладно, бывает. Но может быть важен размер датасета? Потому что если модель видела больше данных, уж точно она будет лучше понимать как работает английский. Нет. Например, наши top-2 модели T5-XL и ALBERT-XXL, и T5 был натренирован на 750Gb текста, а ALBERT на 16Gb.
Дальше только лучше. У T5 есть версия T51.1,. Отличия между моделями небольшие, но T51.1 хуже T5 аж на 15 пунктов. И подобных примеров несколько: RoBERTa одна из самых топовых моделей, но она жутко похожа на BERT (архитектура и objective) и на BART (датасет), при этом она сильно обходит эти две модели.
То есть с одной стороны за последние 3 года мы сильно продвинулись по тому как хорошо модели решают прикладные задачи. Но с другой стороны кажется что это происходит не от того, что модели улучшают своё понимание языка. А наше текущее понимание того, какие модели лучше понимают язык не очень верны и небольшие детали в оптимизации или маскинге могут быть более важны чем архитектура, pre-training objective, датасет и число параметров.
Кто виртуально посещает ACL, приходите завтра на Virsual Poster Session 4 в 21 МСК. Я буду презентовать эту статью в секции Interpretability and Analysis of Models for NLP.
Lialin, Zhao, et al
arxiv.org/abs/2205.10696
Наша новая статья по анализу моделей 🔎. В NLP много кто забывает, что BERT дичайше устарел и зоопарк предтренированных моделей очень большой. В особенности это заметно в статьях по пробингу, где в лучшем случае можно увидеть 3 семейств моделей в одной статье.
Мы решили что так жить нельзя и запробили 29 предобученных моделей (8 семейств) в zero-shot режиме на простых лингвистических / common sense задачах, таких как сравнение возрастов "26 year old is younger/older than 42 year old", antonym negation "It was not/really a fracture, it was a break", и ещё 7 других. Мы хотели понять как архитектура модели, число параметров, pre-training objective, и размер датасета используемого для предобучения влияет на лингвистические способности модели.
И они не влияют. Мы не смогли найти никакой зависимости между тем какие задачи лучше решают encoder-decoder модели чем encoder-only. Или что LM работает лучше чем MLM или Sentence Restoration на каких-то определённых задачах. Но самое главное: число параметров не коррелирует с метриками ни на одной из наших задач, ни у одного класса моделей (кроме T5). Ладно, бывает. Но может быть важен размер датасета? Потому что если модель видела больше данных, уж точно она будет лучше понимать как работает английский. Нет. Например, наши top-2 модели T5-XL и ALBERT-XXL, и T5 был натренирован на 750Gb текста, а ALBERT на 16Gb.
Дальше только лучше. У T5 есть версия T51.1,. Отличия между моделями небольшие, но T51.1 хуже T5 аж на 15 пунктов. И подобных примеров несколько: RoBERTa одна из самых топовых моделей, но она жутко похожа на BERT (архитектура и objective) и на BART (датасет), при этом она сильно обходит эти две модели.
То есть с одной стороны за последние 3 года мы сильно продвинулись по тому как хорошо модели решают прикладные задачи. Но с другой стороны кажется что это происходит не от того, что модели улучшают своё понимание языка. А наше текущее понимание того, какие модели лучше понимают язык не очень верны и небольшие детали в оптимизации или маскинге могут быть более важны чем архитектура, pre-training objective, датасет и число параметров.
Кто виртуально посещает ACL, приходите завтра на Virsual Poster Session 4 в 21 МСК. Я буду презентовать эту статью в секции Interpretability and Analysis of Models for NLP.
👏52👍12🔥11😢1
Для тех кто не может прийти на ACL, также будем обсуждать Life After BERT на Munich NLP. Присоединяйтесь к дискорду, в пятницу 18 МСК будет презентация.
Discord
Discord - A New Way to Chat with Friends & Communities
Discord is the easiest way to communicate over voice, video, and text. Chat, hang out, and stay close with your friends and communities.
❤11
GPT-4chan
Yannic Kilcher
https://youtube.com/watch?v=efPrtcLdcdM
Для тех кто не может дождаться GPT-4 от OpenAI, Янник сделал GPT-4chan. Это зафайнтюненная моделька JPT-J 6B на датасете Raiders of the Lost Kek, который замайнили с Politically Incorrect board (/pol/) на 4chan.
Очень рекомендую видео к просмотру, но TL;DR — отличать ботов от людей на становится всё сложнее, и их выдаёт уже не то что они неконсистентны, или наоборот пишут слишком похожие твиты. То что выдало бота Янника — это что он часто отвечал пустыми постами и то что постил слишком часто. Обе эти вещи, к сожалению, легко пофиксить. Стало как-то не по себе, в особенности если думать про комментарии к политическим твитам.
Но теперь вернёмся к весёлому. Во-первых, моделька заметно обходит GPT-3 и оригинальный GPT-J на бенчмарке Truthful QA (кек). Во-вторых, она выложена на 🤗 Hub и вы можете с ней поиграться (если есть куда запихать 6 миллиардов параметров).
Yannic Kilcher
https://youtube.com/watch?v=efPrtcLdcdM
Для тех кто не может дождаться GPT-4 от OpenAI, Янник сделал GPT-4chan. Это зафайнтюненная моделька JPT-J 6B на датасете Raiders of the Lost Kek, который замайнили с Politically Incorrect board (/pol/) на 4chan.
Очень рекомендую видео к просмотру, но TL;DR — отличать ботов от людей на становится всё сложнее, и их выдаёт уже не то что они неконсистентны, или наоборот пишут слишком похожие твиты. То что выдало бота Янника — это что он часто отвечал пустыми постами и то что постил слишком часто. Обе эти вещи, к сожалению, легко пофиксить. Стало как-то не по себе, в особенности если думать про комментарии к политическим твитам.
Но теперь вернёмся к весёлому. Во-первых, моделька заметно обходит GPT-3 и оригинальный GPT-J на бенчмарке Truthful QA (кек). Во-вторых, она выложена на 🤗 Hub и вы можете с ней поиграться (если есть куда запихать 6 миллиардов параметров).
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained(“ykilcher/gpt-4chan”)
model = AutoModelForCausalLM.from_pretrained(“ykilcher/gpt-4chan”)
YouTube
GPT-4chan: This is the worst AI ever
#gpt4chan #4chan #ai
GPT-4chan was trained on over 3 years of posts from 4chan's "politically incorrect" (/pol/) board.
(and no, this is not GPT-4)
EXTRA VIDEO HERE: https://www.youtube.com/watch?v=dQw4w9WgXcQ
Website (try the model here): https://gpt…
GPT-4chan was trained on over 3 years of posts from 4chan's "politically incorrect" (/pol/) board.
(and no, this is not GPT-4)
EXTRA VIDEO HERE: https://www.youtube.com/watch?v=dQw4w9WgXcQ
Website (try the model here): https://gpt…
🔥28👍3
Forwarded from Мишин Лернинг 🇺🇦🇮🇱
🛋 BIG-Bench: встречам бенчмарк и пейпер «BEYOND THE IMITATION GAME»
Название пейпера «ПО ТУ СТОРОНУ ИГРЫ В ИМИТАЦЮ» отсылает нас к работе Тьюринга, и предоставляет актуальный на 2022 год бенчмарк, призванный количественно оценить большие языковые модели, такие как GPT-3 или PaLM.
Современная мейнстрим парадигма в NLP выглядит так: «не работает на 1.3B — попробуй 12B, не выходит на 12B, бери 175B, и т.д. Не нужно искать новые подходы — attention и параметры are all you need, как говорится..»
🤔 Но как оценивать эти огромные модели?
Чтобы решить эту проблему, 442 (WHAT?!) ресерчара из 132 организаций представили тест Beyond the Imitation Game (BIG-bench). Темы теста разнообразны, они связаны с лингвистикой, развитием детей, математикой, биологией, физикой, социальными предубеждениями, разработкой программного обеспечения и т. д.
BIG-bench фокусируется на задачах, которые, как считается, выходят за рамки возможностей текущих языковых моделей.
🪑 BIG-bench
⚗️ Colab для эвала T5
🧻 paper
@мишин лернинг
Название пейпера «ПО ТУ СТОРОНУ ИГРЫ В ИМИТАЦЮ» отсылает нас к работе Тьюринга, и предоставляет актуальный на 2022 год бенчмарк, призванный количественно оценить большие языковые модели, такие как GPT-3 или PaLM.
Современная мейнстрим парадигма в NLP выглядит так: «не работает на 1.3B — попробуй 12B, не выходит на 12B, бери 175B, и т.д. Не нужно искать новые подходы — attention и параметры are all you need, как говорится..»
🤔 Но как оценивать эти огромные модели?
Чтобы решить эту проблему, 442 (WHAT?!) ресерчара из 132 организаций представили тест Beyond the Imitation Game (BIG-bench). Темы теста разнообразны, они связаны с лингвистикой, развитием детей, математикой, биологией, физикой, социальными предубеждениями, разработкой программного обеспечения и т. д.
BIG-bench фокусируется на задачах, которые, как считается, выходят за рамки возможностей текущих языковых моделей.
🪑 BIG-bench
⚗️ Colab для эвала T5
🧻 paper
@мишин лернинг
❤17👍3
High-Performance Large-Scale Image Recognition Without Normalization
Brock et al. [DeepMind], 2021
arxiv.org/abs/2102.06171
Внезапно статья по CV, ещё и старая, но давно хотел её прочитать. Вроде бы раз эту архитектуру использовали в Imagen.
Меня всегда очень захватывала тема нормализации в нейросетях. Каждый раз когда мы проходим BatchNorm рассказываю историю того как менялось наше представление о том почему он работает и вот сейчас нашёл хорошее саммари текущих представлений.
1. При использовании BN и skip-connections, BN уменьшает норму активаций и позволяет skip-connections лучше проходить в более глубокие слои.
1. Тк мы используем ассиметричные функции активации (ReLU, GELU) это вызывает кучу положительных значений, что делает скалярное произведение векторов разных примеров в батче очень большим. Другими словами — вектора разных примеров очень похожи друг на друга, что плохо. BN позволяет ренормализовать это и добавить отрицательных значений в вектора, что уменьшает эту проблему.
1. Некоторые верят что BN также работает как регуляризатор, тк in-batch статистики mean и var содержат шум.
1. BN увеличивает гладкость loss landscape позволяя использовать бОльшие lr, в особенности при больших размерах батча.
DeepMind решили избавиться от BN и для этого используют следующие трюки:
1. Residual блоки выглядят вот так: h_next = h_prev + a * f(h_prev / b), где f - аккуратно инициалзированный блок нейросети, а=0.02 и b = var(h_prev).
1. Scaled weight standardization, где веса нормализуют как (w - mu) / sqrt(N * var)
1. Adaptive gradient clipping, где градиенты клипают не на основе их нормы, а на основе отношения нормы градиента и нормы параметров слоя / блока.
1. Использовали слегка модифицированную архитектуру блока SE-ResNeXt-D
По результатам: хорошо улучшают скорость тренировки по сравнению с efficientnet, при лучшей финальной accuracy.
Brock et al. [DeepMind], 2021
arxiv.org/abs/2102.06171
Внезапно статья по CV, ещё и старая, но давно хотел её прочитать. Вроде бы раз эту архитектуру использовали в Imagen.
Меня всегда очень захватывала тема нормализации в нейросетях. Каждый раз когда мы проходим BatchNorm рассказываю историю того как менялось наше представление о том почему он работает и вот сейчас нашёл хорошее саммари текущих представлений.
1. При использовании BN и skip-connections, BN уменьшает норму активаций и позволяет skip-connections лучше проходить в более глубокие слои.
1. Тк мы используем ассиметричные функции активации (ReLU, GELU) это вызывает кучу положительных значений, что делает скалярное произведение векторов разных примеров в батче очень большим. Другими словами — вектора разных примеров очень похожи друг на друга, что плохо. BN позволяет ренормализовать это и добавить отрицательных значений в вектора, что уменьшает эту проблему.
1. Некоторые верят что BN также работает как регуляризатор, тк in-batch статистики mean и var содержат шум.
1. BN увеличивает гладкость loss landscape позволяя использовать бОльшие lr, в особенности при больших размерах батча.
DeepMind решили избавиться от BN и для этого используют следующие трюки:
1. Residual блоки выглядят вот так: h_next = h_prev + a * f(h_prev / b), где f - аккуратно инициалзированный блок нейросети, а=0.02 и b = var(h_prev).
1. Scaled weight standardization, где веса нормализуют как (w - mu) / sqrt(N * var)
1. Adaptive gradient clipping, где градиенты клипают не на основе их нормы, а на основе отношения нормы градиента и нормы параметров слоя / блока.
1. Использовали слегка модифицированную архитектуру блока SE-ResNeXt-D
По результатам: хорошо улучшают скорость тренировки по сравнению с efficientnet, при лучшей финальной accuracy.
🔥19👍9
Techniques for Training Large Neural Networks
Блогпост от OpenAI с разбором основных способов параллелизации.
Data Parallel (DP) — держать полную копию сети на каждой карточке, обрабатывать несколько батчей параллельно. Проблема в том, что ты можешь упереться в то что даже batch size = 1 перестаёт помещаться в одну карточку.
Pipeline Parallel (PP) — распилить нейросеть послойно (т.е. вертикально) и держать её на разных карточках. При наивной имплементации работает очень неэффективно. Представьте себе что у вас 10 слойная сеть и вы держите по 1 слою на каждой карточке, если вы просто выполняете forward и backward одного батча на них, то в каждый момент времени у вас 9 видеокарт простаивают. Если нарисовать картинку то у вас есть некий "bubble of idle time". Для того, чтобы этого избежать, можно распилить наш минибатч на микробатчи и начать делать forward pass следующего микробатча (MPS) ещё до того как forward текущего микробатча досчитался. Отсюда и название — pipeline parallel (PP).
Tensor Parallel (TP) — альтернативный способ разделения сети на несколько GPU. Если PP разделяет сетку вертикально, то TP делает это горизонтально. То есть ваши тензоры параметров и активаций теперь могут быть попилены на несколько GPU и одно матричное умножение может считаться на нескольких GPU одновременно. Понятно, что такой подход сильно увеличивает требования по скорости коммуникации между GPU, но при эффективной имплементации (и infiniband + nvlink) это не так медленно как кажется.
Mixture of Experts (MoE) — мы уже рассказывали про MoE, идея состоит в том чтобы вместо одного FCN после attention использовать несколько FCN-экспертов (например 128) и использовать только часть из них (например 4) при каждом forward pass. Для того чтобы выбрать эти 4, добавляется специальный router-слой, который по сути считает attention между экспертами и hidden. Так как на каждом проходе используется только малая часть экспертов можно добиться огромного числа параметров в нейросети. Именно это используют все сетки в 1 триллион и более параметров.
Ещё в статье очень вскользь упомянули ZeRo, который имплементирован в DeepSpeed, которы сейчас становится всё более и более популярен во многом благодаря тому что он позволяет тренировать довольно большие модели (вплоть до 10-20B) в почти DataParallel режиме с помощью разделения на несколько GPU стейта оптимизатора (Stage 1) и рассчёта градиентов (Stage 2). Также есть Stage 3, который по сути tensor parallel, да и практически все остальные способы параллелизации.
Кроме этого, все эти методы можно комбинировать. Например BLOOM от BigScience (176B) тренируется с DP=8, PP=12 (MPS 2), TP=4. Для всего этого используется чуть-чуть модифицированный DeepSpeed.
Сам блогпост даёт неплохое введение в методы параллелизации, и там куча ссылок на релевантные статьи и имплементации, но честно ожидал увидеть в нём что-то большее, тк OpenAI все-таки первопроходцы в этой области. В качестве продолжения (или даже вместо) я бы предложил почитать How To Fit a Bigger Model и Model Parallelism от HuggingFace, они тоже делают отличное введение в эти методы и на мой вкус более техничны.
Блогпост от OpenAI с разбором основных способов параллелизации.
Data Parallel (DP) — держать полную копию сети на каждой карточке, обрабатывать несколько батчей параллельно. Проблема в том, что ты можешь упереться в то что даже batch size = 1 перестаёт помещаться в одну карточку.
Pipeline Parallel (PP) — распилить нейросеть послойно (т.е. вертикально) и держать её на разных карточках. При наивной имплементации работает очень неэффективно. Представьте себе что у вас 10 слойная сеть и вы держите по 1 слою на каждой карточке, если вы просто выполняете forward и backward одного батча на них, то в каждый момент времени у вас 9 видеокарт простаивают. Если нарисовать картинку то у вас есть некий "bubble of idle time". Для того, чтобы этого избежать, можно распилить наш минибатч на микробатчи и начать делать forward pass следующего микробатча (MPS) ещё до того как forward текущего микробатча досчитался. Отсюда и название — pipeline parallel (PP).
Tensor Parallel (TP) — альтернативный способ разделения сети на несколько GPU. Если PP разделяет сетку вертикально, то TP делает это горизонтально. То есть ваши тензоры параметров и активаций теперь могут быть попилены на несколько GPU и одно матричное умножение может считаться на нескольких GPU одновременно. Понятно, что такой подход сильно увеличивает требования по скорости коммуникации между GPU, но при эффективной имплементации (и infiniband + nvlink) это не так медленно как кажется.
Mixture of Experts (MoE) — мы уже рассказывали про MoE, идея состоит в том чтобы вместо одного FCN после attention использовать несколько FCN-экспертов (например 128) и использовать только часть из них (например 4) при каждом forward pass. Для того чтобы выбрать эти 4, добавляется специальный router-слой, который по сути считает attention между экспертами и hidden. Так как на каждом проходе используется только малая часть экспертов можно добиться огромного числа параметров в нейросети. Именно это используют все сетки в 1 триллион и более параметров.
Ещё в статье очень вскользь упомянули ZeRo, который имплементирован в DeepSpeed, которы сейчас становится всё более и более популярен во многом благодаря тому что он позволяет тренировать довольно большие модели (вплоть до 10-20B) в почти DataParallel режиме с помощью разделения на несколько GPU стейта оптимизатора (Stage 1) и рассчёта градиентов (Stage 2). Также есть Stage 3, который по сути tensor parallel, да и практически все остальные способы параллелизации.
Кроме этого, все эти методы можно комбинировать. Например BLOOM от BigScience (176B) тренируется с DP=8, PP=12 (MPS 2), TP=4. Для всего этого используется чуть-чуть модифицированный DeepSpeed.
Сам блогпост даёт неплохое введение в методы параллелизации, и там куча ссылок на релевантные статьи и имплементации, но честно ожидал увидеть в нём что-то большее, тк OpenAI все-таки первопроходцы в этой области. В качестве продолжения (или даже вместо) я бы предложил почитать How To Fit a Bigger Model и Model Parallelism от HuggingFace, они тоже делают отличное введение в эти методы и на мой вкус более техничны.
Openai
Techniques for training large neural networks
Large neural networks are at the core of many recent advances in AI, but training them is a difficult engineering and research challenge which requires orchestrating a cluster of GPUs to perform a single synchronized calculation.
👍28❤2
Пара интересных новых фишек в 🤗 Transformers 4.20
1. Big model inference🔥 — позволяет очень просто инферить большие модели (10B+) на каком угодно железе. По возможности распараллелит по всем GPU, если не их хватает — кусок модели будет держаться в памяти процессора и подгружаться в GPU когда надо. Если даже CPU памяти не хватает, будет подгружать веса с диска кусками.
1. Добавили BLOOM 🌸 от BigScience — одновремено с этим выложены чекпоинты от 0.3B до 6B. Главная модель в 176B должна подоспеть через месяц.
1. Добавили GPT-NeoX-20B, Wav2Vec2-Conformer, Trajectory Transformer, LongT5 (кстати его надо бы на днях разобрать) и ещё несколько интереных моделей.
1. Big model inference🔥 — позволяет очень просто инферить большие модели (10B+) на каком угодно железе. По возможности распараллелит по всем GPU, если не их хватает — кусок модели будет держаться в памяти процессора и подгружаться в GPU когда надо. Если даже CPU памяти не хватает, будет подгружать веса с диска кусками.
1. Добавили BLOOM 🌸 от BigScience — одновремено с этим выложены чекпоинты от 0.3B до 6B. Главная модель в 176B должна подоспеть через месяц.
1. Добавили GPT-NeoX-20B, Wav2Vec2-Conformer, Trajectory Transformer, LongT5 (кстати его надо бы на днях разобрать) и ещё несколько интереных моделей.
🔥50👍12👎2
GitHub Copilot теперь доступен всем
https://github.blog/2022-06-21-github-copilot-is-generally-available-to-all-developers
1. 60 дней пробный период
1. $10/мес или $100/год
1. Бесплатно для студентов и меинтейнеров популярного opensource 🎉
По-моему весьма адекватная цена, я использую копайлот где-то с сентября и он очень крут. Очень помогает писать всякий boilerplate и другой простой код. Также matplotlib стало возможно использовать без постоянного поиска команд в гугле/документации. Но самое главное: зачастую помогает придумать название переменной 😂
Пока доступен только индивидуальным разработчикам, продукт для больших компаний обещают later this year. Интересно, появится ли когда-нибудь on-premise решение, а то без этого кажется в больших компаниях типа FAANG он будет запрещен всегда 😞
https://github.blog/2022-06-21-github-copilot-is-generally-available-to-all-developers
1. 60 дней пробный период
1. $10/мес или $100/год
1. Бесплатно для студентов и меинтейнеров популярного opensource 🎉
По-моему весьма адекватная цена, я использую копайлот где-то с сентября и он очень крут. Очень помогает писать всякий boilerplate и другой простой код. Также matplotlib стало возможно использовать без постоянного поиска команд в гугле/документации. Но самое главное: зачастую помогает придумать название переменной 😂
Пока доступен только индивидуальным разработчикам, продукт для больших компаний обещают later this year. Интересно, появится ли когда-нибудь on-premise решение, а то без этого кажется в больших компаниях типа FAANG он будет запрещен всегда 😞
The GitHub Blog
GitHub Copilot is generally available to all developers
We’re making GitHub Copilot, an AI pair programmer that suggests code in your editor, generally available to all developers for $10 USD/month or $100 USD/year. It will also be free to use for verified students and maintainers of popular open source projects.
🔥13👍8🤯3😁1
В статье на хабре про YALM отлично описывают как сейчас тренировать большие модели. Fp16 vs bf16 vs ft32, ZeRo, фьюзинг с помощью jit, отключение дропаута (внезапно ускорение аж на 15%), много про стабилизацию тренировки. 🔥🔥🔥
Внезапно веса модели распространяются по Apache 2.0, то есть вы можете запихать их в свой коммерческий проект 🤔
Внезапно веса модели распространяются по Apache 2.0, то есть вы можете запихать их в свой коммерческий проект 🤔
🔥23❤🔥7
Forwarded from Love. Death. Transformers.
Яндекс выложил YALM на 100b параметров.
И да, это самая большая open source модель на данный момент
Для запуска нужно:
- 4а100/8v100
-200gb диска
Habr
Github
вопрос во что пихать это встает сильно
И да, это самая большая open source модель на данный момент
Для запуска нужно:
- 4а100/8v100
-200gb диска
Habr
Github
вопрос во что пихать это встает сильно
Хабр
Яндекс выложил YaLM 100B — сейчас это крупнейшая GPT-подобная нейросеть в свободном доступе. Вот как удалось её обучить
Больше примеров — в конце поста В последние годы большие языковые модели на архитектуре трансформеров стали вершиной развития нейросетей в задачах NLP. С каждым месяцем они становятся всё больше и...
👍7👎3🤔3🎉1
Forwarded from Институт AIRI
Исследователи AIRI обучили нейросетевую модель на самой полной на сегодняшний день сборке генома человека 🧬
Модель GENA_LM, выложена в open source и доступна биологам по всему миру. В данный момент в мире уже представлен набор достаточно хороших моделей для последовательностей белков (например, ESM), но для последовательностей ДНК публично доступна только разработанная коллективом ученых из США модель DNABERT.
GENA_LM – первая в мире языковая модель ДНК, обученная на самой полной версии генома человека (T2T-CHM13), которая была опубликована в конце марта 2022 года. Она может обрабатывать последовательности в 6 раз длиннее, чем DNABERT.
Опубликованная модель – это первый шаг исследования. Впереди эксперименты по применению трансформерных архитектур с памятью, которые позволят увеличить размер входной последовательности ещё в несколько раз.
Репозитории с моделью GENA_LM:
👾 Hugging Face
👾 GitHub
Модель GENA_LM, выложена в open source и доступна биологам по всему миру. В данный момент в мире уже представлен набор достаточно хороших моделей для последовательностей белков (например, ESM), но для последовательностей ДНК публично доступна только разработанная коллективом ученых из США модель DNABERT.
GENA_LM – первая в мире языковая модель ДНК, обученная на самой полной версии генома человека (T2T-CHM13), которая была опубликована в конце марта 2022 года. Она может обрабатывать последовательности в 6 раз длиннее, чем DNABERT.
Опубликованная модель – это первый шаг исследования. Впереди эксперименты по применению трансформерных архитектур с памятью, которые позволят увеличить размер входной последовательности ещё в несколько раз.
Репозитории с моделью GENA_LM:
👾 Hugging Face
👾 GitHub
👍14
Forwarded from Love. Death. Transformers.
#чтивонаночь
Ладно, подеградировали пора и поработать.
Bpe —
Да, это все он, великий и могучий. Какая идея — если мы будем кормить в эмбединг модель
1) Хуй обучим на нормальную длину,
2) Хуй что обучим в принципе, модели шумят.
Если мы будем кормить по словам, ситуация станет лучше, но отчасти. Слов много, пользователи безграмотны, можно очень легко ловить
Что делать?
Коды Хаффмана.
Вообще, штука простая до нельзя - это жадный алгоритм префиксного кодирования с минимальной избыточностью. Или по-русски — "как закодировать последовательность в минимальное количество подпоследовательностей".
Алгоритм
1) Символы входного алфавита образуют список свободных узлов. Каждый лист имеет вес, который может быть равен либо вероятности, либо количеству вхождений символа в сжимаемое сообщение.
2) Выбираются два свободных узла дерева с наименьшими весами.
3) Создается их родитель с весом, равным их суммарному весу.
4) Родитель добавляется в список свободных узлов, а два его потомка удаляются из этого списка.
5) Одной дуге, выходящей из родителя, ставится в соответствие бит
6) Шаги, начиная со второго, повторяются до тех пор, пока в списке свободных узлов не останется только один свободный узел. Он и будет считаться корнем дерева.
BPE
Идея очень похожа, но упрощена в угоду скорости работы (чем больше данных мы прогоним, тем эффективнее научимся кодировать текст).
Так же не будет проблемы если слова нет в словаре, с некоторой эффективностью(не всегда эффективно) оно все равно закодируется.
Обучение BPE
1) Слово = последовательность токенов (пока символов, изначально использовались unicode-символы),
2) Словарь = все токены (на нулевой итерации — символы),
3) Повторять пока не достигли ограничения на размер словаря.
Назначаем новым токеном объединение двух существующих токенов, которое встречается чаще других пар в корпусе (имеется в виду "встречаются вместе").
Читать про BPE
Почитать про разные токенайзеры в том числе про
Ладно, подеградировали пора и поработать.
Bpe —
byte pair encoding
— почему модель генерит украинский/вообще что то левое. Да, это все он, великий и могучий. Какая идея — если мы будем кормить в эмбединг модель
character level
(побуквенно, то есть), то мы 1) Хуй обучим на нормальную длину,
2) Хуй что обучим в принципе, модели шумят.
Если мы будем кормить по словам, ситуация станет лучше, но отчасти. Слов много, пользователи безграмотны, можно очень легко ловить
out of vocabulary
и прочие прелести жизни. Есть всякие хаки с поиском ближайших слов, но это не всегда работает и вообще тяжелая штука.Что делать?
Коды Хаффмана.
Вообще, штука простая до нельзя - это жадный алгоритм префиксного кодирования с минимальной избыточностью. Или по-русски — "как закодировать последовательность в минимальное количество подпоследовательностей".
Алгоритм
1) Символы входного алфавита образуют список свободных узлов. Каждый лист имеет вес, который может быть равен либо вероятности, либо количеству вхождений символа в сжимаемое сообщение.
2) Выбираются два свободных узла дерева с наименьшими весами.
3) Создается их родитель с весом, равным их суммарному весу.
4) Родитель добавляется в список свободных узлов, а два его потомка удаляются из этого списка.
5) Одной дуге, выходящей из родителя, ставится в соответствие бит
1
, другой — бит 0
. Битовые значения ветвей, исходящих от корня, не зависят от весов потомков.6) Шаги, начиная со второго, повторяются до тех пор, пока в списке свободных узлов не останется только один свободный узел. Он и будет считаться корнем дерева.
BPE
Идея очень похожа, но упрощена в угоду скорости работы (чем больше данных мы прогоним, тем эффективнее научимся кодировать текст).
Так же не будет проблемы если слова нет в словаре, с некоторой эффективностью(не всегда эффективно) оно все равно закодируется.
Обучение BPE
1) Слово = последовательность токенов (пока символов, изначально использовались unicode-символы),
2) Словарь = все токены (на нулевой итерации — символы),
3) Повторять пока не достигли ограничения на размер словаря.
Назначаем новым токеном объединение двух существующих токенов, которое встречается чаще других пар в корпусе (имеется в виду "встречаются вместе").
Читать про BPE
Почитать про разные токенайзеры в том числе про
word piece
и sentence piece
можно в блоге на huggingface.Medium
Byte-Pair Encoding: Subword-based tokenization algorithm
Understand subword-based tokenization algorithm used by state-of-the-art NLP models — Byte-Pair Encoding (BPE)
👍18🤬12🤔1
Новости NLP одной строкой
1. Тренировка BLOOM - 176B модели от BigScience почти завершена. А ещё Optimum уже поддерживает BLOOM🔥🔥🔥
1. Отличный тред о том как CodeParrot искал ошибки в тренировке своей большой модели
1. Minerva - языковая модель от гугл которая может решать математические задачи
1. Named Tensor 2.0 в пайторче с поддержкой einsum
1. Тренировка BLOOM - 176B модели от BigScience почти завершена. А ещё Optimum уже поддерживает BLOOM🔥🔥🔥
1. Отличный тред о том как CodeParrot искал ошибки в тренировке своей большой модели
1. Minerva - языковая модель от гугл которая может решать математические задачи
1. Named Tensor 2.0 в пайторче с поддержкой einsum
X (formerly Twitter)
alewkowycz (@alewkowycz) on X
Very excited to present Minerva🦉: a language model capable of solving mathematical questions using step-by-step natural language reasoning.
Combining scale, data and others dramatically improves performance on the STEM benchmarks MATH and MMLU-STEM. http…
Combining scale, data and others dramatically improves performance on the STEM benchmarks MATH and MMLU-STEM. http…
🔥11👍3
DALL-E Mini Is the Internet's Favorite AI Meme Machine
wired.com/story/dalle-ai-meme-machine
Вот мы и дошли до того что я даю ссылки на Wired в постах...
Сейчас переехал в новых город 🗽 и знакомлюсь с кучей новых людей, из них почти все не из диплернинга. И довольно быстро я понял что несмотря на весь хайп который создаёт вокруг себя OpenAI, довольно мало людей знает про DALL-E или GPT-3.
Но буквально на днях встретил несколько людей которые почти ничего не знают про OpenAI, но знают про DALL-E Mini/Crayon. Всё-таки мемы - лучший способ продвижения.
В статье собственно обсуждают саму модельку, немного её истории, и что она умеет и не умеет. Рекомендую запомнить её и показывать своим недиплернинговым знакомым.
wired.com/story/dalle-ai-meme-machine
Вот мы и дошли до того что я даю ссылки на Wired в постах...
Сейчас переехал в новых город 🗽 и знакомлюсь с кучей новых людей, из них почти все не из диплернинга. И довольно быстро я понял что несмотря на весь хайп который создаёт вокруг себя OpenAI, довольно мало людей знает про DALL-E или GPT-3.
Но буквально на днях встретил несколько людей которые почти ничего не знают про OpenAI, но знают про DALL-E Mini/Crayon. Всё-таки мемы - лучший способ продвижения.
В статье собственно обсуждают саму модельку, немного её истории, и что она умеет и не умеет. Рекомендую запомнить её и показывать своим недиплернинговым знакомым.
WIRED
Inside DALL-E Mini, the Internet's Favorite AI Meme Machine
The viral image generation app is good, absurd fun. It's also giving the world an education in how artificial intelligence may warp reality.
👍11