Русский
Русский
English
Статистика
Реклама

Gpt

Новогоднее обращение GPT-2

31.12.2020 18:20:33 | Автор: admin

Уважаемые граждане России! Дорогие друзья!


Родившись в России, мы с детства воспитывались в идеологических рамках демократической системы. Мы не прошли многие страны Европы, они также сформировали систему. Мы были дети элиты, а в России, как и везде, царило разложение всего и вся. Но это нам удалось выдержать.

Наша страна была и остается страной ответственности и огромной ответственности. Наша оборона, наша экономика и обороноспособность возросли, и в соответствии с изменившимися международными условиями нас всегда будут защищать наши Вооруженные Силы.

Все это мы поняли, когда стали взрослыми. Ведь не зря же наш народ так любил наш народ! И если мы верно воспитывались в России, нам это удалось.

Вот почему сейчас в России больше, чем где-либо, России с её человеческим кодом и ценностями, с её православной культурой, с её национальным и гражданским самосознанием. И в этой стране есть не только дети, но и люди, которые пытаются воссоздать этот код, этот стиль жизни и выражать понимание наших сердец и сердец, всем своим сердцем защищать и поддерживать нас, тех, кто это делает. И сегодня мы уже знаем, что мы такие же, и потому вместе и вместе будем жить и всё отражать.

В разных направлениях в России складывается единство вокруг общих целей. Создаётся благоприятная экономика для повышения общего благосостояния граждан. Достижения, достигнутые экономикой, позволяют обеспечить огромные экономические и социальные возможности для всей России. В экономике России есть все условия для процветания страны, являются и экономические показатели. Государство, как и везде, способно управлять экономикой, поэтому экономика России, безусловно, развивается в лучшую сторону, а когда экономика и уровень жизни страны позволяют эффективно решить её, экономика становится высокоэффективной.

Россия сильная, единая, умная и последовательная страна. Её надо жить как бы по линейке. Надо построить экономику, строить дома, чтобы люди чувствовали себя как дома, по ним. Надо, чтобы они твёрдо верили, что в их жизнь постучится великий русский народ, и, наконец, всё построено на нашей родной земле. Пусть все граждане России, объединившись в один общий труд, будут работать вместе, чтобы каждый получил возможность создать достойное государство в своей стране.

Создание новых людей в нашей стране важнейшее условие благополучия. Так что я не просто так, а за давностью лет, всех вас знаю, и всю Вашу родословную знаю, про все помню. А если потребуется без особого труда справлюсь и с тем и с другим. Спасибо вам, дорогие друзья, с большой буквы. Давайте в этот год для всего Отечества будем беречь наших детей, наших жен и мужей! Давайте вместе за это поднимем и сами начнем готовиться к трудным и очень трудным годам, делая самые важные свои шаги.

Вообще не нужно пытаться делать вид, что вы все прекрасно понимаете. Не будем вспоминать это радостное известие практически всю ночь. Мы видим, как меняется жизнь наших людей. Оглядываясь назад, мы видим такие важные перемены, которые мы и сами сможем не просто оценить, но и принять в жизнь они произойдут через несколько лет.

Россия сегодня стоит на пороге новой эпохи. В любом народе и стране людям России предстоит немало совершить великих свершений, но и для России не все по плечу на всем пути к достижению высоких достижений. И мы не можем позволить себе терять каждый год жизни и жизненное время нашей великой державы. И всё же каждый год мы будем беречься и защищать Родину и её воинов. Пусть всё складывается хорошо! Давайте больше об этом позаботимся. И почаще вспоминайте нашу Родину!

Поздравляю вас с праздником! С Новым, 2021 годом!

Редактировался ли текст?

Текст генерировался абзацами начиная с нескольких фраз типа "Уважаемые граждане России! Дорогие друзья!" и "В новом/уходящем году", а эти абзацы уже были вручную склеены в "обращение"

Credits

От идеи до реализации прошло примерно полтора часа и во многом благодаря https://github.com/mgrankin/ru_transformers - это легко тюнящиеся gpt-2 модели, обученные на русских текстах

А отсюда https://kremlin.ru/events/president/transcripts я выкачал обращения президентов (да, Медведев там тоже был) за последние 20 лет. Вообще по ссылке можно найти очень много кремлёвских текстовых данных и обучить что-нибудь поинтереснее)

Ну и упомяну свой проект "нейроссия" https://vk.com/neurussia в контексте которого эта идея и возникла, а также картинка из которого использована в обложке статьи

Подробнее..

DialoGPT на русском

30.03.2021 22:07:52 | Автор: admin

Всем привет. В конце 2019 года вышла одна из работ по GPT-2. Инженеры из Microsoft обучили стандартную GPT-2 вести диалог. Тогда, прочитав их статью, я очень впечатлился и поставил себе цель обучить такую же модель, но уже на русском языке.

