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 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 上更新