1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/gapyanpeng-GPT2-chitchat

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

GPT2 для китайского чат-бота

Обновление 2020.01.09

Добавлено 500 000 образцов китайского чата и ссылка на скачивание предобученной модели с GoogleDrive

Обновление 2019.12.17

На основе статьи Microsoft DialoGPT:Large-Scale Generative Pre-training for Conversational Response Generation добавлено моделирование MMI (функции оценки максимальной взаимной информации), для отбора нескольких ответов, сгенерированных диалоговой моделью## Описание проекта

  • В этом проекте используется модель GPT2 для обучения на китайских образцах чата, с использованием HuggingFace transformers для реализации и обучения модели GPT2.
  • В свободное время я обучил несколько моделей для генерации длинных текстов с использованием модели GPT2-Chinese, и тщательно изучил исходный код автора, что значительно расширило мое понимание генеративных моделей GPT2. Затем я применил модель GPT2 для генерации диалогов, и хочу выразить благодарность автору за его работы.
  • В этом проекте я использовал некоторые структуры и названия из исходного проекта, а также внёс множество изменений в код.
  • Логика декодера включает использование температуры, выборки Top-k и Nucleus Sampling, см. статью The Curious Case of Neural Text Degeneration
  • В проекте добавлена функция MMI (maximum mutual information scoring function) на основе идеи DialoGPT от Microsoft. Обучены две модели: диалоговая модель и модель MMI. Сначала диалоговая модель генерирует несколько кандидатов на ответ, а затем модель MMI выбирает из них ответ с наименьшим loss.
  • В коде приведены подробные комментарии на китайском языке, чтобы помочь пользователям лучше понять код (возможны ошибки в коде или комментариях, буду рад получить обратную связь)## Основная среда python3.6, transformers==2.1.1, pytorch==1.3.1

Структура проекта

  • config: файлы конфигурации параметров модели GPT2
  • data
    • train.txt: исходный файл с обучающими данными, содержащий образцы китайского чата
    • train_tokenized.txt: файл с токенизацией исходных обучающих данных, используемый для обучения диалоговой модели
    • train_mmi_tokenized.txt: файл с обратной токенизацией исходных обучающих данных, используемый для обучения модели MMI
  • dialogue_model: файлы с обученной диалоговой моделью
  • mmi_model: файлы с моделью MMI (функция оценки максимальной взаимной информации), используемой для предсказания P(Source|response)
  • sample: файлы с историей диалогов между человеком и ботом
  • vocabulary: файлы с словарем модели GPT2
  • train.py: файл с кодом для обучения модели
  • interact.py: файл с кодом для взаимодействия с моделью

Параметры модели (подробнее см. файл config/model_config_dialogue_small.json)

  • initializer_range: 0.02
  • layer_norm_epsilon: 1e-05
  • n_ctx: 300
  • n_embd: 768
  • n_head: 12
  • n_layer: 10
  • n_positions: 300
  • vocab_size: 13317

Модель диалога

