cs.FLFeb 11, 2026

Fast and General Automatic Differentiation for Finite-State Methods

Authors: Lucas Ondel Yang, Caio Corro, Nicolas Denier, Martin Kocour, Tina Raissi, Pablo Riera

Organizations: LISN, CNRS · Université Paris-Saclay, CNRS, Laboratoire Interdisciplinaire du Numérique, Orsay, France · INSA Rennes, IRISA, ARCHIMEDIA · INSA Rennes, IRISA, CNRS, Université de Rennes, Rennes, France · 

Abstract

We propose a new method, that we coined the ``morphism-trick'', to integrate custom implementations of vector-Jacobian products in automatic differentiation softwares, applicable to a wide range of semiring-based computations. Our approach leads to efficient and semiring-agnostic implementations of the backward pass of dynamic programming algorithms. For the particular case of finite-state methods, we introduce an algorithm that computes and differentiates the ⊕\oplus-sum of all paths' weight of a finite-state automaton. Results show that, with minimal effort from the user, our novel library allows computing the gradient of a function w.r.t. to the weights of a finite state automaton orders of magnitude faster than state-of-the-art automatic differentiation systems. Implementations are made available via an open-source library distributed under a permissive license.

Explore similar work

Mar 9, 2026

SoftJAX & SoftTorch: Empowering Automatic Differentiation Libraries with Informative Gradients

Automatic differentiation (AD) frameworks such as JAX and PyTorch have enabled gradient-based optimization for a wide range of scientific fields. Yet, many "hard" primitives in these libraries such as thresholding, Boolean logic, discrete indexing, and sorting operations yield zero or undefined gradients that are not useful for optimization. While numerous "soft" relaxations have been proposed that provide informative gradients, the respective implementations are fragmented across projects, making them difficult to combine and compare. This work introduces SoftJAX and SoftTorch, open-source, feature-complete libraries for soft differentiable programming. These libraries provide a variety of soft functions as drop-in replacements for their hard JAX and PyTorch counterparts. This includes (i) elementwise operators such as clip or abs, (ii) utility methods for manipulating Booleans and indices via fuzzy logic, (iii) axiswise operators such as sort or rank -- based on optimal transport or permutahedron projections, and (iv) offer full support for straight-through gradient estimation. Overall, SoftJAX and SoftTorch make the toolbox of soft relaxations easily accessible to differentiable programming, as demonstrated through benchmarking and a practical case study. Code is available at github.com/a-paulus/softjax and github.com/a-paulus/softtorch.
Oct 8, 2026

asdex: Automatic Sparse Differentiation in JAX

Many tasks in scientific computing and machine learning require the Jacobian or Hessian matrix of a function. Automatic differentiation (AD) computes these derivatives to machine precision, but materializing a dense m×nm \times n Jacobian requires nn forward-mode or mm reverse-mode AD passes, one per column or row. For a large class of functions, each output depends on only a few inputs, making the derivative matrix sparse. Automatic sparse differentiation (ASD) exploits this structure in four steps: detection of the input-agnostic sparsity pattern, coloring of a graph to group columns or rows that can share an AD pass, compressed differentiation to compute a compressed derivative matrix with one AD pass per color, and finally decompression into the original sparsity pattern. The number of colors, and hence of AD passes, is often independent of the problem dimension: a banded Jacobian with bb contiguous bands, for instance, only ever requires bb colors, regardless of its size. asdex offers the first standalone ASD toolkit in the popular JAX ecosystem. With asdex.jacobian\texttt{asdex.jacobian} and asdex.hessian\texttt{asdex.hessian}, it provides sparse drop-in replacements for jax.jacobian\texttt{jax.jacobian} and jax.hessian\texttt{jax.hessian}.
May 3, 2026

Floating-Point Networks with Automatic Differentiation Can Represent Almost All Floating-Point Functions and Their Gradients

Theoretical studies show that for any differentiable function on a compact domain, there exists a neural network that approximates both the function values and gradients. However, such a result cannot be used in practice since it assumes real parameters and exact internal operations. In contrast, real implementations only use a finite subset of reals and machine operations with round-off errors. In this work, we investigate whether a similar result holds for neural networks under floating-point arithmetic, when the gradient with respect to the input is computed by the automatic differentiation algorithm DADD^\mathtt{AD}. We first show that given a floating-point function φφ (e.g., a loss function), arbitrary function values and gradients can be represented by a floating-point network ff and DAD(φ∘f)D^\mathtt{AD}(φ\circ f), respectively. We further extend this result: given φ1,…,φnφ_1,\dots,φ_n, DAD(φi∘f)D^\mathtt{AD}(φ_i\circ f) can simultaneously represent arbitrary gradients while ff represents the target values, under mild conditions. Our results hold for practical activation functions, e.g., ReLU\mathrm{ReLU}, ELU\mathrm{ELU}, GeLU\mathrm{GeLU}, Swish\mathrm{Swish}, Sigmoid\mathrm{Sigmoid}, and tanh\mathrm{tanh}.