The downside of Variational Inference is the need for model-specific derivations and the implementation of a tailored optimization routine that has slowed down widespread adoption.
The recent Automatic Differentiation Variational Inference (ADVI) algorithm automates this process so that the user only specifies the model, expressed as a program, and ADVI automatically generates a corresponding variational algorithm (see references on GitHub for implementation details).
We will see that PyMC3 supports various Variational Inference techniques, including ADVI.