o
    8wi	                     @   sl   d dl 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
 G dd dee jZeG dd	 d	eZdS )
    N)	dataclassfield)OptionalUnion)PromptTuningConfig)PeftTypec                   @   s    e Zd ZdZdZdZdZdZdS )MultitaskPromptTuningInitTEXTRANDOMAVERAGE_SOURCE_TASKSEXACT_SOURCE_TASKONLY_SOURCE_SHAREDN)__name__
__module____qualname__r	   r
   r   r   r    r   r   g/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/peft/tuners/multitask_prompt_tuning/config.pyr      s    r   c                       s   e Zd ZU eejddidZeeef e	d< edddidZ
ee e	d< eddd	idZee e	d
< edddidZee e	d< edddidZee e	d<  fddZ  ZS )MultitaskPromptTuningConfighelpzHow to initialize the prompt tuning parameters. Can be one of TEXT, RANDOM, AVERAGE_SOURCE_TASKS, EXACT_SOURCE_TASK, ONLY_SOURCE_SHARED.)defaultmetadataprompt_tuning_initNz|The path of source state dict. This is required when training the downstream target prompt from the pretrained source prompt"prompt_tuning_init_state_dict_pathr   z!source task id for initializationprompt_tuning_init_task   ranks	num_ranksznumber of tasks	num_tasksc                    s   t    tj| _d S )N)super__post_init__r   MULTITASK_PROMPT_TUNING	peft_type)self	__class__r   r   r   <   s   
z)MultitaskPromptTuningConfig.__post_init__)r   r   r   r   r   r
   r   r   str__annotations__r   r   r   intr   r   r   __classcell__r   r   r#   r   r   $   s"   
 		r   )enumdataclassesr   r   typingr   r   peft.tuners.prompt_tuningr   
peft.utilsr   r%   Enumr   r   r   r   r   r   <module>   s   