In this article, we will discuss why, as a developer, you should use Prevision.io AI management platform for developing AI applications. You will learn about Prevision.io’s SDKs, AutoML, Pipelines, our end-to-end machine learning platform and how to call deployed models APIs from an external application and how to deploy popular visualisation applications such as Dash and Shiny.
The new generation of computers, computing devices and data storage have made artificial intelligence accessible to more users than ever. This results in the development of successful intelligible applications that can be used day to day by billions of people. Nevertheless, the development of such applications may require a lot of work for developers from the design to the deployment. Fortunately, there exist several tools available to these developers to help them gain more productivity, quickly develop and deploy applications. Among these tools, Prevision.io specializes in bringing developers an end-to-end solution for building and deploying scalable AI applications. This article presents Prevision.io usage for a developer perspective.
R vs Python, what’s your taste?
An interesting debate in the AI community is which programming language to use when developing an AI application. Obviously, there is no formal answer to this question as it depends first on you (the developer) for which language you have a more aptitude for depending on your experience. While some developers will go for Python, others will choose R and some developers opt for both. Indeed, each of these languages has its own pros and cons (e.g. open source code, availability of the state-of-the-art AI models, packages, and their maintenance). Nevertheless, there exists tools that can be used to make a bridge between R and Python by letting call a R code in Python and conversely.
At Prevision.io, our mission is to democratize AI, for this purpose we developed and made available tools to help our users, particularly developers to be the most comfortable possible with our products. With regards to the programming languages, we built for our users open source Python and R SDK to allow them interact with our APIs respectively from a Python and R environments. With both SDKs, developers can build their own AI applications by training, deploying and monitoring highly sophisticated models. Indeed, we offer the possibility to the user to build applications in a wide range of AI domains, namely, binary and multi-class classification for tabular, image and time series data, object detection, and natural language processing. Along with the SDKs, we provide a well documentation for each of them available respectively here for Python and there for R.
It should be noted that, as AI applications development is not restricted to R or Python, based on our users’ needs, we may also develop additional programming languages.
Manual vs Automated Experiments
A key aspect when developing an AI application is to choose the right models for the right dataset. With the amount of available models this task can quickly become tedious as the following questions may arise: should I consider simple models such as linear regression or complex ones as deep neural networks? How many folds to consider in my training for cross validation, which hyper parameters should I optimize? Should I use several models and combine their predictions aka blending?
As for the preference for the programming languages, here also there is no formal answer to the previous questions depending on if you want to do all the preceding steps manually or automatically. With Prevision.io, you have both choices: you can for instance use the Python or R SDKs for manual experiments or use our AutoML platform to automate your experiments. In addition to the previous tools, Prevision.io offers developers the ability to develop their custom models
Workflow automation with pipelines
Building an AI application often requires a good workflow for orchestrating application components/APIs such as data retrieving from internal or external servers, model training, deployment and monitoring. While there exists a couple of these APIs in the market, only a few might be compatible with your development environment. To overcome this problem, Prevision.io offers a feature called Pipeline that will help you develop compatible components which can be integrated to your application to automate processes. For instance, you can integrate an external model into a pipeline such as in these examples (external models, models as Hugging Face sentiment analysis) These components can be categorized into 6 groups corresponding to a specific step in AI pipeline:
- Import : Any component relative to the import of data.
- Export : Any component relative to the export of data.
- Prevision component : List of available components developed by Prevision.io data scientists from various projects.
- Custom component : Components developed by you or your team that can be imported to Prevision.io.
- Predict : Any components relative to the automatisation predictions.
- Retrain : Any components relative to the automatisation of a model retraining.
Once created, a component can be associated with a template that can be reused for new applications, see Figure 1 for an example.
Figure 1: Example of Pipeline template containing 3 components in Prevision.io
For detailed information on components and templates, we refer the readers to the following documentation.
All in one machine learning platform
When developing an AI application, developers are usually constrained by a gain of productivity. Indeed, depending on the experience of the development team, the development stack can either facilitate the productivity of the team or reduce the latter. Specifically, for an AI application, several services can be independently used to train the models, deploy and monitor them. In other words, efforts should be made for the creation and maintenance of each component of the application. To help developers improve their productivity, Prevision.io offers an end-to-end AI management platform to experiment, automate, deploy and monitor AI applications.
Figure 2: The 4 pillars of Prevision.io: experiment, automate, deploy and monitor.
Several studies in the literature highlighted the complexity of the deployment of AI models and the failure of many AI projects due poor deployment and monitoring. To handle this problem, Prevision.io offers a one-click deployment capability of any trained AI models including external ones in our platform. Moreover, developers have the possibility to deploy several models and use the champion and challenger mechanism (a winning model based on the training performances is challenged with other models of the same experiment, see here for more details).
An interesting feature proposed by Prevision.io for developers once a model is deployed is the generation of an API related to the model that can be used from external applications. With the availability of several programming languages (Python, Java, Node, Swift, …), developers can use these APIs for developing products for any targeted users (Web, Android, Iphone, …).
Figure 3: CheeZam API call code sample in Python.
Deploying Dash and Shiny applications in Prevision.io
The machine learning community has been developing popular visualization tools for years now. Among these popular tools, Dash and Shiny have had a great interest. In Prevision.io, we offer developers the ability to deploy such applications. We refer the readers to these tutorials (Dash, Shiny) for more details on how this deployment can be done.
To sum up, in this article, you learned the various features of Prevision.io that can help you build your next AI application. We covered the R and Python SDKs that you can use based on your taste, experiments, and pipeline automation,our end-to-end AI management platform and APIs requests from a deployed model and finally how to deploy popular visualization applications such as Dash and Shiny. Combined together, all the preceding tools can help you build successful AI applications by gaining a considerable amount of time.