多任务提示微调
多任务提示微调 将每个任务的软提示分解为单个学习到的可转移提示,而不是每个任务单独使用一个提示。可以通过乘法低秩更新来适应每个任务的单个学习到的提示。
论文的摘要是
提示微调,其中通过对学习到的提示向量进行条件化,将预训练的基本模型适配到每个任务,已成为一种很有前景的方法,可以有效地将大型语言模型适配到多个下游任务。然而,现有方法通常从头开始学习软提示向量,并且尚不清楚如何在多任务学习设置中利用提示向量中的丰富跨任务知识。我们提出了多任务提示微调 (MPT),它首先通过从多个特定于任务的源提示中提取知识来学习单个可转移提示。然后,我们学习对这个共享提示进行乘法低秩更新,以有效地将其适配到每个下游目标任务。在 23 个 NLP 数据集上进行的大量实验表明,我们提出的方法优于最先进的方法,在某些情况下甚至超过了完全微调基线,尽管仅调整了 0.035% 的特定于任务的参数。
.MultitaskPromptTuningConfig
类 peft.MultitaskPromptTuningConfig
< 源代码 >( peft_type: Union = None auto_mapping: Optional = None base_model_name_or_path: Optional = None revision: Optional = None task_type: Union = None inference_mode: bool = False num_virtual_tokens: int = None token_dim: int = None num_transformer_submodules: Optional = None num_attention_heads: Optional = None num_layers: Optional = None prompt_tuning_init: Union = <MultitaskPromptTuningInit.RANDOM: 'RANDOM'> prompt_tuning_init_text: Optional = None tokenizer_name_or_path: Optional = None tokenizer_kwargs: Optional = None prompt_tuning_init_state_dict_path: Optional = None prompt_tuning_init_task: Optional = 0 num_ranks: Optional = 1 num_tasks: Optional = 1 )
MultitaskPromptEmbedding
类 peft.tuners.MultitaskPromptEmbedding
< 源代码 >( config: MultitaskPromptTuningConfig word_embeddings )