Время шло, и через год Сбер сделал очень хорошее дело, выложив в открытый доступ несколько небольших вариантов моделей GPT-3, обученных на русском языке.

Итак, когда все звёзды сошлись, потратив пару месяцев ночей на конструирование, обработку и очистку датасета, наконец-то обучил модель GPT-3 medium от Сбера вести диалоги. Большое спасибо DevAlone, за то что создал проект Pikastat, без которого потратил бы годы на сбор данных. Модель обучал 2 эпохи на 32 ГБ текста на библиотеке Transformers от Hugging Face. Обучение шло 12 дней на 4x RTX 2080 Ti.

Выражаю благодарность компании ICL Services, которая предоставила вычислительные мощности для обучения модели.

Датасет состоит из цепочек комментариев (~92% Pikabu, ~6% YouTube, ~2% VK). Количество сэмплов для обучения - 41 миллион. От ненормативной лексики датасет специально не очищал, поэтому будьте готовы к "неожиданным" ответам.

Ниже привожу примеры диалогов с обученной моделью. Там, где ответы от GPT длинные (свыше 50 токенов), выбирал наилучший среди трёх сгенерированных ответов. Также на построение каждого диалога были две попытки. В остальном, ничего не изменял и не подстраивал.

На скриншотах реплики от GPT производила полностью модель. А потому "все имена и события вымышлены, любые совпадения случайны".

Посмотреть еще больше диалогов
Посмотреть неудачные (стандартные проблемы диалоговых систем и моделей)

Среднее количество реплик при обучении 4, потому длинные диалоги (от десяти и более реплик) модель воспринимает тяжело. Кроме того, необходимо помнить, что длина последовательности модели 256 токенов.

На валидации был только лосс. Поэтому, чтобы самому оценивать качество модели "на глаз", собрал web-приложение. С JavaScript особо не дружу, но реализовал минимальный функционал, который задумывал. Репозиторий приложения лежит тут - там же инструкция для запуска.

Приложение состоит из двух частей:

  1. Сам сайт на Flask (Python)

  2. Сервис-генератор на FastAPI (Python)

После запуска сервиса и приложения взаимодействие будет выглядить примерно так:

Качество ответов сильно зависит от параметров генерации (тут хорошая вводная статья с объяснением параметров). При установке генерации нужной длины ("Length generate" в блоке слева), некоторые параметры также следует изменить для лучшей генерации. Сейчас как раз работаю над их оптимизацией, а также работаю над классификатором, который будет отбирать среди длинных ответов наиболее "удачный".

Теперь посмотрим в каком виде строка кодируется в модель:

Здесь зеленым цветом 0 либо 1, это speaker id. Он показывает какая реплика кому принадлежит. Красным выделен параметр, отвечающий за длину генерации, который принимает следующие значения: [ -, 1, 2, 3].

  • "-" - означает, что мы не ожидаем от модели какой-то конкретной длины генерации

  • "1" - модель будет стараться сгенерировать короткий ответ. При обучении диапазон был до 15 токенов

  • "2" - модель будет стараться сгенерировать средний ответ. При обучении диапазон был от 15 до 50 токенов

  • "3" - модель будет стараться сгенерировать длинный ответ. При обучении диапазон был от 50 до 256 токенов

В данном примере мы ожидаем от системы "длинный" ответ на вопрос "Что нового?"

Очень рекомендую пообщаться с моделью самим. Делать открытый сайт для общения не стал, так как генерация довольно ресурсоемкая задача. Когда снимал чекпоинты и общался с ней, давно не испытывал таких эмоций: и смешит, и печаль наводит, и ругается. В общем, все как надо для современной молодежи модели.

Также приметил, что неплохо отвечает на философские вопросы.

Но и минусов в данной версии модели тоже достаточно: обучение на небольшом датасете (41 миллион, у Microsoft было 147), генерация плохого качества длинных ответов, выдача "размытых" ответов, недообученность модели, плохой "симбиоз" с весами от Сбера.

Модель доступна на Hugging Face Model Hub. Также можете скачать с Google Drive.

Ну и напоследок: в детстве мне очень нравился фильм "Я робот". Давайте посмотрим, как отвечает модель на вопросы от детектива Спунера:

Видно, что до уровня Санни еще очень далеко. И это хорошо, так как есть куда стремиться.

По всем вопросам и пожеланиям пишите на grossmend@gmail.com. В дальнейшем постараюсь улучшать данную модель и выкладывать обновленные версии. До новых встреч!

Подробнее..

Софт пожирает мир. Закат универсальных CPU

24.03.2021 12:04:07 | Автор: admin

