poml
by
microsoft

Description: Prompt Orchestration Markup Language

View microsoft/poml on GitHub ↗

Summary Information

Updated 34 minutes ago
Added to GitGenius on August 14th, 2025
Created on November 29th, 2024
Open Issues/Pull Requests: 56 (+0)
Number of forks: 248
Total Stargazers: 4,854 (+0)
Total Subscribers: 36 (+0)
Detailed Description

Probabilistic Object Modeling Language (POML) is a Microsoft research project aiming to simplify the creation and deployment of probabilistic models, particularly for complex real-world scenarios. The GitHub repository (https://github.com/microsoft/poml) provides the core components for defining, inferring, and deploying these models, focusing on a declarative, model-centric approach rather than requiring users to directly manage low-level inference algorithms. Essentially, POML allows users to *describe* what they want to model probabilistically, and the system handles the details of *how* to perform inference.

At its heart, POML utilizes a domain-specific language (DSL) also called POML, designed to be expressive yet relatively easy to learn. This language allows users to define probabilistic models using concepts like variables, distributions, and relationships between them. Crucially, POML supports a wide range of probabilistic modeling paradigms, including Bayesian networks, Markov random fields, and factor graphs, all within a unified framework. The language is statically typed, enabling early error detection and improved model reliability. The repository includes a formal grammar specification and examples demonstrating its usage. The POML language isn't intended to be hand-written directly by most users; instead, it's often generated from higher-level abstractions or domain-specific languages.

The repository's key components include a compiler, a runtime, and a set of tools. The POML compiler translates POML model definitions into an intermediate representation (IR) suitable for efficient inference. This IR is designed to be platform-agnostic, allowing the same model to be deployed on different hardware and software environments. The runtime provides the core inference engine, supporting various inference algorithms like variational inference, Markov Chain Monte Carlo (MCMC), and belief propagation. The choice of inference algorithm can be specified in the POML model or automatically selected by the runtime based on the model structure and desired accuracy. A significant focus is on scalability and performance, leveraging techniques like parallelization and just-in-time (JIT) compilation.

Beyond the core compiler and runtime, the repository offers tools for model validation, debugging, and deployment. These include a visualizer for inspecting model structure and inference results, and integration with popular machine learning frameworks like PyTorch. The repository also provides examples and tutorials demonstrating how to use POML to solve various problems, such as image recognition, natural language processing, and robotics. A key aspect of the deployment strategy is the ability to generate optimized code for different target platforms, including CPUs, GPUs, and even edge devices.

The project is still under active development, with ongoing efforts to improve the language, compiler, runtime, and tooling. The repository's documentation, while growing, is still evolving. However, the core concepts and functionality are well-defined, and the examples provide a good starting point for exploring the capabilities of POML. Ultimately, POML aims to democratize probabilistic modeling by making it more accessible to a wider range of users, enabling them to build and deploy sophisticated probabilistic applications without needing to be experts in inference algorithms.

poml
by
microsoftmicrosoft/poml

Repository Details

Fetching additional details & charts...