Continuous learning with deep learning for analytics platforms
Our customer, an analytics platform for marketing, required daily updated models for marketing prognoses. niologic implemented a deep learning model enhanced with continuous integration. This made continuous learning scalable for the algorithm.
Our customer wanted to enhance their analytics platform with prognoses. Quickly it became clear, that a deep learning approach should be implemented. However, in order to reduce personnel costs, the model was supposed to be deployed automatically and monitored semi-automatically.
The initial version of the algorithm was implemented and trained by niologic via Google TensorFlow. A cloud-native Kubernetes infrastructure was used in the process. Later on, it was decided that the generated deep learning models should be exported as Numpy matrices and integrated via HTTP REST-API, due to the expected workload.
In contrast to Tensorflow Serving, this solution allowed simple development using a plaintext protocol, while Tensorflow Serving is based on gRPC (protocol buffer). Therefore, development is more costly, whereas the result is more performant.
Using containers the model could be trained scalable via batching. Furthermore, created models (weighed matrices) were exported after training and embedded into containers for scoring.
These scoring containers were tested in a CI/CD pipeline (according to model, quality, and integration). Successfully qualified containers could then be rolled out immediately (Kubernetes Replication Controller or later deployments).
Afterward, the CI/CD pipeline was supervised during the build process using established build tools and monitoring tools.
Results and customer value
In the end, our customer received a deep learning solution, which embedded continuous learning requirements. Using a cloud-native architecture and a CI/CD pipeline standard tools for software development could be applied.
The Kubernetes solution received great acceptance among our customer’s developers and simultaneously provided impulses for the advanced development of other components.
By using a continuous integration approach to deep learning, our customer was able to save the costs of a part-time employee for integration. In addition, the development team was able to entirely focus on developing the algorithm. The monitoring of the algorithm ensured the same attributes for machine learning as it did for platform development earlier.