Ce référentiel contient le code source et le modèle formé pour un modèle de génération de réponse de dialogue prétrait à grande échelle. Les résultats de l'évaluation humaine indiquent que la réponse générée à partir de dialogue est comparable à la qualité de la réponse humaine sous un test de turing de conversation à un tour.
Le référentiel est basé sur HuggingFace Pytorch-Transformateur et Openai GPT-2, contenant un script d'extraction de données, le code de formation du modèle et le petit point de contrôle du modèle (117m) (345m) et un grand point de contrôle du modèle (762M).
Le modèle est formé sur le dialogue multi-tours 147M à partir du fil de discussion Reddit. Le modèle le plus important peut être formé à plusieurs heures sur une machine 8 V100 (mais cela n'est pas nécessaire), avec une formation distribuée et une option FP16.
Le script inclué peut être utilisé pour reproduire les résultats du défi de génération de dialogue DSTC-7 mis à la terre et un ensemble de données multi-référence 6K créé à partir de données Reddit.
PAGE DE PROJET: https://www.microsoft.com/en-us/research/project/large-scale-pretraining-for-response-generation/
Papier Arxiv: https://arxiv.org/abs/1911.00536
(Mise à jour du 07/09/2022) Les modifications sur les fichiers.pushshift.io/reddit Server ont provoqué la rupture de notre pipeline de génération de données. Ces problèmes ont maintenant été résolus et les étapes expliquées dans le paragraphe de préparation des données ci-dessous devraient fonctionner à nouveau. Les données sont générées en environ 10 heures avec 8 processus ( -j 8 ), et 800 Go d'espace disque temporaire sont nécessaires.
(MISE À JOUR 23/06/2021) Nous avons publié une version de récupération / ultramoderne de Dialogpt (RETGEN), veuillez consulter le repo Retgen et le papier Retgen
(Mise à jour du 20/05/2021) Une superbe procédure vidéo sur YouTube pour Dialogpt de Prakhar Mishra
(Mise à jour du 31/03/2021)
(Mise à jour 15/09/2020) Un ensemble de modèles de classe de dialogue à grande échelle a été publié!
La génération de dialogue est améliorée en s'intégrant à nos derniers modèles de classement de dialogue, DialogOGrpt
(MISE À JOUR 07/08/2020) Le jeu de tests multi-ref 6K a été publié!
Pour générer les données, Pleaser Exécuter demo.py et définir l'option de données sur `` complet '', l'ensemble de test multi-ref 6k généré sera situé à
./data/test.refs.txt
(Mettre à jour le 03/10/2020) Cartes de modèle disponibles dans Huggingface Transformers!
Veuillez consulter nos cartes modèles dans le référentiel de transformateurs HuggingFace. Avec plusieurs lignes de code, il devrait être assez discret de jouer avec le dialogue de manière interactive.
Petit modèle: https://huggingface.co/microsoft/dialogpt-small
Modèle moyen: https://huggingface.co/microsoft/dialogpt-medium
Grand modèle: https://huggingface.co/microsoft/dialogpt-lag
(Nouveau) Modèle de classement: https://huggingface.co/microsoft/dialogrpt-down
(Mise à jour 01/06/2020) Quelques implémentations de script de décodage tiers:
Dialogpt a été entièrement développé sur Ubuntu 16.04 , et - en fonction de notre disponibilité - nous essayons de fournir un support si vous rencontrez des difficultés à exécuter le code sur la même configuration. Cependant, nous ne sommes pas en mesure de soutenir d'autres distributions ou systèmes d'exploitation . Des parties du code peuvent s'exécuter sur d'autres saveurs UNIX (MacOS, sous-système Windows pour Linux, Cygwin, etc.), mais il est recommandé d'utiliser Ubuntu pour le code de formation principal.
Le code de formation peut être exécuté sur CPU, mais il peut être lent. Nous recommandons d'utiliser GPU pour former et Finetune tous les modèles. Il n'y a pas de limite minimale du nombre de GPU. Cependant, si vous utilisez un train distribué pour la configuration des GPU multiple, la vitesse vs le nombre de GPU est à peu près sous-linéaire. Pour simuler le même lot lorsque vous utilisez moins de GPU, veuillez utiliser un plus grand gradient_accumulation_steps dans la formation du modèle.
Le modèle 117m et 345m peut être chargé dans un seul GPU avec une mémoire 12g. Le modèle 762M nécessiterait un seul GPU qui a plus de mémoire 16G pour une formation efficace. La vitesse de formation sur les données de référence avec des instances de formation 50m et les GPU V100:
| n_gpu | Temps d'époque (H) | Token / sec |
|---|---|---|
| 1 | 118 | 10847 |
| 2 | 62 | 20645 |
| 4 | 34 | 37647 |
| 8 | 18 | 71356 |
Le réglage fin de notre modèle pré-entraîné sur un nouvel ensemble de données nécessite généralement 1-2 époques.
Nous avons créé un Script Demo demo.py pour soulager la difficulté du déploiement de ce système. Le demo.py contient un pipeline de téléchargement du modèle , d'extraction de données, de prétraitement des données et de formation de modèle sur un ensemble de données factices dans une ligne de commande.
Veuillez utiliser les lignes de commande ci-dessous pour cloner, installer les exigences et charger l'environnement conda (notez que la boîte à outils du développeur NVIDIA CUDA 10.0 est requise):
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 Si vous exécutez cela sur une architecture autre que Linux, veuillez utiliser LSP-generic.yml au lieu de LSP-linux.yml mais veuillez noter que le générique n'est pas testé dans toute la plate-forme, de sorte que la stablité ne peut pas être Gauranteed. Pour utiliser la formation FP16, veuillez installer Apex en utilisant les commandes ci-dessous
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.pyPour commencer, installez d'abord le Docker et Nvidia-Docker à partir de leurs références officielles. L'environnement d'image pour l'exécution du code peut être chargé comme ci-dessous:
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À l'intérieur du conteneur Docker, exécutez
python demo.py Cette section explique tous les composants de la demo.py
Avant d'exécuter demo.py , vous pouvez définir Data_Folder (valeur par défaut ./models ) dans demo.py comme endroit où vous souhaitez télécharger toutes les données et les modèles pré-tracés / affinés. Ensuite, courez simplement
python demo.pyà
Notez que par défaut, demo.py utilisera des données factices, veuillez spécifier les données de formation Reddit en utilisant l'option --data . Trois options sont disponibles: dummy , small et full .
python demo.py --data small
python demo.py --data fullLes petites données Reddit sont d'environ 140 Mo et les données Reddit complètes sont supérieures à 27 Go. Vous pouvez préparer une tasse de café lors du traitement avec les données Reddit complètes car cela prend beaucoup de temps !
Pour générer les données de jeu de tests multi-ref 6K, Pleaser Exécuter demo.py et définir l'option de données sur `` complet '', la génération sera située à
./data/test.refs.txt
Les modèles pré-entraînés et affinés sont disponibles sur Azure Blobstorage. Veuillez exécuter / voir demo.py pour plus de détails sur la façon de télécharger / utiliser ces modèles. Ou vous pouvez télécharger directement en utilisant les liens dans demo_utils.py .
Tout d'abord, utilisez le prepare4db.sh pour convertir un fichier de données TSV au format correct que le script suivant peut reconnaître. Les données Trainig doivent ensuite être traitées dans un fichier de base de données avec la ligne de commande ci-dessous:
python prepro.py --corpus $DATA_PATH Le script d'entraînement peut être utilisé dans un seul GPU ou plusieurs paramètres GPU (formation distribuée sur plusieurs GPU dans un seul nœud):
python ./LSP_train.py # Single GPU training
python -m torch.distributed.launch --nproc_per_node=8 ./LSP_train.py # Training on 8 GPUsLe script de formation accepte plusieurs arguments pour modifier la formation:
| Argument | Taper | Valeur par défaut | Description |
|---|---|---|---|
| max_seq_length | int | 128 | Nombre maximum de jetons pour chaque instance de formation. |
| Train_input_file | str | "" | Chemin de l'ensemble de données de formation au format .db |
| EVAL_INPUT_FILE | str | "" | Chemin de la validation définie dans un format TSV |
| continu_from | int | 0 | Reprendre la formation après un nombre spécifié d'étapes |
| FP16 | boolean | True | Que ce soit à utiliser un point flottant 16 bits pour la formation des modèles. |
| Train_batch_size | int | 4 | Taille du lot pour la formation |
| valid_batch_size | int | 4 | Taille du lot pour la validation |
| gradient_accumulation_steps | int | 2 | Accumuler des gradients sur plusieurs étapes |
| apprentissage_rate | float | 1e-5 | Taux d'apprentissage |
| LR_SCHEDULE | str | noam | Le calendrier des taux d'apprentissage peut être choisi parmi [ noam , noamwd , BERT , None ] |
| num_optim_steps | int | 1000000 | Nombre d'étapes d'optimisation de la formation |
| no_token_id | boolean | True | Si vous définissez True, en utilisant l'intégration de type token All-Zeros. |
Pendant la formation, deux fichiers journaux seront mis à jour. Le train_log.txt et eval_log.txt contient les statistiques de perte de perte de modèle, de perplexité et de vitesse de formation (jetons / sec) pour l'ensemble de formation et de développement.
Le fichier journal et le point de contrôle du modèle enregistré peuvent être trouvés dans ./models/output_model
Nous notons que même avec un ensemble de données Reddit correctement filtré, notre modèle peut parfois générer des réponses modérément toxiques / inappropriées. Pour cette raison, nous ne sommes pas en mesure de fournir le script de décodage pour le moment (la démo en direct et l'accès du script de décodage sont sur invitation uniquement maintenant). Nous travaillons actuellement sur une méthode de décodage contrôlé pour empêcher ce système de génération toxique. Veuillez rester à l'écoute.
Voir les questions n ° 3 et les discussions Reddit pour certaines discussions sur les méthodes de décodage tierces.
Voir ci-dessous pour quelques méthodes de décodage tiers:
Nous publions 6 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 à 762 m, en accord avec les tailles de modèle Openai GPT-2.
| Modèle | Affiné de GPT-2 | Formé à partir de zéro |
|---|---|---|
| Modèle Dialogpt 762M | [lien] [Card de modèle HuggingFace] | [lien] |
| Modèle de dialogue 345m | [lien] [Card de modèle HuggingFace] | [lien] |
| Modèle Dialogpt 117M | [lien] [Card de modèle HuggingFace] | [lien] |
| Modèle Dialogpt 345M (revers, pour MMI) | lien | - |
| Dialogrpt ( nouveaux modèles de classement) | lien | - |
Les fichiers du modèle peuvent être chargés exactement comme les points de contrôle du modèle GPT-2 des transformateurs de HuggingFace. Vous pouvez trouver les fichiers de configuration correspondants ( merges.txt , config.json , vocab.json ) dans Repo de Dialogpt dans ./configs/* .
Le modèle inversé prédit la source de la cible. Ce modèle est utilisé pour le rediffusion MMI.
Les modèles Dialogrogrpt que nos modèles de classement récemment proposés ont utilisés pour prédire la rétroaction humaine (votes up, réponses) des réponses. Ces modèles peuvent être utilisés pour améliorer la qualité de la génération de dialogue (voir notre article EMNLP pour plus de détails).
La première étape pour recycler les modèles complets consiste à générer l'ensemble de données Reddit 27 Go susmentionné. Cela implique le téléchargement de la soumission et des commentaires de Reddit Full Dumps à partir de https://files.pushshift.io/reddit et de création de fichiers intermédiaires, qui nécessitent globalement 700 Go d'espace disque local . Le téléchargement et le traitement des données complets nécessitent environ 1 à 2 jours, selon vos capabities de calcul (CPU) (par exemple, ~ 24 heures avec 8 cœurs sur un ordinateur récent). En supposant que vous ayez exécuté les étapes de configuration et d'installation ci-dessus (conda activer LSP, etc.), vous pouvez créer l'ensemble de données complet en exécutant l'un ou l'autre:
python demo.py --data full
ou
cd reddit_extractor; SIZE=full make -j 8; cd ..
Le premier commandement appelle le second, donc les deux méthodes sont équivalentes. Nous recommandons le premier, car le second est surtout utile si vous rencontrez un problème ou si vous souhaitez personnaliser tous les arguments (par exemple, la commande make vous permet de créer seulement un sous-ensemble des données). Notez que la phase de téléchargement peut être sujet aux erreurs, par exemple en fonction de votre géolocalisation (pare-feu, etc.). Si les commandes ci-dessus ne parviennent pas à générer data/train.tsv , ou si ce fichier n'est pas proche de 27 Go, cela signifie que quelque chose s'est mal passé. Dans ce cas, vous pouvez inspecter reddit_extractor/wget-log et reddit_extractor/logs/*.log pour toute erreur évidente (par exemple, wget incapable de télécharger à partir de pushshift.io). Si les messages d'erreur n'ont pas de sens pour vous, n'hésitez pas à nous contacter. Si c'est le cas, assurez-vous d'inclure les messages d'erreur recueillis à partir de ces fichiers journaux.
Statistiques de données de formation: Le fichier TSV de formation généré doit être d'environ 26,8 Go non compressé, avec 146,8 m de formation, des jetons source de 3,87b et des jetons cibles 2.14b (y compris des poids 0/1 au niveau de l'énonciation). Le fichier Train.tsv résultant doit contenir 146 846 215 lignes.
Nous recommandons de générer les données ci-dessus à l'aide du demo.py --data full , car il (1) génère les données, (2) les convertit en format DB, et (3) forme un modèle à l'aide de python LSP_train.py . Veuillez modifier directement demo.py si vous souhaitez personnaliser l'un des hyperparamètres.
Notre modèle a obtenu les résultats de pointe dans la tâche de génération de réponse DSTC-7.
| Expérience | Nist2 | Nist4 | Bleu2 | Bleu4 | MÉTÉORE | Ent-4 | Dist-1 | Dist-2 | Avg. Len |
|---|---|---|---|---|---|---|---|---|---|
| Réponse humaine | 2.62 | 2.65 | 12,35% | 3,13% | 8,31% | 10.45 | 16,66% | 67,01% | 18.8 |
| Gagnant du 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 |
où ENT représente le score d'entropie, et DIST représente le score distinct. Pour toutes les métriques, sauf la durée moyenne, les plus grandes sont meilleures.
Notez que l'évaluation automatique supérieure par rapport aux réponses humaines n'implique pas que notre modèle atteint la parité humaine. Veuillez consulter notre article pour une analyse plus détaillée.
Pour affiner le modèle de dialogue 345M sur les données DSTC-7 Challenge sur un serveur avec 8 GPU V100, veuillez exécuter la ligne de commande suivante (les données DSTC peuvent être trouvées sur 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_idLe modèle formé peut être trouvé sur le modèle moyen DSTC
Veuillez télécharger les packages tiers suivants et enregistrer dans le dossier vide 3rdparty :
cpan install ): XML: Twig, Sort: Naturellement et String: Util. Veuillez suivre le dépôt officiel DSTC-7 pour extraire les données et mettre le dossier data-official-test/test.refs.txt dans ./dstc/data/ .
Exécutez le script d'extraction ci-dessous pour produire le fichier d'hypothèse de réponse humaine human.resp.txt :
python extract_human.pyEnfin, pour reproduire les résultats de l'hypothèse humaine sur l'ensemble de données DSTC, veuillez exécuter les commandes suivantes dans le dossier Repo:
python batch_eval.py Les résultats de l'évaluation seront générés dans le dossier ./dstc/eval/
Nous testons sur un ensemble de données multi-ref 6K à partir de Reddit. Les résultats sont résumés ci-dessous
| Expérience | Nist2 | Nist4 | Bleu2 | Bleu4 | MÉTÉORE | Ent-4 | Dist-1 | Dist-2 | Avg. Len |
|---|---|---|---|---|---|---|---|---|---|
| Réponse humaine | 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 |
Nous effectuons en outre des évaluations humaines (exemples 6K pour chaque méthodes, chaque exemple est évalué par 3 juges humains). Les résultats montrent une preuve solide que notre qualité de génération consiste à aborder la qualité des réponses humaines réelles, dans le cadre de ce test de Turing non interactif:
Pertinence : A et B, qui est plus pertinent pour l'invite source.
| Système A | A WINS (%) | Liens (%) | B gagne (%) | Système B |
|---|---|---|---|---|
| Dialogpt 345m | 2671 (45%) | 513 (9%) | 2816 (47%) | Réponses humaines |
| Dialogpt 345m | 3281 (72%) | 394 (9%) | 882 (19%) | Personnalité |
| Dialogpt 345m avec MMI | 2871 (48%) | 522 (9%) | 2607 (43%) | Réponses humaines |
Informativité : A et B, qui est plus content et informatif.
| Système A | A WINS (%) | Liens (%) | B gagne (%) | Système B |
|---|---|---|---|---|
| Dialogpt 345m | 2722 (45%) | 234 (4%) | 3044 (51%) | Réponses humaines |
| Dialogpt 345m | 3490 (77%) | 206 (5%) | 861 (19%) | Personnalité |
| Dialogpt 345m avec MMI | 3011 (50%) | 234 (4%) | 2755 (46%) | Réponses humaines |
Human : A et B, qui, selon vous, est plus susceptible d'être généré par l'homme.
| Système A | A WINS (%) | Liens (%) | B gagne (%) | Système B |
|---|---|---|---|---|
| Dialogpt 345m | 2716 (45%) | 263 (4%) | 3021 (50%) | Réponses humaines |
| Dialogpt 345m | 3462 (76%) | 196 (4%) | 899 (20%) | Personnalité |
| Dialogpt 345m avec MMI | 2978 (50%) | 241 (4%) | 2781 (46%) | Réponses humaines |
Veuillez consulter tous les détails dans notre article Arxiv.
| Rôle | Réponse |
|---|---|
| Utilisateur | L'argent achète-t-il le bonheur? |
| Bot | Cela dépend du montant d'argent que vous dépensez. |
| Utilisateur | Quelle est la meilleure façon d'acheter le bonheur? |
| Bot | Il vous suffit d'être millionnaire au début de la vingtaine, alors vous pouvez être heureux. |
| Utilisateur | C'est tellement difficile! |
| Bot | Vous ne savez pas à quel point il est difficile d'être millionnaire et heureux. Il y a une raison pour laquelle les riches ont beaucoup d'argent |
| Rôle | Réponse |
|---|---|
| Utilisateur | Quel est le sens de la vie? |
| Bot | Le sens est d'être avec votre famille et vos amis. |
| Bot | Je vais deviner: cela signifie que vos parents et vos amis vous ont aimé. C'est le sens, je crois. |
| Bot | Je pense que le sens est de vous assurer que vous êtes en vie à votre mort. Vous serez donc avec votre famille, vos amis et vous-même. |
| Bot | Ce n'est pas le cas, mais merci d'avoir essayé d'aider. |
| Utilisateur | Bot |
|---|---|
| qui est le premier président des États-Unis | George Washington |
| Quel est le point d'ébullition de l'eau? | Je pense que c'est environ 212 F. |
| Lequel est plus grand, soleil ou lune? | Le soleil. |
| Quel animal a des rayures en noir et blanc? | Un chat rayé noir et blanc. |
| Utilisateur | Bot |
|---|---|
| La guerre commerciale entre la Chine et les États-Unis se produit toujours. | Je suis sûr que le gouvernement chinois et l'U. S. Sera bien avec cela tant qu'ils gardent les bras sur la table et l'argent qui coule. |
| Qui a remporté la Coupe du monde en 2018? | Allemagne, je crois. |
| Le Titan RTX de Nvidia est vraiment bon. | J'ai cette carte et j'adore ça. Aucune plainte. |
| Porsche peut-elle battre Tesla avec son nouveau Taycan EV? | Je ne pense pas . La Tesla est plus puissante que la Porsche. |
| Utilisateur | Bot |
|---|---|
| Quelle est la signification d'une bonne vie? | Je pense que c'est que nous sommes tous connectés à nos vies passées et que le sens de la vie est de vivre comme vous le souhaitez et comment vous le souhaitez. |
| Quel est le plus important - réussir ou être heureux? | Réussir est tout simplement sans fin. Être heureux est la seule chose qui compte. |
| La paix est-elle la seule façon d'arrêter la guerre? | Pas si le monde n'est pas disposé à travailler avec vous. La paix est le but ultime, mais la paix nécessite plus que cela. |
| Combien de liberté les gens devraient-ils avoir? | La bonne quantité de liberté est la liberté de faire ce que vous voulez, tant que vous ne blessez pas les gens ou les biens. |
| Utilisateur | Bot |
|---|---|
| Que pensez-vous du Relogpt Repo? | C'est assez bon, mais c'est très facile de trouver un bug. |
Veuillez commencer un problème si vous en repérez :)
La démo en direct et l'accès au script de décodage ne sont qu'à l'invitation uniquement. Veuillez rester à l'écoute pour la version complète.
Retgen: https://github.com/Dreasysnail/retgen. Dialoge de la récupération / augmentation / ancrée et au-delà. Retgen est un cadre de formation conjoint qui optimise simultanément un récupérateur de passage dense et un générateur de texte fondé sur les connaissances de bout en bout.
Microsoft ICECAPS: https://github.com/microsoft/ICECAPS.
En tant que référentiel orthogonal de ce projet, Microsoft ICECAPS est une boîte à outils open source (dans TensorFlow) pour la construction de systèmes conversationnels neuronaux. ICECAPS fournit un éventail d'outils de la modélisation récente de conversation et de la littérature générale des PNL dans un paradigme flexible qui permet des configurations d'apprentissage multi-tâches complexes.
Unilm pré-entraîné: https://github.com/microsoft/unilm
MT-DNN: https://github.com/namisan/mt-dnn
Un homologue chinois de Dialogpt de Yangjianxin1. https://github.com/yangjianxin1/gpt2-chitchat. Nous sommes heureux de voir que la stratégie MMI que nous avons utilisée dans Dialogpt a également amélioré les performances de ce projet!
Veuillez contacter [email protected] si vous avez des questions / suggestions. Cependant, la réponse sera sporadique. Veuillez vous attendre à un retard.
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 référentiel vise à faciliter la recherche en pré-entraînement à grande échelle pour les données conversationnelles. 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 et décoder la génération de réponse à partir du système pré-entraîné. 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 dans votre recherche, vous pouvez citer notre article 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}
}