Sliceline
February 16, 2026 Β· View on GitHub
Sliceline is a Python library for fast slice finding for Machine Learning model debugging.
It is an implementation of SliceLine: Fast, Linear-Algebra-based Slice Finding for ML Model Debugging <https://mboehm7.github.io/resources/sigmod2021b_sliceline.pdf>__,
from Svetlana Sagadeeva and Matthias Boehm of Graz University of
Technology.
π Getting started
Given an input dataset X and a model error vector errors,
SliceLine finds the top slices in X that identify where a ML model
performs significantly worse.
You can use sliceline as follows:
.. code:: python
from sliceline.slicefinder import Slicefinder
slice_finder = Slicefinder()
slice_finder.fit(X, errors)
print(slice_finder.top_slices_)
X_trans = slice_finder.transform(X)
We invite you to check the demo notebooks <https://github.com/DataDome/sliceline/blob/main/notebooks>__
for a more thorough tutorial:
- Implementing Sliceline on Titanic dataset
- Implementing Sliceline on California housing dataset
π Installation
Sliceline is intended to work with Python 3.10 or above. Installation
can be done with pip:
.. code:: sh
pip install sliceline
There are wheels available <https://pypi.org/project/sliceline/#files>__ for Linux,
MacOS, and Windows, which means that you most probably wonβt have to
build Sliceline from source.
You can install the latest development version from GitHub as so:
.. code:: sh
pip install git+https://github.com/DataDome/sliceline --upgrade
Or, through SSH:
.. code:: sh
pip install git+ssh://git@github.com/datadome/sliceline.git --upgrade
β‘ Performance Optimization
Sliceline includes optional Numba JIT compilation for 5-50x performance improvements on scoring operations.
Quick Installation:
.. code:: sh
With optimization support
pip install sliceline[optimized]
Benefits:
- 5-6x faster scoring operations
- 1.4-4.5x faster overall fit() performance
- Up to 17% memory reduction on large datasets
- Automatic fallback to pure NumPy if Numba not available
System Requirements:
Numba requires LLVM to be installed:
.. code:: sh
macOS
brew install llvm
Linux (Ubuntu/Debian)
sudo apt-get install llvm
Disabling Numba:
If you need to disable Numba JIT (e.g., in restricted environments), set the environment variable:
.. code:: sh
export NUMBA_DISABLE_JIT=1
Docker / Read-only Filesystems:
Numba requires a writable cache directory. In Docker containers or read-only filesystems,
set NUMBA_CACHE_DIR to a writable path:
.. code:: dockerfile
ENV NUMBA_CACHE_DIR=/tmp/numba_cache
If the cache directory is not writable, Sliceline will automatically fall back to pure NumPy.
Verify Optimization:
.. code:: python
from sliceline import is_numba_available
print("Numba available:", is_numba_available())
See the performance benchmarks <https://github.com/DataDome/sliceline/tree/main/benchmarks>__ for detailed metrics.
π Useful links
Documentation <https://sliceline.readthedocs.io/en/stable/>__Package releases <https://pypi.org/project/sliceline/#history>__SliceLine paper <https://mboehm7.github.io/resources/sigmod2021b_sliceline.pdf>__
π Contributing
Feel free to contribute in any way you like, weβre always open to new ideas and approaches.
Open a discussion <https://github.com/DataDome/sliceline/discussions/new>__ if you have any question or enquiry whatsoever. Itβs more useful to ask your question in public rather than sending us a private email. Itβs also encouraged to open a discussion before contributing, so that everyone is aligned and unnecessary work is avoided.- Feel welcome to
open an issue <https://github.com/DataDome/sliceline/issues/new/choose>__ if you think youβve spotted a bug or a performance issue.
Please check out the contribution guidelines <https://github.com/DataDome/sliceline/blob/main/CONTRIBUTING.md>__
if you want to bring modifications to the code base.
π License
Sliceline is free and open-source software licensed under the 3-clause BSD license <https://github.com/DataDome/sliceline/blob/main/LICENSE>__.