API Reference¶
Welcome to the FusionBench API reference. This documentation covers all public classes, functions, and modules available in the FusionBench package.
Quick Links¶
- Algorithms - Fusion algorithms (ensemble, merging, mixing)
- Model Pool - Model management and loading
- Task Pool - Evaluation tasks and benchmarks
- Mixins - Reusable functionality
- Programs - Execution programs
- Utilities - Helper functions
Module Overview¶
Core Components¶
| Module | Description |
|---|---|
fusion_bench.method |
Fusion algorithms including ensemble, merging, mixing, and compression methods |
fusion_bench.modelpool |
Model pool implementations for managing and loading models |
fusion_bench.taskpool |
Task pool implementations for evaluation |
fusion_bench.mixins |
Reusable mixins for extending functionality |
fusion_bench.programs |
Program execution frameworks |
Supporting Modules¶
| Module | Description |
|---|---|
fusion_bench.utils |
Utility functions for logging, caching, data processing |
fusion_bench.models |
Model wrapper definitions |
fusion_bench.dataset |
Dataset definitions and loaders |
fusion_bench.metrics |
Evaluation metrics |
fusion_bench.tasks |
Task base classes |
fusion_bench.constants |
Constant definitions |
fusion_bench.optim |
Optimizers and learning rate schedulers |
Deprecated¶
| Module | Status |
|---|---|
fusion_bench.compat |
Legacy v0.1.x compatibility layer (deprecated) |
Base Classes¶
Algorithm Base¶
The base class for all fusion algorithms in FusionBench.
fusion_bench.BaseAlgorithm- Abstract base class defining the algorithm interfacefusion_bench.BaseModelFusionAlgorithm- Base class for model fusion algorithms
from fusion_bench import BaseAlgorithm
class MyAlgorithm(BaseAlgorithm):
def run(self, modelpool):
# implement the fusion logic
pass
Pool Base Classes¶
fusion_bench.BaseModelPool- Base class for managing and loading modelsfusion_bench.BaseTaskPool- Base class for evaluation tasks
Program Base¶
fusion_bench.BaseHydraProgram- Base class for Hydra-based execution programsfusion_bench.FabricModelFusionProgram- Program for fusing models with Lightning Fabric
Usage Examples¶
Using an Algorithm¶
from fusion_bench import SimpleAverageAlgorithm
# Create algorithm instance
algorithm = SimpleAverageAlgorithm(
weight_key="task_weight",
scale_factor=1.0
)
# Run fusion
merged_model = algorithm.run(modelpool)
Using Model Pool¶
from fusion_bench import CLIPVisionModelPool
# Load models from pool
modelpool = CLIPVisionModelPool.from_config("config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_TA8.yaml")
models = modelpool.load_models()
Using Task Pool¶
from fusion_bench import CLIPVisionModelTaskPool
# Evaluate model on tasks
taskpool = CLIPVisionModelTaskPool()
results = taskpool.evaluate(model)
Navigation¶
Browse the API documentation by category:
- Model Ensemble Algorithms - Simple and weighted ensembles
- Model Merging Algorithms - Linear interpolation and optimization-based methods
- Model Mixing Algorithms - Layer-level and MoE-based mixing
- Model Compression Algorithms - Pruning and compression techniques
- Training Algorithms - Fine-tuning and training methods