Une implémentation de chatbot séquence2séquence avec TensorFlow.
Consultez les instructions pour commencer ci-dessous ou consultez quelques journaux de discussion.
(Les fichiers batch ne sont disponibles que pour Windows pour le moment. Pour les utilisateurs Mac et Linux, consultez les instructions ci-dessous pour la console Python.)
Pour le chat sur console :
chat_console_best_weights_training.bat
ou chat_console_best_weights_validation.bat
Pour le chat Web :
Depuis le répertoire du modèle, exécutez chat_web_best_weights_training.bat
ou chat_web_best_weights_validation.bat
Ouvrez un navigateur vers l'URL indiquée par la console du serveur, suivie de /chat_ui.html
. Il s'agit généralement de : http://localhost:8080/chat_ui.html
Définissez le répertoire de travail de la console sur le répertoire seq2seq-chatbot . Ce répertoire doit contenir directement les répertoires des modèles et des ensembles de données .
Exécutez chat.py avec le chemin du point de contrôle du modèle :
run chat.py models d ataset_name m odel_name c heckpoint.ckpt
Par exemple, pour discuter avec le modèle de dialogue de film Cornell formétrained_model_v2 :
Téléchargez et décompressez trained_model_v2 dans le dossier seq2seq-chatbot/models/cornell_movie_dialog
Définissez le répertoire de travail de la console sur le répertoire seq2seq-chatbot
Courir:
run chat.py models c ornell_movie_dialog t rained_model_v2 b est_weights_training.ckpt
Le résultat devrait ressembler à ceci :
Pour entraîner un modèle à partir d'une console Python :
Configurez le fichier hparams.json avec les hyperparamètres de formation souhaités
Définissez le répertoire de travail de la console sur le répertoire seq2seq-chatbot . Ce répertoire doit contenir directement les répertoires des modèles et des ensembles de données .
Pour entraîner un nouveau modèle, exécutez train.py avec le chemin de l'ensemble de données :
run train.py --datasetdir=datasets d ataset_name
Ou pour reprendre l'entraînement d'un modèle existant, exécutez train.py avec le chemin du point de contrôle du modèle :
run train.py --checkpointfile=models d ataset_name m odel_name c heckpoint.ckpt
Par exemple, pour entraîner un nouveau modèle sur l'ensemble de données de dialogue du film Cornell avec des hyperparamètres par défaut :
Définissez le répertoire de travail de la console sur le répertoire seq2seq-chatbot
Courir:
run train.py --datasetdir=datasets c ornell_movie_dialog
Le résultat devrait ressembler à ceci :
Les documents arrivent bientôt...
TensorBoard est un excellent outil pour visualiser ce qui se passe sous le capot lorsqu'un modèle TensorFlow est en cours d'entraînement.
Pour démarrer TensorBoard depuis un terminal :
tensorboard --logdir=model_dir
Où model_dir est le chemin d'accès au répertoire où se trouve le fichier de point de contrôle du modèle. Par exemple, pour afficher le modèle de dialogue de film Cornell formétrained_model_v2 :
tensorboard --logdir=models c ornell_movie_dialog t rained_model_v2
Les documents arrivent bientôt...
Les documents arrivent bientôt...
TensorBoard peut projeter les intégrations de mots dans un espace 3D en effectuant une technique de réduction de dimensionnalité telle que PCA ou T-SNE, et peut vous permettre d'explorer comment votre modèle a regroupé les mots de votre vocabulaire en affichant les voisins les plus proches dans l'espace d'intégration pour n'importe quel mot. . Pour en savoir plus sur l'intégration de mots dans TensorFlow et le projecteur TensorBoard, cliquez ici.
Lorsque vous lancez TensorBoard pour un répertoire de modèles et sélectionnez l'onglet "Projecteur", cela devrait ressembler à ceci :
Les instructions arrivent bientôt...
Les packages python suivants sont utilisés dans seq2seq-chatbot : (à l'exclusion des packages fournis avec Anaconda)
TensorFlow *Remarque : TF 2.x n'est pas encore pris en charge, utilisez la dernière version de TF 1.x.
pip install --upgrade tensorflow==1. *
Pour la prise en charge du GPU : (Voir ici pour les instructions complètes d'installation du GPU, y compris CUDA et cuDNN)
pip install --upgrade tensorflow-gpu==1. *
jsonpickle
pip install --upgrade jsonpickle
cliquez sur 6.7, flask 0.12.4 et flask-restful (obligatoire pour exécuter l'interface Web)
pip install click==6.7
pip install flask==0.12.4
pip install --upgrade flask-restful
Voir la page Feuille de route
Cette mise en œuvre a été inspirée par :
Apprentissage séquence à séquence avec les réseaux de neurones
Un modèle conversationnel neuronal
Traduction automatique neuronale par apprentissage conjoint à aligner et à traduire (mécanisme d'attention Bahdanau)
Approches efficaces de la traduction automatique neuronale basée sur l'attention (mécanisme d'attention de Luong)