CometML wants to do for machine learning what GitHub did for code
techcrunch.com
techcrunch.com
1. code versioning 2. data versioning 3. model versioning
Code versioning is primarily dominated by GitHub and is a fairly saturated space (Bitbucket, GitLab). Data versioning is either not happening, or being done through regular data pulls, database snapshots, etc. It is not well standardized or adopted. CometML is tackling model versioning.
It would be really nice to have a single solution for all of these but that is unlikely. Hopefully new standards evolve from this.
I'm inclined to think something like Django data migrations or EntityFramework Code First Migrations tackles what I immediately thought of as "model versioning" and to some degree "data versioning" (though incomplete or probably impossible, for some things).
There have been articles and comments here on HN about the sorry state of ML trackability, with papers being published on models whose training is not reproducible because no one really knows how it was trained. One in particular (I apologize for not having retained the link) described researchers starting with partially trained models they had lying around (with undocumented and unknown prior training applied), manually changing hyper parameters mid training while watching the learning progress, swapping different training sets in and out, and etc.
From what I see, the problems in ML reproducibility aren’t in the code, they are in the external human processes that are used to drive and train the models (essentially bad DevOps practices more than bad dev practices). Do you help with these kind of real-world trackability and reproducabilty scenarios?
In such complex cases there's still a little discipline required on the user behalf but overall it's just including a few calls to our Experiment object.
If you're a company with 15 people working on a single model you're going to be paying more than a team with five people who have 20 different models they are working on. The actual load and cost for the service is completely detached from the price.
I was strongly considering looking at this for a project, but not at that cost.
I've yet to see similar great initiatives also tackling the deployment-part. E.g. something similar you can stick on top of your model's API (or scheduled batch predictive outputs), as well as incoming instances, to monitor usage patterns, population shifts through time, probability distributions, newly popping up missing values or categorical levels, logs, etc, in order to provide warning lights to indicate that a retraining might be in order, for instance.
Google's "What's your ML test score" paper provides some great insights, but I hope someone will tackle this with a turnkey solution as well.
As for monitoring production models that's something we're also working on. It was important to get the training part out first so we can measure those distributions changing.
Feedback is welcome. Ask me anything.
A lot of your competitors have, like http://pipeline.ai/, https://github.com/pachyderm/pachyderm and recently https://github.com/polyaxon/polyaxon.
I would like to outline a couple of differences between CometML and Polyaxon, as mentioned before, we are also trying to solve issues related to technical debt in ML, but not only, Polyaxon tries also to simplify training and scheduling parallel and distributed learning. there are also a couple of differences, I see CometML as dashboard, Polyaxon does not have an extensive dashboard as CometML, but it leverages Tensorboard for most of the visualisations. We use the CLI or the API for programatic access to the platform. Most importantly, Polyaxon aims to be an open source and to be installed on premise or in the cloud, it solves the issue related to code tracking based on an internal git and a docker registry, and as someone else mentioned that resources for running an experiment could be an issue for future reproducibility, Polyaxon restarts the experiments with the same resources and dockerfiles, it also tracks hyper params as part of the configuration.
For hyper params tuning and suggestion, Polyaxon can also do hyper params search based on a couple of algorithms, and for the next release, it will include also a service similar to vizier for suggesting more experiments/group of experiments based on a given search space.
Disclaimer: I am the author of Polyaxon
It turned a decentralized platform (git) into basically the only place individuals store code.
edit (forgot the link): https://github.com/IDSIA/sacred
For those of you who want to tinker, there's a much rougher, open source library based on Vuejs, postgres, and Flask with some momentum on GitHub right now, LabNotebook https://github.com/henripal/labnotebook
(Disclaimer: I'm one of the authors)
How does it handle data storage? Could we use CometML to store our continuously growing set of labeled data or is there a smart way to link it to Google Cloud Platform?
https://blog.coast.ai/lets-evolve-a-neural-network-with-a-ge...
IME hyper-parameter optimization doesn't require much in terms of implementation effort (e.g. [1]), but requires compute. I would be surprised if a professional ML/DS user were to seriously consider paying for the implementation of the optimization.
[1] https://people.eecs.berkeley.edu/~kjamieson/hyperband.html
If you're already using Tensorboard just throw in our one liner: comet_ml.experiment(api_key="your-key") and you'll get everything TB gives you + our added value.
If you know of any better alternatives for data streaming, I'm curious. I tried benchmarking a couple libs recently: https://github.com/henripal/ChartingLibBenchmark
With those modifications the performance is much better: http://jsfiddle.net/highcharts/1o5ghqc8/