For those who run their own AI box, or want to

[not for complete beginners]
I want to mention another much less known (comparing to docker) project,
which simplified my life when I wanted to get the benefits of an isolated setup like in a docker, but still want to keep it more flexible - GitHub - apptainer/singularity: Singularity has been EOL'ed, see Apptainer (it has been rebranded to Apptainer recently (Introduction to Apptainer — Apptainer User Guide main documentation), but I started to use while it was “Singularity”).

There have been posts about it before (Fastai2 in Singularity Container), but it has been also evolved a lot since 2020, so I think worth mentioning it again.

It has been born as HPC containers solution and will take a couple of days learning curve (if you already familiar with a docker), but has a few nice properties which I found useful when you want to play with DL setups, including fastai:

  • Truly one single container file (if you want it to be 1 file of course) - copying and organizing different setups easier to me.
  • Better support for GPU’s and other ASICs (it is “closer” to PCI devices than docker)
  • You can work inside a container like inside a VM (interactive changes = persistent overlays) or/and use definition files. (can import docker containers as well)
  • Neat HPC features, MPI support and etc.
  • You can actually encrypt your container.

I found it convenient when I am still in experimenting mode (i.e. not ready to finalize a full definition file), but want to move containers easily between boxes or cloud instances or rollback quickly if an environment gets messed up.

3 Likes