sensAI: The Python Library for Sensible AI

sensAI is a high-level AI toolkit with a specific focus on rapid experimentation for machine learning applications. It provides a unifying interface to a wide variety of model classes, integrating industry-standard machine learning libraries. Based on object-oriented design principles, it fosters modularity and facilitates the creation of composable data processing pipelines. Through its high level of abstraction, it achieves largely declarative semantics, whilst maintaining a high degree of flexibility.

If you typically rely on libraries such as scikit-learn or XGBoost, consider integrating sensAI to enhance your experience. Doing so allows you to

  • gain flexibility, straightforwardly supporting a greater variety of models,
  • increase the level of abstraction, cutting down on boilerplate,
  • improve logging and tracking with minimal effort.

In more detail, some of sensAI’s key benefits are:

  • A unifying interface to a wide variety of model classes across frameworks

    Apply the same principles to a wide variety of models, whether they are neural networks, tree ensembles or non-parametric models – without losing the ability of exploiting each model’s particular strengths.

    sensAI supports models based on PyTorch, scikit-learn, XGBoost and other libraries out of the box. Support for custom models can straightforwardly be established.

  • Adaptive, composable data processing pipelines

    Modularise data pre-processing steps and features generation, representing the properties of features explicitly.

    • For each model, select a suitable subset of features, composing the desired feature generators in order to obtain an initial input pipeline.
    • Transform the features into representations that are optimised for the model at hand. Some of the respective transformations can be automatically derived from the properties associated with features, others can be manually designed to exploit a model’s specific capabilities (e.g. a tensor-based representation of complex, non-tabular data for neural networks).

    Strongly associate pipelines with models in order to avoid errors and gain the flexibility of supporting highly heterogeneous models within a single framework, bridging the gap to production along the way.

  • Fully integrated solutions for canonical tasks

    Do away with boilerplate code by using high-level interfaces for model evaluation, model selection or feature selection. Log and track all relevant parameters as well as results along the way, using file-based logging or tracking frameworks such as MLflow.

  • Declarative semantics

    Through its high level of abstraction, sensAI achieves largely declarative semantics: Focus on what to do rather than how to do it.

    Eschew the notion of external configuration for a single task, making your high-level code read like configuration instead. Gain the flexibility of specifying variations of your models and experiments with minimal code changes/extensions.

While sensAI’s main focus is on supervised and unsupervised machine learning, it also provides functionality for discrete optimisation and a wide range of general-purpose utilities that are frequently required in AI applications.