Main image of article Check Out Uber's Probabilistic Programming Language
Whatever your feelings about Uber, it’s hard to deny the company’s impact on ride-sharing, urban transportation, and the tech-startup scene. Building out the Uber app’s core functionality required some impressive data-analytics work, especially in the areas of prediction and optimization. Now the company is opening up all that effort to developers, in the form of an open-source, Python-based programming language called Pyro. In a corporate blog post, Uber describes Pyro as “a tool for deep probabilistic modeling,” merging deep learning with Bayesian modeling. “Models built in the language of probability can capture complex reasoning, know what they do not know, and uncover structure in data without supervision,” the posting added. “Further, probability provides a way for human experts to provide knowledge to AI systems in the form of a priori beliefs.” Actually building a model, however, is much easier said than done. For starters, unsupervised learning can quickly become error-riddled, especially when the core dataset is massive (and Uber’s data is the very definition of massive). The models are also potentially cumbersome at scale (scale being another thing Uber is known for). “Probabilistic programming languages (PPLs) solve these problems by marrying probability with the representational power of programming languages,” the posting continued. “A probabilistic program is a mix of ordinary deterministic computation and randomly sampled values; this stochastic computation represents a generative story about data. The probabilities are implicit in this representation—there is no need to derive formulas—and yet this specification is also universal: any computable probabilistic model can be written this way.” Pyro leverages the PyTorch deep-learning framework, which counts Facebook, Salesforce, Carnegie Mellon, and Stanford among its contributors. PyTorch helps Pyro to “represent any probabilistic model,” in the words of the blog, “while providing automatic optimization-based inference that is flexible and scalable to large data sets.” Uber isn’t the only tech company that wrestles with trying to model uncertainty, of course. If your firm deals with probabilistic models (or if the topic simply interests you), Pyro is well worth checking out.