Batch, match, and patch: low-rank approximations for score-based variational inference