Google Sprints Ahead in AI Building Blocks, Leaving Rivals Wary
bloomberg.com
bloomberg.com
Some of the other frameworks will continue to be used (for example, FaceBook's AI team is unlikely to back away from its commitment to Torch), but the TensorFlow ecosystem and its network effects appear to have reached 'escape velocity' in a winner-take-all space.
New higher-level services and products will be built atop the framework most widely used by the most software developers, almost by definition.
Expect a shakeout: https://medium.com/@mjhirn/tensorflow-wins-89b78b29aafb#.bzl...
--
EDITS: Added the "new higher-level services and products" sentence.
Deeplearning4j [1] has won deep learning on the JVM. Nothing else comes close. (Disclosure: I'm one of its creators.) DL4J has the most sophisticated Spark integration, plugs into Kafka and works as a Hadoop job. It does all that while running on distributed GPUs, multiple CPUs and heterogenous hardware. It wraps cuDNN, which is faster than Tensorflow.
Finally, part of our stack, JavaCPP [2], is used by the TF communities as well as other big company projects to bridge the gap between Java and C++.
Dev mindshare in the form of Github stars doesn't equal revenue.
Finally, there are a number of strategic problems companies face when adopting a Google project. First, they are leery of depending on Google when they also compete with it. This is particularly true because Google doesn't open source a lot of its best work, like code from DeepMind. So Tensorflow adopters are getting the leftovers in a way, and they're kneecapped in the AI race.
Secondly, Tensorflow is not platform neutral. It's optimized for TPUs, which are not publicly available. It's a play to attract people to the Google Cloud.
[0] http://keras.io/ [1] http://deeplearning4j.org/ [2] https://github.com/bytedeco/javacpp
However, those corporate shops are typically many years behind the state-of-the-art in AI, and in many, if not most, cases, they will likely end up paying for higher-level "AI services" provided by a third party than building new kinds of applications in-house with lower-level frameworks.
My view is that those new AI services will be created by startups we haven't heard about yet, led by developers outside of Corporate America who by and large are betting on TensorFlow and non-Oracle, non-Microsoft stacks.
Google's competitors will of course want to use their own in-house frameworks regardless.
--
PS. By the way, I think DL4J is awesome. Great job!
That's more than likely the valley echo chamber. These kinds of startups are going to continue to appeal to people like themselves getting acquired by google eventually. The same scientists who create these services have zero clue about the sales process in enterprise and can't often figure out how to sell in to these corporations and actually create some kind of long term value. Our differentiation in this space is being able to do EXACTLY that while also adding features that are actually useful. By the time they have, they're usually bored and realize they just want to work on cool problems and therefore: sell.
Most research out there generated quickly is actually useless for products.
I'd rather implement every 5th iteration of a technique that has significantly better results than jump on the feature treadmill.
I would not bet against the valley's "how to build a giant business" expertise.
What I'm trying to point out here is that the people who run these startups are typically Phds with little interest in building an actual business.
Many of these deep learning startups are built to be quick flips while having fun for a few years building something cool. That in and of itself is fine.
They build something differentiated and valuable, get paid a handsome chunk of money. No one really loses when that happens, it's just different when you want to go to market.
That being said, you have every right to bet against us. That's how many large companies start is with detractors.
90% of startups also fail. We have a different opinion on how it's done. Only time will tell whether we succeed or not.
That being said: Where's your deep learning startup? ;) At least we're trying something different.
My point was -- and still is -- that the competition to become the dominant framework has already been won, by TensorFlow, because it has captured the hearts and minds of the most developers. Most new AI services are being built atop TensorFlow -- not DL4J, nor Torch, nor Theano, nor Caffe, nor CNTK, nor anything else.
Let me finish by sharing a video of Steve Ballmer, former CEO of Microsoft, in which he emphasizes the importance of attracting developers to a stadium packed with Microsoft employees: https://www.youtube.com/watch?v=Vhh_GeBPOhs
I'm still convinced most people just star tensorflow "cuz google". I'd like to see a statistical analysis of people actually using tensorflow for their job. I get the developers bit...but not much of it equates to revenue.
Developers don't pay. Period. That devs bit might work for lock in to cloud services (google compute engine). That play doesn't work for on prem though.
What's happening here is you're equating startups/cloud to "the whole world" while ignoring where most of the money is being made and how many people are actually using machine learning. I'd love to see this play out more before declaring a "winner". Still seems too early yet.
Anyways - as I said we'll see who wins and who doesn't. I won't say whether my guess is absolutely right or wrong. I just don't believe in silicon valley's ability to build "hard stuff". I think we're still very much in the hype phase yet. It might return some day though.
On #2, I agree: most people will use higher-level AI services developed and provided by third parties.
How about we revisit this in, say, three years, and see who turns out to be right?
TF uses CuDNN, so this is a nonsensical statement.
So yeah, I'm also not sure what you meant by your statement.
In summary, your statement is like saying: "Numpy is faster than Python".
It feels strange having to explain these things to a creator of a NN framework.
Some frameworks write their own CUDA kernels for operations beyond what cuDNN offers, and also wrap cuDNN. So certain operations may run faster or slower depending on how you choose to execute them with the framework.
People make it seem like whichever framework wins now will own AI for the future, but transfer that logic to web development and you would expect perl and php to still be on top of the world instead of whatever the js framework of the day is.
GPU acceleration seems to be a pretty big barrier to entry for upstarts. But I think that has more to do with the crappy state of tooling than intrinsic difficulty of GPGPU. Cuda showed that GPGPU could be much easier and I think there is still plenty of room for improvement. Compare the difficulty of setting up Apache a decade ago vs Nodejs today for how much simpler servers have become.
Anyway Tensorflow is really hyped right now, but there is no way to know if that will last.
I claim only that TensorFlow has won the "framework for numerical computation using software-specified data-flow graphs" space, at the expense of many other competing frameworks (Caffe, Theano, Torch, CNTK, etc.). In other words, if you want to build a large-scale machine/deep learning model (e.g., with tens or hundreds of millions of parameters) and you need to train this model with, say, tens of billions of samples in a cluster of multi-GPU machines (or TPUs), TensorFlow has become the go-to software infrastructure for doing that.
Is it new/shiny? Nah. But while other languages/frameworks may get the lion's share of attention for reasons that circulate performance, concurrency, and/or scale and large companies do adopt them from time to time... PHP enjoys ridiculous levels of usage.
And this is from someone that dislikes and never uses PHP.
Get away from the hype. Go to an AI conference like IJCAI or AAAI. See what is used there.
I had the same thought too. If memory serves me right google was not magnitudes of scale better than other engines just better marketed, more accessible, and easier to use(interface).
Even now, despite Googles distinct capabilities, I almost exclusively use DuckDuckGo as I find that it is good enough for me, and doesn't leave me spooked after a search with its insidious snooping. So much for 'Don't be Evil'
What's the reasoning behind the claim for AI frameworks to be a "winner-talk-all space"?
Note that I'm not saying TensorFlow is going to fail in the future; I'm saying that the measures used in this article are dubious at best.
Does nobody remember Elefant, Alex Smola's machine learning library that had a lot of hype then suddenly died after he left NICTA? The machine learning world is littered with tons of dead projects, and many of these died without a lot of warning. I'm concerned that this effect is only going to get worse now that machine learning libraries are often company-controlled instead of academic.
Obviously I agree with you that this measure isn't definitive, but we felt it was relatively easy to understand. And the rest of the reporting we did for this story bore out the idea that TF has gathered an unusual level of both enthusiasm and commitment in a short amount of time.
Thanks for reading!
However, like all SDKs (is that still a thing?), it can be easily be supplanted when something that is easier to use, fixes the flaws of, and is better documented comes out. This is doubly true given that the AI space is still (imo) in its infancy, wrt to developer tooling.
Trouble is, if other companies are using the same tooling as Google, it's equally easy for the outside company to poach a Google employee.
Opening up the code to the world is more likely to be a net-good act, propelling everyone forward.
https://github.com/tensorflow/tensorflow/blob/master/LICENSE
CNNs are hard to understand. Understanding why gradient descent improves the model is very hard to understand. And understanding the right architecture to solve a problem takes a significant chunk of your research career unless you're already an expert.
But languages and frameworks are simple. If you know Caffe, Torch will be easy to understand. If you know Torch, Tensorflow will be easy to understand. If you know Tensorflow, the others will be easy to understand. It's quite possible to get up to speed with a different framework in a few weeks.
The effect doesn't become symmetric until we reach an equilibrium where TensorFlow is ubiquitous.
> Opening up the code to the world is more likely to be a net-good act, propelling everyone forward.
These things aren't contradictory. It can be a net good for the world, and also a net good for Google, and also a net bad for Facebook.
Most machine learning engineers and researchers get excited by two things: underlying hardware and underlying tooling.
Google have enough GPUs to throw 50 K80s for a few weeks into the hands of a single researcher for a single paper[1]. That's impressive. It gets even more impressive considering Google are making custom made ASICs that are more efficient - both power and computation - than GPUs too. None of that hardware is open source and even if it was, I don't see anyone getting them into general production in the near future. Nervana[2] are the closest to custom hardware I know about yet still have many steps until production.
TensorFlow is also just the beginnings of the tooling Google has internally. The original TensorFlow whitepaper talks about their internal distributed training stack. A tiny recreation of this has reached the wild but it misses many of the interesting optimizations. (1) Automated efficient allocation of tensor operations to components (does this op go on GPU? CPU? Across the network to another GPU machine?). (2) Minor optimizations, such as truncating 32 bit floats to 16, then re-expanding - they noted it in the paper but I've not seen external verification. (3) Google DeepMind moved to TensorFlow but given they do a lot of reinforcement learning, they likely have a modified TF internally that's better tailored for RL. (4) etc etc etc
Given the majority of the contributors to TensorFlow are also from Google, that gives them the strongest say in the future of the framework. This is especially important given that Google would likely be trying to ensure their internal modifications and variations of TensorFlow remain in line with the open version. For that reason, I don't expect to see TensorFlow handed off to a third party caretaker any time soon.
Releasing TensorFlow is a net win for Google, both in "making the world a better place" and "making Google a better place (for attracting talent)".
I suspect they may have similar feelings about AI. Many 'clever' systems which aim to predict what the user wants can be frustrating in practice. People prefer tool-like UIs where they can learn the mapping between their actions and the software's behaviour.
Personally, I think there should be more focus on AI augmenting human capabilities, and maybe Apple is working on something like that.
Incredible design, hardware engineering, and product fit, yes. But the software typically seemed a more polished version of mainstream ideas.
Seems like it's the opposite? Forking a project is technically easy. Writing something equivalent from scratch is much harder.
(Of course there are marketing considerations - it's "just a fork" so it might not get much attention.)
They've only just now released a Natural Language Understanding service in beta, and it is more limited compared to other NLU services from Microsoft/others.
While tooling is important, the market for low level tools is much smaller than for the services built using those tools. The vast majority of businesses who could benefit from Machine learning don't have the expertise to run RNNs using Tensor Flow, but do have engineers who can integrate API's that leverage trained classifiers.
Umm, there's five separate managed services within the Google ML family: Vision (GA), Translate (GA), Natural Language (Beta), Speech (Beta), and Cloud ML (Alpha)
https://cloud.google.com/vision/ https://cloud.google.com/translate/ https://cloud.google.com/natural-language/ https://cloud.google.com/speech/ https://cloud.google.com/ml/
Google makes heavy use of these tools internally to build a wide range of products (and enhance existing ones)
In my mind, products that make use of ML are using ML services as the back end. An example would be the recent wave of bot companies: many are not rolling their own NLU system but rather leveraging services like wit.ai or Microsoft's LUIS.
In contrast, the AWS Machine Learning service provides a 100% vendor-locked interface to logistic regression and that's it. You can't even import or export models. They just hired Alex Smola to do something about that. We'll see what comes of that.