PEFT 文件

Polytropon

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

Polytropon

Polytropon 是一種多工模型,其“庫存”中有許多不同的 LoRA 介面卡。該模型透過路由函式從庫存中學習介面卡的正確組合,以為特定任務選擇最佳的模組子集。PEFT 還支援用於 Polytropon 的 多頭介面卡路由 (MHR),它透過更細粒度地組合介面卡頭來構建和改進路由函式。介面卡頭被分離成不相交的塊,併為每個塊學習不同的路由函式,從而實現更強的表達能力。

在多工學習中組合模組化技能
用於跨任務泛化的多頭介面卡路由

論文摘要如下:

模組化設計鼓勵神經模型解耦和重組知識的不同方面,以更系統地泛化到新任務。在這項工作中,我們假設每個任務都與一個(可能很小的)庫存中的潛在離散技能子集相關聯。反過來,技能對應於引數高效(稀疏/低秩)的模型引數化。透過共同學習這些技能和任務-技能分配矩陣,每個任務的網路被例項化為活動技能引數的平均值。為了支援任務間技能的非平凡軟分割槽,我們嘗試了一系列歸納偏置,例如印度自助餐過程先驗和雙速學習率。我們在兩個主要設定中評估我們的潛在技能模型:1) 在 BabyAI 平臺的 8 個級別上進行基於指令的強化學習多工;2) 在 CrossFit 基準(包含 160 個 NLP 任務)上對預訓練的文字到文字生成模型進行少樣本適應。我們發現,與知識在任務間糾纏的全共享、特定任務或條件生成引數的基線相比,網路的模組化設計顯著提高了強化學習中的樣本效率和監督學習中的少樣本泛化能力。此外,我們展示了離散技能如何有助於可解釋性,因為它們產生了明確的任務層次結構。

PolyConfig

class peft.PolyConfig

< >

( 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 r: int = 8 target_modules: Optional[Union[list[str], str]] = None exclude_modules: Optional[Union[list[str], str]] = None modules_to_save: Optional[list[str]] = None init_weights: bool = True poly_type: Literal['poly'] = 'poly' n_tasks: int = 1 n_skills: int = 4 n_splits: int = 1 )

引數

  • r (int) — Poly 中每個 LoRA 的注意力維度。
  • target_modules (Union[List[str],str]) — 應用 Poly 的模組名稱。
  • exclude_modules (Optional[Union[List[str], str]]) — 不應用介面卡的模組名稱。當傳入字串時,將執行正則表示式匹配。當傳入字串列表時,將執行精確匹配或檢查模組名稱是否以任何傳入的字串結尾。
  • modules_to_save (List[str]) — 除了 Poly 層之外,將被設定為可訓練並儲存在最終檢查點中的模組列表。
  • init_weights (bool) — 是否對 Poly 權重進行初始化。
  • poly_type (Literal["poly"]) — 要使用的 Poly 模組的變體。目前僅支援 "poly"。
  • n_tasks (int) — 多工場景中的任務數量。
  • n_skills (int) — 每個 Poly 層中的技能(LoRA)數量。
  • n_splits (int) — Poly 層中每個 LoRA 內的分裂數量。大於 1 的值表示使用多頭路由 (MHR)。

這是用於儲存 PolyModel 配置的配置類。

PolyModel

class peft.PolyModel

< >

( model peft_config: Union[PeftConfig, dict[str, PeftConfig]] adapter_name: str low_cpu_mem_usage: bool = False state_dict: Optional[dict[str, torch.Tensor]] = None )

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.