Skip to content

Commit 9d84942

Browse files
author
MarcelRobeer
committed
Made the paper a bit more verbose
1 parent 767eac3 commit 9d84942

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

paper/paper.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ Developed to meet the practical machine learning (ML) auditing requirements of t
4242

4343
# Statement of need
4444

45-
In high-stakes environments like law enforcement, machine learning (ML) models are subject to intense scrutiny and must comply with emerging regulations like the EU AI Act [@Edwards2022]. `Explabox` was developed to address the operational challenges of ML auditing at the Netherlands National Police, where models for text classification/regression require standardized, reproducible, and holistic evaluation to satisfy diverse stakeholders—from developers and internal auditors to legal and ethical oversight bodies. Existing tools, while powerful, were often fragmented, focusing on a single aspect of analysis (e.g., only explainability or testing) and lacking a unified framework for conducting a complete audit from data exploration to final reporting.
45+
In high-stakes environments like law enforcement, machine learning (ML) models are subject to intense scrutiny and must comply with emerging regulations like the EU AI Act [@Edwards2022]. `Explabox` was developed to address the operational challenges of ML auditing at the Netherlands National Police, where models for text classification and regression require standardized, reproducible, and holistic evaluation to satisfy diverse stakeholders—from developers and internal auditors to legal and ethical oversight bodies. Existing tools, while powerful, were often fragmented, focusing on a single aspect of analysis (e.g., only explainability or testing) and lacking a unified framework for conducting a complete audit from data exploration to final reporting.
4646

4747
To solve this workflow problem, we developed Explabox around a four-step analysis strategy—*explore*, *examine*, *explain* and *expose*—inspired by similar conceptualizations of the analytical process [@Biecek2021]. While comprehensive libraries like `OmniXAI` [@Yang2022] offer a broad, multi-modal collection of explainers and `dalex` [@Baniecki2021] provides a mature, research-driven framework for model exploration, `Explabox` was developed to fill a specific operational gap. Practitioners seeking to conduct a full audit in a model-agnostic manner often have to combine multiple, highly-specialized libraries, such as `AIF360` [@Bellamy2018] for fairness metrics, `alibi explain` [@Klaise2021] or `AIX360` [@Arya2019] for local explanations, and `CheckList` [@Ribeiro2020] for behavioral testing.
4848

@@ -53,21 +53,21 @@ This fragmentation introduces significant challenges, particularly regarding *re
5353
`Explabox` transforms opaque *ingestibles* into transparent *digestibles* through four types of *analyses* to enhance explainability and aid fairness, robustness, and security audits.
5454

5555
## Ingestibles
56-
Ingestibles provide a unified model/data import interface, where layers abstract away access (\autoref{fig:layers}) to allow optimized processing. `Explabox` uses `instancelib` [@instancelib] for fast model/data encapsulation. The model can be any Python `Callable` containing a regression or (binary and multi-class) classification model. While this interface is model-agnostic, the current release provides data handling and analysis modules optimized specifically for text-based tasks. `scikit-learn` or `onnx` models (e.g., PyTorch, TensorFlow/Keras) import directly with optimizations and automatic input/output interpretation. Data can be automatically downloaded, extracted and loaded. Data inputs include `NumPy`/`Pandas`/`huggingface`, raw files (e.g., HDF5, CSV or TSV), and (compressed) file folders. Data can be subdivided into named splits (e.g., train-test-validation), and instance vectors and tokens can be precomputed (and optionally saved) for fast inferencing.
56+
Ingestibles provide a unified model/data import interface, where layers abstract away access (\autoref{fig:layers}) to allow optimized processing. `Explabox` uses `instancelib` [@instancelib] for fast model/data encapsulation. The model can be any Python `Callable` containing a regression or (binary and multi-class) classification model. While this interface is model-agnostic, the current release provides data handling and analysis modules optimized specifically for text-based tasks. `scikit-learn` or `ONNX` models (e.g., `PyTorch`, `TensorFlow`, or `Keras`) import directly with optimizations and automatic input/output interpretation. Data can be automatically downloaded, extracted and loaded. Data inputs include `NumPy`, `Pandas`, or `Hugging Face`, raw files (e.g., HDF5, CSV or TSV), and (compressed) file folders. Data can be subdivided into named splits (e.g., train-test-validation), and instance vectors and tokens can be precomputed and optionally saved for fast inferencing.
5757

5858
![Logical separation of `Explabox` into layers with interfaces.\label{fig:layers}](figure1.png){width=50%}
5959

6060
## Analyses
6161

6262
`Explabox` turns these *ingestibles* into *digestibles* (transparency-increasing information on ingestibles) through four *analyses* types: **explore**, **examine**, **explain** and **expose**.
6363

