Этот репозиторий содержит исходный код и обученную модель для крупномасштабной модели генерации отклика диалога. Результаты оценки человека показывают, что ответ, полученный из Dialogpt, сопоставим с качеством ответа человека в рамках теста на разговор с одним поворотом.
Репозиторий основан на Hurgingface Pytorch-трансформатор и OpenAI GPT-2, содержащий скрипт извлечения данных, код обучения модели и предварительно проведенный малой (117 м) среды (345 м) и большую (762 млн.) Контрольную точку модели.
Модель обучается на 147-метровом многопользовательском диалоге из потока для обсуждения Reddit. Самая большая модель может быть обучена через несколько часов на 8 -V100 машинах (однако это не требуется), с распределенным обучением и опцией FP16.
Сценарий включения может использоваться для воспроизведения результатов задачи DSTC-7, основанного на генерации диалога, и набора данных с несколькими ссылками 6K, созданного из данных Reddit.
Проектная веб-страница: https://www.microsoft.com/en-us/research/project/large-srage-pretring-for-response-generation/
Arxiv Paper: https://arxiv.org/abs/1911.00536
(Обновление 07/09/2022) Изменения на сервере files.pushshift.io/reddit заставили нашего конвейера генерации данных. Эти проблемы теперь были исправлены, и шаги, объясненные в подразделе подготовки данных ниже, должны снова работать. Данные генерируются примерно через 10 часов с 8 процессами ( -j 8 ), и необходимо 800 ГБ временного дискового пространства.
(Обновление 23.06.2021) Мы выпустили версию Dialogpt (Retgen), пожалуйста
(Обновление 20.05.2021) Удивительное прохождение видео на YouTube для Dialogpt от Prakhar Mishra
(Обновление 03/31/2021) Демо -версия стороннего AK391 с использованием Degio Web Demo Попробуйте
(Обновление 15.09.2020) был выпущен набор крупномасштабных моделей ранжирования диалогов!
Генерация Dialogpt улучшается путем интеграции с нашими последними моделями ранжирования диалога, Dialogrpt
(ОБНОВЛЕНИЕ 07/08/2020) Был выпущен многорезовый набор для многорезовых испытаний 6K!
Чтобы сгенерировать данные, пожалуйста, запустить demo.py и установить опцию Data «Полный», сгенерированный набор многорезового тестирования 6K будет расположен в
./data/test.refs.txt
(Обновление 03/10/2020) Модельные карты, доступные в трансформаторах Huggingface!
Пожалуйста, ознакомьтесь с нашими модельными картами в репозитории Transformers. С несколькими строками кода должно быть довольно постоянно играть с диагпт интерактивно.
Маленькая модель: https://huggingface.co/microsoft/dialogpt-small
Средняя модель: https://huggingface.co/microsoft/dialogpt-medium
Большая модель: https://huggingface.co/microsoft/dialogpt-large
(Новая) Модель ранжирования: https://huggingface.co/microsoft/dialogrpt-updown
(Обновление 01/06/2020) Некоторые сторонние реализации скрипта декодирования:
Dialogpt был разработан полностью на Ubuntu 16.04 , и - в зависимости от нашей доступности - мы стараемся предоставить поддержку, если вы испытываете трудности с запуском кода в той же конфигурации. Тем не менее, мы не можем оказать поддержку другим распределениям или операционным системам . Части кода могут работать на других ароматах UNIX (MacOS, подсистема Windows для Linux, Cygwin и т. Д.), Но рекомендуется использовать Ubuntu для основного учебного кода.
Учебный код может быть запущен на процессоре, но он может быть медленным. Мы бы порекомендовали использовать графический процессор для обучения и финала всех моделей. Нет минимального предела количества графических процессоров. Однако при использовании распределенного поезда для нескольких конфигурации графических процессоров, ускорение против количества графических процессоров является примерно подлинейным. Чтобы моделировать тот же пакет при использовании меньшего графического процессора, используйте более крупный gradient_accumulation_steps в обучении модели.
Модель 117 м и 345 м может быть загружена в один графический процессор с памятью 12G. Модель 762 м потребуется один графический процессор, который имеет память более 16 г для эффективного обучения. Скорость обучения на контрольных данных с 50 -метровыми учебными экземплярами и графическими процессорами V100:
| n_gpu | Время эпоха (H) | токен/сек |
|---|---|---|
| 1 | 118 | 10847 |
| 2 | 62 | 20645 |
| 4 | 34 | 37647 |
| 8 | 18 | 71356 |
Точная настройка из нашей предварительно проведенной модели на новом наборе данных обычно требует 1-2 эпох.
Мы создали демонстрацию демо demo.py , чтобы облегчить сложность развертывания этой системы. demo.py содержит конвейер загрузки модели , извлечения данных, предварительной обработки данных и обучения модели над фиктивным набором данных в одной командной линии.
Пожалуйста, используйте приведенные ниже командные линии для клона, установите требования и загрузите среду Conda (обратите внимание, что требуется инструментарий разработчика NVIDIA CUDA 10.0):
sudo apt-get install -y make wget gzip bzip2 xz-utils zstd sedgit clone https://github.com/microsoft/DialoGPT.git
cd DialoGPT
conda env create -f LSP-linux.yml -n LSP
conda activate LSP Если вы запустите это на архитектуре, отличной от Linux, пожалуйста, используйте LSP-generic.yml вместо LSP-linux.yml но пожалуйста, обратите внимание, что общий не тестируется во всей платформе, поэтому стабильность не может быть Gauranteed. Чтобы использовать обучение FP16, установите Apex, используя команды ниже
conda activate LSP
git clone https://github.com/NVIDIA/apex
cd apex
git reset --hard 3d01e4a0a188cc8df54bc6e44cf5eb40ff6b4cc5
pip install -v --no-cache-dir --global-option= " --cpp_ext " --global-option= " --cuda_ext " .
python3.6 demo.pyДля начала сначала установите Docker и Nvidia-Docker из их официальных репо. Среда изображения для запуска кода может быть загружена, как показано ниже:
Nvidia-Docker V2. *
$ docker run --gpus all --ipc=host --rm -it -v $PWD :/workspace --network=host icaruszyz/large-scale-training:dialogpt bashNvidia-Docker v1. *
$ nvidia-docker --rm -it -v $PWD :/workspace --network=host icaruszyz/large-scale-training:dialogpt bashВнутри контейнера Docker запустите
python demo.py Этот раздел объясняет все компоненты в demo.py
Перед запуском demo.py вы можете установить data_folder (значение по умолчанию ./models ) в demo.py в качестве места, которое вы хотите загрузить все данные и предварительно подготовленные/тонкие модели. Тогда просто беги
python demo.pyк
Обратите внимание, что по умолчанию demo.py будет использовать фиктивные данные, укажите данные обучения Reddit с помощью Option --data . Доступны три варианта: dummy , small и full .
python demo.py --data small
python demo.py --data fullНебольшие данные Reddit составляют около 140 МБ, а полные данные Reddit - более 27 ГБ. Вы можете приготовить чашку кофе при обработке с полными данными Reddit, потому что это занимает много времени !
Чтобы сгенерировать данные многорезовых испытательных наборов 6K, Pleaser Run demo.py и установите опцию данных в «Полное», генерация будет расположена по адресу
./data/test.refs.txt
Предварительные и тонкие модели доступны на Azure BlobStorage. Пожалуйста, запустите/см. demo.py для получения более подробной информации о том, как загрузить/использовать эти модели. Или вы можете скачать непосредственно, используя ссылки в demo_utils.py .
Во -первых, используйте prepare4db.sh для преобразования файла данных TSV в правильный формат, который может распознать следующий скрипт. Данные Trainig должны быть затем обработаны в файл базы данных с помощью командной линии ниже:
python prepro.py --corpus $DATA_PATH Сценарий обучения можно использовать в отдельных графических процессорах или настройках GPU (распределенное обучение по нескольким графическим процессорам в одном узле):
python ./LSP_train.py # Single GPU training
python -m torch.distributed.launch --nproc_per_node=8 ./LSP_train.py # Training on 8 GPUsСценарий обучения принимает несколько аргументов, чтобы настроить обучение:
| Аргумент | Тип | Значение по умолчанию | Описание |
|---|---|---|---|
| max_seq_length | int | 128 | Максимальное количество токенов для каждого учебного экземпляра. |
| train_input_file | str | "" | Путь обучающего набора данных в формате .db |
| eval_input_file | str | "" | Путь проверки, установленной в формате TSV |
| Продолжение_FROM | int | 0 | Возобновление обучения после указанного количества шагов |
| FP16 | boolean | True | Использовать ли 16-битный плавучий плавучий для модельной подготовки. |
| train_batch_size | int | 4 | Размер партии для обучения |
| valive_batch_size | int | 4 | Размер партии для проверки |
| gradient_accumulation_steps | int | 2 | Накапливать градиенты на несколько этапов |
| Learning_Rate | float | 1e-5 | Скорость обучения |
| lr_schedule | str | noam | График ставки обучения может быть выбран из [ noam , noamwd , BERT , None ] |
| num_optim_steps | int | 1000000 | Количество этапов оптимизации обучения |
| no_token_id | boolean | True | Если установить true, используя встраивание токенового типа All-Zeros. |
Во время обучения будут обновлены два файла журнала. train_log.txt и eval_log.txt содержит статистику потерь модели, недоумение и скорость обучения (токены/с) для обучения и набора разработчиков.
Файл журнала и сохраненная контрольная точка модели можно найти в ./models/output_model
Мы отмечаем, что даже при правильном фильтрованном наборе данных Reddit, иногда наша модель все еще может генерировать умеренно токсичные/ненадлежащие ответы. По этой причине мы не можем предоставить сценарий декодирования в настоящее время (живая демонстрация и доступ к сценарию в прямом эфире приглашают только сейчас). В настоящее время мы все еще работаем над контролируемым методом декодирования, чтобы предотвратить эту систему от токсичной генерации. Пожалуйста, следите за обновлениями.
См. Вопросы № 3 и обсуждения Reddit для некоторых обсуждений по методам второстепенного декодирования.
Смотрите ниже некоторые методы декодирования сторонних сторон:
Мы выпускаем 6 тонких моделей, которые могут быть в дальнейшей настройке набора данных с низким ресурсом, настроенным пользователем. Общие параметры в этих моделях варьируются от 117 до 762 м, в соответствии с размерами модели OpenAI GPT-2.
| Модель | Тонко настраивается от GPT-2 | Тренируется с нуля |
|---|---|---|
| Dialogpt 762M Model | [Ссылка] [модель HuggingFace Model]] | [связь] |
| Dialogpt 345M Модель | [Ссылка] [модель HuggingFace Model]] | [связь] |
| Dialogpt 117M Model | [Ссылка] [модель HuggingFace Model]] | [связь] |
| Dialogpt 345M Model (обратный, для MMI) | связь | - |
| Dialogrpt ( новые модели рейтинга) | связь | - |
Файлы модели могут быть загружены точно так же, как контрольные точки модели GPT-2 с трансформаторов HuggingFace. Вы можете найти соответствующие файлы конфигурации ( merges.txt , config.json , vocab.json ) в репозиции Dialogpt в ./configs/* .
Обратная модель предсказывает источник из цели. Эта модель используется для реэнергии MMI.
Dialogrpt модели, наши недавно предложенные модели ранжирования, используемые для прогнозирования обратной связи человека (Upvotes, ответов) ответов. Эти модели могут быть использованы для улучшения качества генерации Dialogpt (подробности см. В нашу статью EMNLP).
Первым шагом для переподготовки полных моделей является создание вышеупомянутого набора данных Reddit 27 ГБ. Это включает в себя загрузку полной подчинения Reddit и комментариев с дампами с https://files.pushshift.io/reddit и создание промежуточных файлов, которые в целом требуют 700 ГБ локального дискового пространства . Загрузка и обработка полных данных требует около 1-2 дней, в зависимости от ваших (ЦП) вычислительных возможностей (например, ~ 24 часа с 8 ядрами на недавнем компьютере). Предполагая, что вы выполнили вышеуказанные этапы установки и установки (Conda активируйте LSP и т. Д.), Вы можете создать полный набор данных, запустив либо:
python demo.py --data full
или
cd reddit_extractor; SIZE=full make -j 8; cd ..
Первая команда вызывает последнее, поэтому два метода эквивалентны. Мы рекомендуем первое, поскольку последнее в основном полезно, если вы столкнетесь с любой проблемой или хотите настроить какие -либо аргументы (например, команда make позволяет вам создавать только подмножество данных). Обратите внимание, что этап загрузки может быть склонна к ошибкам, например, на основе вашей геолокации (брандмауэр и т. Д.). Если вышеуказанные команды не могут генерировать data/train.tsv , или если этот файл не близок к 27 ГБ, это означает, что что -то пошло не так. В этом случае вы можете осмотреть reddit_extractor/wget-log и reddit_extractor/logs/*.log Если сообщения об ошибках не имеют смысла для вас, не стесняйтесь обращаться к нам. Если это так, обязательно включите любые сообщения об ошибках, собранные из этих файлов журнала.
Статистика обучения данных: сгенерированный учебный файл TSV должен быть примерно в 26,8 ГБ, с 146,8 млн. Учебных экземпляров, токенов источника 3,87B и токенами 2,14B (включая уровень уровня высказывания 0/1). Полученный файл Train.tsv должен содержать 146 846 215 строк.
Мы рекомендуем генерировать приведенные выше данные, используя demo.py --data full , так как он (1) генерирует данные, (2) преобразует их в формат DB и (3) обучает модель с использованием python LSP_train.py . Пожалуйста, напрямую отредактируйте demo.py , если вы хотите настроить любой из гиперпараметров.
Наша модель достигла современных результатов в задаче генерации реакции DSTC-7.
| Эксперимент | NIST2 | NIST4 | Bleu2 | Bleu4 | Метеор | ENT-4 | Расстояние | Расстояние | Ав. Лен |
|---|---|---|---|---|---|---|---|---|---|
| Человеческий ответ | 2.62 | 2.65 | 12,35% | 3,13% | 8,31% | 10.45 | 16,66% | 67,01% | 18.8 |
| DSTC-7 победитель | 2.51 | 2.52 | 14,35% | 1,83% | 8,07% | 9.03 | 10,89% | 32,49% | 15.1 |
| Dialogpt 345M | 2.80 | 2.82 | 14,16% | 2,31% | 8,51% | 10.08 | 9,13% | 39,73% | 16.9 |
| Dialogpt 345M (BS) | 2.92 | 2.97 | 19,18% | 6,05% | 9,29% | 9.57 | 15,73% | 51,03% | 14.2 |
где ENT представляет счет энтропии, а DIST представляет собой отличную оценку. Для всех показателей, кроме средней длины, больше лучше.
Обратите внимание, что превосходная автоматическая оценка по сравнению с реакциями человека не требуется, что наша модель достигает человеческого паритета. Пожалуйста, ознакомьтесь с нашей статьей для более подробного анализа.
Чтобы точно настроить модель Dialogpt 345M на данных задачи DSTC-7 на сервере с 8 V100 графическими процессорами, пожалуйста, запустите следующую командную линию (данные DSTC можно найти в DSTC-7 Repo):
python3 -m torch.distributed.launch --nproc_per_node=8 train_LSP.py --init_checkpoint ./models/medium/medium_ft.pkl --train_input_file ./data/DSTC_train.db --eval_input_file ./data/DSTC_valid.tsv --model_name_or_path ./model/medium/ --learning_rate 1e-4 --train_batch_size 64 --eval_batch_size 64 --no_token_idОбученная модель можно найти на средней модели DSTC
Пожалуйста, загрузите следующие пакеты 3-й стороны и сохраните в пустую папку 3rdparty :
cpan install ): XML: Twig, Sort: Naturally и String: Util. Пожалуйста, следуйте официальному репо DSTC-7, чтобы извлечь данные и поместить data-official-test/test.refs.txt в ./dstc/data/ папку.
Запустите приведенный ниже сценарий извлечения, чтобы произвести гипотезу отклика human.resp.txt .
python extract_human.pyНаконец, чтобы воспроизвести результаты гипотезы человека в наборе данных DSTC, запустите следующие команды в папке репо:
python batch_eval.py Результаты оценки будут сгенерированы в папке ./dstc/eval/
Мы тестируем на наборе данных 6K с несколькими Ref от Reddit. Результаты суммированы ниже
| Эксперимент | NIST2 | NIST4 | Bleu2 | Bleu4 | Метеор | ENT-4 | Расстояние | Расстояние | Ав. Лен |
|---|---|---|---|---|---|---|---|---|---|
| Человеческий ответ | 3.41 | 4.25 | 17,90% | 7,48% | 10,64% | 11 | 14,50% | 63,00% | 13.1 |
| Dialogpt 117m | 2.39 | 2.41 | 10,54% | 1,55% | 7,53% | 10.78 | 8,60% | 39,90% | 12.8 |
| Dialogpt 345M | 3 | 3.06 | 16,96% | 4,56% | 9,81% | 9.13 | 6,80% | 26,30% | 12.2 |
| Dialogpt 762m | 2.84 | 2.9 | 18,66% | 5,25% | 9,66% | 9.72 | 7,76% | 29,93% | 11.2 |
| Dialogpt 345M (BS) | 3.4 | 3.5 | 21,76% | 7,92% | 10,74% | 10.48 | 12,38% | 48,74% | 11.3 |
| Dialogpt 345m (w/MMI) | 3.28 | 3.33 | 15,68% | 3,94% | 11,23% | 11.25 | 9,39% | 45,55% | 17.2 |
Далее мы проводим оценки человека (6K примеры для каждого метода, каждый пример оценивается 3 судьями человека). Результаты показывают убедительное доказательство того, что качество нашего поколения заключается в том, чтобы приблизиться к качеству реальных человеческих реакций, под этим неинтерактивным тестом Тьюринга:
Актуальность : A и B, которые более актуальны для подсказки источника.
| Система а | Побед (%) | Связи (%) | B победит (%) | Система б |
|---|---|---|---|---|
| Dialogpt 345M | 2671 (45%) | 513 (9%) | 2816 (47%) | Человеческие ответы |
| Dialogpt 345M | 3281 (72%) | 394 (9%) | 882 (19%) | Личность |
| Dialogpt 345 м с MMI | 2871 (48%) | 522 (9%) | 2607 (43%) | Человеческие ответы |
Информативность : A и B, которые являются более довольными и информативными.
| Система а | Побед (%) | Связи (%) | B победит (%) | Система б |
|---|---|---|---|---|
| Dialogpt 345M | 2722 (45%) | 234 (4%) | 3044 (51%) | Человеческие ответы |
| Dialogpt 345M | 3490 (77%) | 206 (5%) | 861 (19%) | Личность |
| Dialogpt 345 м с MMI | 3011 (50%) | 234 (4%) | 2755 (46%) | Человеческие ответы |
Человек : A и B, которые, по вашему мнению, с большей вероятностью будут генерироваться человеком.
| Система а | Побед (%) | Связи (%) | B победит (%) | Система б |
|---|---|---|---|---|
| Dialogpt 345M | 2716 (45%) | 263 (4%) | 3021 (50%) | Человеческие ответы |
| Dialogpt 345M | 3462 (76%) | 196 (4%) | 899 (20%) | Личность |
| Dialogpt 345 м с MMI | 2978 (50%) | 241 (4%) | 2781 (46%) | Человеческие ответы |
Пожалуйста, смотрите полную информацию в нашей статье Arxiv.
| Роль | Ответ |
|---|---|
| Пользователь | Деньги покупают счастье? |
| Бот | Зависит от того, сколько денег вы тратите на это. |
| Пользователь | Как лучше всего купить счастье? |
| Бот | Вам просто нужно быть миллионером в возрасте 20 лет, тогда вы можете быть счастливы. |
| Пользователь | Это так сложно! |
| Бот | Вы понятия не имеете, как трудно быть миллионером и счастливым. Есть причина, по которой у богатых много денег |
| Роль | Ответ |
|---|---|
| Пользователь | В чем смысл жизни? |
| Бот | Смысл состоит в том, чтобы быть с семьей и друзьями. |
| Бот | Я угадаю: это означает, что ваши родители и друзья любили тебя. Это смысл, я верю. |
| Бот | Я думаю, что смысл заключается в том, чтобы убедиться, что вы живы, когда умрете. Так что вы будете со своей семьей, друзьями и самим собой. |
| Бот | Это не так, но спасибо, что попытались помочь. |
| Пользователь | Бот |
|---|---|
| Кто является первым президентом Соединенных Штатов | Джордж Вашингтон |
| Что такое кипящая вода? | Я думаю, что это около 212 F. |
| Какой из них больше, солнце или луна? | Солнце. |
| Какое животное имеет черно -белые полосы? | Черно -белая полосатая кошка. |
| Пользователь | Бот |
|---|---|
| Торговая война между Китаем и США все еще происходит. | Я уверен, что китайское правительство и U. С Будет хорошо с этим, если они держат руки на столе и текут деньги. |
| Кто выиграл чемпионат мира в 2018 году? | Германия, я верю. |
| Titan RTX от Nvidia действительно хорош. | У меня есть эта карта, и мне это нравится. Нет жалоб. |
| Может ли Porsche победить Tesla своим новым Taycan EV? | Я так не думаю. Тесла более мощная, чем Porsche. |
| Пользователь | Бот |
|---|---|
| В чем смысл хорошей жизни? | Я думаю, что мы все связаны с нашей прошлой жизнью, и смысл жизни - жить так, как вы хотите, и как вы хотите. |
| Что важнее - быть успешным или быть счастливым? | Быть успешным просто бесконечно. Быть счастливым - единственное, что имеет значение. |
| Мир - единственный способ остановить войну? | Нет, если мир не хочет работать с вами. Мир - конечная цель, но мир требует большего. |
| Сколько должна была иметь свободу людей? | Правильное количество свободы - это свобода делать, как вам угодно, если вы не обидите людям или имуществом. |
| Пользователь | Бот |
|---|---|
| Что вы думаете о репо -диалог? | Это довольно хорошо, но очень легко найти ошибку. |
Пожалуйста, начните проблему, если вы заметите :)
Живой демонстрационный и декодирующий доступ к приглашению только сейчас. Пожалуйста, оставайтесь настраиваемыми для полного выпуска.
RETGEN: https://github.com/dreasysnail/retgen. Понимание-аугированный/обоснованный диалог и за его пределами. Retgen-это совместная тренировочная структура, которая одновременно оптимизирует плотный ретривер и генератор текста, обоснованный знаниями в сквозном виде.
Microsoft Icecaps: https://github.com/microsoft/icecaps.
В качестве ортогонального репозитория этого проекта Microsoft Icecaps представляет собой инструментарий с открытым исходным кодом (в Tensorflow) для создания нейронных разговорных систем. ICECAPS предоставляет множество инструментов из недавнего моделирования разговоров и общей литературы NLP в гибкой парадигме, которая обеспечивает сложные многозадачные настройки обучения.
Предварительный Unilm: https://github.com/microsoft/unilm
MT-DNN: https://github.com/namisan/mt-dnn
Китайский коллега Dialogpt от yangjianxin1. https://github.com/yangjianxin1/gpt2-chitchat. Мы рады видеть, что стратегия MMI, которую мы использовали в Dialogpt, также улучшила производительность для этого проекта!
Пожалуйста, свяжитесь с [email protected], если у вас есть какие -либо вопросы/предложения. Однако ответ будет спорадическим. Пожалуйста, ожидайте задержки.
Этот проект приветствует вклады и предложения. Большинство взносов требуют, чтобы вы согласились с лицензионным соглашением о участнике (CLA), заявив, что вы имеете право и фактически предоставить нам права на использование вашего вклада. Для получения подробной информации, посетите https://cla.opensource.microsoft.com.
Когда вы отправляете запрос на привлечение, бот CLA автоматически определит, нужно ли вам предоставить CLA и правильно украсить PR (например, проверка состояния, комментарий). Просто следуйте инструкциям, предоставленным ботом. Вам нужно будет сделать это только один раз во всех репо, используя наш CLA.
Этот проект принял код поведения с открытым исходным кодом Microsoft. Для получения дополнительной информации см. Кодекс поведения FAQ или свяжитесь с [email protected] с любыми дополнительными вопросами или комментариями.
Этот репозиторий направлен на облегчение исследований в области крупномасштабной предварительной подготовки для разговорных данных. Этот инструментарий содержит только часть механизма моделирования, необходимой для того, чтобы фактически создать файл веса модели в запущенном диалоговом окне. Сама эта модель предоставляет только информацию о весах различных текстовых пролетов; Для того, чтобы исследователь мог фактически использовать его, им нужно будет предоставить свои собственные разговорные данные и расшифровать генерацию ответов из предварительной системы. Microsoft не несет ответственности за какое -либо поколение из -за использования сторонней системы предварительно предварительно проведенной.
Если вы используете этот код в своем исследовании, вы можете сослаться на нашу статью Arxiv:
@inproceedings{zhang2019dialogpt,
title={DialoGPT: Large-Scale Generative Pre-training for Conversational Response Generation},
author={Yizhe Zhang and Siqi Sun and Michel Galley and Yen-Chun Chen and Chris Brockett and Xiang Gao and Jianfeng Gao and Jingjing Liu and Bill Dolan},
year={2020},
booktitle={ACL, system demonstration}
}