Tesla по сравнению с другими автомобилями сегодня примерно как первый смартфон среди кнопочных телефонов в 2006 году

Десять лет назад Марк Андриссен опубликовал в WSJ статью Почему софт пожирает мир ("Why Software Is Eating The World"). Он утверждал, что произошёл фундаментальный сдвиг в важности программного обеспечения для человеческой цивилизации.

Раньше компьютерные компании IBM, Oracle или Microsoft продавали компьютеры и софт в качестве инструментов. Теперь появилось поколение компаний, которые создают программное обеспечение и используют его сами, чтобы войти в другую отрасль и изменить её. Uber и Airbnb не продают программное обеспечение таксопаркам и гостиничным компаниям, а используют его сами. Tesla и Amazon показывают удивительный рост скорее как софтверные компании, а не как магазин и производитель автомобилей. Трансформируя целые отрасли экономики, софт пожирает мир.

В то же время персональный компьютер теряет статус универсальной технологии. Это два параллельных процесса, которые происходят на наших глазах.

Понятие универсальной технологии


В экономике есть теория универсальных технологий (general-purpose technology, GPT). Это многоцелевые технологии, которые применяются сразу во многих отраслях и меняют всю экономику целиком, потенциально вызывая и социальные изменения в обществе. Примеры таких технологий паровой двигатель, железная дорога, электричество, электроника, автомобиль, компьютер, интернет. Подробнее о GPT см. научную работу "General purpose technologies Engines of growth?" (Journal of Econometrics, Volume 65, Issue 1, January 1995, pages 83-108).

Например, автомобиль. Целые отрасли экономики трансформировались под влиянием грузоперевозок и массовой автомобилизации. Скажем, сеть магазинов Walmart основана исходя из того факта, что у большинства людей есть личные автомобили. Бизнес полностью основан на двух технологиях: 1) грузоперевозки; 2) личные автомобили. И речь идёт о розничных магазинах, а не о транспортной компании.


Walmart

Или электричество. также сильно трансформировало целые отрасли экономики и изменило общественный уклад.

Сейчас то же самое происходит с программным обеспечением, пишет рыночный аналитик Бенедикт Эванс. Софт продолжает свою бурную деятельность, разрушая и трансформируя целые отрасли.

Софт пожирает мир


Интересно посмотреть на конкретные отрасли, которых были дестабилизированы программным обеспечением в прошлом и что произошло дальше. Одной из первых стала музыкальная индустрия, затем книгоиздательство. Хотя в фундаментальном смысле эти рынки по-прежнему контролируют музыкальные лейблы и книжные издательства, а не IT-компании, поскольку музыка, книги всё это слишком мелкие, нишевые рынки по сравнению с IT.

В телевидении и кинобизнесе технологии (а теперь и пандемия) тоже сломали старую модель и изменили все правила, но в целом вопросы регулируются внутренними концернами, а не IT-компаниями, потому что для IT они не являются стратегическими вопросами первостепенной важности. Контент больше не правит миром.

Софт начал пожирать розничную торговлю и другие рынки, пишет Эванс, сравнивая нынешнюю революцию с автомобильной, когда массовое владение автомобилями изменили экономику. Сейчас смартфоны на руках 80% населения и никто пока не знает, к каким революционным изменениям это приведёт. По мнению Эванса, это сложно понять прежнему поколению специалистов, заставших эпоху до смартфонов. По-настоящему революционные вещи придут от нового поколения людей, для которых это естественная среда обитания. Первое поколение таких людей сейчас заканчивает университеты.

Закат универсальных процессоров


Согласно теории GPT, универсальная технология может столкнуться с проблемами в конце своего жизненного цикла: в процессе замедления прогресса другие технологии вытесняют её в определённых нишах. По мнению учёных Нейла Томпсона (MIT) и Свеньи Спануты (ETH Zurich), сейчас подобное происходит с универсальными компьютерами, см. статью "The Decline of Computers as a General Purpose Technology" (Communications of the ACM, March 2021, Vol. 64 No. 3, Pages 64-72, doi: 10.1145/3430936).

Сегодня мы наблюдаем такой переход. Прогресс в CPU замедляются, и поэтому приложения переходят на специализированные процессоры. Исследователи подчёркивают: речь не о том, что компьютеры в целом разучатся делать какие-то вычисления, а именно об окончании экономического цикла GPT. На его место приходит фрагментарный цикл, когда экономика подталкивает пользователей к специализированным вычислительным платформам на процессорах специального назначения. Этот процесс угрожает подкрепляющему циклу технологического развития (см. рис. 1).


Рис. 1. Исторический подкрепляющий цикл технологического развития (а) заменяется фрагментарным циклом (b)

