问题域/PD-378

LoRA动态适配

LoRA Dynamic Adapter

运行时动态加载和切换多个LoRA适配器,实现单基座模型多任务服务

子问题

1.适配器LRU缓存管理

2.批量LoRA高效推理

3.适配器来源解析

4.显存预算控制

5.先加载后驱逐的缓存安全策略

6.Pin 机制防止高频适配器被 LRU 驱逐

7.多模态模型的 per-prefix Punica wrapper 分离

8.多格式权重加载与 PEFT 配置验证

各项目的解法1 solutions

Signals

横向对比

维度vLLM
缓存架构双层 LRU:CPU 注册缓存 + GPU 活跃缓存,各自独立容量控制
驱逐策略先加载后驱逐 + Pin 防驱逐,LRU 淘汰非 pinned 最旧项
计算引擎Punica 批量 GEMM,per-token LoRA 索引映射,sgmv/bgmv 双路径
适配器来源插件式 LoRAResolverRegistry,支持文件系统和 HF Hub 双解析器
权重格式safetensors/bin/pt/Tensorizer 四格式优先级链 + PEFT 配置验证
槽位管理固定大小 lora_index_to_id 数组,预分配 GPU 权重缓冲区避免碎片
多模态支持per-prefix PunicaWrapper 映射,language/tower/connector 各自独立 wrapper

最佳实践

1.使用LRU缓存管理活跃适配器数量

2.通过Punica实现批量LoRA融合推理

3.固定大小 GPU 槽位数组避免显存碎片化

4.先验证适配器有效性再驱逐旧缓存项

5.双层 pin 同时锁定 CPU 和 GPU 缓存