Stephane Bersier's home page

Typeful Machine Learning

Overview

Typeful programming is a paradigm that is about faithfully and formally representing/modeling the mathematical structures that are relevant to the problem at hand. Expressive type systems play an instrumental role in achieving typefulness.

Typeful programming has been gradually gaining traction in software engineering. In contrast, machine learning (ML) frameworks, still in their infancy, have largely ignored programming language theory and decades of insights from language design. As a result, major ML frameworks make typeful programming difficult or impossible, leading to brittle, non-reusable code that is hard to write, maintain, and extend.

This project aims to create a framework for typeful ML programming. By applying principles from programming language theory, language design, and type theory, it will enable scalable, generic, modular, and high-level code for complex ML models and algorithms.

Related paper

Encoding architecture algebra

Slides

Code

This Github project is a limited attempt at applying typeful abstractions on top of TensorFlow.