Una implementación de chatbot de secuencia a secuencia con TensorFlow.
Consulte las instrucciones para comenzar a continuación o consulte algunos registros de chat.
(Los archivos por lotes solo están disponibles para Windows a partir de ahora. Para usuarios de Mac y Linux, consulte las instrucciones a continuación para la consola Python).
Para chat de consola:
chat_console_best_weights_training.bat
o chat_console_best_weights_validation.bat
Para chat web:
Desde el directorio del modelo, ejecute chat_web_best_weights_training.bat
o chat_web_best_weights_validation.bat
Abra un navegador en la URL indicada por la consola del servidor, seguida de /chat_ui.html
. Normalmente es: http://localhost:8080/chat_ui.html
Configure el directorio de trabajo de la consola en el directorio seq2seq-chatbot . Este directorio debe tener los directorios de modelos y conjuntos de datos directamente dentro de él.
Ejecute chat.py con la ruta del punto de control del modelo:
run chat.py models d ataset_name m odel_name c heckpoint.ckpt
Por ejemplo, para chatear con el modelo de diálogo de película de Cornell entrenado entrenado_model_v2 :
Descargue y descomprima entrenado_model_v2 en la carpeta seq2seq-chatbot/models/cornell_movie_dialog
Configure el directorio de trabajo de la consola en el directorio seq2seq-chatbot
Correr:
run chat.py models c ornell_movie_dialog t rained_model_v2 b est_weights_training.ckpt
El resultado debería verse así:
Para entrenar un modelo desde una consola de Python:
Configure el archivo hparams.json con los hiperparámetros de entrenamiento deseados
Configure el directorio de trabajo de la consola en el directorio seq2seq-chatbot . Este directorio debe tener los directorios de modelos y conjuntos de datos directamente dentro de él.
Para entrenar un nuevo modelo, ejecute train.py con la ruta del conjunto de datos:
run train.py --datasetdir=datasets d ataset_name
O para reanudar el entrenamiento de un modelo existente, ejecute train.py con la ruta del punto de control del modelo:
run train.py --checkpointfile=models d ataset_name m odel_name c heckpoint.ckpt
Por ejemplo, para entrenar un nuevo modelo en el conjunto de datos del diálogo de película de Cornell con hiperparámetros predeterminados:
Configure el directorio de trabajo de la consola en el directorio seq2seq-chatbot
Correr:
run train.py --datasetdir=datasets c ornell_movie_dialog
El resultado debería verse así:
Los documentos estarán disponibles próximamente...
TensorBoard es una gran herramienta para visualizar lo que sucede bajo el capó cuando se entrena un modelo de TensorFlow.
Para iniciar TensorBoard desde una terminal:
tensorboard --logdir=model_dir
Donde model_dir es la ruta al directorio donde se encuentra el archivo de punto de control del modelo. Por ejemplo, para ver el modelo de diálogo de película de Cornell entrenado entrenado_model_v2 :
tensorboard --logdir=models c ornell_movie_dialog t rained_model_v2
Los documentos estarán disponibles próximamente...
Los documentos estarán disponibles próximamente...
TensorBoard puede proyectar las incrustaciones de palabras en un espacio 3D mediante la realización de una técnica de reducción de dimensionalidad como PCA o T-SNE, y puede permitirle explorar cómo su modelo ha agrupado las palabras en su vocabulario al ver los vecinos más cercanos en el espacio de incrustación para cualquier palabra. . Puede encontrar más información sobre la incrustación de palabras en TensorFlow y el proyector TensorBoard aquí.
Al iniciar TensorBoard para un directorio de modelo y seleccionar la pestaña "Proyector", debería verse así:
Instrucciones próximamente...
Los siguientes paquetes de Python se utilizan en seq2seq-chatbot: (excluidos los paquetes que vienen con Anaconda)
TensorFlow *Nota: TF 2.x aún no es compatible; utilice la última versión de TF 1.x.
pip install --upgrade tensorflow==1. *
Para compatibilidad con GPU: (consulte aquí para obtener instrucciones completas de instalación de GPU, incluidos CUDA y cuDNN)
pip install --upgrade tensorflow-gpu==1. *
jsonpickle
pip install --upgrade jsonpickle
haga clic en 6.7, flask 0.12.4 y flask-restful (requerido para ejecutar la interfaz web)
pip install click==6.7
pip install flask==0.12.4
pip install --upgrade flask-restful
Ver la página de la hoja de ruta
Esta implementación se inspiró en:
Aprendizaje secuencia a secuencial con redes neuronales
Un modelo conversacional neuronal
Traducción automática neuronal mediante el aprendizaje conjunto de alinear y traducir (mecanismo de atención de Bahdanau)
Enfoques eficaces para la traducción automática neuronal basada en la atención (mecanismo de atención de Luong)