company_banner

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

  • Tutorial

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


Погрузившись в пучину текстовых данных, в октябре этого года мы обучили модели 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» с легкой руки Гверна Бренуэна — мы даже ничего не дообучаем, а сразу пытаемся получить из модели то, что хотим.

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


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

Подбирая «затравки» и гиперпараметры генератора (температура, 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:

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

StackOverflow


Поднимем планку сложности: скачаем русский [stack overflow](https://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 #Microsoft’s 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: Договор оформлен на Уральского, телефон 766—1669, у меня к вам следующий вопрос: а вот скажите мне пожалуйста, что, когда теперь заканчивается сессия, что, теперь, это теперь будут разрывы при моём тарифе, да?
User1: Данная тарификация установлена с 1 сентября. Как только будут разрывы в телефонной связи, оператор будет сразу обращаться к вашему оператору, чтобы узнать с вами ли вы.
User2: Я так понимаю, что, да, то есть я что-то потерял в связи с этим?
User1: Да, поскольку с 1 сентября меняется тарифная сетка. То есть, до этого были какие-то перебои с доступом в интернет, на некоторых серверах было около месяца, что это было связано с перебоями в телекоме, вот это всё. Но не более того.
User2: Я специально проверял, там было просто кратковременные задержки, были, я бы сказал, какие-то незначительные.
User1: Да.
User2: То есть, ничего не потеряли?
User1: Ну как, надо немножко потерпеть, потерпеть.
User2: Спасибо, Дмитрий, до встречи.

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

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


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

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

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

  • аугментация текстовых данных для задач ML
  • диалоговые модели для автоматизации
  • задачи генеративной суммаризации
  • рерайтинг, генерация новостей, спортивных заметок по структурированной информации.

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

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

Комментарии 49

    +2

    Очень захватывающе, спасибо! Всегда с большим увлечением читаю новости о GPT-3.


    Не подскажете: какое минимальное железо требуется чтобы запустить хотя бы минимальную версию ruGPT?


    В идеале хотелось бы готовый docker-image, который можно просто запустить на любом лэптопе и попробовать поиграться с сетью.

      +2
      Спасибо! Минимально нужно 14Gb памяти на GPU — на лэптопе или в Колабе: colab.research.google.com/drive/1bwNxmVJMJ3x_N5ylS-nylkQpHUAF0DES?usp=sharing клонируется репо, там есть все requirements к питоновским библиотекам.

      Вот еще примре со школьного трека — обучаем сетку за 20 минут писать сочинения в колабе: colab.research.google.com/drive/1h6r6Qg9xwyIzz6-FXgB9tIjAzce0gc2d?usp=sharing
        +1

        "Мама, купи мне GTX 3090! Это для учёбы, честно!"

          0
          То есть это gpt-3-small? Боюсь спросить, а large тогда что требует?
            0
            Ну на одну Tesla V100-SXM3 32 Gb помещается
            Это другая сторона медали вот таких здоровых моделей, конечно
            0
            Dell HHCJ6 NVIDIA Tesla K80 24GB GDDR5 PCI-E 3.0 Server GPU Accelerator

            То есть такой железки должно хватить?
            0
            Получение ответов от сети работает на 3gb 1060 для моделей small и medium. Донастройка уже не получается.
            0
            Как бы без всяких соревнований, конкурсов, розыгрышей и всей этой моложожной хайп-требухи привинтить GPT-3 к своему боту и сидеть с ним баловаться?
              0
              А кто вам мешает? Берите из репозитория и используйте.
                0
                Примеров бы (а не призывов).
                  0
                  Примеров чего? В тексте есть и ссылки на Colab-нетбуки и примеры использования.
                    0
                    Вот скриншот всего «ноутбука».

                    image

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

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

                        Единственный путь — идти на англоязычный сайт мимо вас и там с ними работать. Как освоюсь там, может быть напишу.
                          +3
                          К сожалению, я пока не очень понимаю, чего именно вы хотите. Вы что-то не понимаете, но что именно не понимаете сказать не можете. Поэтому мне трудно вам помочь.
                            –2
                            Ну понятно, лол, я ж не журналист.
                            Хотелось бы, например, чтобы вы показали параметры и код для каждого приведённого примера. А то, вот, народ (внизу) запускает и не получает того же самого (качественно).
                              0
                              Ну штош, ни вы, ни я не журналисты. Народ (внизу) запускает и получает нормальные результаты. Параметры и код для каждого примера — принято, будут.
                                0
                                Человек просит мануал по запуску.
                                То есть как человеку который ранее не увлекался ML — запустить эту систему.
                                Какой софт надо ставить, как запускать и т.д.
                                  0

                                  Нужен python, и библиотеки из нашего репозитория.


                                  Либо просто ничего не ставить, а запускать все готовое в колаб-ноутбуке (ссылки в статье) — это такая бесплатная среда для программирования на python

                +1
                В колабе есть конкретный пример, но можно делать и без него.
                все модели есть, и код к ним: репо

                Вот рабочий ноутбук с загрузкой маленькой модели colab.research.google.com/github/sberbank-ai/ru-gpts/blob/master/examples/ruGPT3_generation_example.ipynb
                  –4
                  А что с ним в этом виде делать и, главное, зачем? Менять циферки наобум и любоваться на строчку текста?
                    +4
                    Context >>> пользователь zazar не понимает
                    11/20/2020 12:13:56 - WARNING - transformers.modeling_utils -   Setting `pad_token_id` to 50256 (first `eos_token_id`) to generate sequence
                    ruGPT:
                    пользователь zazar не понимает, о чём говорит пользователь ma_sam.  Но это не значит, что он не понимает, о чём говорит пользователь ma_sam. 
                     Пользователь ma_sam, в свою очередь, не понимает, о чём говорит пользователь zazar. 
                     Таким образом, мы имеем ситуацию, когда пользователь ma_sam, не понимая о чём говорит пользователь ma_sam, не понимая о чём говорит пользователь zazar, не понимает, о чём говорит пользовател
                    Context >>>

                    Нажмите Runtime -> Runn all, когда все ячейки выполнятся, тогда в конце будет Context >>> и туда можно ввести текст свой.

                      –3
                      Ну, подобную пену я получал ещё во время первого анонса ruGPT-3. Даже скриншот прилагал: habr.com/ru/company/sberbank/blog/524522/#comment_22290054
                      Хотелось бы, к примеру, чтобы это была квазиосмысленная беседа, а не просто выдернутая откуда-то цитата (плохо скомпонованная и обрезанная) по ключевому слову, чем она вот так вот, как вы привели, выглядит.
                0
                Чувствуется черрипикинг. Не в том смысле, что подобраны удачные примеры, а в том, что предлагаемые скрипты и параметры запуска к таким результатам не приводят.

                1) В примерах из поста модель всегда генерирует законченное предложение.
                На деле без тюнинга так не получается – приходится эвристикой обрезать до самой правой точки.
                2) (но связано с 1) Модель генерирует столько токенов, сколько указано в параметре length. Модель не обучалась на токене конца текста – поэтому приходится загружать модель снова, чтобы ожидать текст примерно другой длины. Скрипты тюнинга не позволяют добавить собственные токены (приходится дописывать реализацию).
                3) Параметры запуска не соответствуют тем, которые приложены в примере на колабе.

                Если взять «рекомендуемые» параметры запуска, на примере с диалогом саппорта мы получим следующее. Тут изменилась только длина – диалог из примера 1217 символов, соответственно, установил length=1250.

                image

                Видим, что модель заикается, и как-то совсем не про саппорт. Может быть, дело в неправильном вводе новой строки? Питоновский input() с этим не справляется, поэтому заменим input() на другой метод и запустим снова:

                image
                К сожалению, до конца не влезает. Конец выглядит так:
                image

                Подтвердите – примеры из статьи подредактированы (обрезка справа) и получены с другими параметрами?
                  +2
                  Спасибо за комментарий!

                  Нет, примеры не обрезаны — но они получены с помощью модели ruGPT-3 Large, она чуть получше генерирует, чем модель Small. Я делаю через демку, запущенную на Кристофари — к сожалению, не могу ее дать пока в паблик.
                  У генеративных моделей есть такие проблемы, что они могут зацикливаться, это правда — в таких случаях как раз нужен постпроцессинг. image
                    +1
                    Я запускаю Large модельку на своих мощностях (не на колабе). Поэтому и смущает – видимо, дефолтные параметры запуска всё-таки не те, которые в колабе. Это, в принципе, нормально, просто может быть неявно для пользователей, которые ожидают увидеть примерно такое же качество генерации, а в итоге получают то, что у меня на скринах.
                      0
                      А какие вы параметры генератора используете?
                        0
                        Дефолтные из скрипта запуска (напомню, что там температура 1.0), за исключением предлагаемых на колабе k=5 и p=0.95. Из отсебятины лишь length 1250, чтобы воспроизвести диалог похожей длины.

                        Поэкспериментировал с температурой (1→0.7), top_k (5 → 40) – лучше не стало.
                        Я могу ввести repetition_penalty и заюзать другие техники – но посыл в том, что пример с диалогом не воспроизводим из коробки. Ну или есть особое сочетание параметров, о котором я не знаю
                          0
                          Попробуйте temperature = 0.9, top_k = 0, top_p = 0.95.
                            0
                            Спасибо, так действительно получше:

                            image

                            С оговоркой:
                            В статье написано, что контекст – первые две строчки. С ними при этих параметрах тоже ужас (фразы в основном из знаков препинания). Обязательно нужно ввести «User1: » в конце, как, в принципе, во всех few-shot примерах.

                            И тогда предлагаемые на колабе параметры не очень хороши.

                            И всё-таки последняя фраза обрезается. Ну это поправимо, конечно, просто жаль, что модель не может нормально остановиться и генерирует по максимуму.

                            Получается, top_k-сэмплирование не работает для Large?
                            (на этом моменте не уверен, что дискуссию не нужно продолжать на гитхабе, всё-таки пост не об этом).
                              0
                              Да, «User1:» нужно, конечно, добавить. top_k работает, тут оптимальные параметры зависят от конкретной задачи. Те, что я привёл, это некие усреднённые эмпирически подобранные. Да, я думаю, что можно перебраться на github.
                        0
                        которые ожидают увидеть примерно такое же качество генерации, а в итоге получают то, что у меня на скринах.


                        Вот-вот!
                          0
                          почти все примеры работы нейронок можно охарактеризовать мемом «ожидание — реальность». В лучшем случае, из 10-20 вариантов выбирают один для демонстрации.

                          что и требовалось доказать.
                          Context >>> дорогие россияне!
                          ruGPT:
                          дорогие россияне! t.co/YjYtqmD1 #wikileaks #wikileaks #wikileaks
                          @KeithBrown @MrMcMrMrMr @
                          Context >>> товарищи рабочие!
                          ruGPT:
                          товарищи рабочие! Это же надо такое придумать — «срочно» продать! «Срочно» — это же надо додуматься! — воскликнул я. — «Срочно» — это ж надо додуматься! «Срочно» — эт
                          Context >>> я устал, я ухожу
                          ruGPT:
                          я устал, я ухожу

                          — Ты не понимаешь, как я устала!

                          — Постарайся не волноваться.

                          — Ты же не думаешь, что я буду спать всю ночь?

                          — Я не сплю! Я просто устала
                          Context >>> как построить дом площадью 16 соток на участке в 6?
                          ruGPT:
                          как построить дом площадью 16 соток на участке в 6?
                          [ссылка заблокирована по решению администрации проекта]
                          [ссылка заблокирована по решению администрации проекта]
                          а как построить дом площадью 16 соток на участке в 6?
                          #iphone #ipad

                          какое аниме посмотрет

                          Context >>> какое аниме посмотреть?
                          ruGPT:
                          какое аниме посмотреть?
                          «Крик» — это про тебя, детка.

                          Какие есть хорошие сайты для знакомств в интернете?
                          [ссылка заблокирована по решению администрации проекта]

                          Что за фигня, на телефоне 4G?


                          похоже, сеть явно переобучилась на заблокированных ссылках(
                      0
                      " — У меня нет интернета
                      — я тебе сейчас его принесу"
                      Отличный диалог для техподдержки, всегда бы так((
                      0
                      Можно ли работать с этой моделью (Large) без GPU вообще?
                      +1
                      Как им вообще удалось запихать питон в искусственный интеллект? Ведь там нужна скорость, вроде.
                        +1

                        Так все числа же при этом жуются сишными библиотеками с векторизацей и GPU, питон работает как обёртка для ввода-настройки-вывода.

                        +4
                        Игрался с моделью ещё после прошлой статьи, потребовалась некоторая модификация исходных скриптов, чтобы она хорошо работала. В частности, выпиливание лишних токенов: html-разметки, ссылок, странных пробелов и переносов строк. Зато после этого стало прекрасно. Если кому-то интересно, вот ноутбук: colab.research.google.com/drive/1r5ufZF9SZPowAs0K8pQzESIjbcb1WTMd

                        Там генератор гороскопов, биографий людей по имени и фамилии, и поздравлений с ДР.
                        Пример гороскопа:

                        Гороскоп на завтра, 2 ноября 2020 года.

                        ОВЕН
                        Время с 21:40 до 23:30 может стать для вас очень трудным, но в конце концов, вы обязательно выйдите из него победителем, несмотря на все трудности. Не позволяйте мелочам мешать вашей внутренней гармонии. В этот день будут возникать ситуации, которые поставят вашу жизнь перед новыми перспективами.

                        ТЕЛЕЦ
                        В этот день не исключены мелкие неприятности. Но благодаря вашему упорству и напору они обязательно пройдут. Будьте внимательны, старайтесь выбирать друзей, которые смогут помочь вам справиться с проблемами. Также в этот день не забудьте принять ванну. И не пейте много спиртного. Этот день очень полезен для зачатия. В это время особенно полезны любые контрацептивы.

                        БЛИЗНЕЦЫ
                        В этот день вам удастся добиться того, к чему вы стремились много лет, но сегодня, благодаря новым возможностям и новым возможностям ваших друзей и близких, ваше дело должно наконец сдвинуться с мертвой точки. Не стоит тратить на это слишком много сил, но и слишком медленно двигаться тоже не следует. Постарайтесь воспользоваться представившимися возможностями и не упускать их.



                          +2
                          Как незаметно в процессе разговора User1 и User2 ролями поменялись :)
                            0

                            Кстати, да!

                            +1
                            User2: Потому что я зашел на оф. сайт, а там скорость какая-то маленькая…
                            User1: Вы говорите, что скорость маленькая, но, может быть, она и должна быть маленькой?

                            Production ready я считаю.

                              0
                              Почему модель в примерах называется rugpt3large_based_on_gpt2? Это просто новый гигантский вариант на архитектуре GPT2, который лучше работает чем попытка смоделировать архитектуру реальной GPT3?
                                +3
                                Название с «based_on_gpt2» — это грязный хак ради сохранения совместимости. В библиотеке transformers есть популярная обертка для работы с GPT-2, которую все используют — в нее очень удобно подгружать веса GPT-3, но нужно пройти проверку на наличие «gpt2» в названии модели))
                                0
                                Вроде бы говорится что в Сбер ruGPT Large 760 миллионов параметров. В то время как в оригинале 175 миллиардов. Не скажется ли это на качестве работы российской версии? Ведь
                                получается, что она даже меньше чем GPT 2
                                  +2
                                  У GPT-3 есть оригинально несколько реализаций — в оригинальной статье приводятся вот такие варианты:
                                  image

                                  Мы реализовали варианты Large, Medium и Small пока что, чтобв проверить, на что они способны. Кажется, эксперимент удачный — теперь не жалко запускать обучение модели больше.
                                    0
                                    Кстати, какие у вас ожидания по времени обучения моделей покрупнее? Сколько учились Small, Medium и Large?
                                    И вам нужны ещё текстовые датасеты или уже всего хватает?
                                  0
                                  Мало примеров, хотелось бы увидеть пример по суммаризации
                                    0
                                    Еще в 2015 году я опубликовал статью с описанием,
                                    что система основанная на прогнозировании потока
                                    будет себя вести именно так как здесь описано.
                                    habr.com/ru/post/377607

                                    Чуть позже у себя на сайте описал
                                    более лаконичное определение механизма выполняющего
                                    любые задачи на основе этих соображений,
                                    и почему именно так должно работать.
                                    www.create-ai.org/begin

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

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

                                    В общем, было бы у меня время и деньги на это время,
                                    давно бы доделал бы эту систему, и возможно даже
                                    более эффективную.

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

                                    Самое читаемое