bean machine
Bean Machine: Composable, Fast Probabilistic Inference on PyTorch
Today, we're excited to announce an early beta release of Bean Machine, a PyTorch-based probabilistic programming system that makes it easy to represent and to learn about uncertainties in the machine learning models that we work with every day. Bean Machine enables you to develop domain-specific probabilistic models, and automatically learn about unobserved properties of the model with automatic, uncertainty-aware learning algorithms. Though powerful, probabilistic modeling does take some getting used to. If this is your first exposure to the topic, we welcome you to check out a short overview of the concept in the Fabulous Adventures in Coding blog. We on the Bean Machine development team believe that the usability of a system forms the bedrock for its success, and we've taken care to center Bean Machine's design around a declarative philosophy within the PyTorch ecosystem.
Meta releases Bean Machine to help measure AI model uncertainty
Let the OSS Enterprise newsletter guide your open source journey! Meta (formerly Facebook) this week announced the release of Bean Machine, a probabilistic programming system that ostensibly makes it easier to represent and learn about uncertainties in AI models. Available in early beta, Bean Machine can be used to discover unobserved properties of a model via automatic, "uncertainty-aware" learning algorithms. "[Bean Machine is] inspired from a physical device for visualizing probability distributions, a pre-computing example of a probabilistic system," the Meta researchers behind Bean Machine explained in a blog post. "We on the Bean Machine development team believe that the usability of a system forms the bedrock for its success, and we've taken care to center Bean Machine's design around a declarative philosophy within the PyTorch ecosystem." It's commonly understood that deep learning models are overconfident -- even when they make mistakes.
Introducing Bean Machine
The final part of my Life series is still in the works but I need to interrupt that series with some exciting news. I will likely do a whole series on Bean Machine later on this autumn, but for today let me just give you the brief overview should you not want to go through the paper. As the paper's title says, Bean Machine is a Probabilistic Programming Language (PPL). For a detailed introduction to PPLs you should read my "Fixing Random" series, where I show how we could greatly improve support for analysis of randomness in .NET by both adding types to the base class library and by adding language features to a language like C#. If you don't want to read that 40 post introduction, here's the TLDR.