En el ámbito de la Ciencia de Datos, contar con un modelo productivo es un logro asombroso. ¿Te gustaría vender tu excelente modelo a una empresa financiera o a una Startup potencial a través del método de suscripción de API? AWS Lambda y API Gateway serán la mejor opción para ti. Desplegar tu modelo en producción y escalarlo para miles de usuarios se convierte en algo casi automático si funciona en una arquitectura sin servidor. A diferencia de desplegar en un EC2, no te cuesta nada si no hay uso.

Frameworks populares

Existen tres frameworks populares que utilizan Python: SciKit-Learn, TensorFlow y PyTorch. En la actualidad, TensorFlow se utiliza ampliamente para Aprendizaje Profundo junto con PyTorch, mientras que SciKit-Learn se utiliza principalmente para Aprendizaje Automático.

TensorFlow Lite

En marzo de 2019, Google lanzó una versión de TensorFlow Lite (TFLite), destinada a ser utilizada en teléfonos inteligentes y aplicaciones integradas. Esto representa una excelente noticia para los científicos de datos, ya que es importante reducir el tamaño de un modelo de Aprendizaje Automático o de Redes Neuronales que se ejecuta en dispositivos como una Raspberry Pi. Al distribuirlo en dispositivos cliente, proteger tu propiedad intelectual de Jailbreaking no es tarea fácil. Necesitas mantener tu modelo en el servidor y exponer una API para su uso.

Desafíos con AWS Lambda

Entonces, ¿por qué no se puede utilizar TFLite con AWS Lambda? A pesar de tener un tamaño reducido, los problemas radican en las compilaciones nativas para diferentes procesadores, plataformas de sistemas operativos y kernels personalizados. AWS Lambda se ejecuta en su propia versión personalizada de Linux, por lo que las compilaciones preestablecidas de TFLite de la comunidad no funcionan de forma directa. Para hacerlo funcionar, es necesario “cocinar” TensorFlow Lite desde el código fuente en la plataforma de Amazon Linux para obtener un binario compatible con el tiempo de ejecución de AWS Lambda.

Uso de Docker

Con Docker y la comunidad actual, la tarea de construir una biblioteca nativa, multiplataforma desde el código fuente se ha simplificado enormemente. A través de un Dockerfile, puedes compilar la biblioteca TensorFlow Lite dentro de la imagen de Amazon Linux. Este proceso puede tardar unos minutos, dependiendo de la potencia de computación de tu máquina.

Implementación en AWS Lambda

Una vez que tengas la biblioteca precompilada de TFLite y numpy listas, puedes configurar tu proyecto y desplegarlo en AWS Lambda utilizando herramientas como Simplify CLI. Esta herramienta te permite crear un proyecto sin servidor, gestionar su implementación y capas de forma eficaz. Con esto listo, puedes publicar tu código Python en el servicio de AWS Lambda y ponerlo a prueba.

Mercado y API vendible

Finalmente, al organizar tu Lambda con API Gateway y AWS Marketplace, estarás listo para vender tu API al mundo. Es un paso importante para mostrar tu trabajo y encontrar posibles clientes interesados en tu modelo de TensorFlow.

¡No dudes en dejar tu comentario si necesitas una versión de “tflite_runtime” para NodeJS en AWS Lambda!

Source: Medium