Acabo de completar mi tercer proyecto de aprendizaje automático y creo que puedo darle algunos buenos consejos para comenzar rápidamente. Por supuesto, hay muchas tecnologías para elegir, pero las siguientes son algunas opciones excelentes:
- Desarrollo: Python + Keras con backend Tensorflow
- Implementación: back-end: uso ampliamente Docker para simplificar la implementación del servidor. Para manejar la parte ML, uso Tensorflow Serving and Flask para API. Si se requiere autenticación y almacenamiento de usuario, uso Firebase, que es un backend como servicio. Para la interfaz utilizo Jquery.
Más detalles:
Uso Anaconda (Descargas) como mi paquete de Python y uso Keras (Documentación de Keras) para desarrollar / probar modelos rápidamente. Una vez que los modelos están finalizados, es fácil exportarlos a un formato nativo de Tensorflow (ver export_model.py en amiyapatanaik / tensorflow-serving-docker-image). El modelo exportado se puede usar en un tensorflow que sirve al servidor gRPC (https://hub.docker.com/r/amiyapa…). La imagen de Docker hace que sea muy fácil de hacer.
- ¿Estamos presenciando las primeras etapas del uso de ML en la industria o cree que la aplicación de ML hacia la industria ya está muy extendida?
- ¿Cuál es la diferencia entre el aprendizaje de refuerzo profundo y el aprendizaje de refuerzo?
- Cómo construir un generador de lenguaje natural
- Cómo convertirse en un cerebro cuant (un quant que usa IA)
- ¿Se ha resuelto el problema de reconocimiento de caracteres escritos a mano?
Una vez que el servidor gRPC se está ejecutando, uso Flask para crear una API a su alrededor. En producción, puede ejecutar la API Flask detrás de uWSGI, que está detrás de un servidor Nginx. Esta combinación puede manejar el tráfico del mundo real y funciona a la perfección. Una vez más, puede encontrar una imagen de Docker para facilitar su implementación aquí: https://hub.docker.com/r/amiyapa…
Si tiene alguna experiencia con Docker, puede escribir un archivo docker-compose.yml con todos los servicios en uno. Estos son los archivos de configuración reales utilizados en Klick Amazing Portraits
# klickme.co componer - Amiya Patanaik versión: '3' servicios: tfserver: imagen: "amiyapatanaik / tfserve: optimizado" puertos: - "9000: 9000" volúmenes: - ./modelos:/modelos restapi: construir: . puertos: - "80:80" - "443: 443" depende de: - tfserver
Dockerfile para el restapi:
#descargar el amiyapatanaik / tfrestapi básico: https DE amiyapatanaik / tfrestapi: https # copia el código de la carpeta de la aplicación COPY ./app / app # configuración de certificados SSL para https COPY ./ssl-keys/entrypoint.sh / EJECUTAR chmod + x /entrypoint.sh COPY ./ssl-keys/server.crt / etc / ssl / COPY ./ssl-keys/server.key / etc / ssl / COPY ./ssl-keys/uwsgi.ini / etc / uwsgi / #instalar paquetes necesarios si es necesario EJECUTAR pip install -r /app/requirements.txt EJECUTAR python /app/setup.py build_ext --inplace #set entornos ENV STATIC_PATH = / app / static ENV NGINX_MAX_UPLOAD = 10m
Después de esto, todo lo que tengo que hacer para que la aplicación se ejecute es cargar todos los archivos en el servidor y escribir: docker-compose up -d y funciona como magia.
Por cierto: siempre puedes usar créditos gratuitos de Amazon o Google para ejecutar tus aplicaciones. Solo tienes que comprar el nombre de dominio. De hecho, Klick Amazing Portraits se ejecuta en servidores de Google gratuitos.