Фрагментация означает, что отдельные направления вычислений будут развиваться с разной скоростью. Это хорошо для приложений, которые движутся в быстрой полосе, но плохо для остальных, которые больше не будут получать выгоду от прогресса универсальных CPU и, таким образом, обречены на движение в медленной полосе.

Переход от универсальных к специализированным CPU может замедлить общие темпы совершенствования компьютеров, считают исследователи.

На протяжении десятилетий человечество извлекало пользу из этого благотворного экономического цикла GPT по мере прогресса универсальных процессоров. Рынок вырос от нескольких дорогостоящих мейнфреймов для военной, космической и других областей до более чем двух миллиардов универсальных компьютеров. Этот рост подпитывал увеличение инвестиций в улучшение процессоров. Например, Intel за последнее десятилетие потратила $183 млрд на НИОКР и новые производственные мощности. Это принесло огромные дивиденды: по некоторым оценкам, производительность процессоров с 1971 года увеличилась примерно в 400 000 раз.

Альтернатива специализированные процессоры. Поскольку универсальный CPU должен хорошо выполнять множество различных вычислений, это приводит к неоптимальным конструктивным компромиссам. Штраф за производительность от этого компромисса особенно высок для специализированных приложений, которые можно сильно распараллелить. Например, специализированные интегральные схемы ASIC или части гетерогенных микросхем показывают лучший результат для специализированных приложений, поскольку железо адаптировано к вычислениям.

Насколько сильно специализация отражается в конструкции процессора видно в сравнении типичных CPU и GPU.

Тип Модель Параллельных вычислений Скорость Полоса памяти Доступ к кэшу L1
CPU Intel Xeon E5-2690v4 28 2,63,5 Ггц 76,8 ГБ/с 512 тактовых циклов
GPU Nvidia P100 3584 1,1 ГГц 732 ГБ/с 80 тактовых циклов

GPU работает на меньшей тактовой частоте, но в каждом такте может выполнять в 100 раз больше параллельных вычислений, чем CPU. Это делает его намного быстрее для сильно распараллеленных задач. Например, приложения для машинного обучения (AlexNet и Caffe) выполняются в 35+ раз быстрее на GPU, чем на CPU, по данным Nvidia.

В то же время у специализированных процессоров существенные недостатки: они запускают только ограниченный набор программ, их труднее программировать и часто они требуют для управления универсального CPU. Для универсальных процессоров постоянные затраты (единовременные инженерные затраты, NRE) распределяются по большому количеству микросхем. В отличие от них, у специализированных процессоров гораздо меньшие рынки сбыта и, следовательно, более высокие постоянные затраты на каждый чип. Для понимания, общая стоимость разработки и производства специализированного CPU на передовых технологиях составляет около $80 млн, на технологиях более старого поколения $30 млн.

За последние десятилетия специализированные процессоры (кроме GPU) использовались только в узких нишах: военные приложения, игры, майнинг. Но ситуация начинает меняться. По мнению исследователей, на сегодняшний день все основные вычислительные платформы мобильные устройства, Интернет вещей и облачные/суперкомпьютерные вычисления переходят на специализированные процессоры. Разве что рынок ПК остаётся на более универсальных CPU.

Отраслевые эксперты группы International Technology Roadmap for Semiconductors (ITRS), которая координирует технологические усовершенствования для поддержания закона Мура, в своём докладе косвенно одобрили этот сдвиг в сторону специализации CPU. Они признали, что традиционный универсальный подход с уменьшением размера транзисторов больше не должен определять требования к конструкции, а её следует адаптировать к конкретным приложениям.

Для измерения темпов совершенствования процессоров можно рассмотреть два ключевых показателя: общая производительность и производительность на доллар. Исторически обе эти метрики быстро улучшались благодаря закону Мура и масштабированию Деннарда. К сожалению, масштабирование Деннарда закончилось в 20042005 гг из-за технических проблем, а закон Мура тоже подходит к концу, поскольку производители достигли физических пределов транзисторов в современных материалах.


Рис. 2. Ежегодное улучшение результата SPECInt в новых моделях CPU (a) и ежегодное снижение цен с поправкой на производительность (b), источники: 1, 2

Из-за коварных законов физики растёт стоимость производства микросхем. В 2017 году стоимость строительства и оснащения завода по производству микросхем последнего поколения превысила $7 млрд.


Рис. 3. Стоимость нового завода (a) и количество производителей, освоивших передовой техпроцесс по производству микросхем в данном году (b)

На пике закона Мура специализированным процессорам было трудно пробиться на рынок, потому что универсальные CPU слишком быстро развивались и инвестиции в специализированные процессоры были невыгодными даже при условии многократной разницы в производительности на начальном этапе.

