Реализация чат-бота последовательности2sequence с TensorFlow.
Ознакомьтесь с инструкциями по началу работы ниже или просмотрите журналы чата.
(На данный момент пакетные файлы доступны только для Windows. Для пользователей Mac и Linux см. инструкции ниже для консоли Python.)
Для консольного чата:
chat_console_best_weights_training.bat
илиchat_console_best_weights_validation.bat chat_console_best_weights_validation.bat
Для веб-чата:
Из каталога модели chat_web_best_weights_training.bat
chat_web_best_weights_validation.bat
Откройте браузер по URL-адресу, указанному в консоли сервера, а затем /chat_ui.html
. Обычно это: http://localhost:8080/chat_ui.html.
Установите рабочий каталог консоли в каталог seq2seq-chatbot . В этом каталоге должны находиться каталоги моделей и наборов данных непосредственно внутри него.
Запуститеchat.py, указав путь к контрольной точке модели:
run chat.py models d ataset_name m odel_name c heckpoint.ckpt
Например, чтобы пообщаться с обученной диалоговой моделью Корнеллского фильма train_model_v2 :
Загрузите и разархивируйте train_model_v2 в папку seq2seq-chatbot/models/cornell_movie_dialog.
Установите рабочий каталог консоли в каталог seq2seq-chatbot .
Бегать:
run chat.py models c ornell_movie_dialog t rained_model_v2 b est_weights_training.ckpt
Результат должен выглядеть так:
Чтобы обучить модель из консоли Python:
Настройте файл hparams.json на нужные гиперпараметры обучения.
Установите рабочий каталог консоли в каталог seq2seq-chatbot . В этом каталоге должны находиться каталоги моделей и наборов данных непосредственно внутри него.
Чтобы обучить новую модель, запустите train.py, указав путь к набору данных:
run train.py --datasetdir=datasets d ataset_name
Или, чтобы возобновить обучение существующей модели, запустите train.py, указав путь к контрольной точке модели:
run train.py --checkpointfile=models d ataset_name m odel_name c heckpoint.ckpt
Например, чтобы обучить новую модель на наборе данных диалога Корнеллского фильма с гиперпараметрами по умолчанию:
Установите рабочий каталог консоли в каталог seq2seq-chatbot .
Бегать:
run train.py --datasetdir=datasets c ornell_movie_dialog
Результат должен выглядеть так:
Документы скоро появятся...
TensorBoard — отличный инструмент для визуализации того, что происходит «под капотом» во время обучения модели TensorFlow.
Чтобы запустить TensorBoard из терминала:
tensorboard --logdir=model_dir
Где model_dir — это путь к каталогу, в котором находится файл контрольной точки модели. Например, чтобы просмотреть обученную модель диалога Корнеллского фильма train_model_v2 :
tensorboard --logdir=models c ornell_movie_dialog t rained_model_v2
Документы скоро появятся...
Документы скоро появятся...
TensorBoard может проецировать встраивания слов в трехмерное пространство, применяя технику уменьшения размерности, такую как PCA или T-SNE, и может позволить вам исследовать, как ваша модель сгруппировала слова в вашем словаре, просматривая ближайших соседей в пространстве встраивания для любого слова. . Дополнительную информацию о встраивании слов в TensorFlow и проекторе TensorBoard можно найти здесь.
При запуске TensorBoard для каталога модели и выборе вкладки «Проектор» это должно выглядеть так:
Инструкции скоро появятся...
В seq2seq-chatbot используются следующие пакеты Python: (за исключением пакетов, поставляемых с Anaconda)
TensorFlow *Примечание. TF 2.x еще не поддерживается, используйте последнюю версию TF 1.x.
pip install --upgrade tensorflow==1. *
Для поддержки графического процессора: (полные инструкции по установке графического процессора, включая CUDA и cuDNN, см. здесь)
pip install --upgrade tensorflow-gpu==1. *
jsonpickle
pip install --upgrade jsonpickle
нажмите 6.7, flask 0.12.4 и flask-restful (требуется для запуска веб-интерфейса)
pip install click==6.7
pip install flask==0.12.4
pip install --upgrade flask-restful
См. страницу «Дорожная карта»
Эта реализация была вдохновлена:
Последовательное обучение с помощью нейронных сетей
Нейронная диалоговая модель
Нейронный машинный перевод посредством совместного обучения выравниванию и переводу (механизм внимания Багданау)
Эффективные подходы к нейронному машинному переводу, основанному на внимании (механизм внимания Луонга)