Being data-oriented is a trend for many companies to follow. Data flows everywhere and using it can bring great business advantages. It can be used for a variety of purposes. Almost every business process can be optimized, but to do so, you need to base the observation and measure the results with some kind of metrics. To produce those, you need to store and process the data to find meaningful patterns. Finding patterns and predicting results based on data gathered – that is exactly what machine learning was designed for.
Many companies have developed a variety of machine learning models to find patterns and predict outcomes in the data they are collecting. After several years, they are still stuck with the legacy models written in the past, which require maintenance. Technology moves forward – a few years ago one of the most common ML libraries was Theano, while currently, Keras and especially Tensorflow are the chosen ones. Despite advancing with the technology stack with their main tools usually, ML aspects are left as they were, especially because it would require tremendous effort to rewrite and re-teach all the models.
Maintaining two technology stacks and architectures – one for the main tools and the second for ML aspects multiplies the effort needed, adds additional costs, and leads to more issues as the setup is overcomplicated. Another related issue is the need to have the development teams spread across multiple technologies, without the possibility to move forward and use more modern ones. Codete’s task was to assist Porsche in finding an effective solution to deal with the above-mentioned issues.
Codete has come up with an idea of creating converters, which would allow Porsche to reuse older, already proven models, and adapt those for new technologies. The idea revolves around writing a fully functional converter, which will create a completely new model, in a different language or with newer machine learning libraries. For the proof of concept phase, we have selected Keras and Tensorflow libraries as the most popular nowadays.
The DLConverter software that we proposed targets the conversion of machine learning models with special emphasis on the deep learning subset. It strives to be portable and secure by utilizing containerization principles via Docker and it’s easy in day-to-day usage, yet pleasant for the eye of users.
We have developed a set of Python libraries that can take Tensorflow models, process them and produce a model in Keras. This is exactly the same model, all of the results are the same, but we have managed to change the library behind it without any need for further development or learning. That was exactly the result we wanted to achieve – with the use of our converter, we were able to translate a model from one framework to the other without any additional work.
With converters like that, you can take all of the obsolete, legacy models your company uses and replace them with more modern ones, fitting the current tech stack better. We plan to do the same with other ML libraries and frameworks. Our next targets would be MXNet with its R applications and integrating the general solutions for models meeting ONNX standards, which would cover multiple frameworks like PyTorch or Caffe.
The DLConverter is suited for distributed teamwork, e.g. each team can work on the specific technology-to-technology conversion. It’s possible thanks to a custom and highly automated work environment, developed specifically for this project. This workflow enables faster feature development and improves software reliability.