Yes, but they are the approximation of the free parameters in the model. PyMC3 automatically transform the bounded parameters to the real line. In this case, the sd is only positive as it is halfnormal distributed, but for sampling and VI PyMC3 operates on the unbounded version of it.
You can check what are the parameters actually being sample/approximate by doing:
model.free_RVs
Out[4]: [mu, sd_log__]
You can do advifit.approx.sample(1000) which gives you a MCMC trace of 1000 iteration just like a trace returned from sampling.