Este es mi intento de recrear Meena, un chatbot de última generación desarrollado por Google Research y descrito en el artículo Towards a Human-like Open-Domain Chatbot.
Para esta implementación utilicé la biblioteca de aprendizaje profundo tensor2tensor, utilizando un modelo de transformador evolucionado como se describe en el artículo.
El conjunto de formación utilizado es el corpus OpenSubtitles en idioma italiano. Muchos otros idiomas están disponibles aquí.
De manera similar al trabajo realizado en el artículo, este modelo consta de 1 bloque codificador y 12 bloques decodificadores para un total de 108M parámetros. El optimizador utilizado es Adafactor con el mismo programa de tasa de entrenamiento que se describe en el artículo.
Aquí están los resultados después de entrenar el modelo en 40 millones de oraciones del conjunto de datos OpenSubtitles en idioma italiano. La tasa de aprendizaje comienza en 0,01 y permanece constante durante 10.000 pasos, luego decae con la raíz cuadrada inversa del número de pasos.
Aquí está el gráfico de la pérdida de evaluación durante el entrenamiento.
La puntuación de perplejidad final es 10,4 , que está muy cerca de la puntuación de perplejidad alcanzada por el meena chatbot de Google 10,2.
El artículo muestra una correlación entre la puntuación de perplejidad y el promedio de sensibilidad y especificidad, que se correlaciona con la "semejanza humana" del chatbot. Nuestro puntaje de perplejidad muestra que nuestro bot es mejor que otros chatbots como Cleverbot y DialoGPT:
Sin embargo, el conjunto de datos utilizado no representa conversaciones normales entre humanos. Sin embargo, Opensubtitles proporciona conjuntos de datos muy grandes en muchos idiomas.
Simplemente ejecute el cuaderno meena_chatbot_inference.ipynb
.
De lo contrario, descargue el siguiente modelo y extráigalo. Establezca MODEL_DIR y CHECKPOINT_NAME adecuados en predict.py
y ejecute main.py
Para la capacitación, simplemente ejecute el cuaderno ipython en Google Colab, el modelo se guardará en Google Drive. Al finalizar la ejecución podrás interactuar con el chatbot.
El modelo se puede exportar copiando los siguientes archivos en una carpeta:
y ejecute main.py
después de configurar el directorio del modelo adecuado.
server.py
proporciona una API HTTP simple para atender el chatbot.