Live data from Hacker News

Launch HN: Replicate (YC W20) – Version control for machine learning

replicate.ai

21–30 of 57 posts

Re: Launch HN: Replicate (YC W20) – Version control for machine learning

#21
post #4

As someone who tried to use git to do this for large sets of data, I'm very glad this exists. Will be trying this out in the future.

You may also be interested in a simple tool I'm building that works in concert with source control to store, version, and reproduce large data: https://github.com/kevin-hanselman/dud

My project is in its infancy (open-sourced less than a month ago), but I'm pleased with its UX thus far. There's lots to add in terms of documentation, but Dud currently uses Rclone[1] for remote syncing.

[1]: https://rclone.org/

Re: Launch HN: Replicate (YC W20) – Version control for machine learning

#22
post #3

Congratulations with the launch. We've used https://github.com/iterative/dvc for a long time and quite happy. What's the main difference between replicate.ai and dvc?

Congrats on the launch! This looks exciting. My company has been using Comet.ml and they cover a few use cases that are missing here. Specifically things like real time visualizations and sharing experiments which is key when working in a team. Are you planning on adding those?

Re: Launch HN: Replicate (YC W20) – Version control for machine learning

#23
post #6
post #3

Congratulations with the launch. We've used https://github.com/iterative/dvc for a long time and quite happy. What's the main difference between replicate.ai and dvc?

Thanks! DVC is closely tied to Git. We've heard people find that quite heavyweight when you're running experiments. We think we can build a much better experience if we detach ourselves from Git. With Replicate, you just run your training script as usual, and it automatically tracks everything from within Python. You don't have to run any additional commands to track things. DVC is really good for storing data sets t…

Hey! I'm one of the founders at Comet.ml. We believe that Git should continue to be the approach for managing code (similar to dvc) but we adapted it to the ML workflow. Our approach is to compute a git patch on every run so later you can 'git apply' if you'd like (https://www.comet.ml/docs/user-interface/#the-reproduce-butt...).

Re: Launch HN: Replicate (YC W20) – Version control for machine learning

#24
post #2

Hello HN! We're Ben & Andreas, and we made Replicate. It's a lightweight open-source tool for tracking and analyzing your machine learning experiments: https://replicate.ai/ Andreas used to do machine learning at Spotify. He built a lot of ML infrastructure there (versioning, training, deployment, etc). I used to be product manager for Docker's open source projects, and created Docker Compose. We built https://www.ar…

Wait? So you can upload to Amazon or Google but nowhere else? Like to your own servers, for example?

You can save data to a path on the filesystem, so one way to do this is with a network mount. Lots of academic departments have their own GPU clusters, and they tend to have a shared network filesystem.

We want to have more ways to do this though. We were close to adding SFTP support, but didn't get round to it. Another method could be to implement our own server, but we're trying to keep it simple for now. I'd be curious to hear your feedback here: https://github.com/replicate/replicate/issues/366

Re: Launch HN: Replicate (YC W20) – Version control for machine learning

#26
post #19

I was looking for something similar today. I just adopted it. :) Thank you for your amazing work! Do you have the intention to integrate it with PT Lightning or as a PT Lightning Logger? It would be nice to have it maintained there. It’s used all over huggingface-Transformers examples.

Fantastic, thank you for those kind words!

And great idea to integrate with PT Lightning. I just opened an issue: https://github.com/replicate/replicate/issues/367, feel free to add more detail and comments! -andreas

Re: Launch HN: Replicate (YC W20) – Version control for machine learning

#27
Congrats on the launch! This looks interesting, however I feel like this space is quite crowded. You mentioned that your most important feature is the fact that you are open-source, but off the top of my head I can think of several projects:

* Kubeflow: https://github.com/kubeflow/kubeflow

* MLFlow: https://github.com/mlflow/mlflow

* Pachyderm: https://github.com/pachyderm/pachyderm

* DVC: https://github.com/iterative/dvc

* Polyaxon: https://github.com/polyaxon/polyaxon

* Sacred: https://github.com/IDSIA/sacred

* pytorch-lightning + grid: https://github.com/PyTorchLightning/pytorch-lightning

* DeterminedAI: https://github.com/determined-ai/determined

* Metaflow: https://github.com/Netflix/metaflow

* Aim: https://github.com/aimhubio/aim

* And so many more...

In addition to this list, several other hosted platform offer experiments tracking and model management. How do you compare to all of these tools, and why do you think users should move from one of them to use replicate, thank you.

Re: Launch HN: Replicate (YC W20) – Version control for machine learning

#29
post #22
post #3

Congratulations with the launch. We've used https://github.com/iterative/dvc for a long time and quite happy. What's the main difference between replicate.ai and dvc?

Congrats on the launch! This looks exciting. My company has been using Comet.ml and they cover a few use cases that are missing here. Specifically things like real time visualizations and sharing experiments which is key when working in a team. Are you planning on adding those?

Thank you! We have an issue on the roadmap for adding a web GUI: https://github.com/replicate/replicate/issues/295

We haven't thought about it in great detail yet, so I'd be curious to hear your thoughts and ideas if you'd like to add a comment to that issue!

Re: Launch HN: Replicate (YC W20) – Version control for machine learning

#30
post #8
post #5

Earlier quoted context omitted.

I'd be curious about comparison with https://github.com/mlflow/mlflow

We talked to a bunch of MLflow users, and the general impression we got is that it is heavyweight and hard to set up. MLflow is an all-encompassing "ML platform". Which is fine if you need that, but we're trying to just do one thing well. (Imagine if Git called itself a "software platform".) In terms of features, Replicate points directly at an S3 bucket (so you don't have to run a server and Postgres DB), it saves y…

Congrats on the launch!

>MLflow is an all-encompassing "ML platform"

Not really. We're trying to use MLflow with our "ML platform"[0]. Namely, it can save a model that expects high dimensional inputs, which is most models I've seen that aren't trivial, and can "deploy" the model but with an expectation of two dimensional DataFrame inputs. Apparently, they're working on that.

There are also many ambiguities concerning Keras and Tensorflow stemming from "What is a Keras model? Is it a Tensorflow model now they're integrated? Why are Keras models logged with the tensorflow model logger when you use the autolog functionality?". These are shared ambiguities, as there are several ways to save and load models with Tensorflow, and we're looking into the Keras/Tensorflow integration closely. MLflow uses `cloudpickle` and unpickling expects not only the same 'protocol', but the same Python version. Had to dig deeper than necessary.

One other problem is when a model relies on ancillary functions, which you must be able to ship somehow. You end up tinkering with its guts, too.

Could you shed some light on how do you deal with these matters. Namely, high dimensional inputs for models, pre-processing/post-processing functions, serialization brittleness, and Keras/Tensorflow "duality".

We have to inherit that complexity to spare our users from having to mentally think of saving their experiments (we do that automatically to save models, metrics, params). The workflow is data --> collaborative notebooks with scheduling features and job --> (generate appbooks) --> automatically tracked models/params/metrics --> one click deployment --> 'REST' API or form to invoke model.

Aaaaaand again, congrats on the launch!

- [0]: https://iko.ai

Post reply on HN