JAX: transform the program instead of describing a graph
On 7 December 2018 the first public release of JAX appeared, a library that takes ordinary Python and NumPy code and applies transformations to it: differentiation, compilation, vectorisation, parallelisation.
Why it matters
A third way to describe training, after TensorFlow's static graph and PyTorch's eager execution: do not describe a graph at all, transform the program itself. A large share of the following decade's big training systems were built on that approach.
The package summary on the index is short and exact: "Differentiate, compile, and transform Numpy code." The repository describes the same thing as composable transformations of Python and NumPy programs. The record carries medium confidence deliberately. Both sources are indexes rather than a document explaining the intent: they fix firmly when the thing became available and say almost nothing about why it is the way it is. The repository was created on 25 October 2018, six weeks before the first release, so the date work began and the date it became available are different here, and the record sits on the second.