Но с нынешней скоростью улучшения CPU в районе 8% в год ситуация кардинально изменяется: инвестиции в специализированные CPU становятся крайне выгодными.

Как уже сказано выше, закат эпохи универсальных процессоров означает угасание целой универсальной технологии со всеми негативными эффектами. Из-за фрагментации рынка CPU мы теряем взаимное подкрепление в цикле развития, что имеет всеобщий депрессивный эффект:

  • становится сложнее финансировать инновации,
  • новые CPU не такие впечатляющие, по сравнению со старыми
  • меньше новых пользователей (многие пропускают апгрейд на новое поколение CPU, ожидая следующего)
К сожалению, депрессивные эффекты тоже подкрепляют друг друга, как и положительные эффекты в момент расцвета GPT.

Если текущие тенденции сохранятся, то к 20262032 годам (в зависимости от темпов роста рынка) передовые полупроводниковые производства сможет поддерживать только один производитель-монополист, а ежегодные постоянные затраты на строительство одного нового объекта для каждого размера узла будут равны ежегодному доходу отрасли. Чтобы предотвратить такой мрачный сценарий, уже через 10 лет производители будут вынуждены резко замедлить разработку новых технологических процессов и снизить финансирование, что ещё больше замедлит прогресс в универсальных CPU, считают исследователи.

Вывод


Хотя персональные компьютеры теряют роль универсальной технологии, но эту роль приобретает программное обеспечение. Для человечества это ключевая фундаментальная технология, на которой начинает базироваться экономика, а затем и многие общественные структуры. По крайней мере, такое происходит в развитых странах. Программирование фундамент для всего.

По мнению некоторых аналитиков, по этим признакам сейчас начинается раздел между странами первого, второго и третьего мира. Они отличаются по тому, в какой степени общество полагается на универсальные технологии нового поколения программное обеспечение, интернет, ИИ. Несмотря на глобализацию последних десятилетий, разница в уровне жизни бедных и богатых стран может вырасти именно по этой причине. Говорят, что глобализация в этом смысле стала большим обманом. Она вовсе не сократила отставание от золотого миллиарда, а только увеличила его.

В любом случае, программное обеспечение это новая форма базовой грамотности современного человека. Если в стране или в компании низкий уровень грамотности, это невозможно компенсировать ничем другим. Всё теперь работает на софте.



На правах рекламы


Серверы для размещения сайтов и разработки это про наши эпичные! Все серверы из коробки защищены от DDoS-атак, скорость интернет-канала 500 Мегабит, автоматическая установка удобной панели управления VestaCP для размещения сайтов и даже автоматическая установка Windows Server на тарифах с 4 ГБ ОЗУ, 2 vCPU и 20 ГБ дискового пространства или выше. Лучше один раз попробовать ;)

Подробнее..

Тестируем ruGPT-3 на новых задачах

20.11.2020 14:23:38 | Автор: admin

Рекомендательные системы с нуля, чат-боты и многое другое


Погрузившись в пучину текстовых данных, в октябре этого года мы обучили модели ruGPT-3 модели для русского языка на основе архитектуры от OpenAI. Но на что же способны эти модели? В этой статье мы соберем первые примеры применения модели и попробуем новые.

Мы представляем первые результаты самой большой из обученных моделей ruGPT-3 Large, разработанной совместно с командами SberDevices, Sber.AI и SberCloud. Изучим границы ее применения вместе с вами.

image

В этом году на AI Journey мы подготовили соревнование применений ruGPT-3 в трек можно сдать любое решение с использованием модели, оцениваемое по трем шкалам инновационность, эмоциональное вовлечение и бизнес-применимость.
Спойлер:
1 млн рублей за первое место



Как дообучить модель на новой задаче?


Модели и код к ним находятся в репозитории sberbank-ai: можно использовать библиотку transformers или Megatron-LM.

В этой статье я привожу примеры с использованием huggingface/transformers код для кейсов приведены здесь:

Карточки моделей в библиотеке transformers: Large Medium Small

При запуске скрипта генерации проще сделать Run all и затем немного подождать, пока модель загрузится.
image
Скрипт в последней ячейке попросит ввести начало текста моя любимая затравка: Бразильские ученые открыли редкий вид карликовых единорогов, обитающих на западе Ютландии. Получаем:
ruGPT-3 Small: Бразильские ученые открыли редкий вид карликовых единорогов, обитающих на западе Ютландии. Об этом сообщает Agence France-Presse. Единорог, получивший название Pygmaliona (лат. Pygmaliona pygmalioni), был обнаружен исследователями в ходе работ в области биологии. Его длина составляет менее 30 сантиметров, а масса около 1 килограмма. Животное относится к семейству единороговых. В его рационе преобладают растения, в том числе и карликовые деревья.