Модель диалога основана на модели GPT2 и представляет собой генеративную модель, которая последовательно соединяет каждую тренировочную запись и затем подаёт её на вход сети для обучения (здесь "последовательно" относится к "обратно" в модели MMI).Например, имеются следующие тренировочные данные для многоканального диалога. При обучении модели диалога данные соединяются следующим образом: "[CLS] хочу посмотреть твои фотографии [SEP] поцелуй меня, и я покажу [SEP] я поцелую тебя дважды [SEP] ненавижу, когда ты бьёшь меня кулачками [SEP]". Затем этот соединённый текст используется как вход для модели диалога, и модель обучается.``` хочу посмотреть твои фотографии поцелуй меня, и я покажу я поцелую тебя дважды ненавижу, когда ты бьёшь меня кулаками


## Модель MMI
Модель MMI основана на статье Microsoft [DialoGPT: Large-Scale Generative Pre-training for Conversational Response Generation](https://arxiv.xilesou.top/pdf/1911.00536.pdf).

Модель MMI также является генеративной моделью на основе GPT2, которая обратно соединяет каждую тренировочную запись и затем подаёт её на вход сети. Эта модель используется для вычисления потерь для всех кандидатов ответов, сгенерированных моделью диалога, относительно истории диалога.

При обучении модель обратно соединяет каждую тренировочную запись, например, **"[CLS] ненавижу, когда ты бьёшь меня кулаками [SEP] я поцелую тебя дважды [SEP] поцелуй меня, и я покажу [SEP] хочу посмотреть твои фотографии [SEP]"**, и использует её как вход для модели MMI.## Шаги генерации ответа
 - Предположим, текущая история диалога = ["Привет", "Привет, как дела?", "Что ты делаешь?"]
 - Сначала модель диалога генерирует n кандидатов ответов на основе истории диалога: ["Я смотрю телевизор", "Я на уроке", "Я думаю о тебе", "Я не знаю"]
 - Затем модель MMI соединяет каждый кандидат ответа с историей диалога в обратном порядке, например, **"[CLS] Я смотрю телевизор [SEP] Что ты делаешь? [SEP] Привет, как дела? [SEP] Привет [SEP]"**
 - Этот соединённый текст используется как вход для модели MMI, и вычисляется потери для каждого ответа
 - Выбирается ответ с наименьшим потенциалом потерь для отправки в качестве финального ответа

## Примеры разговорных данных
|Разговорные данные на китайском| Адрес датасета | Описание данных|
|---------|--------|--------|
|Обычные китайские разговоры|[chinese_chatbot_corpus](https://github.com/codemayq/chinese_chatbot_corpus)|Включает данные из Little Yellow Chicken, Douban, диалоги из телесериалов, ответы на форумах Tieba, данные из Weibo, данные из PTT Gossip, данные из Qingyun и другие|
|500 000 китайских разговорных данных|[百度网盘【提取码:jk8d】](https://pan.baidu.com/s/1mkP59GyF9CZ8_r1F864GEQ) или [GoogleDrive](https://drive.google.com/file/d/1nEuew_KNpTMbyy7BO4c8bXMXN351RCPp/view?usp=sharing)|Высококачественный датасет разговорных данных, предоставленный автором [GaoQ1](https://github.com/GaoQ1), содержащий 500 000 многоконтекстных диалогов|

50万条中文闲聊语料的内容样例如下:

Спасибо за всё, что вы сделали Тебе хорошо, это главное Хорошо Ага, потому что ты думаешь только о учёбе


 Это имя использовано хорошоВаша комната общежития полна таких талантливых людей?
Он очень забавный, но грязь плохо лепится, но всё равно он кажется милым.
Очень милый.

Ты сегодня лучше?
Ситуация становится всё хуже.
Лекарства не помогают, нужно сделать укол. Не откладывай.

## Поделка модели
Размер модели для бесед составляет 67МБ и включает в себя 500 000 многократных диалогов. С использованием этого набора данных были обучены две модели: dialogue_model и mmi_model

|Модель | Baidu Pan | GoogleDrive | Описание модели|
|---------|--------|--------|--------|
|dialogue_model | [Baidu Pan [Код для извлечения: osi6]](https://pan.baidu.com/s/1qDZ24VKLBU9GKARX9Ev65g) | [GoogleDrive](https://drive.google.com/drive/folders/1Ogz3eapvtvdY4VUcY9AEwMbNRivLKhri?usp=sharing) | Модель была обучена на наборе данных для бесед 40 эпох, конечная функция потерь составила около 2.0, дальнейшее обучение должно привести к дальнейшему снижению функции потерь.|
|mmi_model | [Baidu Pan [Код для извлечения: 1j88]](https://pan.baidu.com/s/1ubXGuEvY8KmwEjIVTJVLww) | [GoogleDrive](https://drive.google.com/drive/folders/1oWgKXP6VG_sT_2VMrm0xL4uOqfYwzgUP?usp=sharing) | Модель была обучена на наборе данных для бесед 40 эпох, конечная функция потерь составила около 1.8-2.2, дальнейшее обучение должно привести к дальнейшему снижению функции потерь.|

## Методы использования моделиПоместите скачанные файлы моделей dialogue_model и mmi_model в корневую директорию проекта (если это не так, укажите соответствующие пути моделей через параметры --dialogue_model_path и --mmi_model_path), и выполните следующие команды:
### Использование только dialogue_model для генерации
```bash
python interact.py --no_cuda (использует по умолчанию параметры, не использует GPU. Поскольку длина генерируемого контента для бесед не очень большая, генерация на CPU происходит достаточно быстро)
или
python interact.py --no_cuda --dialogue_model_path path_to_dialogue_model --max_history_len 5 (создание собственного параметра --max_history_len, то есть длина истории диалога)
или
python interact.py --no_cuda --dialogue_model_path path_to_dialogue_model --max_history_len 5 --topp 0.8 --topk 0 (--topp - это число от 0 до 1, используется для вызова Nucleus Sampling)
или
python interact.py --no_cuda --max_history_len 5 --topk 8 (не указан параметр --dialogue_model_path, по умолчанию используется dialogue_model)

