Всем привет!
Мы команда NLP Core RnD. Работаем в SberDevices. Занимаемся исследованиями в NLP и PLP (Programming Language Processing). Мы авторы ряда публичных моделей для русского языка: ruBert, ruRoBerta, ruGPТ2, ruGPT3, ruT5, FRED-T5. Более 4-х лет делаем много экспериментов в различных областях NLP (ODQA, chit-chat, NLU) и PLP. На этом канале хотим делиться с вами нашим мнением и результатами исследований, которые можем рассказать. Надеемся получится сделать канал полезным.)
Мы команда NLP Core RnD. Работаем в SberDevices. Занимаемся исследованиями в NLP и PLP (Programming Language Processing). Мы авторы ряда публичных моделей для русского языка: ruBert, ruRoBerta, ruGPТ2, ruGPT3, ruT5, FRED-T5. Более 4-х лет делаем много экспериментов в различных областях NLP (ODQA, chit-chat, NLU) и PLP. На этом канале хотим делиться с вами нашим мнением и результатами исследований, которые можем рассказать. Надеемся получится сделать канал полезным.)
Новая SOTA модель для русского языка FRED-T5 доступна на HuggingFace. 🚀🚀🚀
FRED-T5-1.7B
FRED-T5-large (820M)
Модель 1.7B показала лучший скор на RussianSuperGLUE и на текущий момент является SOTA для русского языка.
FRED-T5 основана на базе архитектуры T5. Изначально мы целились в ПРОМопригодность модели при выборе архитектуры. Мы использовали bbpe токенайзер от ruGPT3 (до large размера). Модель обучалась на миксе денойзеров. Денойзеры похожие, как в пейпере UL2. Если не слышали про UL2, то можно тут прочитать. Мы использовали равномерное распределение в задачах span corruption при выборе длины спана. И у нас было 7 денойзеров на каждый вариант семплирования (в UL2 было 3). Модель первую часть тренировки обучалась на 3.5Gb данных (чуть больше 1% от всего сета 300Gb). После она была дообучена на всем сете. Всего модель видела 1.5T токенов.
Вот такие денойзеры:
‘<LM>’:(µ = L/4, r = 0.25)
‘<SC1>’:(µ = 3, r = 0.15)
‘<SC2>’:(µ = 8, r = 0.15)
<SC3>’:(µ = 64, r = 0.15)
‘<SC4>’:(µ = 3, r = 0.5)
‘<SC5>’:(µ = 8, r = 0.5)
‘<SC6>’:(µ = 64, r = 0.5)
µ — это средняя длина спана в токенах, а r— это доля удаленных токенов
Ничего не поняли?) Через пару дней выйдет наша статья на Хабре, где мы расскажем детали.
Как можно юзать модель?
Берем токенизатор GPT2 и модель T5 из HF.
tokenizer = GPT2Tokenizer.from_pretrained('ai-forever/FRED-T5-1.7B',eos_token='</s>')
model = T5ForConditionalGeneration.from_pretrained(('ai-forever/FRED-T5-1.7B')
Не забывайте руками добавлять ‘</s>’ если он нужен вам. GPT2Tokenizer не делает это по умолчанию.
Советы по файнтюну.
При файнтюне модели можно использовать префиксы денойзеров, которые использовались при обучении ‘<LM>’, ‘<SC1>’,...’<SC6>’. Добавляете в начале текста, подаваемого на энкодер. Если задача LM, то лучше использовать префикс ‘<LM>’, в остальных случаях можно без префикса. При файнтюне на RSG мы не увидели значимых различий в предиктах в зависимости от префикса и без его использования. Если ваша задача похожа на одну из задач денойзинга, то конечно стоит попробовать взять соответствующий префикс. Мы часто при файнтюне используем оптимизатор Adafactor c постоянным lr=0.001. Он чаще дает лучшие результаты чем AdamW.
FRED-T5-1.7B
FRED-T5-large (820M)
Модель 1.7B показала лучший скор на RussianSuperGLUE и на текущий момент является SOTA для русского языка.
FRED-T5 основана на базе архитектуры T5. Изначально мы целились в ПРОМопригодность модели при выборе архитектуры. Мы использовали bbpe токенайзер от ruGPT3 (до large размера). Модель обучалась на миксе денойзеров. Денойзеры похожие, как в пейпере UL2. Если не слышали про UL2, то можно тут прочитать. Мы использовали равномерное распределение в задачах span corruption при выборе длины спана. И у нас было 7 денойзеров на каждый вариант семплирования (в UL2 было 3). Модель первую часть тренировки обучалась на 3.5Gb данных (чуть больше 1% от всего сета 300Gb). После она была дообучена на всем сете. Всего модель видела 1.5T токенов.
Вот такие денойзеры:
‘<LM>’:(µ = L/4, r = 0.25)
‘<SC1>’:(µ = 3, r = 0.15)
‘<SC2>’:(µ = 8, r = 0.15)
<SC3>’:(µ = 64, r = 0.15)
‘<SC4>’:(µ = 3, r = 0.5)
‘<SC5>’:(µ = 8, r = 0.5)
‘<SC6>’:(µ = 64, r = 0.5)
µ — это средняя длина спана в токенах, а r— это доля удаленных токенов
Ничего не поняли?) Через пару дней выйдет наша статья на Хабре, где мы расскажем детали.
Как можно юзать модель?
Берем токенизатор GPT2 и модель T5 из HF.
tokenizer = GPT2Tokenizer.from_pretrained('ai-forever/FRED-T5-1.7B',eos_token='</s>')
model = T5ForConditionalGeneration.from_pretrained(('ai-forever/FRED-T5-1.7B')
Не забывайте руками добавлять ‘</s>’ если он нужен вам. GPT2Tokenizer не делает это по умолчанию.
Советы по файнтюну.
При файнтюне модели можно использовать префиксы денойзеров, которые использовались при обучении ‘<LM>’, ‘<SC1>’,...’<SC6>’. Добавляете в начале текста, подаваемого на энкодер. Если задача LM, то лучше использовать префикс ‘<LM>’, в остальных случаях можно без префикса. При файнтюне на RSG мы не увидели значимых различий в предиктах в зависимости от префикса и без его использования. Если ваша задача похожа на одну из задач денойзинга, то конечно стоит попробовать взять соответствующий префикс. Мы часто при файнтюне используем оптимизатор Adafactor c постоянным lr=0.001. Он чаще дает лучшие результаты чем AdamW.
huggingface.co
ai-forever/FRED-T5-1.7B · Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
🚀Статья о FRED-T5 уже на Хабре!
FRED-T5. Новая SOTA модель для русского языка от SberDevices
Постарались рассказать основное про наш путь обучения FRED-T5. Вероятно, не всё будет понятно. Вопросы пишите в комментах к этому посту. С радостью ответим по возможности.
Мы продолжаем экспериментировать с моделями.
FRED-T5. Новая SOTA модель для русского языка от SberDevices
Постарались рассказать основное про наш путь обучения FRED-T5. Вероятно, не всё будет понятно. Вопросы пишите в комментах к этому посту. С радостью ответим по возможности.
Мы продолжаем экспериментировать с моделями.
Хабр
FRED-T5. Новая SOTA модель для русского языка от SberDevices
Уже много времени прошло с момента публикации наших последних языковых моделей ruT5, ruRoBERTa, ruGPT-3. За это время много что изменилось в NLP. Наши модели легли в основу множества русскоязычных...
NLP Core Team
🚀Статья о FRED-T5 уже на Хабре! FRED-T5. Новая SOTA модель для русского языка от SberDevices Постарались рассказать основное про наш путь обучения FRED-T5. Вероятно, не всё будет понятно. Вопросы пишите в комментах к этому посту. С радостью ответим по возможности.…
Кстати, картинку к статье сгенерировали с помощью Kandinsky 2.1 по запросу: "Transformer learning"
Sberbank
Kandinsky 3.1
Создавай высокохудожественные изображения в разных стилях и пробуй новую функцию генерации видео
3.5GB is all you need!? 🧐🤔
Хотим поделиться мыслями по нашим "3.5GB is all you need". Напомню, что FRED-T5 1.7B 2/3 шагов училась на одних и тех же данных, чуть более 1% всего сета (весь сет – 300GB). Так вышло случайно, в результате нашей ошибки при обучении, когда дебажили код. Забыли убрать загрузку одного и того же сета на каждую гпу. Потом модель обучалась на полном сете. Увидев 3.5GB сета более 200 раз модель не переобучилась. Это подтверждается тем, что трейн лосс существенно не изменился, после того, как было запущено обучение модели на всем сете. Более того, она стала решать задачи RussianSuperGLUE (RSG) на 0.759. Тогда как финальный чекпойнт показал 0.762, где мы более внимательно файнтюнили на RSG. По сути, дообучение на всем сете с точки зрения решения RSG не докинуло знаний в модель.
Хотим поделиться мыслями по нашим "3.5GB is all you need". Напомню, что FRED-T5 1.7B 2/3 шагов училась на одних и тех же данных, чуть более 1% всего сета (весь сет – 300GB). Так вышло случайно, в результате нашей ошибки при обучении, когда дебажили код. Забыли убрать загрузку одного и того же сета на каждую гпу. Потом модель обучалась на полном сете. Увидев 3.5GB сета более 200 раз модель не переобучилась. Это подтверждается тем, что трейн лосс существенно не изменился, после того, как было запущено обучение модели на всем сете. Более того, она стала решать задачи RussianSuperGLUE (RSG) на 0.759. Тогда как финальный чекпойнт показал 0.762, где мы более внимательно файнтюнили на RSG. По сути, дообучение на всем сете с точки зрения решения RSG не докинуло знаний в модель.
Почему модель не переобучилась? Вероятно, если бы мы показывали 200 раз сет в режиме одной задачи LM, то мы бы увидели скачок кривой лосса при переключении на весь сет. Но так как у нас 7 денойзеров и каждый сиквенс нарезался семь раз по разному, то модели сложнее его запомнить, и мы не увидели этого скачка. 3.5GB – это около 0.5B токенов.
Мы пересмотрели ряд пейперов и нашли несколько интересных фактов, на которые ранее не обращали внимание. В пейпере T5 https://arxiv.org/abs/1910.10683 авторы провели эксперименты с переобучением маленькой модели T5-base (размер модели – около 220М параметров). Для первого эксперимента они обучали модель с нуля и показали ей 34B (миллиарда) токенов из C4. Для второго брали подвыборку из 34B сета в 64 раза меньше и обучали модель так же с нуля на протяжении 64 эпох, в итоге показав модели 34B токенов. Также были проведены аналогичные эксперименты с датасетом, уменьшенным относительно исходного в 256, 1024 и 4096 раз. Напомню, что T5 обучалась на одной задаче денойзинга, а у нас их 7.
Мы пересмотрели ряд пейперов и нашли несколько интересных фактов, на которые ранее не обращали внимание. В пейпере T5 https://arxiv.org/abs/1910.10683 авторы провели эксперименты с переобучением маленькой модели T5-base (размер модели – около 220М параметров). Для первого эксперимента они обучали модель с нуля и показали ей 34B (миллиарда) токенов из C4. Для второго брали подвыборку из 34B сета в 64 раза меньше и обучали модель так же с нуля на протяжении 64 эпох, в итоге показав модели 34B токенов. Также были проведены аналогичные эксперименты с датасетом, уменьшенным относительно исходного в 256, 1024 и 4096 раз. Напомню, что T5 обучалась на одной задаче денойзинга, а у нас их 7.
Вот такие кривые трейн лосса T5-base у них получились для различных вариантов размеров сета. Красная линия от синей едва ли отличается. Вероятно, если бы денойзеров было 7, как у нас, то эти линии были бы ближе друг к другу. Да и желтая рядом. А что с этими линиями было бы на 1T токенов обучения, когда модель пройдет миллионы шагов? Интересный вопрос. Нужно будет проверить это как-нибудь.
Есть еще вот такая статья: "Trained on 100 million words and still in shape: BERT meets British National Corpus" https://arxiv.org/abs/2303.09859.
Авторы берут Bert-base c некоторыми модификациями и обучают его на корпусе из British National Corpus (100M words). Обучают, показывая модели столько же токенов, сколько и для обычного Bert-base, который учился на Wikipedia + BookCorpus (3000M words). Еще авторы перебирают различные параметры MLM таски и включения задачи NSP. Они демонстрируют, что их LTG-BERT не уступает Bert-base, а в некоторых тасках и выигрывает. Если же взять MLM на уровне спанов слов (span masking), то и вовсе уверенно обходит Bert-base на GLUE. Разница в размерах сетов огромная: 3000 против 100 миллионов слов.
Авторы берут Bert-base c некоторыми модификациями и обучают его на корпусе из British National Corpus (100M words). Обучают, показывая модели столько же токенов, сколько и для обычного Bert-base, который учился на Wikipedia + BookCorpus (3000M words). Еще авторы перебирают различные параметры MLM таски и включения задачи NSP. Они демонстрируют, что их LTG-BERT не уступает Bert-base, а в некоторых тасках и выигрывает. Если же взять MLM на уровне спанов слов (span masking), то и вовсе уверенно обходит Bert-base на GLUE. Разница в размерах сетов огромная: 3000 против 100 миллионов слов.
Все это указывает на то, что для того чтобы решать задачи RSG и различные другие задачи, на которые мы обычно тюним модели, то не обязательно обучать модель на огромном корпусе данных. Можно взять 10 Gb наиболее чистых и актуальных данных и на них обучать модель.
Следует сказать, что если ваша задача состоит в том, чтобы модель максимально больше запомнила фактов из выборки для того, чтобы потом на инференсе могла их воспроизводить, то конечно модели нужно показывать большой сет.
Следует сказать, что если ваша задача состоит в том, чтобы модель максимально больше запомнила фактов из выборки для того, чтобы потом на инференсе могла их воспроизводить, то конечно модели нужно показывать большой сет.
А что если существует некоторая статистика или закономерность языка, которую модель обычно аппроксимирует на последних частях обучения, когда перплексия выходит "в полку"? Ну т.е. модель сначала пытается запомнить многообразия словосочетаний, предложений, абзацев а после, когда ей уже не хватает возможности запомнить, она аппроксимирует эту статистику языка. И именно аппроксимация этой статистики ей нужна для решения сложных задач RSG или других задач NLP. В своих экспериментах с претрейном мы несколько раз замечали, что модели на последних шагах обучения “в полку”, когда лосс едва снижался, сильно прибавляли в решении RSG или других задач.
GigaChat!🚀
В основе GigaChat модели под общим названием NeONKA (NEural Omnimodal Network with Knowledge-Awareness).Там наши ruGT3.5-13B, которая основана на ruGPT3 13B и FRED-T5.
Текущая версия GigaChat в части NLP основана на претрейне ruGPT3.5 13B + SFT (supervised fine-tuning).
В side by side тестах GigaChat vs ChatGPT 30:70 в пользу последней. Это пока без PPO. Будет выше.) У нас большие планы по улучшению моделей и обучению новых.
Доступ к GigaChat пока ограничен и только по приглашениям.
Хорошая новость в том, что некоторые модели будут опубликованы в открытый доступ. Вы сами сможете попробовать их в своих задачах.
Подробности в статье на Хабре.
В основе GigaChat модели под общим названием NeONKA (NEural Omnimodal Network with Knowledge-Awareness).Там наши ruGT3.5-13B, которая основана на ruGPT3 13B и FRED-T5.
Текущая версия GigaChat в части NLP основана на претрейне ruGPT3.5 13B + SFT (supervised fine-tuning).
В side by side тестах GigaChat vs ChatGPT 30:70 в пользу последней. Это пока без PPO. Будет выше.) У нас большие планы по улучшению моделей и обучению новых.
Доступ к GigaChat пока ограничен и только по приглашениям.
Хорошая новость в том, что некоторые модели будут опубликованы в открытый доступ. Вы сами сможете попробовать их в своих задачах.
Подробности в статье на Хабре.
Хабр
Это не чат, это GigaChat. Русскоязычная ChatGPT от Сбера
Дракончик ждёт вас ниже Хайп вокруг нейросетей, выровненных при помощи инструкций и человеческой оценки (известных в народе под единым брендом «ChatGPT»), трудно не заметить. Люди разных профессий и...
Recurrent Memory Transformer 🔥
Не могу пройти мимо. Работа, которая привлекла внимание nlp-сообщества. Scaling Transformer to 1M tokens and beyond with RMT https://arxiv.org/abs/2304.11062 .
Особенно приятно, что мы хорошо знакомы с авторами. Юра Куратов, Миша Бурцев и Айдар Булатов вам большой респект и уважуха!💪
Ребята уже давно занимаются идеей memory transformer. Большой труд и классный результат! Прям гордость распирает!!)) Мы несколько лет назад вместе с ребятами делали совместные эксперименты на эту тему.
На эту работу сделал обзор Yannic Kilcher. Направляю вас на его обзор https://youtu.be/4Cclp6yPDuw. Обзор огонь! Юра Куратов сказал мне, что он очень хорошо объяснил суть их работы.
Не могу пройти мимо. Работа, которая привлекла внимание nlp-сообщества. Scaling Transformer to 1M tokens and beyond with RMT https://arxiv.org/abs/2304.11062 .
Особенно приятно, что мы хорошо знакомы с авторами. Юра Куратов, Миша Бурцев и Айдар Булатов вам большой респект и уважуха!💪
Ребята уже давно занимаются идеей memory transformer. Большой труд и классный результат! Прям гордость распирает!!)) Мы несколько лет назад вместе с ребятами делали совместные эксперименты на эту тему.
На эту работу сделал обзор Yannic Kilcher. Направляю вас на его обзор https://youtu.be/4Cclp6yPDuw. Обзор огонь! Юра Куратов сказал мне, что он очень хорошо объяснил суть их работы.
YouTube
Scaling Transformer to 1M tokens and beyond with RMT (Paper Explained)
#ai #transformer #gpt4
This paper promises to scale transformers to 1 million tokens and beyond. We take a look at the technique behind it: The Recurrent Memory Transformer, and what its strenghts and weaknesses are.
OUTLINE:
0:00 - Intro
2:15 - Transformers…
This paper promises to scale transformers to 1 million tokens and beyond. We take a look at the technique behind it: The Recurrent Memory Transformer, and what its strenghts and weaknesses are.
OUTLINE:
0:00 - Intro
2:15 - Transformers…
Для тех кто не хочет смотреть видео и читать пейпер. Расскажу в пару словах.
RMT – это Recurrent Memory Transformer. Вот пейпер от тех же авторов: https://arxiv.org/abs/2207.06881. Они предложилили трансформер с механизмом рекурентности для машатабирования на длинных последовательностях.
RMT – это Recurrent Memory Transformer. Вот пейпер от тех же авторов: https://arxiv.org/abs/2207.06881. Они предложилили трансформер с механизмом рекурентности для машатабирования на длинных последовательностях.