SmashConfig
SmashConfig
is an essential tool in pruna for configuring parameters to optimize your models.
The SmashConfig
contains configuration for pruna. You can see the configuration for different components in the Customize components section.
Usage examples SmashConfig
This manual explains how to define and use a SmashConfig
.
from pruna import SmashConfig
smash_config = SmashConfig()
After creating an empty SmashConfig
, you can set activate a algorithm by adding it to the SmashConfig
:
smash_config['quantizer'] = 'hqq'
Additionally, you can overwrite the defaults of the Algorithms you have added by setting the hyperparameters in the SmashConfig
:
smash_config['hqq_weight_bits'] = 4
You’re done! You created your SmashConfig
and can now pass it to the smash function.
Class API SmashConfig
- class SmashConfig(max_batch_size=None, batch_size=1, device=None, cache_dir_prefix='/home/docs/.cache/pruna', configuration=None)
Wrapper class to hold a ConfigSpace Configuration object as a Smash configuration.
- Parameters:
max_batch_size (int, optional) – Deprecated. The number of batches to process at once. Default is 1.
batch_size (int, optional) – The number of batches to process at once. Default is 1.
device (str | torch.device | None, optional) – The device to be used for smashing, e.g., ‘cuda’ or ‘cpu’. Default is None. If None, the best available device will be used.
cache_dir_prefix (str, optional) – The prefix for the cache directory. If None, a default cache directory will be created.
configuration (Configuration, optional) – The configuration to be used for smashing. If None, a default configuration will be created.
- add_data(arg)
- add_data(dataset_name, *args, **kwargs)
- add_data(datasets, collate_fn, *args, **kwargs)
- add_data(datasets, collate_fn, *args, **kwargs)
- add_data(datamodule)
Add data to the SmashConfig.
- Parameters:
arg (Any) – The argument to be used.
- add_processor(processor)
Add a processor to the SmashConfig.
- Parameters:
processor (str | transformers.AutoProcessor) – The processor to be added to the SmashConfig.
- Return type:
None
- add_tokenizer(tokenizer)
Add a tokenizer to the SmashConfig.
- Parameters:
tokenizer (str | transformers.AutoTokenizer) – The tokenizer to be added to the SmashConfig.
- Return type:
None
- flush_configuration()
Remove all algorithm hyperparameters from the SmashConfig.
Examples
>>> config = SmashConfig() >>> config['cacher'] = 'deepcache' >>> config.flush_configuration() >>> config SmashConfig()
- Return type:
None
- load_dict(config_dict)
Load a dictionary of hyperparameters into the SmashConfig.
- Parameters:
config_dict (dict) – The dictionary to load into the SmashConfig.
- Return type:
None
Examples
>>> config = SmashConfig() >>> config.load_dict({'cacher': 'deepcache', 'deepcache_interval': 4}) >>> config SmashConfig( 'cacher': 'deepcache', 'deepcache_interval': 4, )