(ОБНОВЛЕНИЕ 23.10.2022) Мы выпустили Godel V1.1, который обучается на 551M-диалогах с многоворотом из потока для обсуждения Reddit, а также 5M Lainching and Snawge Legned Dialogs. Это показало значительно лучшие результаты по нашему эталону, особенно в обстановке с нулевым выстрелом.
Пожалуйста, ознакомьтесь с нашими модельными картами в репозитории Transformers. С несколькими строками кода, должно быть довольно просто поболтать с Godel. Здесь показана живая демонстрация.
Базовая модель: https://huggingface.co/microsoft/godel-v1_1-base-seq2seq
Большая модель: https://huggingface.co/microsoft/godel-v1_1-large-seq2seq
Этот репозиторий демонстрирует целенаправленный диалог зданий с использованием Godel и содержит набор данных, исходный код и предварительно обученную модель для следующей статьи:
Godel: крупномасштабное предварительное обучение для целенаправленного диалога
Баолин Пенг, Мишель Галлей, Пенгчэн Х. Х., Крис Брокетт, Ларс Лиден, Элназ Нури, Чжоу Ю, Билл Долан, Цзянфенг Гао 
Godel-крупномасштабная предварительно обученная модель для целевых диалогов. Он параметризован моделью энкодера на основе трансформатора и обучена генерации ответов, основанной на внешнем тексту, что позволяет более эффективно настраивать задачи диалога, которые требуют кондиционирования ответа на информацию, которая является внешней по отношению к текущему разговору (например, полученный документ). Предварительно обученная модель может быть эффективно настроена и адаптирована для выполнения нового диалога с помощью нескольких диалогов, специфичных для задачи.
Этот репозиторий основан на трансформаторах Hugginface. Некоторые сценарии оценки и набор данных адаптированы из моделирования DSTC7-END-END-Конверсии, Dialogpt, Unifiedqa, MS Marco, Multiwoz, набор данных по схеме и т. Д.
Включенные сценарии могут использоваться для воспроизведения результатов, представленных в статье. Проект и демонстрационная страница: https://aka.ms/godel
Требуется интерактивный интерфейс requuries node.js и npm . Пожалуйста, обратитесь к установке.
Пожалуйста, используйте приведенные ниже команды, чтобы создать среду, клонировать репо и установить необходимые пакеты.
conda create -n godel-env python=3.8
conda activate godel-env
conda install nodejs
git clone https://github.com/microsoft/GODEL.git
cd GODEL
pip install -r requirements.txt
export PYTHONPATH="`pwd`"
Принесите и расстегивают разарную модель, основанную на том, чтобы продолжить вашу собственные данные.
wget https://bapengstorage.blob.core.windows.net/fileshare/godel_base.tar.gz
tar -zxvf godel_base.tar.gzФормат данных
{
"Context" : " Please remind me of calling to Jessie at 2PM. " ,
"Knowledge" : " reminder_contact_name is Jessie, reminder_time is 2PM " ,
"Response" : " Sure, set the reminder: call to Jesse at 2PM "
},Мы используем формат JSON для представления примера обучения. Как показано в приведенном выше примере, он содержит следующие поля:
Тонкая настройка
DATA_NAME={path_of_data}
OUTPUT_DIR={path_of_fine-tuned_model}
MODEL_PATH={path_of_pre-trained_model}
EXP_NAME={experiment_name}
python train.py --model_name_or_path ${MODEL_PATH}
--dataset_name ${DATA_NAME}
--output_dir ${OUTPUT_DIR}
--per_device_train_batch_size=16
--per_device_eval_batch_size=16
--max_target_length 512
--max_length 512
--num_train_epochs 50
--save_steps 10000
--num_beams 5
--exp_name ${EXP_NAME} --preprocessing_num_workers 24Поколение
DATA_NAME = { path_of_data }
OUTPUT_DIR = { path_to_save_predictions }
MODEL_PATH = { path_of_fine - tuned_model }
python generate . py - - model_name_or_path ${ MODEL_PATH }
- - dataset_name ${ DATA_NAME }
- - output_dir ${ OUTPUT_DIR }
- - per_device_eval_batch_size = 16
- - max_target_length 128
- - max_length 512
- - preprocessing_num_workers 24
- - num_beams 5 Взаимодействие
Мы предоставляем демонстрационный интерфейс для общения с производительными моделями. Бэкэнд-сервер основан на колбе , а интерфейс основан на VUE , Bootstrap-Vue и BasicVueChat .
Запустите бэкэнд -сервер:
# Please create the backend server refering to e.g., dstc9_server.py
python EXAMPLE_server.py # start the sever and expose 8080 Начните обслуживать страницу фронта:
cd GODEL/html
npm install
npm run serve Откройте Localhost: 8080 В вашем веб -браузере вы увидите следующую страницу. Обратите внимание, что бэкэнд -порт должен соответствовать порту, используемому в html/compoents/cat.vue.
Здесь показана живая демонстрация.
Мы выпустили Godel v1.1, который обучен на 551M многоворотных диалогах из потока для обсуждения Reddit и 5M обучения и обоснованных знаний. Больше моделей будет выпущено позже.
Мы выпустили три модели с тонкой настройкой, которые могут быть в дальнейшей настройке набора данных с низким ресурсом. Общие параметры в этих моделях варьируются от 117 до 2,7b.
| Модель | Карты модели Huggingface |
|---|---|
| База | Microsoft/Godel-v1_1-base-seq2seq |
| Большой | Microsoft/Godel-V1_1-Large-seq2seq |
22.05.2023: Предварительная подготовка моделей Godel с нашей кодовой базой больше не поддерживается, но модели Godel остаются доступными. Смотрите здесь для деталей.
Годель настраивается и оценивается по четырем задачам. Мы предоставляем сценарии для создания данных обучения и тестирования в нашем формате. Пожалуйста, обратитесь к create_downstream_dataset.sh, чтобы загрузить исходные данные и выполнить следующий CMD.
cd scripts
./create_downstream_dataset.shGROUNDED_CHECKPOINT={path_to_saved_checkpoint}
OUTPUT_DIR={path_to_save_predictions}
TASK=wow
accelerate launch --config_file configs/G16_config.yaml train.py
--model_name_or_path ${GROUNDED_CHECKPOINT}
--dataset_name ./datasets_loader/ ${TASK} _dataset.py
--output_dir ${OUTPUT_DIR}
--per_device_train_batch_size=16
--per_device_eval_batch_size=16
--max_target_length 256
--max_length 512
--num_train_epochs 10
--preprocessing_num_workers 24
--num_beams 5
--exp_name ${TASK}
--learning_rate 5e-5
--save_every_checkpoint
--save_steps 50000 В этом уроке вы построите заземленную модель диалога, основанную на Godel для задачи DSTC9. Подробную информацию можно найти здесь.
Сначала загрузите данные и преобразуйте их в формат Godel.
cd examples/dstc9
./create_data.shFinetune с предварительно обученной моделью Godel
cd GODEL
GODEL_MODEL={path_to_pre-trained_model}
python train.py
--model_name_or_path ${GODEL_MODEL}
--dataset_name ../examples/dstc9/dstc9_dataset.py
--output_dir ../examples/dstc9/ckpt
--per_device_train_batch_size=16
--per_device_eval_batch_size=16
--max_target_length 128
--max_length 512
--num_train_epochs 50
--save_steps 10000
--num_beams 5
--exp_name wow-test
--preprocessing_num_workers 24
--save_every_checkpoint Взаимодействуйте с вышеуказанной подготовленной моделью
cd examples/dstc9
# replace model path in dstc9_server with a trained ckpt in line 49
python dstc9_server.py
cd GODEL/html
npm install
npm run serveЭтот репозиторий направлен на облегчение исследований в сдвиге парадигмы ботов для строительных задач в масштабе. Этот инструментарий содержит только часть механизма моделирования, необходимой для того, чтобы фактически создать файл веса модели в запущенном диалоговом окне. Сама эта модель предоставляет только информацию о весах различных текстовых пролетов; Для того, чтобы исследователь мог фактически использовать его, им необходимо будет предоставить собственные собственные разговорные данные для будущего предварительного обучения и декодировать генерацию ответов из предварительно проведенной/созданной системы. Microsoft не несет ответственности за какое -либо поколение из -за использования сторонней системы предварительно предварительно проведенной.
Если вы используете этот код и данные в своем исследовании, пожалуйста, укажите нашу статью Arxiv:
@misc{peng2022godel,
author = {Peng, Baolin and Galley, Michel and He, Pengcheng and Brockett, Chris and Liden, Lars and Nouri, Elnaz and Yu, Zhou and Dolan, Bill and Gao, Jianfeng},
title = {GODEL: Large-Scale Pre-training for Goal-Directed Dialog},
howpublished = {arXiv},
year = {2022},
month = {June},
url = {https://www.microsoft.com/en-us/research/publication/godel-large-scale-pre-training-for-goal-directed-dialog/},
}
Этот проект приветствует вклады и предложения. Большинство взносов требуют, чтобы вы согласились с лицензионным соглашением о участнике (CLA), заявив, что вы имеете право и фактически предоставить нам права на использование вашего вклада. Для получения подробной информации, посетите https://cla.opensource.microsoft.com.
Когда вы отправляете запрос на привлечение, бот CLA автоматически определит, нужно ли вам предоставить CLA и правильно украсить PR (например, проверка состояния, комментарий). Просто следуйте инструкциям, предоставленным ботом. Вам нужно будет сделать это только один раз во всех репо, используя наш CLA.
Этот проект принял код поведения с открытым исходным кодом Microsoft. Для получения дополнительной информации см. Кодекс поведения FAQ или свяжитесь с [email protected] с любыми дополнительными вопросами или комментариями.
Этот проект может содержать товарные знаки или логотипы для проектов, продуктов или услуг. Уполномоченное использование товарных знаков или логотипов Microsoft подлежит и должно следовать указаниям Microsoft по товарной марке и брендам. Использование товарных знаков Microsoft или логотипов в модифицированных версиях этого проекта не должно вызывать путаницу или подразумевать спонсорство Microsoft. Любое использование сторонних товарных знаков или логотипов подвержена политике сторонних сторон.