Colaboratory, a free cloud based Jupyter notebook environment requires no setup
colab.research.google.com
colab.research.google.com
I also wrote a blog post detailing my personal experiences with using/abusing the free GPU in Colaboratory to build text-generating neural networks: https://minimaxir.com/2018/05/text-neural-networks/
The real-time use-case has a nice wow factor to it; I've used it as a way to pair program for data science problems. The input cells sync in real-time (a la Google Docs), and so too do the output cells when one person runs a cell. And it's nice to be able to leave comment threads on a cell that can be resolved as a form of peer review.
But what made Colab a game-changer for me is how it let me seamlessly put my notebooks and a VM into Google Drive, making anything I put in a notebook accessible to anyone within my organization without needing to set up an environment, be it shared or local.
My last organization was a small rare disease research foundation, and I primarily worked on the fundraising side of the house; it was not a technical organization. When thinking about the longevity of my work, I realized that even the one person managing IT for them probably couldn't set up, let alone justify maintaining a networked Jupyter environment. So rather than ask for that and store all my analyses and small utilities on GitHub, I built everything on top of Google Drive and Collab. Folks were used to using Drive for everything else, so it meant my work was adjacent and discoverable to the team it was pertinent to and they could get access to both the outcomes of prior runs or change a few variables and run it again without me being needed. I left recently and I've still heard from a few former colleagues that they're still using many of the these notebooks and discovering others I'd built on their own time.
For a small data analysis operation in a Google Apps organization, Colaboratory is a godsend.
In my experience our cell contents were synced but our Python state was not. This makes collaborating highly confusing and error prone.
https://github.com/LeelaChessZero/lc0/wiki/Run-Leela-Chess-Z...
For non-beginner projects, you can use a batch generator to avoid storing everything in memory. (Keras has a good fit_generator utility)
I'm worried about Google embracing and extending Jupyter notebooks, and then deciding to retire the service a few years later.
Our main reason for moving away from it was the fact that it is difficult to run long jobs on Colab. It was good to start working on the project, but any real ML task took too long to finish, if at all.
I see it as a teaching tool for people who do not have admin access to install a full python environment or that are interested in trying out basic things before investing time and effort in setting up Jupyter.
I like Jupyter notebooks (whether they're running in Colab or not) for data analysis and post-hoc model analysis, but I'd never recommend using them to actually train models in the real world, unless your real-world models are extremely fast to train (like, < 5 minutes). YMMV, but I constantly have to reconnect, restart the kernel etc. -- I consider them completely unreliable in terms of retaining anything I actually care about (i.e., any interesting model or result that can't be recomputed in <5 minutes). Of course, you can save snapshots along the way and resume from them, but to me the notebook interface has never really encouraged this sort of workflow -- IMO if you can't quickly shift+enter through every cell of the notebook when you first start it up and see all the same outputs you saw the first time in a couple minutes, it's probably not the right tool. (I brush up against or cross this line constantly myself, and it's always a painful experience.)
Maybe they'll get better and work for this kind of thing in the future, but for now I wouldn't recommend them only for anything beyond analysis.
But also python notebooks make assumptions about the jupyter environment they're run in, so you might have to tweak the ipynb if your environment is substantially different from what the colab machines use. E.g data source for your models.
> Colaboratory is intended for interactive use. Long-running background computations, particularly on GPUs, may be stopped.
After talking with Google support about adding the kernel, there probably isn't a menu item for it, so you have to set the language in the .ipynb json manually.
What exactly is paying for it, then?
!pip install pyhash
import pyhash
... seems to work fine.E.g Google lets you load data from drive.
So when making the comparison I'd just examine my resource needs / how easy I find each to use and/or resource pricing, then pick one that works. If neither suit my needs I'd just use Jupyter on my own machine(s). If you're on Azure the msft one might have handy integrations that minimize how much you need to think about ops. Similarly with colab / GCP.