There is a myriad of libraries, platforms and cloud-based services for Artificial Intelligence (AI). But directly programming your AI application on top of them makes your software too dependant of the specific infrastructure you chose. This is dangerous in such a fast-paced environment where new (and better) AI solutions pop up every day.
How can you develop AI-enhanced software (also known as smart apps) or just pure AI components (neural networks, image recognition software, chatbots…) for a data science problem without learning each of the specific AI technologies and languages and preserving my ability to easily migrate my software over a new AI infrastructure? The solution won’t surprise my readers: modeling AI comes to the rescue.
By raising the abstraction level at what you define your AI needs you can first focus on modeling the AI behaviour and later on refining it to integrate platform-specific details. Basically, model-driven engineering applied to AI, i.e. a kind of MDA for AI. But don’t be mistaken, I’m not saying this just because I’m a “modeling maniac”. As you’ll see just now, this is the trend all AI providers are following now.
Let’s take a closer look at the best modeling AI tools I know (as we did for the opposite post: IA for modeling, this post is more of a way to structure my set of links and notes on this topic than a systematic and complete list of tools for AI and data science modeling). We try to cover several kinds of tools: from complete data science modeling to code-generation for AI.
AI visual modeling tools from the Big Tech players
The big players (Google, Amazon, Microsoft) are offering visual AI modeling environments as a way to bring more users to their Machine Learning solutions. They “sell” them as a kind of visual programming for machine learning or “machine learning without the code” to try to attract people interested in ML but scared of writing the code to create and train ML models. Of course, those models can then only be executed on the proprietary infrastructure of the respective vendor.
Azure Machine Learning Studio
The ML modeling environment I like the most is the Azure Machine Learning Studio from Microsoft. As Microsoft says: “it is s a powerfully simple browser-based, visual drag-and-drop authoring environment where no coding is necessary”. With it you can easily define the input data, process it (if necessary) and use it to train several types of ML models and evaluate the quality of the results.
SPSS Modeler from IBM
The IBM alternative to the Azure ML Studio is the SPSS Modeler, part of the Watson Studio. Similar to the Microsoft competitor above, you can define your input data pipeline, the model you want to generate (classifier, predictive,…) and evaluate and visualize the quality of the results. It comes with complete algorithms and predefined models that are ready for immediate use to bootstrap your own data science application.
The closest solution from Amazon would be Amazon SageMaker but I’ve been unable to find a visual modeling AI editor in it.
Data Science modeling environments
In Data Science, the data collection and processing aspect is as important as the learning / predictive process to perform on that data. The complexity of the data science resides many times in deciding what data to collect and what features of the data are the important ones for the prediction problem we want to address. Some data science tools provide their own runtime environment but many come with built-in integrations with deep learning frameworks and libraries like Keras or Tensorflow.
RapidMiner comes with a visual workflow designer to accelerate the prototyping and validation of predictive models, with predefined connections (including many for data acquisition, RapidMiner includes over 60 file types and formats for structured and unstructured data), built-in templates and repeatable workflows.
Orange is an open source machine learning and data visualization toolkit. Data analysis is done by linking widgets in workflows. Each widget may embed some data retrieval, preprocessing, visualization, modeling or evaluation tasks. A considerable number of predefined widgets are available but you can also build your own.
My favorite option. Knime is a generic data analytics platform that can be used for a multitude of tasks. Knime comes with over 2000 different types of nodes to cover all your needs. The Knime for data scientists and Knime for deep learning extensions are the most interesting ones for the topic of this post. For instance, the latter allows users to read, create, edit, train, and execute deep neural networks. Since all nodes can be combined, you can easily use the deep learning nodes as part of any other kind of data analytic project.
On top of this, Knime is open source and free (you can create and buy commercial add-ons).
Modeling neural networks
If your main interest is the modeling of neural network itself, DIANNE is a good option. In Dianne, neural networks are built as a directed graph. DIANNE comes with a web-based UI builder to drag-and-drop neural network modules and link them together.
To learn how neural networks work, this Tensorflow playground is ideal to play with neural networks and learn its basic concepts
Visualizing the learned models
Some tools focus on the visualization of the results, as a way to help you understand the quality of the deep learning model you created. As an example, TensorBoard is a suite of web applications for inspecting TensorFlow runs. Nvidia builds on top of TensorBoard to visualize deep neural networks in its Nvidia Digits tool.
Low-code tools to build smart apps
At a different level, but low-code tools are also quickly understanding that their users want to build apps that have some level of intelligence. Chatbots or facial recognition are two classical examples. Low-code tools are adding new “units/modules” in their DSLs to enable developers to specify what parts of their apps should be smart.
For now, this smart part basically means connecting the app with a packaged external service (for text to speech, for object detection, for sentiment analysis,…) where the actual reasoning takes place. Configuration is bare to none. Still, for many applications, this is good enough. The intelligent part is not the core of the app (if it is, then you better move to one of the tools above) but an additional functionality.
Lobe (now part of Microsoft) is a new player in the world of ” low-code for AI ” tools. Lobe wants you to easily provide training data to build a deep learning model to be then shipped with your app. They are still in beta so it’s difficult to see how far it could go but from its visual deep learning examples, it’s easy to imagine a number of very interesting mobile smart apps that could be created with Lobe.