Ce face Servirea mai multor adaptoare LoRA
Cu --enable-lora și --lora-modules, serverul încarcă adaptoarele la pornire. Fiecare adaptor apare în /v1/models alături de modelul de bază, iar o cerere îl alege prin parametrul model. Cererile pentru adaptoare diferite și pentru modelul de bază se procesează în paralel, în limita --max-loras (adaptoare într-un batch, implicit 1).
--lora-modules acceptă formatul vechi nume=cale sau JSON cu name, path și base_model_name. --max-lora-rank (implicit 16) trebuie să fie cel puțin rangul celui mai mare adaptor, dar nu mult peste, pentru că irosește memorie. --lora-target-modules limitează LoRA la anumite module.
Adaptoarele se pot încărca și descărca în timpul rulării prin /v1/load_lora_adapter și /v1/unload_lora_adapter, dacă VLLM_ALLOW_RUNTIME_LORA_UPDATING=True. Documentația avertizează că funcția are riscuri de securitate și nu este pentru producție decât în medii izolate și de încredere.
Sintaxă și opțiuni
| Opțiune / Parametru | Descriere |
|---|---|
--enable-lora |
Activează adaptoarele LoRA. |
--lora-modules |
Adaptoarele servite: nume=cale sau JSON. |
--max-loras |
Adaptoare într-un batch. Implicit 1. |
--max-lora-rank |
Rangul maxim. Implicit 16; valori: 1, 8, 16, 32, 64, 128, 256, 320, 512. |
--max-cpu-loras |
Adaptoare păstrate în memoria CPU (cel puțin --max-loras). |
--lora-target-modules |
Module cu LoRA, de exemplu o_proj qkv_proj. |
VLLM_ALLOW_RUNTIME_LORA_UPDATING |
Permite încărcarea dinamică prin API. |
Exemple practice
Exemplul 1: Server cu un adaptor
vllm serve meta-llama/Llama-3.2-3B-Instruct \
--enable-lora \
--lora-modules sql-lora=jeeejeee/llama32-3b-text2sql-spider
Exemplul 2: Cerere către adaptor
curl http://localhost:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "sql-lora",
"prompt": "San Francisco is a",
"max_tokens": 7,
"temperature": 0
}' | jq
Exemplul 3: Formatul JSON cu modelul de bază
--lora-modules '{"name": "sql-lora", "path": "jeeejeee/llama32-3b-text2sql-spider", "base_model_name": "meta-llama/Llama-3.2-3B-Instruct"}'
Exemplul 4: Încărcare dinamică
La succes, răspunsul este Success: LoRA adapter 'sql_adapter' added successfully.
export VLLM_ALLOW_RUNTIME_LORA_UPDATING=True
curl -X POST http://localhost:8000/v1/load_lora_adapter \
-H "Content-Type: application/json" \
-d '{
"lora_name": "sql_adapter",
"lora_path": "/path/to/sql-lora-adapter"
}'
Greșeli frecvente și bune practici
- Setezi
--max-lora-rank 256„ca să fie”. Documentația recomandă rangul maxim real al adaptoarelor (de exemplu 64). - Încarci adaptoare cu rang mai mare decât
--max-lora-rank. - Activezi actualizarea dinamică pe un server expus public.