Torch-Struct: Deep Structured Prediction Library
This addresses the problem of inefficient structured prediction in NLP for researchers and practitioners, though it is incremental as it builds on existing algorithms with optimizations.
The paper tackles the difficulty of integrating structured prediction algorithms into deep learning frameworks by introducing Torch-Struct, a library that provides a distribution-based API for probabilistic structures, resulting in significant performance gains over fast baselines.
The literature on structured prediction for NLP describes a rich collection of distributions and algorithms over sequences, segmentations, alignments, and trees; however, these algorithms are difficult to utilize in deep learning frameworks. We introduce Torch-Struct, a library for structured prediction designed to take advantage of and integrate with vectorized, auto-differentiation based frameworks. Torch-Struct includes a broad collection of probabilistic structures accessed through a simple and flexible distribution-based API that connects to any deep learning model. The library utilizes batched, vectorized operations and exploits auto-differentiation to produce readable, fast, and testable code. Internally, we also include a number of general-purpose optimizations to provide cross-algorithm efficiency. Experiments show significant performance gains over fast baselines and case-studies demonstrate the benefits of the library. Torch-Struct is available at https://github.com/harvardnlp/pytorch-struct.