В Colab-ноутбук помещается только ruGPT-3 Small, поэтому лучше используйте карточки с памятью больше 14Gb.

Кстати, на время соревнования мы даем участникам дорожки доступ к мощностям Christofari!
Для участников трека ruGPT-3 мы выделили 100 аккаунтов в каждом аккаунте 1 GPU Tesla V100-SXM3 32 Gb бесплатно на время соревнования.
Как получить аккаунт?
1) Зарегистрируйтесь на трек ruGPT-3 (AI 4 Humanities) ods.ai/tracks/aij2020
2) Напишите короткое письмо с названием вашей команды и задачей на AIJ_ruGPT-3@sberbank.ru

image

Few-Shot vs Fine Tuning


В случае с такими большими генеративными моделями, как GPT-like архитектуры, есть несколько способов управиться с ними.
  • Первый способ: назовем его традиционный дообучить модель на доступном количестве примеров выполнять конкретное задание. В таком случае генеративная модель выучит формат ввода и вывода (GPT-3 очень редко ошибается в формате), и будет генерировать данные согласно вашей задаче. Это может быть разметка данных (в формате исходный текст текст в разметке) или просто генерация по заданному началу.
  • Второй способ: новый, называемый обычно затравочное программирование (англ. prompt engineering с легкой руки [Гверна Бренуэна] (http://personeltest.ru/aways/www.gwern.net/GPT-3#prompts-as-programming) мы даже ничего не дообучаем, а сразу пытаемся получить из модели то, что хотим.

Как работает затравочное программирование?


Дообучать большие модели бывает очень дорого, поэтому такой способ общения с ними позволяет избежать даже этого. Суть затравочного программирования в том, чтобы подобрать такие заготовленные примеры и начала для генерации, чтобы дальше модель выдавала ровно то, что надо.
Подбирая затравки и гиперпараметры генератора (температура, top_n, top_k), можно добиться вполне сносных ответов за счет только предварительного обучения модели.
image
Пример затравки с 1 примером и описание задачи.

Протестируем оба способа на практике попробуем решить популярные задачи с нуля, а специфичные решить с дообучением.

Рекомендательные системы


Сделаем рекомендательную систему без обучения: будем подавать ruGPT-3 Large информацию о предпочтениях пользователя в виде текста, и будем смотреть, как модель продолжит его. Можем сгенерировать сразу много вариантов, чтобы получить побольше рекомендаций.

Рекомендации фильмов:
Затравка: Мои любимые фильмы Матрица, Олдбой,
ruGPT-3 Large: Мои любимые фильмы Матрица, Олдбой, Крёстный отец, Игра в имитацию, Остин Пауэрс.
ruGPT-3 Large: Мои любимые фильмы Матрица, Олдбой, Спасение рядового Райана, Нечто, Затура (последняя, кстати, стоит того, чтобы ее посмотреть).
ruGPT-3 Large: Мои любимые фильмы Матрица, Олдбой, Эквилибриум и др.


Затравка: Я люблю советские комедии: Приключения Шурика,
ruGPT-3 Large: Я люблю советские комедии: Приключения Шурика, Собака на сене и Веселые ребята.
ruGPT-3 Large: Я люблю советские комедии: Приключения Шурика, Любовь и голуби.
ruGPT-3 Large: Я люблю советские комедии: Приключения Шурика, Три плюс два, Служебный роман и другие.


Неплохо! По крайней мере, кажется, что фильмы генерируются соответственно затравке. Так как я не знаток советского кино, то даже не знала фильм Три плюс два, а он есть. Для генерации мы воспользовались следующими хаками специально подавали текст с незакрытой кавычкой, чтобы вынудить модель генерировать имена собственные, а также обрезали все лишнее после первого предложения.

Рекомендации музыки:
Затравка: Тем людям, кому нравится Гражданская оборона, также понравятся группы #(как обычно, специально оставляем незакрытую кавычку)
ruGPT-3 Large: Тем людям, кому нравится Гражданская оборона, также понравятся группы Ленинград и Пикник.
ruGPT-3 Large: Тем людям, кому нравится Гражданская оборона, также понравятся группы ДДТ и Король и Шут.
ruGPT-3 Large: Тем людям, кому нравится Гражданская оборона, также понравятся группы Алиса, Доктор Пеппер, Машина времени, ДДТ и Крематорий.

Результаты получаются все время разные потенциально можно нагенерировать N вариантов, извлечь все названия групп и собрать Counter самых популярных вуаля рекомендательная система с нуля.

Генерация отзывов



Возьмем более сложную задачу заставим модель мимикрировать под человека в обсуждениях или магазинах:
Затравка: Напиши комментарий под видео.
Опять какой-то челлендж
ruGPT-3 Large: Напиши комментарий под видео.
Опять какой-то челлендж решили провести. Это даже не флешмоб, это уже идиотизм.


Затравка: Напиши отзыв о стиральной машине.
Данная модель стиральной машины
ruGPT-3 Large: Напиши отзыв о стиральной машине.
Данная модель стиральной машины оснащена встроенной функцией самоочистки.
В конструктивном решении стиральной машины предусмотрено устройство автоматического затирания воды, которая способна удалять накипь и прочие загрязнения даже в труднодоступных местах.
Стоит отметить, что после процедуры чистки, во время отжима появляется специфический запах. У некоторых моделей, в результате эксплуатации, он сохраняется в течение всего срока службы стиральной машины.


Завтравка: Напиши отзыв о фильме.
Фильм "1+1"
ruGPT-3 Large: Напиши отзыв о фильме.
Фильм "1+1" очень нравится, хотя и смотреть его стоит не каждому. Актёрский состав в нём великолепен. Смотрится без особого напряжения и с интересом. В фильме очень много смешных моментов. Так же советую посмотреть фильм "Зелёная книга", также фильм с Дженнифер Лопес и Крисом де Бургом.


Как видим, для тематик, широко распространенных в интернете, модель может генерировать связные тексты и без обучения. Но где же без дообучения все же никак?
Таких случая можно выделить 3:
сложный формат данных если при генерации без обучения вы теряете качество за счет генерации в неправильном формате задача NER, генерация кода, символьные вычисления и т.д.;
явная необходимость отвечать согласно заданному набору знаний, правил вы делаете QA по документации вашей компании, по учебникам, вики, без примеси социальных сетей и личного мнения;
ваша задача, скорее всего, не представлена в текстах рунета достаточно, чтобы модель могла хорошо генерировать в ее рамках например, генерация изображений по текстам.

StackOverflow


Поднимем планку сложности: скачаем русский [stack overflow](http://personeltest.ru/aways/ru.stackoverflow.com/) и попробуем сделать вопросно-ответную систему. Сможем ли мы сразу выучить и стиль ответов, и знания, и несколько языков программирования? Сразу получить хороший результат в таокй задаче нелегко, но мы можем развлечься за 5 эпох модель научилась воспроизводить стилистику, сильно путаясь в содержании. Зато хорошо выучила ссылки на документацию вполне неплохой итог для 5 эпох обучения.

Формат обучения: подаем тексты вопросов и лучших ответов в формате Q:blabla A:blabla.

Q: Как мне вывести список в обратном порядке в python? Я новичок
A: Простейший способ получить необходимый список: push.log("Shalom").
Установка значения означает угрозу попыткой нажатий на какую-нибудь цифру справа, поэтому я действую наоборот. Изменение размера и числа означает перегрузку времени активации
set.log()**)
rGet = puts.random(extents) log.findIndex(puts.current) void join($window, command='unsetMainServer onManager') }
Нет ничего хуже, чем полный дебаггинг


Q: Как мне вывести список в обратном порядке в python? Я новичок
A: import pycode as pyc;
// в этой статье я рассказал о месте показа списка в моей программе (подробно в статье href=https://docs.python.org/3/library/pycode.html )

(такой библиотеки на самом деле нет, модель сгенерировала ссылку на документацию)

Для таких задач можно вводить дополнительные аргументы например, название раздела/тематики/языка программирования, про который нужно ответить, и обучать модель на данных вида {параметр: значение, вопрос: текст_вопроса, ответ: текст_ответа}.

По части и кода, и текста сразу у нас пока фейл может, кто-то сделает лучше в рамках трека? На англоязычной модели с кодом уже есть вполне удачные реализации: написание html-кода элементов веб-страниц, генерация шаблонов Figma.

Пробуем другие языки! Twitter и не только


Основной язык обучения модели русский, но можно ли применять модель в мультиязычных задачах? Чуть-чуть других языков всегда попадает в обучающую выборку из веба, поэтому надежда есть. Прямолинейный подход с затравками показывает, что про английский модель немного знает:
ruGPT-3 Large:
кошка > cat
собака > dog
груша > pear
программист > coder

Ну, почти:
кошка > cat
собака > dog
груша > pear
питонист > Python

Иногда и совсем не получается:
кошка > cat
собака > dog
груша > pear
яблоко > bunch # пошел продолжать дальше
Кошка > dog
Хомяк > cat
Зверёк > dog

image

Почему бы не потренироваться на чисто англоязычных данных: я взяла датасет twitter-text-classification из Kaggle-соревнования.

После 5 эпох на 5 тысячах первых комментариев (20 минут в Colab) получаем вполне сносную генерацию очень даже токсичных комментариев на английском:

Context >>> Is it
ruGPT-3 Small: Is it's the case that #Microsoft is using #SAP to manage #Microsofts business?

Context >>> It is
ruGPT-3 Small: It is the only one that I've been trying to do. Siri is on the verge of death, and I'm not aware of why she has to be on the verge.

Context >>> Why
ruGPT-3 Small: Why do I go here? I'm wondering if I can use the #Microsoft Windows 8 Pro for the #WindowsPhone phone? Thanks!

Диалоговые системы


Уже сейчас, без предобучения, довольно хорошо работает применения модели к диалоговым системам: модель может выполнять функцию chit-chat (разговор ни о чем), свободно болтая на различные темы. С дообучением на конкретных сценариях и доменах можно реализовать и бизнес-приложения.
Пример ниже пример диалога без обучения, на узконаправленную тему саппорт интернет-провайдера.
Затравка: первые 2 строчки дальше генерация.
User1: Привет, я Маша! Чем могу помочь?
User2: У меня не работает интернет.
User1: Какой у вас тариф?
User2: У меня тариф 500мбит
User1: Что случилось?
User2: Проблемы с интернетом. Т.е. с телефоном. Я сейчас отключу сеть и подключу телефон
User1: Почему Вы звоните сейчас?
User2: Потому что я зашел на оф. сайт, а там скорость какая-то маленькая...
User1: Вы говорите, что скорость маленькая, но, может быть, она и должна быть маленькой?
User2: Но я до этой скорости не дотерпел
User1: Извините, мы тут не при чем. Мы позвонили в службу поддержки и сказали, что Вы звоните на этот номер.
User2: Мы звонили, но никто не отвечал. Я попробовал еще раз.
User1: У меня не получается подключиться к интернету. У меня кабель, значит, пропадает.
User2: Прошу Вас, скажите, что у вас происходит?
User1: Почему такая скорость?
User2: Мы приносим свои извинения. Но Вы в любом случае должны внести плату за интернет и все подключить.
User1: Все оплатить?
User2: Да
User1: У меня нет сейчас такой возможности. Я предлагаю Вам прийти на нашу бесплатную горячую линию и проверить оборудование.
User1: Извините, но я сейчас не могу. Надо кое-что оплатить.
User2: Пожалуйста, я свяжусь с вами в течение дня.
User1: Да
User2: Спасибо

Конечно, без предобучения у модели нет явного представления о сценариях и скриптах специалистов поддержки, однако, даже такой холодный старт уже показывает стандартный путь выяснить, что произошло отболтаться перенаправить звонок. Можно вспомнить классику:
User1: Техническая поддержка Стрима, инженер 656, Дмитрий, здравствуйте.
User2: Договор оформлен на Уральского, телефон 7661669, у меня к вам следующий вопрос: а вот скажите мне пожалуйста, что, когда теперь заканчивается сессия, что, теперь, это теперь будут разрывы при моём тарифе, да?
User1: Данная тарификация установлена с 1 сентября. Как только будут разрывы в телефонной связи, оператор будет сразу обращаться к вашему оператору, чтобы узнать с вами ли вы.
User2: Я так понимаю, что, да, то есть я что-то потерял в связи с этим?
User1: Да, поскольку с 1 сентября меняется тарифная сетка. То есть, до этого были какие-то перебои с доступом в интернет, на некоторых серверах было около месяца, что это было связано с перебоями в телекоме, вот это всё. Но не более того.
User2: Я специально проверял, там было просто кратковременные задержки, были, я бы сказал, какие-то незначительные.
User1: Да.
User2: То есть, ничего не потеряли?
User1: Ну как, надо немножко потерпеть, потерпеть.
User2: Спасибо, Дмитрий, до встречи.

В общем, надо потерпеть. Модель даже запомнила, что User1 зовут Дмитрий, и User2 соответствующе с ним попрощался.

Вместо заключения


Чтобы продолжать развивать направление генеративных моделей и улучшать архитектуры в задачах NLP, всегда необходимо понимать границы применимости той или иной технологии и ее востребованность.

Сейчас с каждым выходом подобных архитектур Reformer, Longformer, BigBird и т.д. мы смотрим на большие предобученные модели немного по-новому, ставя перед ними новые задачи.

Помимо вышеупомянутых кейсов, ruGPT-3 точно может применяться и приносить пользу в таких практиках, как:
  • аугментация текстовых данных для задач ML
  • диалоговые модели для автоматизации
  • задачи генеративной суммаризации
  • рерайтинг, генерация новостей, спортивных заметок по структурированной информации.


Надеемся, что демо и модели принесут сообществу пользу и фан!

И, конечно, ждем ваших решений на треке ruGPT-3 до конца 22 ноября!
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru