Hacker News new | past | comments | ask | show | jobs | submit login
HackPPL: A universal probabilistic programming language (acolyer.org)
63 points by grzm on Oct 19, 2019 | hide | past | favorite | 8 comments



Not sure why one would use this over Uber’s Pyro, which is built in python on top of Pytorch and has a similar feature set.

Also worth pointing out that, like all current gen PPLs, the word “Universal” is highly misleading, as only variables that are the result of a sample statement can be observed (since HMC, IS, and others require closed form conditional likelihood’s for observed variables). This rules out use cases such as observing noiseless aggregates of noisy signals (any workaround is a fudge and will put strain on the inference algorithms capacity for search).

Only a PPL with support for likelihood free inference techniques (few of which work very well as of today) could be considered truly “Universal”.


Pyro is pretty wonky too. Something like Gen, which is still a big research project, has a lot of hope for the sort of universal behaviour you're describing.

In practice, so many ordinary programs in ordinary languages use heap-allocated lists with runtime-specified lifetimes as intermediate values and return values. That sounds wonky, but I'm saying there's a lot of "businessLogic(X) -> variable length, nondeterministic on X length List of Y" functions, which is ill suited for PPL modeling. On the other hand, neural networks, which really work on binary images of inputs and outputs, handle those situations surprisingly well. That's what you're really competing with.


I got Pyro to perform almost as well as Stan on a complex model under variational inference, with the upside that I could refactor it all into classes and integrate with a larger Python framework, all while making use of GPUs. Could it be any better? What do you see as wonky?


Roadmap?


There's gotta be a better name for this...


The name is the one thing coming from that company that I actually believe.


Peepee


Please don't do this here.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: