I’ve been really into probabilistic programming la...
# present-company
a
I’ve been really into probabilistic programming languages (PPLs) lately. I had a few “aha” moments and I’m decidedly in the “hit everything with this hammer to figure out where the nails are” phase. Anyway, is anybody here in a similar headspace? Or already experienced with PPLs? Is anybody curious to enter this headspace with me? I reviewed the (online, free, programmable) book that brought me here: https://micro.alltom.com/2024/01/11/the-cognition-in.html
Here's an angle: a few weeks playing in this surprisingly visual language made years of reading about conditional probabilities finally click. I'm starting to feel like WebPPL is the language that we ought to teach probability with. While it's not a game, I find myself tweaking models just to see how it changes the generated charts. A WebPPL workflow is describing a probabilistic model (like "I deal five cards and have two pair") and returning values of interest (like "whether the next deal has three-of-a-kind"), which the system infers the likelihood of, and then presents using what it thinks are the best charts to suit the data. Its output is always a chart. Showering myself in random samples is more visceral, but seeing these plots was a rung on the ladder of abstraction that wasn't available to me before because the algebra made it so inaccessible. I've started to use WebPPL to interrogate my own cognition. The other day I asked whether my idea of "healthy" is just a function of how many calories is in a serving of food. I asked by comparing that to a model that just picked randomly—turns out my theory was wrong, because the random model matched my tiny dataset better. Took me a couple of minutes. I don't even know how I would have posed that question before! I want to start using it in my art. Like, it's easy to explore the parameters of an L-system by changing the parameters, but I could work backwards by drawing an example of what I want, and getting a probability distribution of parameters that could have generated it. It's a type of machine learning that feels far more human-scale, and more interesting than throwing gradient descent at classification and regression tasks. The physicality of generative modeling, and of the related inference algorithms, are begging to be embedding in a Hest-like interface! Anyway, I hope to be back with more later, hopefully in #devlog-together. :)
s
I work on data tools and webppl is new to me! What’s your sense for the goals of this language?
a
I don’t really know, but I get the sense that it’s half whatever they need for their active research, and half pedagogical for the people teaching classes with it. It doesn’t have the data-ingestion infrastructure or performance or repo activity for me to believe that it’s used in production systems.