После завершения беседы с помощью Ctrl+Z, история беседы будет сохранена в файл sample.txt в директории sample.

Использование dialogue_model для генерации нескольких кандидатских ответов, а затем выбор лучшего ответа с минимальной потерей по мере взаимной информации (mutual information)

Использование interact_mmi.py аналогично interact.py

python interact_mmi.py --no_cuda (использование по умолчанию пути к модели)
или
python interact_mmi.py --no_cuda --batch_size 5 (указание количества кандидатских ответов для генерации)
или
python interact_mmi.py --no_cuda --batch_size 5 --dialogue_model_path path_to_dialogue_model --mmi_model_path path_to_mmi_model
```py --no_cuda --debug (режим отладки, позволяет видеть все кандидатские ответы и их потери по мере взаимной информации)
или
python interact_mmi.py --no_cuda --dialogue_model_path path_to_dialogue_model --mmi_model_path path_to_mmi_model (указание пользовательских путей к моделям)

После завершения диалога с помощью Ctrl+Z, история диалога сохраняется в файл mmi_samples.txt в папке sampleДополнительные параметры можно найти в функции setup_train_args() в файлах interact.py и interact_mmi.py

Параметры interact.py и interact_mmi.py

При запуске interact.py можно попробовать настроить параметры, такие как topk, topp, repetition_penalty, max_history_len, чтобы изменить качество генерации. Подробное описание параметров можно найти в функции set_interact_args() в interact.py

Обучение модели

В корневой директории проекта создайте папку data, а затем сохраните исходные данные для обучения в файл train.txt в этой директории. Формат файла train.txt следующий: каждая пара диалога разделена пустой строкой.

avatar

Обучение модели:

# Если вы обучаете mmi_model, укажите параметр --train_mmi; если обучаете dialogue_model, этот параметр не требуется
```# Обучение dialogue_model
python train.py --epochs 30 --batch_size 8 --device 0,1 --raw (если требуется токенизация исходных данных, укажите параметр --raw. Если требуется использовать GPU, укажите параметр --device)
или
python train.py --epochs 30 --batch_size 8 --no_cuda --raw (указание параметра --no_cuda позволяет использовать CPU для обучения, что значительно замедляет процесс)
или
python train.py --epochs 30 --batch_size 8 --no_cuda (если данные уже токенизированы, можно не указывать параметр --raw, чтобы избежать повторной токенизации и сэкономить время)
```# Для тренировки mmi_model необходимо указать параметр --train_mmi
python train.py --epochs 30 --batch_size 8 --device 0,1 --raw --train_mmi (для исходных тренировочных данных производится обратное соединение, токенизация и обучение mmi_model)
или
python train.py --epochs 30 --batch_size 8 --device 0,1 --train_mmi (если исходные тренировочные данные уже токенизированы, то можно сразу обучить mmi_model)
или
python train.py --epochs 30 --batch_size 8 --device 0,1 --train_mmi --pretrained_model path_to_pretrained_model (продолжить обучение на основе предварительно обученной модели)```Дополнительные параметры можно посмотреть в функции setup_train_args() в файле train.py## interact.py примеры
#### Пример 1:

user : Привет chatbot: Привет, кто ты такой? user : Я твой хозяин chatbot: Ты собака? user : Ты собака chatbot: Ты не собака, я твой маленький хозяин user : Ты дурак chatbot: Ты дурак, хочешь получить пощечину? user : Ты вся семья дураки chatbot: Я твой папа user : Ладно, не буду с тобой ссориться, чем ты занимаешься? chatbot: Я работаю, ты ещё не закончил работу? user : У меня в выходные много домашних заданий chatbot: Ты только что сдал, рано или поздно ты всё сделаешь user : Много домашних заданий, ещё не всё сделано chatbot: Я списываю, мама велела сдать в пятницу, у меня ещё есть дела user : Ты не боишься, что тебя будет ругать мама? chatbot: Не боюсь user : У тебя в выходные были планы на отдых? chatbot: Нет времени, очень занят user : Занят чем? chatbot: Не знаю, у меня в выходные нет домашних заданий, я хочу спать, а потом ещё нужно найти кого-то


