(Mise à jour du 23/10/2022) Nous avons publié Godel V1.1, qui est formé sur les boîtes de dialogue multi-tours 551M à partir du fil de discussion de Reddit, et des dialogues d'instructions et de connaissances sur 5m. Il a montré des résultats significativement meilleurs sur notre référence, en particulier dans le réglage zéro.
Veuillez consulter nos cartes modèles dans le référentiel de transformateurs HuggingFace. Avec plusieurs lignes de code, il devrait être assez simple de discuter avec Godel. Une démo en direct est montrée ici.
Modèle de base: https://huggingface.co/microsoft/godel-v1_1-base-seq2seq
Grand modèle: https://huggingface.co/microsoft/godel-v1_1-large-seq2seq
Ce référentiel présente la boîte de dialogue dirigé par des objectifs à l'aide de GODEL et contient l'ensemble de données, le code source et le modèle pré-formé pour le document suivant:
GOBEL: pré-formation à grande échelle pour le dialogue dirigé par des objectifs
Baolin Peng, Michel Galley, Pengcheng HE, Chris Brockett, Lars Liden, Elnaz Nouri, Zhou Yu, Bill Dolan, Jianfeng Gao 
Godel est un modèle pré-formé à grande échelle pour les dialogues dirigés par des objectifs. Il est paramétré avec un modèle d'encodeur de coder basé sur un transformateur et formé pour la génération de réponse ancrée dans un texte externe, ce qui permet un réglage d'adaptation plus efficace sur les tâches de dialogue qui nécessitent de conditionner la réponse sur les informations externes à la conversation actuelle (par exemple, un document récupéré). Le modèle pré-formé peut être efficacement affiné et adapté pour accomplir une nouvelle tâche de dialogue avec une poignée de boîtes de dialogue spécifiques à la tâche.
Ce référentiel est basé sur des transformateurs Hugginface. Certains scripts d'évaluation et ensemble de données sont adaptés à partir du modélisation DSTC7-End-End-Conversation-Modeling, Dialogpt, UnifiedQA, MS Marco, Multiwoz, ensemble de données guidés par schéma, etc.
Les scripts inclus peuvent être utilisés pour reproduire les résultats rapportés dans le document. Page Web de projet et de démonstration: https://aka.ms/godel
Nécessite la demande d'interface interactive Node.js et NPM . Veuillez vous référer à ici pour l'installation.
Veuillez utiliser les commandes ci-dessous pour créer l'environnement, cloner le repo et installer les packages requis.
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`"
Reprochez et déziptez le modèle pré-entraîné en fonction de laquelle poursuivre vos propres données.
wget https://bapengstorage.blob.core.windows.net/fileshare/godel_base.tar.gz
tar -zxvf godel_base.tar.gzFormat de données
{
"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 "
},Nous utilisons le format JSON pour représenter un exemple de formation. Comme indiqué dans l'exemple ci-dessus, il contient les champs suivants:
Réglage fin
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 24Génération
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 Interaction
Nous fournissons une interface de démonstration pour discuter avec des modèles Finetuned. Le serveur backend est basé sur Flask et l'interface est basée sur Vue , Bootstrap-Vue et BasicVueChat .
Démarrez le serveur backend:
# Please create the backend server refering to e.g., dstc9_server.py
python EXAMPLE_server.py # start the sever and expose 8080 Commencez à servir la page Frontend:
cd GODEL/html
npm install
npm run serve Ouvrez LocalHost: 8080 Dans votre navigateur Web, vous verrez la page suivante. Notez que le port backend doit être cohérent avec le port utilisé dans HTML / Compoents / Chat.vue.
Une démo en direct est montrée ici.
Nous avons publié Godel v1.1, qui est formé sur les boîtes de dialogue multi-tours 551M à partir du fil de discussion Reddit et des dialogues d'instructions et de connaissances 5M. Plus de modèles seront publiés plus tard.
Nous avons publié trois modèles affinés qui peuvent être encore affinés sur un ensemble de données personnalisé à faibles ressources. Les paramètres totaux de ces modèles varient de 117 m à 2,7 milliards.
| Modèle | Cartes de modèle à étreindre |
|---|---|
| Base | Microsoft / GODEL-V1_1-BASE-SEQ2SEQ |
| Grand | Microsoft / GODEL-V1_1-LARGE-SEQ2SEQ |
22/05/2023: Les modèles de pré-formation avec notre base de code ne sont plus soutenus, mais les modèles Godel restent disponibles. Voir ici pour plus de détails.
Godel est affiné et évalué sur quatre tâches. Nous fournissons des scripts pour créer des données de formation et de test dans notre format. Veuillez vous référer à create_downstream_dataset.sh pour télécharger les données d'origine et exécuter le CMD suivant.
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 Dans ce didacticiel, vous constaterez un modèle de dialogue mis à la terre basé sur Godel pour la tâche DSTC9. Des informations détaillées peuvent être trouvées ici.
Téléchargez d'abord les données et convertissez-la au format Godel.
cd examples/dstc9
./create_data.shFinetune avec le modèle Godel pré-formé
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 Interagir avec le modèle qualifié ci-dessus
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 serveCe référentiel vise à faciliter la recherche dans un changement de paradigme des robots de tâches de construction à grande échelle. Cette boîte à outils ne contient qu'une partie de la machine de modélisation nécessaire pour produire réellement un fichier de poids de modèle dans une boîte de dialogue en cours. En soi, ce modèle ne fournit que des informations sur les poids de diverses travées de texte; Pour qu'un chercheur puisse réellement l'utiliser, il devra apporter ses propres données conversationnelles en interne pour la pré-formation future et décoder la génération de réponse à partir du système pré-entraîné / en phase finale. Microsoft n'est pas responsable de toute génération à partir de l'utilisation tierce du système pré-entraîné.
Si vous utilisez ce code et les données dans votre recherche, veuillez citer notre article 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/},
}
Ce projet accueille les contributions et les suggestions. La plupart des contributions vous obligent à accepter un accord de licence de contributeur (CLA) déclarant que vous avez le droit de faire et en fait, accordez-nous les droits d'utilisation de votre contribution. Pour plus de détails, visitez https://cla.opensource.microsoft.com.
Lorsque vous soumettez une demande de traction, un bot CLA déterminera automatiquement si vous devez fournir un CLA et décorer le RP de manière appropriée (par exemple, vérification d'état, commentaire). Suivez simplement les instructions fournies par le bot. Vous n'aurez besoin de le faire qu'une seule fois sur tous les dépositions en utilisant notre CLA.
Ce projet a adopté le code de conduite open source Microsoft. Pour plus d'informations, consultez le code de conduite FAQ ou contactez [email protected] avec toute question ou commentaire supplémentaire.
Ce projet peut contenir des marques ou des logos pour des projets, des produits ou des services. L'utilisation autorisée de marques ou de logos Microsoft est soumise et doit suivre les directives de marque et de marque de Microsoft. L'utilisation de marques ou de logos de Microsoft dans des versions modifiées de ce projet ne doit pas provoquer de confusion ou impliquer le parrainage de Microsoft. Toute utilisation de marques ou de logos tiers est soumis aux politiques de ces tiers.