多任务处理方法

MTL-LoRA

配置类: MTLLoRAConfig

"MTL-LoRA:面向多任务学习的低秩适配方法"(Yang et al., 2024)。MTL-LoRA通过提升任务区分度与知识共享能力,将LoRA技术扩展至多任务学习(MTL)领域。该方法创新性地引入任务特定的低秩可学习矩阵\(\Lambda_t\)以更精准捕捉任务特征,并采用\(n\)个低秩上投影矩阵实现多样化信息共享。通过加权平均机制整合这些矩阵,实现跨任务的自适应知识迁移。具体而言,任务\(t\)的MTL-LoRA输出可表述为:

\[ h_t = (W + \Delta W_t)x_t = Wx_t + \sum_{i=1}^n\frac{\text{exp}(w_t^i/\tau)B^i}{\sum_{j=1}^n\text{exp}(w_t^{j}/\tau)}\Lambda_t A x_t \]

其中 \(\tau\) 控制权重分布的锐度。

MTL-LoRA 可通过 MultiTask 组合和包含 task_ids 列的数据集进行训练(参见 MultiTask Composition)。

示例:

from adapters import MTLLoRAConfig
import adapters.composition as ac

config = MTLLoRAConfig(
    r=8,
    alpha=16,
    n_up_projection=3,
)

model.add_adapter("i", config)
model.add_adapter("k", config)
model.add_adapter("l", config)

model.share_parameters(
    adapter_names=["i", "k", "l"],
)

model.active_adapters = ac.MultiTask("i", "k", "l")