multi-lora
什么是multi-lora
LoRA(Low-Rank Adaptation)是一种适用于大模型的轻量化微调技术方法。原理是通过在模型层中引入低秩矩阵,将大模型的权重降维处理,来实现高效的模型适配。相比于传统的微调方法,LoRA不仅能大幅减少所需的训练参数,还降低了显存和计算成本,加快了模型微调速度。对于VLLM来说,使用LoRA进行多任务部署具有以下优势:
- 资源节省:在大模型中引入LoRA,可以减少模型需要更新的参数量,从而节省NPU内存并提高推理速度。
- 轻量化适配:无需改变原始模型结构,通过低秩矩阵的调整即可适配不同任务。
- 多任务并行:支持同时加载多个LoRA模块,使得VLLM可以在不同任务间快速切换,提高多任务推理的效率。
约束限制
multi-lora特性不能和Chunked Prefill特性一起使用。
multi-lora特性使用说明
--enable-lora \ --lora-modules lora1=/path/to/lora/adapter1/ lora2=/path/to/lora/adapter2/ \ --max-lora-rank=16 \ --max-loras=32 \ --max-cpu-loras=32
参数说明如下:
- --enable-lora表示开启lora挂载。
- --lora-modules后面添加挂载的lora列表,要求lora地址权重是Huggingface格式,当前支持QKV-proj、O-proj、gate_up_proj、down_proj模块的挂载。发请求时model指定为lora1或者lora2即为LoRA推理。
- --max-lora-rank表示挂载lora的最大rank数量,支持8、16、32、64,选择lora1与lora2中rank数量的较大值,比如lora1对应16rank,lora2对应32rank,挂载lora的最大rank数量为32。
- --max-loras表示支持的最大lora个数,最大32。
- --max-cpu-loras要求配置和--max-loras相同。