Uma implementação de chatbot sequencia2sequence com TensorFlow.
Veja as instruções para começar abaixo ou confira alguns registros de bate-papo
(Os arquivos em lote estão disponíveis apenas para Windows no momento. Para usuários de Mac e Linux, consulte as instruções abaixo para o console python.)
Para bate-papo no console:
chat_console_best_weights_training.bat
ou chat_console_best_weights_validation.bat
Para bate-papo na web:
No diretório do modelo, execute chat_web_best_weights_training.bat
ou chat_web_best_weights_validation.bat
Abra um navegador na URL indicada pelo console do servidor, seguida por /chat_ui.html
. Normalmente é: http://localhost:8080/chat_ui.html
Configure o diretório de trabalho do console para o diretório seq2seq-chatbot . Este diretório deve conter os diretórios de modelos e conjuntos de dados diretamente nele.
Execute chat.py com o caminho do ponto de verificação do modelo:
run chat.py models d ataset_name m odel_name c heckpoint.ckpt
Por exemplo, para conversar com o modelo de diálogo de filme Cornell treinado treinado_model_v2 :
Baixe e descompacte treinado_model_v2 na pasta seq2seq-chatbot/models/cornell_movie_dialog
Defina o diretório de trabalho do console para o diretório seq2seq-chatbot
Correr:
run chat.py models c ornell_movie_dialog t rained_model_v2 b est_weights_training.ckpt
O resultado deve ficar assim:
Para treinar um modelo em um console python:
Configure o arquivo hparams.json para os hiperparâmetros de treinamento desejados
Configure o diretório de trabalho do console para o diretório seq2seq-chatbot . Este diretório deve conter os diretórios de modelos e conjuntos de dados diretamente nele.
Para treinar um novo modelo, execute train.py com o caminho do conjunto de dados:
run train.py --datasetdir=datasets d ataset_name
Ou para retomar o treinamento de um modelo existente, execute train.py com o caminho do ponto de verificação do modelo:
run train.py --checkpointfile=models d ataset_name m odel_name c heckpoint.ckpt
Por exemplo, para treinar um novo modelo no conjunto de dados da caixa de diálogo do filme Cornell com hiperparâmetros padrão:
Defina o diretório de trabalho do console para o diretório seq2seq-chatbot
Correr:
run train.py --datasetdir=datasets c ornell_movie_dialog
O resultado deve ficar assim:
Documentos em breve...
O TensorBoard é uma ótima ferramenta para visualizar o que está acontecendo nos bastidores quando um modelo do TensorFlow está sendo treinado.
Para iniciar o TensorBoard a partir de um terminal:
tensorboard --logdir=model_dir
Onde model_dir é o caminho para o diretório onde está o arquivo do ponto de verificação do modelo. Por exemplo, para visualizar o modelo de diálogo de filme Cornell treinado treinado_model_v2 :
tensorboard --logdir=models c ornell_movie_dialog t rained_model_v2
Documentos em breve...
Documentos em breve...
O TensorBoard pode projetar os embeddings de palavras no espaço 3D executando uma técnica de redução de dimensionalidade como PCA ou T-SNE, e pode permitir que você explore como seu modelo agrupou as palavras em seu vocabulário visualizando os vizinhos mais próximos no espaço de incorporação para qualquer palavra . Mais sobre incorporações de palavras no TensorFlow e no projetor TensorBoard podem ser encontradas aqui.
Ao iniciar o TensorBoard para um diretório de modelo e selecionar a guia "Projetor", ele deverá ficar assim:
Instruções em breve...
Os seguintes pacotes python são usados no seq2seq-chatbot: (excluindo pacotes que vêm com o Anaconda)
TensorFlow *Observação: TF 2.x ainda não é compatível, use a versão mais recente do TF 1.x.
pip install --upgrade tensorflow==1. *
Para suporte de GPU: (Veja aqui instruções completas de instalação de GPU, incluindo CUDA e cuDNN)
pip install --upgrade tensorflow-gpu==1. *
jsonpickle
pip install --upgrade jsonpickle
clique em 6.7, flask 0.12.4 e flask-restful (necessário para executar a interface web)
pip install click==6.7
pip install flask==0.12.4
pip install --upgrade flask-restful
Veja a página do roteiro
Esta implementação foi inspirada em:
Aprendizagem sequência a sequência com redes neurais
Um modelo de conversação neural
Tradução automática neural por aprendizagem conjunta para alinhar e traduzir (mecanismo de atenção de Bahdanau)
Abordagens eficazes para tradução automática neural baseada em atenção (mecanismo de atenção Luong)