Cog is an open-source command-line tool for packaging ML models. Cog gives you a consistent environment to run your model in – for developing on your laptop, training on GPU machines, and for other people working on the model. Then, when the model is trained and you want to share or deploy it, you can bake the model into a Docker image that serves a standard HTTP API.
Cog does a few handy things beyond normal Docker:
Automatic Docker image. Define your environment with a simple configuration file, then Cog will generate Dockerfiles with best practices and do all the GPU configuration for you.
Automatic HTTP service. Cog will generate an HTTP service from the definition of your model, so you don’t need to write a Flask server in the right way.
No more CUDA hell. Cog knows which CUDA/cuDNN/PyTorch/Tensorflow/Python combos are compatible and will pick the right versions for you.