XLM: A Python package for non-autoregressive language models
Dhruvesh Patel, Durga Prasad Maram, Sai Sreenivas Chintha, Benjamin Rozonoyer, Andrew McCallum
TL;DR
XLM addresses the lack of unified tooling for non-autoregressive text generation by introducing a modular Python package built on PyTorch, PyTorch Lightning, and Hydra. It emphasizes design principles of maximal independence, composition over inheritance, and runtime configurability to enable rapid prototyping of small non-autoregressive architectures. The paper details core components (DataModule, Harness, configuration management) and demonstrates an end-to-end ILM implementation on StarEasy with a scaffolding workflow, plus a benchmarking section that reproduces results on synthetic and LM1B tasks. The work argues that XLM lowers barriers to systematic comparisons and accelerates research in non-autoregressive generation, with future plans to extend to more tasks and non-text domains.
Abstract
In recent years, there has been a resurgence of interest in non-autoregressive text generation in the context of general language modeling. Unlike the well-established autoregressive language modeling paradigm, which has a plethora of standard training and inference libraries, implementations of non-autoregressive language modeling have largely been bespoke making it difficult to perform systematic comparisons of different methods. Moreover, each non-autoregressive language model typically requires it own data collation, loss, and prediction logic, making it challenging to reuse common components. In this work, we present the XLM python package, which is designed to make implementing small non-autoregressive language models faster with a secondary goal of providing a suite of small pre-trained models (through a companion xlm-models package) that can be used by the research community. The code is available at https://github.com/dhruvdcoder/xlm-core.
