特性介绍
LoRA(Low-Rank Adaptation)是一种高效的参数微调方法。将大模型的权重矩阵分解为原始权重矩阵和两个低秩矩阵的乘积,即W' = W + BA。由于B和A矩阵参与训练的参数量远小于原始权重,其乘积结果又能合入线性层并向下传递,从而达到大模型轻量级微调的目的。
Multi-LoRA指基于一个基础模型,使用多个不同的LoRA权重进行推理。每个请求带有指定的LoRA ID,推理时动态匹配对应的LoRA权重。部署服务时,LoRA权重和基础模型权重预先加载至显存中。一个推理请求至多使用一个LoRA权重,兼容推理请求不使用Lora权重的情况。对于大参数量的模型,若模型参数量过大,无法单卡加载时,可进行Tensor Parallel并行。
LoRA权重中需包含"adapter_config.json"和"adapter_model.safetensors"文件,文件描述如表1所示。
文件名称 |
文件描述 |
示例 |
---|---|---|
adapter_config.json |
包含LoRA权重的超参。 |
lora_rank(LoRA 微调中的秩大小),lora_alpha(LoRA低秩矩阵的缩放系数)等。 |
adapter_model.safetensors |
包含权重,权重以键值对的形式保存,其中LoRA权重的键名在基础模型的键名前后增加"base_model.model"前缀和"lora_A.weight"、"lora_B.weight"后缀。 |
当基础模型中的键名为"model.layers.9.self_attn.v_proj.weight"时,则LoRA权重中对应的键名应为"base_model.model.model.layers.9.self_attn.v_proj.lora_A.weight"和"base_model.model.model.layers.9.self_attn.v_proj.lora_B.weight"。 |