user :Привет chatbot:Привет, я в порядке, ты тоже в порядке? user :Чем ты занимаешься? chatbot:Ты не ходишь на уроки? user :Сегодня выходные, дурак chatbot:Я в школе user :Я тоже, в выходные нужно делать домашние задания chatbot:Я ещё не сделал, мы ещё не сделали user :У тебя были планы на отдых в выходные? chatbot:Не поехал в Нанкин user :Что интересного в Нанкине? chatbot:Мы не поехали в Нанкин user :Ты только что сказал, что поехал в Нанкин, ты меня обманываешь? chatbot:Я только что приехал в Нанкин user :Ты очень глуп chatbot:Я не глуп user :Ты дурак chatbot:Ты дурак user :Твоя вся семья дураки chatbot:Ты дурак user :Ты дурак chatbot:Хахаха

#### Пример 3:

user :Чем ты занимаешься? chatbot:Сплю user :Ты так рано спишь? chatbot:Да, ты тоже спи рано user :Я ещё немного поиграю в телефон chatbot:Спи рано, спокойной ночи user :Пока chatbot:Спокойной ночи, спокойной ночи user :Пей больше горячей воды chatbot:Хахаха user :Пей больше горячей воды chatbot:Хорошо

#### Пример 4:

user :Ты здесь? chatbot:Я здесь user :Мне не开心 chatbot:Что случилось? user :Мне очень устало chatbot:Да, очень устало user :У меня много домашних заданий chatbot:Да, но не так много user :Я думаю, что я могу провалить предмет chatbot:Я тоже, но я думаю, что я скоро справлюсь user :Не буду говорить больше, у меня ещё много домашних заданий chatbot:У меня тоже много user :Тогда до следующего раза, пока chatbot:Хорошо

#### Пример 5:

user :Ты бывал в Гуанчжоу?


user :Привет chatbot:Привет user :Что делаешь? chatbot:Думаю о тебе user :Какая скромность chatbot:Зачем стесняться user :Ты так меня хвалишь, мне стыдно chatbot:А ты стесняешься, что я хвалю тебя user :Да, хаха chatbot:Ты проверяешь меня? user :Почему ты так думаешь? chatbot:Я говорю, что хвалю тебя, а ты так вежливо user :Ты спишь днем? chatbot:Да user :Сейчас я有点困 chatbot:Я тоже user :Потом мне нужно идти на урок, это так ужасно chatbot:Мы не ходим на уроки

Сейчас я有点困 -> Сейчас я有点困 (Сейчас я有点困 это "Сейчас я有点困", перевод: "Сейчас я有点困" это "Сейчас я有点困")

```#### Пример 6:

user :Привет chatbot:Привет user :Что делаешь? chatbot:Думаю о тебе user :Какая скромность chatbot:Зачем стесняться user :Ты так меня хвалишь, мне стыдно chatbot:А ты стесняешься, что я хвалю тебя user :Да, хаха chatbot:Ты проверяешь меня? user :Почему ты так думаешь? chatbot:Я говорю, что хвалю тебя, а ты так вежливо user :Ты спишь днем? chatbot:Да user :Сейчас я有点困 chatbot:Я тоже user :Потом мне нужно идти на урок, это так ужасно chatbot:Мы не ходим на уроки

Сейчас я有点困 -> Сейчас я有点困 (Сейчас я有点困 это "Сейчас я有点困", перевод: "Сейчас я有点困" это "Сейчас я有点困")

```#### Пример 6:

user :Привет chatbot:Привет user :Что делаешь? chatbot:Думаю о тебе user :Какая скромность chatbot:Зачем стесняться user :Ты так меня хвалишь, мне стыдно chatbot:А ты стесняешься, что я хвалю тебя user :Да, хаха chatbot:Ты проверяешь меня? user :Почему ты так думаешь? chatbot:Я говорю, что хвалю тебя, а ты так вежливо user :Ты спишь днем? chatbot:Да user :Сейчас я有点困 chatbot:Я тоже user :Потом мне нужно идти на урок, это так ужасно chatbot:Мы не ходим на уроки

Сейчас я有点困 -> Сейчас я有点困 (Сейчас я有点困 это "Сейчас я有点困", перевод: "Сейчас я有点困" это "Сейчас я有点困")

