PEFT documentation

Chỉnh sửa prompt đa nhiệm

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

Chỉnh sửa prompt đa nhiệm

Điều chỉnh prompt đa nhiệm phân rã các prompt mềm của từng tác vụ thành một prompt duy nhất có thể học và chuyển giao, thay vì một prompt riêng cho mỗi tác vụ. Prompt duy nhất đã học này có thể được điều chỉnh cho từng tác vụ bằng các cập nhật hạng thấp nhân tính.

Tóm tắt từ bài báo là:

Prompt tuning, trong đó một mô hình dự huấn luyện cơ sở được điều chỉnh cho từng tác vụ thông qua việc điều kiện hóa trên các vector prompt đã học, đã nổi lên như một phương pháp đầy hứa hẹn để thích ứng hiệu quả các mô hình ngôn ngữ lớn với nhiều tác vụ hạ nguồn. Tuy nhiên, các phương pháp hiện tại thường học các vector prompt mềm từ đầu, và vẫn chưa rõ làm thế nào để khai thác tri thức chéo tác vụ phong phú bằng các vector prompt trong bối cảnh học đa tác vụ. Chúng tôi đề xuất multitask prompt tuning (MPT), trước tiên học một prompt có thể chuyển giao duy nhất bằng cách chưng cất tri thức từ nhiều prompt nguồn cụ thể cho từng tác vụ. Sau đó, chúng tôi học các cập nhật hạng thấp nhân lên trên prompt chung này để thích ứng hiệu quả với từng tác vụ hạ nguồn đích. Các thí nghiệm rộng rãi trên 23 bộ dữ liệu NLP cho thấy phương pháp do chúng tôi đề xuất vượt trội hơn các phương pháp tiên tiến nhất, bao gồm cả baseline full finetuning trong một số trường hợp, mặc dù chỉ điều chỉnh 0,035% số tham số cụ thể cho từng tác vụ.

Multitask prompt tuning enables parameter-efficient transfer learning.

MPT bao gồm hai giai đoạn:

  1. source training - đối với mỗi tác vụ, soft prompt của nó được phân rã thành các vector đặc thù cho tác vụ. Các vector đặc thù cho tác vụ được nhân với nhau để tạo thành một ma trận W khác, và tích Hadamard được sử dụng giữa W và một ma trận prompt chung P để tạo ra ma trận prompt đặc thù cho tác vụ. Các prompt đặc thù cho tác vụ được chưng cất thành một ma trận prompt duy nhất được chia sẻ giữa tất cả các tác vụ. Prompt này được huấn luyện với huấn luyện đa tác vụ.
  2. target adaptation - để điều chỉnh prompt đơn cho một tác vụ đích, một prompt đích được khởi tạo và biểu diễn dưới dạng tích Hadamard của ma trận prompt chung và ma trận prompt hạng thấp đặc thù cho tác vụ.
Prompt decomposition.

Tổng quan về benchmark

Chưa có benchmark nào cho phương pháp này. Bạn có thể đóng góp một cấu hình thí nghiệm nhưng hãy đảm bảo tạo một issue tại đây trước.

API

MultitaskPromptTuningConfig

lớp 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

lớp peft.tuners.MultitaskPromptEmbedding

< >

( config: MultitaskPromptTuningConfigword_embeddings )

Update on GitHub