Regarding support for more than one sampler project in PyMC4

Hi devs,

I am Shashank, a master’s student in AI at the University of Guelph in Ontario, Canada. I am taking a class on computational statistical inference this semester which covers mostly MCMC sampling. I would like to work on the Summer of Code 2020 project on “Support more than one sampler in PyMC4” over the summer. On Github, @lucianopaz suggested I should start a discussion about it.

Could one of the potential mentors (@junpenglao @aloctavodia) help me get started?

Hi @sshkhr, there are a lot of work to be done re MCMC in PyMC4 so your contribution will be very welcome!
I think it would help to start by listing some of the samplers (or improvement to some samplers) that are potentially of interested.

Thanks for the encouragement @junpenglao. The latest PR by @CoderINusE refactors the mcmc code into a separate module and defines a base sampler class and introduces new samplers as well. I think I will go through it as well as PyMC3 sampling capabilities and get back to both of you

I see that there has already been significant work done by @CoderINusE on the MCMC project and the other projects proposed for PyMC4 have also generated a lot of interest. I feel it will be redundant to the development of PyMC4 if I apply to a project someone is already interested in.

I was wondering if there would be interest in a glm module in PyMC4 along the lines of PyMC3’s glm module. TFP has a large glm module and I feel it would be nice to adopt one for PyMC4. Another thing I would be interested in is adapting Normalizing Flows from TFP to PyMC4. This could tie in later to the VI project once the VI module is ready.

Would love to hear feedback on this from the mentors @lucianopaz @junpenglao @aloctavodia @ferrine

I think that instead of having a glm module inside PyMC4 we should add PyMC4 as a backend to bambi, but I know others may disagree with this. Adapting normalizing flows from TFP to PyMC4 sounds very good to me.

I would keep calm about normalizing flows. It is next level after basic VI implementation

1 Like