The race is on to make the access to data-driven function points as easy as traditional function points.
Machine learning and other statistical techniques for predictive analytics have grown up in a silo. That silo is both cultural (hence requiring a cognitive and semantic phase-shift) as well as technical (requiring different languages, platforms and runtime-environments).
Tearing Down the Walls
These barriers are beginning to break down.
Tools like Azure Machine Learning Studio and Amazon Machine Learning are bringing this capability into the mainstream development community. That process will continue and will require an ongoing training effort.
But to date, the effort to bring the results of those efforts into the software stack are high. To be sure, you can call an Azure Web Service or Amazon API, but for many there are business and technical reasons this is a “no-go”.
Microsoft’s recent move to bring R models into SQL Server was a huge step. Stored procedures have a long and glorious tradition within the software stack – particularly in enterprise solutions.
But the move to SQL Server can only be seen as a first step. There are two big problems here:
- This supports R Models only.Models created in Azure Machine Learning Studio cannot be ported into SQL Server. Certainly, you can build, train and evaluate your model in Azure ML Studio till you get a great model and then re-build it in R – but that is just the kind of extra-step that hinders adoption.
- SQL Server is often not the database being used
It’s Not Enough
So why can’t I have my model where I want it?
From a technical viewpoint, there is nothing here that restricts the runtime. (I may be wrong here, and would be happy to be enlightened.) The data is required to train the model but not for its execution.
Stored procedures are great – but that is actually not what models are. They do not require proximity to large data sets or a specialized execution engine.
It’s just a function!
What is the problem here? We know how to create portable software.
Fun Times Ahead
IMHO, this is a short-term engineering issue and we will soon see model availability change rapidly.
Microsoft’s announcement last week at Build 2017 of Azure IoT Edge is, again, a stop-gap solution. An early look shows some crazy-cool functionality but it is a niche solutions that is quite heavy and has significant platform dependencies.
Models need to be portable in the same way that other functions are portable.
In the end, we will just have two ways of building functions:
- We can write high quality functions by deriving algorithms from the heads of experts (or becoming an expert ourselves)
- We can derive models from data (likely with the help of experts) and build functions to interrogate the models
Once we can do that on any platform, within any stack, and in any layer we will be in the place to realize the vision of “intelligent apps” that bring predictive analytics directly to the point of decision.
Models, models everywhere… I think we’re on the brink.