Karim Galliamov
Concept Bottleneck Models (CBMs) aim to deliver interpretable predictions by
routing decisions through a human-understandable concept layer, yet they often
suffer reduced accuracy and concept leakage that undermines faithfulness. We
introduce an explicit Information Bottleneck regularizer on the concept layer that
penalizes
This repo contains code for Concepts' Information Bottleneck Models, accepted at ICLR 2026.
For an introduction to our work, visit the project webpage.
1. Clone the repository:
git clone https://github.com/dsb-ifi/cibm.git
cd cibm2. Create a conda environment and install dependencies:
conda create -n cibm python=3.10 -y
conda activate cibm
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txtDownload the CUB-200-2011 dataset and place it at ../data/CUB/CUB_200_2011/ relative to the repo root. The directory should contain train.pkl, val.pkl, test.pkl, and the images/ folder.
For AwA2 experiments, download the xlsa17 splits and the AwA2 predicates and place them at ../data/xlsa17/data/AWA2/ and ../data/AwA2-data/Animals_with_Attributes2/ respectively.
Train a basic CBM on CUB (backbone frozen, using Inception V3 embeddings):
python ./src/train.py \
--model_arch '[2048]' \
--dataset_name=CUB \
--is_stochastic=False \
--train_backbone=False \
--epochs=100 \
--lr=0.0003We provide a script that trains a Basic CBM, an IB-CBM (variational), and an IB-CBM (entropy surrogate) sequentially on CUB-200-2011:
bash train_cub_demo.shCheckpoints are saved to logs/<timestamp>/model.pth. Each run also produces intervention curves, loss plots, and a summary in its log directory.
| Flag | Description |
|---|---|
--is_stochastic |
True for stochastic (IB-capable) encoder, False for deterministic CBM |
--use_HC |
Use entropy-based surrogate |
--beta |
Initial Lagrange multiplier for the IB constraint |
--beta_lr |
Learning rate for dual Lagrangian update (set 0.0 to fix |
--train_backbone |
Fine-tune the ResNet-50 backbone end-to-end |
--dataset_name |
CUB or AWA2_emb
|
--log_base |
Base directory for saving logs and checkpoints (default: logs) |
--measure_intervention |
Run test-time intervention evaluation after training |
--measure_robustness |
Run noise-robustness evaluation after training |
If you find our work useful, please consider citing our paper.
@inproceedings{galliamov2026,
title={Concepts' Information Bottleneck Models},
author={Galliamov, Karim and Kazmi, Syed M Ahsan and Khan, Adil and Ram\'irez Rivera, Ad\'in},
booktitle={The Fourteenth International Conference on Learning Representations},
year={2026},
url={https://openreview.net/forum?id=JGIYfwaNpT}
}