Servirea mai multor adaptoare LoRA în vLLM & Infrastructură LLM

Server & Invocare CLI vLLM 0.32.0 (octombrie 2026)

Un singur model de bază servește mai multe adaptoare LoRA; fiecare cerere alege adaptorul prin câmpul model.

Sintaxă & invocare
vllm serve MODEL --enable-lora --lora-modules NUME=CALE [NUME=CALE ...] [--max-loras N] [--max-lora-rank R]

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.

Comenzi înrudite