Configuration Reference
The config.yaml file acts as the ultimate source of truth for a FedPilot experiment. It defines the ML models, the federated schemas, network topologies, and privacy constraints.
Below is an overview of the most critical configuration blocks.
Hardware & Framework
device: "cuda" # "cpu" or "cuda"
gpu_index: "0:4" # Multi-GPU support (e.g., use GPUs 0,1,2,3)
placement_group_strategy: "SPREAD" # Ray placement strategy
runtime_engine: "torch" # Engine backend
Models & Datasets
FedPilot abstracts the data loading and model instantiation.
model_type: "resnet18" # Options: cnn, lenet, resnet18/50, vgg16, mobilenet, vit, bert
pretrained_models: false # Fetch pre-trained weights
dataset_type: "cifar10" # Options: mnist, fmnist, cifar10/100, femnist, shakespeare, bbc
Data Distribution & Heterogeneity
To simulate realistic federated learning, you must partition data across clients.
number_of_clients: 20
data_distribution_kind: "90" # Options: iid, 20 (low non-iid), 50 (medium), 90 (high), dir (dirichlet)
dirichlet_beta: 0.1 # Controls the skew if kind="dir"
Federation Topologies & Schemas
Define the network graph and execution paradigm.
federated_learning_schema: "DecentralizedFederatedLearning"
federated_learning_topology: "k_connected"
k_value: 3 # If k_connected, number of neighbors per node
adjacency_matrix_file_name: null # Provide a custom .csv graph
Training & Aggregation
learning_rate: 0.001
optimizer: "sgd"
number_of_epochs: 5 # Local training epochs before aggregation
federated_learning_rounds: 100 # Total global synchronization rounds
aggregation_strategy: "FedProx" # Options: FedAvg, FedProx
aggregation_sample_scaling: true # Scale weight updates by local sample count
Model Compression
To reduce network bottlenecks, you can chunk and sparsify the model weights before transmission.
chunking: true # Enable model segmentation
chunking_parts: 50 # Split model into N parts
sensitivity_percentage: 80 # Only transmit the top 80% most important updates
distance_metric: "cosine" # Options: cosine, euclidean, coordinate
Advanced Security & Checkpointing
save_before_aggregation_models: false # Save local client checkpoints
save_global_models: true # Save the global consensus model
dp_enabled: true # Enable Differential Privacy (DP-SGD)
dp_epsilon: 1.0 # Lower is more private
Telemetry & Dashboard Integration
See Layer 6 for deep-dive DP tuning guides and Layer 7 for OpenTelemetry properties.