En este repositorio se realiza un entrenamiento con TensorFlow
de un modelo de procesamiento de lenguaje natural (NLP
) para obtener un modelo que permite analizar los sentimientos de tweets
en lenguaje inglés.
Los parámetros de la red neuronal, las métricas e incluso el modelo se logean
automáticamente con MLflow
.
A partir de aquí se crea una imagen con Docker
en la que se sirve el modelo entrenado mediante un endpoint API REST
de TensorFlow Serving
. Aparte de esto, se crea otra imagen de Docker
en la que se sirve una aplicación web que realiza solicitudes POST
al endpoint API REST
de TensorFlow Serving
para obtener las predicciones y mostrarlas de forma más estéticas mediante dicha aplicación web.
-
app: Directorio donde se recopilan los archivos para crear las imágenes de
Docker
y la aplicación web.- backend: Aquí se encuentra el archivo
Dockerfile
para crear la imagen en la que se sirve el modelo entrenado en laAPI REST
deTensorFlow Serving
. - frontend: En esta carpeta se encuentra el código de la aplicación web y el
Dockerfile
para crear la imagen en la que se sirve dicha aplicación.
- backend: Aquí se encuentra el archivo
-
data: Archivo utilizado para realizar el entrenamiento del modelo (ignorado con
.gitignore
). -
deployment: Carpeta donde se almacenan los archivos
YAML
para la creación del despliegue y servicio deKubernetes
, así como un tutorial sobre como realizar la puesta en producción de la aplicación web y elendpoint
deTensorFlow Serving
en elcluster
local deMinikube
. -
img: Carpeta donde se recopilan un par de imágenes de demostración del proyecto.
-
mlflow: Directorio donde se recopilan las carpetas por usar
MLflow
. Por tanto, se recopilan los parámetros y métricas de la ejecución realizada en el experimento del proyecto, además de losartifacts
generados. Es decir, el modelo, sus metadatos, etc. -
requirements.txt: Archivo de texto con todas las librerías necesarias de
Python
a instalar para que se pueda ejecutar todo el proyecto. -
train.ipynb:
Notebook
en el que se realiza el entrenamiento del modelo conTensorFlow
, además de explicaciones básicas de como debe ser el procesamiento de datos en un problema básico de procesamiento de lenguaje natural (NLP
).