Buckets:
| # Tuners | |
| A tuner (or adapter) is a module that can be plugged into a `torch.nn.Module`. `BaseTuner` base class for other tuners and provides shared methods and attributes for preparing an adapter configuration and replacing a target module with the adapter module. `BaseTunerLayer` is a base class for adapter layers. It offers methods and attributes for managing adapters such as activating and disabling adapters. | |
| ## BaseTuner[[peft.tuners.tuners_utils.BaseTuner]] | |
| - **model** (`torch.nn.Module`) -- | |
| The model to which the adapter tuner layers will be attached. | |
| - **forward** (`Callable`) -- | |
| The forward method of the model. | |
| - **peft_config** (`Union[`PeftConfig`, dict[str, PeftConfig]]`) -- | |
| The adapter configuration object, it should be a dictionary of `str` to `PeftConfig` objects. One can also | |
| pass a PeftConfig object and a new adapter will be created with the default name `adapter` or create a new | |
| dictionary with a key `adapter_name` and a value of that peft config. | |
| - **config** (`dict[str, Any]`) -- | |
| The model configuration object, it should be a dictionary of `str` to `Any` objects. | |
| - **targeted_module_names** (`list[str]`) -- | |
| The list of module names that were actually adapted. Can be useful to inspect if you want to quickly | |
| double-check that the `config.target_modules` were specified correctly. | |
| - **targeted_parameter_names** (`list[str]`) -- | |
| The list of parameter names that were actually adapted. Can be useful to inspect if you want to quickly | |
| double-check that the `config.target_parameters` were specified correctly. | |
| - **prefix** (`str`) -- | |
| The PEFT-method specific unique prefix. E.g. `"lora_"` for LoRA. | |
| A base tuner model that provides the common methods and attributes for all tuners that are injectable into a | |
| torch.nn.Module | |
| For adding a new Tuner class, one needs to overwrite the following methods: | |
| - **_prepare_adapter_config**: | |
| A private method to eventually prepare the adapter config, for example in case the field `target_modules` is | |
| missing. | |
| - **_create_and_replace**: | |
| A private method to create and replace the target module with the adapter module. | |
| - **_check_target_module_exists**: | |
| A private helper method to check if the passed module's key name matches any of the target modules in the | |
| adapter_config. | |
| The easiest is to check what is done in the `peft.tuners.lora.LoraModel` class. | |
| - **adapter_name** (str) -- Name of the adapter to be deleted. | |
| Deletes an existing adapter. | |
| Disable all adapters in-place. | |
| When disabling all adapters, the model output corresponds to the output of the base model. | |
| Enable all adapters in-place | |
| - **model** (`nn.Module`) -- | |
| Model to get the config from. | |
| - **default** (`dict|None`, *optional*) --: | |
| What to return if model does not have a config attribute. | |
| This method gets the config from a model in dictionary form. If model has not attribute config, then this | |
| method returns a default config. | |
| - **model** (`nn.Module`) -- | |
| The model to be tuned. | |
| - **adapter_name** (`str`) -- | |
| The adapter name. | |
| - **autocast_adapter_dtype** (`bool`, *optional*) -- | |
| Whether to autocast the adapter dtype. Defaults to `True`. | |
| - **low_cpu_mem_usage** (`bool`, `optional`, defaults to `False`) -- | |
| Create empty adapter weights on meta device. Useful to speed up the loading process. | |
| - **state_dict** (`dict`, *optional*, defaults to `None`) -- | |
| If a state_dict is passed here, the adapters will be injected based on the entries of the state_dict. | |
| This can be useful when the exact `target_modules` of the PEFT method is unknown, for instance because | |
| the checkpoint was created without meta data. Note that the values from the state_dict are not used, | |
| only the keys are used to determine the correct layers that should be adapted. | |
| Creates adapter layers and replaces the target modules with the adapter layers. This method is called under the | |
| hood by `peft.mapping.get_peft_model` if a non-prompt tuning adapter class is passed. | |
| The corresponding PEFT config is directly retrieved from the `peft_config` attribute of the BaseTuner class. | |
| - **adapter_names** (`list[str]`, *optional*) -- | |
| The list of adapter names that should be merged. If `None`, all active adapters will be merged. | |
| Defaults to `None`. | |
| - **safe_merge** (`bool`, *optional*) -- | |
| If `True`, the merge operation will be performed in a copy of the original weights and check for NaNs | |
| before merging the weights. This is useful if you want to check if the merge operation will produce | |
| NaNs. Defaults to `False`. | |
| This method merges the adapter layers into the base model. | |
| Merging adapters can lead to a speed up of the forward pass. A copy of the adapter weights is still kept in | |
| memory, which is required to unmerge the adapters. In order to merge the adapter weights without keeping them | |
| in memory, please call `merge_and_unload`. | |
| - **progressbar** (`bool`) -- | |
| whether to show a progressbar indicating the unload and merge process (default: False). | |
| - **safe_merge** (`bool`) -- | |
| whether to activate the safe merging check to check if there is any potential Nan in the adapter | |
| weights. | |
| - **adapter_names** (`List[str]`, *optional*) -- | |
| The list of adapter names that should be merged. If None, all active adapters will be merged. Defaults | |
| to `None`. | |
| This method merges the adapter layers into the base model. | |
| This is needed if someone wants to use the base model as a standalone model. The returned model has the same | |
| architecture as the original base model. | |
| It is important to assign the returned model to a variable and use it, this is not an in-place operation! | |
| Example: | |
| ```py | |
| >>> from transformers import AutoModelForCausalLM | |
| >>> from peft import PeftModel | |
| >>> model_id = ... | |
| >>> base_model = AutoModelForCausalLM.from_pretrained(model_id) | |
| >>> peft_model_id = ... | |
| >>> model = PeftModel.from_pretrained(base_model, peft_model_id) | |
| >>> merged_model = model.merge_and_unload() | |
| ``` | |
| - **adapter_name** (str, list[str]) -- | |
| The name(s) of the adapter(s) to set as active | |
| - **inference_mode** (bool, optional) -- | |
| Whether the activated adapter should be frozen (i.e. `requires_grad=False`). Default is False. | |
| Set the active adapter(s). | |
| - **adapter_names** (`str` or `Sequence[str]`) -- | |
| The name of the adapter(s) whose gradients should be enabled/disabled. | |
| - **requires_grad** (`bool`, *optional*) -- | |
| Whether to enable (`True`, default) or disable (`False`). | |
| Enable or disable gradients on the given adapter(s). | |
| Whether it is possible for the adapter of this model to be converted to LoRA. | |
| Normally, this works if the PEFT method is additive, i.e. W' = W_base + delta_weight. | |
| Return the base model by removing all the PEFT modules. | |
| It is important to assign the returned model to a variable and use it, this is not an in-place operation! | |
| This method unmerges all merged adapter layers from the base model. | |
| ## BaseTunerLayer[[peft.tuners.tuners_utils.BaseTunerLayer]] | |
| - **is_pluggable** (`bool`, *optional*) -- | |
| Whether the adapter layer can be plugged to any pytorch module | |
| - **active_adapters** (Union[List`str`, `str`], *optional*) -- | |
| The name of the active adapter. | |
| A tuner layer mixin that provides the common methods and attributes for all tuners. | |
| - **adapter_name** (`str`) -- The name of the adapter to delete | |
| Delete an adapter from the layer | |
| This should be called on all adapter layers, or else we will get an inconsistent state. | |
| This method will also set a new active adapter if the deleted adapter was an active adapter. It is important | |
| that the new adapter is chosen in a deterministic way, so that the same adapter is chosen on all layers. | |
| - **enabled** (bool) -- True to enable adapters, False to disable adapters | |
| Toggle the enabling and disabling of adapters | |
| Takes care of setting the requires_grad flag for the adapter weights. | |
| (Recursively) get the base_layer. | |
| This is necessary for the case that the tuner layer wraps another tuner layer. | |
| Return the weight of the base layer. | |
| This takes care of potentially dequantizing the weight if it is quantized. | |
| - **adapter_names** (`str` or `list[str]`) -- | |
| The name(s) of the adapter(s) to set as active. | |
| - **inference_mode** (bool, optional) -- | |
| Whether the activated adapter should be frozen (i.e. `requires_grad=False`). Default is False. | |
| Set the active adapter(s). | |
| Additionally, this function will set the specified adapter to trainable (i.e., requires_grad=True) unless | |
| inference_mode is True. | |
| Sets the base weight of the base layer to the new tensor | |
| This works also with quantized weights. | |
| - **adapter_names** (`str` or `Sequence[str]`) -- | |
| The name of the adapter(s) whose gradients should be enabled/disabled. | |
| - **requires_grad** (`bool`, *optional*) -- | |
| Whether to enable (`True`, default) or disable (`False`). | |
| Enable or disable gradients on the given adapter(s). | |
| Whether it is possible for this layer type to be converted to LoRA. | |
| Normally, this works if the PEFT method is additive, i.e. W' = W_base + delta_weight. | |
Xet Storage Details
- Size:
- 8.94 kB
- Xet hash:
- 914648a9482f9dc6847709a7530e73cc1d803821e5dbe5418c7754e7790ecc7a
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.