PEFT documentation

Çok görevli istem ayarı

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.21.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Çok görevli istem ayarı

Çok görevli istem ayarı, her görev için ayrı bir istem yerine, her görevin yumuşak istemlerini tek bir öğrenilmiş, aktarılabilir isteme ayırır. Tek öğrenilmiş istem, çarpımsal düşük rütbeli güncellemelerle her göreve uyarlanabilir.

Makalenin özeti şudur:

Öğrenilen prompt vektörlerine koşullanarak temel ön eğitilmiş modelin her göreve uyarlanmasını sağlayan prompt tuning, büyük dil modellerinin birden fazla aşağı akış görevine verimli bir şekilde uyarlanması için umut verici bir yaklaşım olarak ortaya çıkmıştır. Ancak mevcut yöntemler genellikle yumuşak prompt vektörlerini sıfırdan öğrenir ve çoklu görev öğrenme ortamında prompt vektörleriyle zengin görevler arası bilginin nasıl kullanılacağı net değildir. Biz, önce birden fazla görev özel kaynak prompttan bilgi damıtılarak tek bir aktarılabilir promptun öğrenildiği, ardından bu paylaşılan promptun her aşağı akış hedef görevine verimli bir şekilde uyarlanması için çarpanlı düşük rütbeli güncellemelerin öğrenildiği çoklu görev prompt tuning (MPT) yöntemini öneriyoruz. 23 NLP veri seti üzerinde yapılan kapsamlı deneyler, yalnızca görev özel parametrelerin %0,035'i kadarını ayarlamasına rağmen önerdiğimiz yaklaşımın, bazı durumlarda tam ince ayar temel çizgisi de dahil olmak üzere en iyi yöntemlerden daha iyi performans gösterdiğini kanıtlamaktadır.

Multitask prompt tuning enables parameter-efficient transfer learning.

MPT iki aşamadan oluşur:

  1. source training - her görev için, yumuşak istemi (soft prompt), görev özelinde vektörlere ayrıştırılır. Görev özelindeki vektörler çarpılarak başka bir W matrisi oluşturulur ve W ile paylaşılan istem matrisi P arasında Hadamard çarpımı kullanılarak görev özelinde bir istem matrisi üretilir. Görev özelindeki istemler, tüm görevler arasında paylaşılan tek bir istem matrisine damıtılır (distilled). Bu istem, çoklu görev eğitimiyle (multitask training) eğitilir.
  2. hedef uyarlama - hedef bir görev için tek bir istemi uyarlamak amacıyla, bir hedef istem başlatılır ve paylaşılan istem matrisi ile görev özelindeki düşük rütbeli istem matrisinin Hadamard çarpımı olarak ifade edilir.
Prompt decomposition.

Karma performans değerlendirmesi genel bakış

Bu yöntem için henüz bir benchmark yoktur. Bir deneysel yapılandırma katkıda bulunmaktan çekinmeyin, ancak önce burada bir issue oluşturmaya özen gösterin.

API

MultitaskPromptTuningConfig

sınıf peft.MultitaskPromptTuningConfig

< >

( task_type: Optional[Union[str, TaskType]] = Nonepeft_type: Optional[Union[str, PeftType]] = Noneauto_mapping: Optional[dict] = Nonepeft_version: Optional[str] = Nonebase_model_name_or_path: Optional[str] = Nonerevision: Optional[str] = Noneinference_mode: bool = Falsenum_virtual_tokens: int = Nonetoken_dim: int = Nonenum_transformer_submodules: Optional[int] = Nonenum_attention_heads: Optional[int] = Nonenum_layers: Optional[int] = Nonemodules_to_save: Optional[list[str]] = Noneprompt_tuning_init: peft.tuners.multitask_prompt_tuning.config.MultitaskPromptTuningInit | str = <MultitaskPromptTuningInit.RANDOM: 'RANDOM'>prompt_tuning_init_text: str | None = Nonetokenizer_name_or_path: str | None = Nonetokenizer_kwargs: dict | None = Noneprompt_tuning_init_state_dict_path: str | None = Noneprompt_tuning_init_task: int | None = 0num_ranks: int | None = 1num_tasks: int | None = 1 )

MultitaskPromptEmbedding

sınıf peft.tuners.MultitaskPromptEmbedding

< >

( config: MultitaskPromptTuningConfigword_embeddings )

Update on GitHub