One day I got too sick of reading AWS/GCP/Azure docs and decided to fix it once and for all.

All I've ever wanted for machine learning is to have a sensibly configured Ubuntu machine running in the cloud, with a GPU, as quickly as possible, for as little money as possible, and without having to worry about any of the fiddly details. I absolutely do not want to think about VPCs, AZs, which file system to put on which RAID level of my striped EBS volumes, or anything like that.

So we made computronium. It looks something like this

computronium run \
--command "nvidia-smi" \
--image my_image \
--machine gpu_gb:16,cpus:2

That will start a command using the docker image named my_image somewhere (our local cluster if there is space, otherwise the correct instance type on AWS or GCP), and then run nvidia-smi.

Specifying the exact GPU type and provider is as simple as changing the --machine flag to, for example, "gpu_type:v100,provider:aws"

Computronium takes care of everything else--making sure machines dont get left running, ensuring your command runs to completion, etc--and it does it without requiring any 3rd parties or any persistent services or any new concepts. It only requires SSH and python.

We use computronium in production every day and are currently working on open-sourcing it. Send me a message if you'd like to try it out!

Self-supervised PyTorch models

We've implemented many of the most popular self-supervised image models in a single simple framework. Currently has support for MoCo (v1 and v2), SimCLR, BYOL, EqCo, and VICReg.

Getting started is ridiculously easy. This code trains a ResNet-18 with MoCo v2 on STL-10:

import os
import pytorch_lightning as pl
from moco import MoCoMethod

os.environ["DATA_PATH"] = "~/data"

model = MoCoMethod()
trainer = pl.Trainer(gpus=1, max_epochs=320)

Check it out here:

Jupyter Ascending

Jupyter Ascending lets you edit Jupyter notebooks from your favorite editor, then instantly sync and execute that code in the Jupyter notebook running in your browser.

Jupyter Ascending Demo

It's the best of both worlds--the autocomplete, keybindings, and refactoring tools you love in your favorite editor, plus the great visualization abilities of a Jupyter notebook.

Combined with basic syncing of your code to a remote server, you can have all the power of a beefy dev-server with all the convenience of editing code locally.

We mostly made it because the PyCharm notebook support has historically been quite buggy, and some team members use VIM anyway.

Check it out here: