PEFT 文档

多任务提示调优

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

多任务提示调优

多任务提示调优 将每个任务的软提示分解为一个单一的可学习、可转移的提示,而不是为每个任务使用单独的提示。这个单一的可学习提示可以通过乘法低秩更新来适应每个任务。

论文摘要如下:

提示调优是一种很有前途的方法,通过对学习到的提示向量进行条件化,将基础预训练模型适应于各个任务,从而有效地将大型语言模型适应于多个下游任务。然而,现有方法通常从头开始学习软提示向量,目前尚不清楚如何在多任务学习设置中利用提示向量丰富的跨任务知识。我们提出了多任务提示调优(MPT),它首先通过从多个特定任务的源提示中提炼知识来学习一个单一的可转移提示。然后,我们学习对这个共享提示进行乘法低秩更新,以有效地将其适应于每个下游目标任务。在 23 个 NLP 数据集上进行的大量实验表明,我们提出的方法优于最先进的方法,在某些情况下甚至优于全量微调的基线,尽管任务特定的参数仅调整了 0.035%。.

MultitaskPromptTuningConfig

class peft.MultitaskPromptTuningConfig

< >

( task_type: typing.Union[str, peft.utils.peft_types.TaskType, NoneType] = None peft_type: typing.Union[str, peft.utils.peft_types.PeftType, NoneType] = None auto_mapping: typing.Optional[dict] = None base_model_name_or_path: typing.Optional[str] = None revision: typing.Optional[str] = None inference_mode: bool = False num_virtual_tokens: int = None token_dim: int = None num_transformer_submodules: typing.Optional[int] = None num_attention_heads: typing.Optional[int] = None num_layers: typing.Optional[int] = None modules_to_save: typing.Optional[list[str]] = None prompt_tuning_init: typing.Union[peft.tuners.multitask_prompt_tuning.config.MultitaskPromptTuningInit, str] = <MultitaskPromptTuningInit.RANDOM: 'RANDOM'> prompt_tuning_init_text: typing.Optional[str] = None tokenizer_name_or_path: typing.Optional[str] = None tokenizer_kwargs: typing.Optional[dict] = None prompt_tuning_init_state_dict_path: typing.Optional[str] = None prompt_tuning_init_task: typing.Optional[int] = 0 num_ranks: typing.Optional[int] = 1 num_tasks: typing.Optional[int] = 1 )

MultitaskPromptEmbedding

class peft.tuners.MultitaskPromptEmbedding

< >

( config: MultitaskPromptTuningConfig word_embeddings )

< > 在 GitHub 上更新