kabena — K-ABENA (v2.1.0)
Même modèle, ~28 % de calcul en moins. K-ABENA exclut à chaque époque une partie des exemples déjà appris et fait voter chaque exemple conservé au nom des dispensés (repondération Horvitz-Thompson) : le gradient reste design-unbiased — preuves et mesures dans le preprint.
La promesse : 2 lignes
EN — Note: the threshold K from the paper is not a constructor
argument — it is recomputed internally at every select() call. The knob
you tune is k_percentile (default 40.0).
FR — Note : le seuil K du papier n'est pas un argument du
constructeur — il est recalculé en interne à chaque appel de select().
ßLe réglage accessible est k_percentile (défaut 40.0).
from kabena import Kabena
kb = Kabena() # 1. défauts du preprint (v3, N=0.3)
for epoch in range(E):
losses = per_sample_loss(model, X, y)
active, w = kb.select(losses, y=y) # 2. masque + poids HT
model.fit(X[active], y[active], sample_weight=w[active])
print(kb.last_gain_) # fraction de calcul économisée
PyTorch : KabenaTorch().reduce(losses) · Keras : callback KabenaKeras ·
Hugging Face : KabenaTrainer.
Trois paramètres, pas un de plus
| Paramètre | Défaut | Rôle |
|---|---|---|
N |
0.3 |
proportion de mineures conservées (budget) |
strategy |
"auto" |
auto(=v3) / v3 / v2 / v1 — bascule transparente |
seed |
None |
reproductibilité du tirage |
v2 = mode régularisé optionnel (garde-fou automatique hors zone de
validité) · v1 = compatibilité 1.x.
Tutoriels — 4 familles × 3 niveaux
| Famille | Niveau 1 (notebook) | Niveau 2 (script) | Niveau 3 (MLOps) |
|---|---|---|---|
| ML classique (logistique, SVM, softmax) | notebook | script | train + serve + Docker |
| MLP / ANN (PyTorch et TF/Keras) | notebook | PyTorch · TensorFlow | pipeline TorchScript |
| CNN (PyTorch et TF/Keras) | notebook | PyTorch · TensorFlow | SavedModel / TF Serving |
| Transformer / NLP (Hugging Face) | notebook | DistilBERT | fine-tune + serve |
Reproduire le preprint (Reproducibility)
Chaque table du papier a son script seedé dans
validation/ :
| Table du preprint | Script |
|---|---|
| Table 1 — jeux réels, parité à coût réduit | table1_real_datasets.py |
| Table 2 — déséquilibre extrême 0,17 % | table2_extreme_imbalance.py |
| Table 3 — moments du gradient, bruit | table3_moments_noise.py |
| Table 4 — rivaux à budget égal (tests de permutation) | table4_rivals.py |
| §Sensitivity — grille K × N | table5_sensitivity.py |
python validation/run_all.py # les 5 tables (QUICK=1 pour un smoke test <2 min)
python experiments/playground.py --regime fraude --strategy v3 # bac à sable
Installation
EN — pip install kabena (core: numpy only, works with numpy 1.22 → 2.x).
Framework extras: pip install 'kabena[torch]' (note the quotes — required by
zsh, the default macOS shell). On Intel Macs, torch stops at 2.2.2 and the
extra automatically pins numpy<2 accordingly; on every other platform the
extra installs torch ≥ 2.3, which supports NumPy 2.
FR — pip install kabena (cœur : numpy seul, compatible numpy 1.22 → 2.x).
Extras framework : pip install 'kabena[torch]' (guillemets obligatoires sous
zsh, le shell par défaut sur Mac). Sur Mac Intel, torch s'arrête à 2.2.2 et
l'extra épingle automatiquement numpy<2 en conséquence ; sur toute autre
plateforme, l'extra installe torch ≥ 2.3, compatible NumPy 2.
pip install kabena # coeur (numpy seul)
pip install "kabena[sklearn]" # + helpers scikit-learn
pip install "kabena[torch]" # + intégration PyTorch
pip install "kabena[tensorflow]" # + intégration Keras
pip install "kabena[huggingface]" # + KabenaTrainer
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kabena-2.1.1.tar.gz.
File metadata
- Download URL: kabena-2.1.1.tar.gz
- Upload date:
- Size: 35.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66658eae1a5f18f3c2a6dbd4b8922d8b64a6cb7a7227f39876292b4d3afe6703
|
|
| MD5 |
549ac1f43c637032f56db63108b773da
|
|
| BLAKE2b-256 |
7c81da3373a433263fbedb7cb415ba6c9b469947136c09e408994982adeadff1
|
Provenance
The following attestation bundles were made for kabena-2.1.1.tar.gz:
Publisher:
release.yml on Bonbhel/kabena-ml
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kabena-2.1.1.tar.gz -
Subject digest:
66658eae1a5f18f3c2a6dbd4b8922d8b64a6cb7a7227f39876292b4d3afe6703 - Sigstore transparency entry: 2158328893
- Sigstore integration time:
-
Permalink:
Bonbhel/kabena-ml@6ae1ec23024f4f07166fb872508b049fcf8e8526 -
Branch / Tag:
refs/tags/v2.1.1 - Owner: https://github.com/Bonbhel
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6ae1ec23024f4f07166fb872508b049fcf8e8526 -
Trigger Event:
push
-
Statement type:
File details
Details for the file kabena-2.1.1-py3-none-any.whl.
File metadata
- Download URL: kabena-2.1.1-py3-none-any.whl
- Upload date:
- Size: 17.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db88f18959e2e11fa31b29beac79b71997896dc2c8351275b8f2f80bcca98941
|
|
| MD5 |
89353a29d8c81efe27f408671490b1cd
|
|
| BLAKE2b-256 |
901bd34f291ac869b72ab6529080d61616139251d75362cdb5c025ff939fce89
|
Provenance
The following attestation bundles were made for kabena-2.1.1-py3-none-any.whl:
Publisher:
release.yml on Bonbhel/kabena-ml
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kabena-2.1.1-py3-none-any.whl -
Subject digest:
db88f18959e2e11fa31b29beac79b71997896dc2c8351275b8f2f80bcca98941 - Sigstore transparency entry: 2158328987
- Sigstore integration time:
-
Permalink:
Bonbhel/kabena-ml@6ae1ec23024f4f07166fb872508b049fcf8e8526 -
Branch / Tag:
refs/tags/v2.1.1 - Owner: https://github.com/Bonbhel
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6ae1ec23024f4f07166fb872508b049fcf8e8526 -
Trigger Event:
push
-
Statement type: