[Машинное обучение, Искусственный интеллект, Natural Language Processing] Тестируем ruGPT-3 на новых задачах
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Рекомендательные системы с нуля, чат-боты и многое другое
Погрузившись в пучину текстовых данных, в октябре этого года мы обучили модели ruGPT-3 — модели для русского языка на основе архитектуры от OpenAI. Но на что же способны эти модели? В этой статье мы соберем первые примеры применения модели — и попробуем новые.
Мы представляем первые результаты самой большой из обученных моделей — ruGPT-3 Large, разработанной совместно с командами SberDevices, Sber.AI и SberCloud. Изучим границы ее применения вместе с вами.
В этом году на AI Journey мы подготовили соревнование применений ruGPT-3 — в трек можно сдать любое решение с использованием модели, оцениваемое по трем шкалам — инновационность, эмоциональное вовлечение и бизнес-применимость.
Спойлер:
SPL
1 млн рублей за первое место
Как дообучить модель на новой задаче?
Модели и код к ним находятся в репозитории sberbank-ai: можно использовать библиотку transformers или Megatron-LM.
В этой статье я привожу примеры с использованием huggingface/transformers — код для кейсов приведены здесь:
- Fine-Tuning моделей Colab-ноутбук
- Просто генерация Colab-ноутбук
Карточки моделей в библиотеке transformers: Large Medium Small
При запуске скрипта генерации проще сделать Run all — и затем немного подождать, пока модель загрузится.
Скрипт в последней ячейке попросит ввести начало текста — моя любимая затравка: «Бразильские ученые открыли редкий вид карликовых единорогов, обитающих на западе Ютландии.» Получаем:
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
Few-Shot vs Fine Tuning
В случае с такими большими генеративными моделями, как GPT-like архитектуры, есть несколько способов «управиться» с ними.
- Первый способ: назовем его «традиционный» — дообучить модель на доступном количестве примеров выполнять конкретное задание. В таком случае генеративная модель выучит формат ввода и вывода (GPT-3 очень редко ошибается в формате), и будет генерировать данные согласно вашей задаче. Это может быть разметка данных (в формате «исходный текст → текст в разметке») или просто генерация по заданному началу.
- Второй способ: новый, называемый обычно «затравочное программирование» (англ. «prompt engineering» с легкой руки [Гверна Бренуэна] (https://www.gwern.net/GPT-3#prompts-as-programming) — мы даже ничего не дообучаем, а сразу пытаемся получить из модели то, что хотим.
Как работает затравочное программирование?
Дообучать большие модели бывает очень дорого, поэтому такой способ «общения» с ними позволяет избежать даже этого. Суть затравочного программирования в том, чтобы подобрать такие заготовленные примеры и начала для генерации, чтобы дальше модель выдавала ровно то, что надо.
Подбирая «затравки» и гиперпараметры генератора (температура, top_n, top_k), можно добиться вполне сносных ответов за счет только предварительного обучения модели.
Пример затравки с 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](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
Почему бы не потренироваться на чисто англоязычных данных: я взяла датасет «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 ноября!
===========
Источник:
habr.com
===========
Похожие новости:
- [Системное администрирование, IT-инфраструктура, Алгоритмы, Машинное обучение] Действительно ли полезен ML для снижения шума от алертов? Изучаем на примере одного метода
- [Разработка под MacOS, Машинное обучение, Софт, Искусственный интеллект, TensorFlow] Apple представила форк TensorFlow для чипа M1
- [Python, Машинное обучение, Искусственный интеллект, TensorFlow] Нейросеть анализирует сексуальность игроков, пример машинной обработки и классификаци текста
- [Машинное обучение] Измерение гендерных корреляций в предобученных NLP-моделях (перевод)
- [Машинное обучение, Робототехника, Искусственный интеллект, Транспорт, Будущее здесь] “Водитель, вы — слабое звено”: новая разработка Honda
- [Программирование, Машинное обучение] Ранжирование признаков с помощью Recursive Feature Elimination в Scikit-Learn (перевод)
- [Информационная безопасность, Обработка изображений, Машинное обучение, Искусственный интеллект] Насколько неуязвим искусственный интеллект?
- [Программирование, Машинное обучение, Искусственный интеллект, Голосовые интерфейсы] Open Source синтез речи SOVA
- [Open source, Машинное обучение, Искусственный интеллект] DeepMind открыла код среды Lab2D для обучения нейросетей
- [Разработка игр, Конференции, Искусственный интеллект, Голосовые интерфейсы] Конференция Conversations: инструменты и кейсы разговорного AI от DeepPavlov, SberDevices, CoolGames и не только
Теги для поиска: #_mashinnoe_obuchenie (Машинное обучение), #_iskusstvennyj_intellekt (Искусственный интеллект), #_natural_language_processing, #_artificial_intelligence, #_natural_language_processing, #_gpt3, #_gpt, #_text_generation, #_blog_kompanii_sber (
Блог компании Сбер
), #_blog_kompanii_sberdevices (
Блог компании SberDevices
), #_mashinnoe_obuchenie (
Машинное обучение
), #_iskusstvennyj_intellekt (
Искусственный интеллект
), #_natural_language_processing
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 01:04
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Рекомендательные системы с нуля, чат-боты и многое другое Погрузившись в пучину текстовых данных, в октябре этого года мы обучили модели ruGPT-3 — модели для русского языка на основе архитектуры от OpenAI. Но на что же способны эти модели? В этой статье мы соберем первые примеры применения модели — и попробуем новые. Мы представляем первые результаты самой большой из обученных моделей — ruGPT-3 Large, разработанной совместно с командами SberDevices, Sber.AI и SberCloud. Изучим границы ее применения вместе с вами. В этом году на AI Journey мы подготовили соревнование применений ruGPT-3 — в трек можно сдать любое решение с использованием модели, оцениваемое по трем шкалам — инновационность, эмоциональное вовлечение и бизнес-применимость. Спойлер:SPL1 млн рублей за первое место
Как дообучить модель на новой задаче? Модели и код к ним находятся в репозитории sberbank-ai: можно использовать библиотку transformers или Megatron-LM. В этой статье я привожу примеры с использованием huggingface/transformers — код для кейсов приведены здесь:
Карточки моделей в библиотеке transformers: Large Medium Small При запуске скрипта генерации проще сделать Run all — и затем немного подождать, пока модель загрузится. Скрипт в последней ячейке попросит ввести начало текста — моя любимая затравка: «Бразильские ученые открыли редкий вид карликовых единорогов, обитающих на западе Ютландии.» Получаем: 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 Few-Shot vs Fine Tuning В случае с такими большими генеративными моделями, как GPT-like архитектуры, есть несколько способов «управиться» с ними.
Как работает затравочное программирование? Дообучать большие модели бывает очень дорого, поэтому такой способ «общения» с ними позволяет избежать даже этого. Суть затравочного программирования в том, чтобы подобрать такие заготовленные примеры и начала для генерации, чтобы дальше модель выдавала ровно то, что надо. Подбирая «затравки» и гиперпараметры генератора (температура, top_n, top_k), можно добиться вполне сносных ответов за счет только предварительного обучения модели. Пример затравки с 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](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 Почему бы не потренироваться на чисто англоязычных данных: я взяла датасет «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 точно может применяться и приносить пользу в таких практиках, как:
Надеемся, что демо и модели принесут сообществу пользу — и фан! И, конечно, ждем ваших решений на треке ruGPT-3 до конца 22 ноября! =========== Источник: habr.com =========== Похожие новости:
Блог компании Сбер ), #_blog_kompanii_sberdevices ( Блог компании SberDevices ), #_mashinnoe_obuchenie ( Машинное обучение ), #_iskusstvennyj_intellekt ( Искусственный интеллект ), #_natural_language_processing |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 01:04
Часовой пояс: UTC + 5