64-
**Explore** allows data slicing/dicing/sorting, and provides descriptive statistics (dataset sizes, label distributions, and text string/token lengths).
64+
**Explore** allows data slicing, dicing and sorting, and provides descriptive statistics (dataset sizes, label distributions, and text string/token lengths).
6565

66-
**Examine** shows model performance metrics, summarized in a table or shown graphically, and include computation/interpretation references. For further analysis, **examine** also supports drilling down into (in)correct predictions.
66+
**Examine** shows model performance metrics, summarized in a table or shown graphically with computation and interpretation references. For further analysis, **examine** also supports drilling down into (in)correct predictions.
6767

68-
**Explain** uses model-agnostic techniques [@Ribeiro2016b] to explain model behavior (*global*) and individual predictions (*local*). It summarizes model-labelled data, through prototypes (`K-Medoids`) or prototypes and criticisms (`MMDCritic` [@Kim2016]), and token distributions (`TokenFrequency`) and informativeness (`TokenInformation`). Local explanations use popular techniques: feature attribution scores (`LIME` [@Ribeiro2016a], `KernelSHAP` [@Lundberg2017]), feature subsets (`Anchors` [@Ribeiro2018]), local rule-based models (`LORE` [@Guidotti2018]), and counterfactual/contrastive explanations (`FoilTrees` [@Waa2018]). Built from generic components separating global and local explanation steps, these methods allow customization and enable scientific advances to be quickly integrated into operational processes (e.g., combine `KernelShap` sampling with `imodels` [@Singh2021] surrogate rules). Example configurations, such as `LIME` with default hyperparameters, ease adoption. **Explain** is provided by subpackage `text_explainability` [@text_explainability], which doubles as a standalone tool.
68+
**Explain** uses model-agnostic techniques [@Ribeiro2016b] to explain model behavior (*global*) and individual predictions (*local*). It summarizes model-labelled data, through prototypes (`K-Medoids`) or prototypes and criticisms (`MMDCritic` [@Kim2016]), and token distributions (`TokenFrequency`) and informativeness (`TokenInformation`). Local explanations use popular techniques: feature attribution scores (`LIME` [@Ribeiro2016a], `KernelSHAP` [@Lundberg2017]), feature subsets (`Anchors` [@Ribeiro2018]), local rule-based models (`LORE` [@Guidotti2018]), and counterfactual or contrastive explanations (`FoilTrees` [@Waa2018]). Built from generic components separating global and local explanation steps, these methods allow customization and enable scientific advances to be quickly integrated into operational processes (e.g., combine `KernelShap` sampling with `imodels` [@Singh2021] surrogate rules). Example configurations, such as `LIME` with default hyperparameters, ease adoption. **Explain** is provided by subpackage `text_explainability` [@text_explainability], which doubles as a standalone tool.
6969

70-
**Expose** gathers sensitivity insights via local/global testing. These insights can be used to, through relevant attributes, assess the *robustness* (e.g., the effect of typos on model performance), *security* (e.g., if inputs containing certain characters crash the model), and *fairness* (e.g., subgroup performance for protected attributes such as country of origin, gender, race or socioeconomic status) of the model. Relevant attributes can either be observed in the current data or generated from user-provided templates [@Ribeiro2020] filled with multi-language data generation [@Faker]. These attributes are then either summarized in performance metrics, compared to expected behavior [@Ribeiro2020], or assessed with fairness metrics for classification [@Mehrabi2021] and regression [@Agarwal2019]. Like **explain**, **expose** is also made from generic components, which allows users to customize data generation and tests. **Expose** is provided by the `text_sensitivity` subpackage [@text_sensitivity], which also doubles as a standalone tool.
70+
**Expose** gathers sensitivity insights via local and global testing regimes. These insights can be used to, through relevant attributes, assess the *robustness* (e.g., the effect of typos on model performance), *security* (e.g., if inputs containing certain characters crash the model), and *fairness* (e.g., subgroup performance for protected attributes such as country of origin, gender, race or socioeconomic status) of the model. Relevant attributes can either be observed in the current data or generated from user-provided templates [@Ribeiro2020] filled with multi-lingual data generation [@Faker]. These attributes are then either summarized in performance metrics, compared to expected behavior [@Ribeiro2020], or assessed with fairness metrics for classification [@Mehrabi2021] and regression [@Agarwal2019]. Like **explain**, **expose** is also made from generic components, which allows users to customize data generation and tests. **Expose** is provided by the `text_sensitivity` subpackage [@text_sensitivity], which also doubles as a standalone tool.
7171

7272
## Digestibles
7373

0 commit comments

Comments
 (0)