Observed since 21 Oct, 10:04 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
AIBT: Adversarial Information Bottleneck Training for Privacy-Preserving Federated Learning
Privacy-preserving federated learning with information-theoretic privacy guarantees
AIBT (Adversarial Information Bottleneck Training) is a privacy-preserving federated learning framework that combines information bottleneck theory with adversarial training to achieve strong privacy guarantees while maintaining high model utility.
pip install aibt-fl
git clone https://github.com/aibt/aibt.git
cd aibt/aibt_package
pip install -e .
import torch
from aibt import AIBTFL, AIBTModel, create_aibt_model, evaluate_privacy
# Create an AIBT model for your data
model = create_aibt_model(
input_dim=13, # Number of input features
num_classes=2, # Number of output classes
latent_dim=64, # Latent space dimension
num_sensitive_classes=2 # Number of sensitive attribute classes
)
# Initialize AIBT Federated Learning
aibt = AIBTFL(
model=model,
num_clients=10,
device="cpu",
learning_rate=0.001,
lambda_kl=0.01, # KL divergence weight (Information Bottleneck)
lambda_adv=1.0, # Adversarial loss weight
)
# Setup clients with their data
aibt.setup_clients(
client_datasets=client_data, # List of (X, y) tuples per client
sensitive_data=client_sensitive # Optional: sensitive attributes
)
# Train with federated learning
history = aibt.train(
num_rounds=100,
local_epochs=5,
test_data=(X_test, y_test),
verbose=True
)
# Evaluate privacy
privacy_metrics = evaluate_privacy(
model=model,
train_data=(X_train, y_train),
test_data=(X_test, y_test),
device="cpu"
)
print(f"Membership Inference AUC: {privacy_metrics['membership_auc']:.4f}")
print(f"Privacy preserved: {privacy_metrics['membership_auc'] < 0.55}")
AIBT combines three key components:
Input → Encoder → Compressed Representation → Predictor → Output
↓
Adversary (tries to infer sensitive info)
↓
Gradient Reversal Layer
Loss Function:
L = L_task + λ₁ L_KL - λ₂ L_adv
L_task: Task-specific loss (e.g., cross-entropy)L_KL: KL divergence for information bottleneck compressionL_adv: Adversarial loss for privacy (with gradient reversal)AIBTFLMain federated learning class with AIBT training.
AIBTFL(
model, # AIBTModel instance
num_clients=10, # Number of federated clients
device="cpu", # Device (cpu/cuda)
learning_rate=0.001, # Learning rate
batch_size=32, # Batch size
lambda_kl=0.01, # KL divergence weight
lambda_adv=1.0, # Adversarial loss weight
lambda_grl=1.0, # Gradient reversal strength
)
AIBTModelComplete AIBT model with encoder, predictor, and adversary.
AIBTModel(
encoder, # Encoder network
predictor, # Task predictor
adversary, # Adversary network
lambda_kl=0.01, # KL weight
lambda_adv=1.0, # Adversarial weight
lambda_grl=1.0, # GRL strength
)
GradientReversalLayer: Reverses gradients during backprop for adversarial trainingVariationalEncoder: Information bottleneck encoder with reparameterizationMLPEncoder: MLP encoder for tabular dataPredictor: Task prediction headAdversary: Sensitive attribute classifierfrom aibt import evaluate_privacy, evaluate_membership_inference, evaluate_attribute_inference
# Complete privacy evaluation
metrics = evaluate_privacy(model, train_data, test_data, sensitive_train, sensitive_test)
# Individual attacks
mia_metrics = evaluate_membership_inference(model, train_data, test_data)
aia_metrics = evaluate_attribute_inference(model, X, sensitive_attrs)
| Parameter | Default | Description |
|---|---|---|
lambda_kl | 0.01 | KL divergence weight (compression) |
lambda_adv | 1.0 | Adversarial loss weight (privacy) |
lambda_grl | 1.0 | Gradient reversal strength |
latent_dim | 128 | Latent space dimension |
learning_rate | 0.001 | Optimizer learning rate |
batch_size | 32 | Training batch size |
lambda_kl: More compression, potentially lower accuracylambda_adv: Stronger privacy, may affect utilitylambda_kl ∈ [0.005, 0.02], lambda_adv ∈ [0.5, 2.0]If you use AIBT in your research, please cite:
@article{aibt2025,
title={Adversarial Information Bottleneck Training for Privacy-Preserving Federated Learning},
journal={IEEE Transactions on Neural Networks and Learning Systems},
year={2025}
}
MIT License - see LICENSE for details.
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 1.0.0 | 2 Feb 2026 | 10 |
This describes our collected data; it is not a security assessment.
Observed since 21 Oct, 10:04 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:078f8c75733da583ba2d410b9b7d29922565b5e37602564273885c01d7908a31