```#### Пример 6:

user :Привет chatbot:Привет user :Что делаешь? chatbot:Думаю о тебе user :Какая скромность chatbot:Зачем стесняться user :Ты так меня хвалишь, мне стыдно chatbot:А ты стесняешься, что я хвалю тебя user :Да, хаха chatbot:Ты проверяешь меня? user :Почему ты так думаешь? chatbot:Я говорю, что хвалю тебя, а ты так вежливо user :Ты спишь днем? chatbot:Да user :Сейчас я有点困 chatbot:Я тоже user :Потом мне нужно идти на урок, это так ужасно chatbot:Мы не ходим на уроки

Сейчас я有点困 -> Сейчас я有点困 (Сейчас я有点困 это "Сейчас я有点困", перевод: "Сейчас я有点困" это "Сейчас я有点困")

```#### Пример 6:

user :Привет chatbot:Привет user :Что делаешь? chatbot:Думаю о тебе user :Какая скромность chatbot:Зачем стесняться user :Ты так меня хвалишь, мне стыдно chatbot:А ты стесняешься, что я хвалю тебя user :Да, хаха chatbot:Ты проверяешь меня? user :Почему ты так думаешь? chatbot:Я говорю, что хвалю тебя, а ты так вежливо user :Ты спишь днем? chatbot:Да user :Сейчас я有点困 chatbot:Я тоже user :Потом мне нужно идти на урок, это так ужасно chatbot:Мы не ходим на уроки

Сейчас я有点困 -> Сейчас я有点困 (Сейчас я有点困 это "Сейчас я有点困", перевод: "Сейчас я有点困" это "Сейчас я有点困")

```#### Пример 6:

user :Привет chatbot:Привет user :Что делаешь? chatbot:Думаю о тебе user :Какая скромность chatbot:Зачем стесняться user :Ты так меня хвалишь, мне стыдно chatbot:А ты стесняешься, что я хвалю тебя user :Да, хаха chatbot:Ты проверяешь меня? user :Почему ты так думаешь? chatbot:Я говорю, что хвалю тебя, а ты так вежливо user :Ты спишь днем? chatbot:Да user :Сейчас я有点困 chatbot:Я тоже user :Потом мне нужно идти на урок, это так ужасно chatbot:Мы не ходим на уроки

Сейчас я有点困 -> Сейчас я有点困 (Сейчас я有点困 это "Сейчас я有点困", перевод: "Сейчас я有点困" это "Сейчас я有点困")

```#### Пример 6:

user :Привет chatbot:Привет user :Что делаешь? chatbot:Думаю о тебе user :Какая скромность chatbot:Зачем стесняться user :Ты так меня хвалишь, мне стыдно chatbot:А ты стесняешься, что я хвалю тебя user :Да, хаха chatbot:Ты проверяешь меня? user :Почему ты так думаешь? chatbot:Я говорю, что хвалю тебя, а ты так вежливо user :Ты спишь днем? chatbot:Да user :Сейчас я有点困 chatbot:Я тоже user :Потом мне нужно идти на урок, это так ужасно chatbot:Мы не ходим на уроки

Сейчас я有点困 -> Сейчас я有点困 (Сейчас я有点困 это "Сейчас я有点困", перевод: "Сейчас я有点困" это "Сейчас я有点困")

```#### Пример 6:

user :Привет chatbot:Привет user :Что делаешь? chatbot:Думаю о тебе user :Какая скромность chatbot:Зачем стесняться user :Ты так меня хвалишь, мне стыдно chatbot:А ты стесняешься, что я хвалю тебя user :Да, хаха chatbot:Ты проверяешь меня? user :Почему ты так думаешь? chatbot:Я говорю, что хвалю тебя, а ты так вежливо user :Ты спишь днем? chatbot:Да user :Сейчас я有点困 chatbot:Я тоже user :Потом мне нужно идти на урок, это так ужасно chatbot:Мы не ходим на уроки

Сейчас я有点困 -> Сейчас я有点困 (Сейчас я有点困 это "Сейчас я有点困", перевод: "Сейчас я有点困" это "Сейчас я有点困")

```#### Пример 6:

