
    biM                    h    d dl mZ d dlmZmZ d dlmZmZ d dlm	Z	 d dl
mZ e G d de	             Zy)	    )annotations)	dataclassfield)OptionalUnion)
PeftConfig)PeftTypec                       e Zd ZU dZ edddi      Zded<    edddi      Zded	<    eddd
i      Zded<    fdZ	 xZ
S )LNTuningConfiga  
    This is the configuration class to store the configuration of a :class:`~peft.tuners.LNTuningModel`.

    Args:
        target_modules (`Optional[Union[List[str], str]]`):
            List of module names or regex expression of the module names to replace with LNTuning. For example,
            '.*decoder.*' or '.*encoder.*'. If this is not specified, modules will be chosen according to the model
            architecture. If the architecture is not known, an error will be raised -- in this case, you should specify
            the target modules manually.
        exclude_modules (`Optional[Union[List[str], str]]`):
            The names of the modules to not apply the adapter. When passing a string, a regex match will be performed.
            When passing a list of strings, either an exact match will be performed or it is checked if the name of the
            module ends with any of the passed strings.
        modules_to_save (`Optional[Union[List[str], str]]`):
            List of modules to be set as trainable and saved in the final checkpoint. For example, in Sequence
            Classification or Token Classification tasks, the final layer `classifier/score` are randomly initialized
            and as such need to be trainable and saved.
    NhelpaJ  List of module names or regex expression of the module names to replace with LNTuning.For example, '.*decoder.*' or '.*encoder.*'. If not specified, modules will be chosen according to the model architecture, If the architecture is not known, an error will be raised -- in this case, you shoud specify the target modules manually.)defaultmetadatazOptional[Union[list[str], str]]target_moduleszVList of module names or regex expression of the module names to exclude from LNTuning.exclude_moduleszList of modules to be set as trainable and saved in the final checkpoint. For example, in Sequence Classification or Token Classification tasks, the final layer `classifier/score` are randomly initialized and as such need to be trainable and saved.modules_to_savec                L    t         |           t        j                  | _        y )N)super__post_init__r	   	LN_TUNING	peft_type)self	__class__s    W/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/peft/tuners/ln_tuning/config.pyr   zLNTuningConfig.__post_init__D   s    !++    )__name__
__module____qualname____doc__r   r   __annotations__r   r   r   __classcell__)r   s   @r   r   r      s|    & 7<u

7N3 
 8=rs8O4  8= v
8O4 , ,r   r   N)
__future__r   dataclassesr   r   typingr   r   peft.configr   
peft.utilsr	   r    r   r   <module>r'      s1    # ( " "  .,Z ., .,r   