PYLON: A PyTorch Framework for Learning with Constraints

Abstract

Deep learning excels at learning task information from large amounts of data, but struggles with learning from declarative high-level knowledge that can be more succinctly expressed directly. In this work, we introduce PYLON, a neuro-symbolic training framework that builds on PyTorch to augment procedurally trained models with declaratively specified knowledge. PYLON lets users programmatically specify constraints as Python functions and compiles them into a differentiable loss, thus training predictive models that fit the data whilst satisfying the specified constraints. PYLON includes both exact as well as approximate compilers to efficiently compute the loss, employing fuzzy logic, sampling methods, and circuits, ensuring scalability even to complex models and constraints. Crucially, a guiding principle in designing PYLON is the ease with which any existing deep learning codebase can be extended to learn from constraints in a few lines code: a function that expresses the constraint, and a single line to compile it into a loss. Our demo comprises of models in NLP, computer vision, logical games, and knowledge graphs that can be interactively trained using constraints as supervision.

Cite

Text

Ahmed et al. "PYLON: A PyTorch Framework for Learning with Constraints." AAAI Conference on Artificial Intelligence, 2022. doi:10.1609/AAAI.V36I11.21711

Markdown

[Ahmed et al. "PYLON: A PyTorch Framework for Learning with Constraints." AAAI Conference on Artificial Intelligence, 2022.](https://mlanthology.org/aaai/2022/ahmed2022aaai-pylon/) doi:10.1609/AAAI.V36I11.21711

BibTeX

@inproceedings{ahmed2022aaai-pylon,
  title     = {{PYLON: A PyTorch Framework for Learning with Constraints}},
  author    = {Ahmed, Kareem and Li, Tao and Ton, Thy and Guo, Quan and Chang, Kai-Wei and Kordjamshidi, Parisa and Srikumar, Vivek and Van den Broeck, Guy and Singh, Sameer},
  booktitle = {AAAI Conference on Artificial Intelligence},
  year      = {2022},
  pages     = {13152-13154},
  doi       = {10.1609/AAAI.V36I11.21711},
  url       = {https://mlanthology.org/aaai/2022/ahmed2022aaai-pylon/}
}