But the funny thing is that lock-in is very low in this space, at least for the actual ML part. 90-99% of the work in ML is in acquiring and cleaning the data, feature engineering and so on. Once you have your training data in good shape, the ML engine is basically pluggable - the only barrier to switching from Azure, Google, AWS etc is the cost of moving the data, if you store it "in the cloud" in the first place. The winner won't be the slickest API - it will be whoever makes it easiest to migrate your data in, whether that's a traditional DW, sensor data feeds or whatever. If you keep the data on-prem you could switch with relatively minor effort.
I'm not sure how much work you do in this area, but the only ML models that are pluggable and easily moved are ones that are relatively outdated, widespread, and thus provide little benefit over your competitors.
ML moves fast, and to keep up, you need to be using a flexible yet powerful framework or you will run into major slowdowns in implementation time. Tensorflow is that framework, and, by the way, it also happens to have the best support for actually deploying your models across datacenters.
Migrating your data into some cloud provider is irrelevant and consumes maybe 3% of the total effort involved. Data is maybe 10%, and the rest is developer/research time.
I disagree with this. In my experience, improving your dataset quality (either via gathering more examples, getting more reliable labels, or doing better normalization) has yielded bigger gains than trying to use the latest and greatest model architecture for the problem. Linear and tree models are still widely used in applied problems.
The quality of the ML model - provided is of the right family in the first place of course - might move you a few percent. The quality of the data you feed it - by an order of magnitude or more. That's why real data scientists spend the vast majority of their time on prep work.