user :Привет chatbot:Привет user :Что делаешь? chatbot:Думаю о тебе user :Какая скромность chatbot:Зачем стесняться user :Ты так меня хвалишь, мне стыдно chatbot:А ты стесняешься, что я хвалю тебя user :Да, хаха chatbot:Ты проверяешь меня? user :Почему ты так думаешь? chatbot:Я говорю, что хвалю тебя, а ты так вежливо user :Ты спишь днем? chatbot:Да user :Сейчас я有点困 chatbot:Я тоже user :Потом мне нужно идти на урок, это так ужасно chatbot:Мы не ходим на уроки

Сейчас я有点困 -> Сейчас я有点困 (Сейчас я有点困 это "Сейчас я有点困", перевод: "Сейчас я有点困" это "Сейчас я有点困")

```#### Пример 6:

user :Привет chatbot:Привет user :Что делаешь? chatbot:Думаю о тебе user :Какая скромность chatbot:Зачем стесняться user :Ты так меня хвалишь, мне стыдно chatbot:А ты стесняешься, что я хвалю тебя user :Да, хаха chatbot:Ты проверяешь меня? user :Почему ты так думаешь? chatbot:Я говорю, что хвалю тебя, а ты так вежливо user :Ты спишь днем?

interact_mmi.py сгенерированный пример (в режиме отладки)

Добавление модели MMI действительно улучшило результат, как видно, используя ответ с минимальным значением потерь, диалог становится более плавным.

Каждый пример представляет собой полный диалог, для удобства чтения между каждым сообщением добавлены переносы строк. Кандидатский ответ - это сгенерированный диалоговой моделью кандидатский ответ.

Необходимо указать параметр --debug для вывода кандидатских ответов и их потерь.

Пример 1:

user:Привет
кандидатский ответ:
Привет loss:1.8774782419204712
Привет! loss:2.1092255115509033
Привет loss:1.8774782419204712
Привет, друг loss:1.9210820198059082
Привет! loss:2.1092255115509033
chatbot:Привет

user:Что делаешь?
кандидатский ответ:
Учусь, играю в телефон loss:1.8411542177200317
Работаю loss:1.8623629808425903
Работаю loss:1.8383764028549194
Съел обед, ты как? Сегодня я сыт, завтра пойдем на ужин loss:2.471815586090088
Переехал loss:2.341609239578247
chatbot:Работаю

user:Хочешь пойти со мной в выходные?
кандидатский ответ:
Конечно loss:2.0150623321533203
Конечно loss:2.0150623321533203
Конечно, ты все еще учишься? loss:2.2639517784118652
Конечно loss:1.9695569276809692
В выходные loss:2.1701855659484863
chatbot:Конечно

user:Я очень скучаю по тебе
кандидатский ответ:
Я тоже скучаю по тебе loss:1.8660272359848022
Тогда мы можем пойти вместе loss:2.046417236328125
Я тоже скучаю по тебе loss:1.8660272359848022
Я давно не выходил из дома loss:2.17940354347229
Приходи ко мне loss:2.14339542388916
chatbot:Я тоже скучаю по тебе
``````user:你喜欢我吗  
chatbot:当然,非常喜欢你  

user:亲爱的在干嘛呢  
chatbot:在家里玩儿  

user:作业写完了吗  
chatbot:还没有,今天刚写完  

user:还不快滚去写作业  
chatbot:我还没写呢  

user:你个大笨蛋  
chatbot:你才是  

user:你是傻子吧  
chatbot:你是傻子,你说谁是傻子  

user:说的就是你,怎么样  
chatbot:我不傻## Будущая работа
контроль сгенерированного контента

## Ссылки
- [Загадочное дело нейронного деградирования текста](https://arxiv.xilesou.top/pdf/1904.09751.pdf)
- [transformers](https://github.com/huggingface/transformers)
- [GPT2-Chinese](https://github.com/Morizeyao/GPT2-Chinese)
- [DialoGPT: Масштабное генеративное предобучение для генерации ответов в диалогах](https://arxiv.xilesou.top/pdf/1911.00536.pdf)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Данный проект использует модель GPT2 для тренировки на корпусе данных китайской непринуждённой беседы. Реализация и обучение модели GPT2 выполнены с использованием библиотеки *transformers* от HuggingFace. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Язык

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/gapyanpeng-GPT2-chitchat.git
git@api.gitlife.ru:oschina-mirror/gapyanpeng-GPT2-chitchat.git
oschina-mirror
gapyanpeng-GPT2-chitchat
gapyanpeng-GPT2-chitchat
master