4 ms·
Conversational ML Pipeline (Myra Labs). We have a few interesting challenges. Our system is set up to create models for a variety of customers, and thus needs
by viksit 10y ago
Conversational ML Pipeline (Myra Labs).
We have a few interesting challenges. Our system is set up to create models for a variety of customers, and thus needs to be able to build, update and serve a couple of thousand models at any given time. Since we need GPUs, this has required some custom work rather than being able to piggy back on existing frameworks. We leverage Tensorflow for most things.
- We have a distributed job processor cluster running on GPU nodes. All models are trained on this. We wrote a custom framework in Python for this. It can train any kind of model (keras - tf/theano, sklearn, et al).
- We store our models on S3. Versioning of models becomes important, and we looked around to see how others do it before we rolled our own.
- We have a serving system that is a heavily modified/forked version of Tensorflow Serving, written in C++. Again on GPU machines. Why C++? Because we can leverage binary model formats and reduce memory usage/make things more efficient. The reason we forked TF Serving almost a year ago was that we had a large number of features we needed that TF's rapid versioning cycle/breaking API updates just didn't let us do. This system is able to load and unload models dynamically from the S3 source, as well as distribute them across nodes and balance queries into them. It can load all TF graphs, but also supports running other kinds of models through callouts to other "engines" (eg, if we want to use sklearn or CNTK in the future).
- sandGorgon 10y ago>Versioning of models becomes important, and we looked around to see how others do it before we rolled our own. could you talk about model versioning ? not necessarily your own - but interesting and relevant examples you found elsewhere.
- jdoliner 10y agoNot sure if this was one of the examples the parent looked at in their search, but Pachyderm is a tool that's built specifically for training and versioning ML models (and any other data pipeline). You can express your analysis operations as Docker images so it should support all of the ML tools listed in this thread. Full disclosure: I'm one of the creators of the project.