Przejdź do głównej zawartości

vLLM

vLLM to szybka i łatwa w użyciu biblioteka do wnioskowania i serwowania LLM.

Wybierz i załaduj model

Wybierz dowolny model, który chcesz serwować. W tym przykładzie użyjemy Llama‑3.2‑3B‑Instruct (~7 GiB).

Utwórz wolumen

Upewnij się, że montujesz wolumen, który jest wystarczająco duży, aby pomieścić wszystkie pliki. Jeśli planujesz utworzyć wolumen repozytorium modeli, przeznacz co najmniej 200 GB miejsca. Możesz później rozszerzyć wolumen w razie potrzeby.

cgc volume create -s 200 models

Użyj repozytorium HuggingFace

Jeśli wybrany model jest dostępny w repozytorium HF, możesz po prostu przekazać jego nazwę podczas uruchamiania nowej instancji vLLM.
Należy pamiętać, że musisz zamontować wcześniej utworzony wolumen, ponieważ istnieją ograniczenia dotyczące efemerycznej pamięci. Ponadto nie chcesz pobierać modelu za każdym razem, gdy tworzysz nową instancję vLLM.

Aby kontynuować, przejdź do sekcji Jak uruchomić.

Umieść model w wolumenie

Najszybszym sposobem jest zrobienie tego ręcznie za pomocą interfejsu GUI filebrowser. Możesz uruchomić:

# Utwórz jeśli nie istnieje
cgc compute filebrowser create

# Zamontuj nowy wolumen
cgc volume mount models -t filebrowser

Aby sprawdzić token aplikacji i adres URL pod którym jest dostępna:

cgc compute list -d

Podczas logowania się do interfejsu webowego filebrowsera użyj nazwy użytkownika admin i tokenu aplikacji jako hasła.

W filebrowser pobierz wszystkie pliki modelu z Hugging Face i przeciągnij je na wolumen.

warning

Upewnij się, że pobierasz model w oryginalnym formacie PyTorch z Hugging Face, a nie w formacie GGUF.

Jak uruchomić

Model Huggingface

Aby uruchomić model HF, musisz upewnić się, że masz pozwolenie na pobranie modelu.
Będziesz musiał wygenerować nowy HF Token. Niektóre modele są ograniczone, więc musisz przejść na stronę karty modelu i zaakceptować warunki użytkowania.

cgc compute create vllm-openai -n <name> -d hf_token=<HF_TOKEN> -d model=<MODEL_NAME> -g <gpu_count> -gt <gpu_type> -c <cpu_count> -m <ram> -v <volume_name>

Aby uruchomić przykład Bielik: Przed zastosowaniem tego polecenia zmień token HF i przejdź do karty modelu Bielik, aby zaakceptować warunki użytkowania.

cgc compute create vllm-openai -n bielik-26 -d hf_token=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 -d model=speakleash/Bielik-11B-v2.6-Instruct -g 1 -gt a5000 -c 2 -m 24 -v models

CGC automatycznie używa twojego wolumenu do pobrania modelu.

Twój model

cgc compute create -n <name> -c 4 -m 8 -g 1 -gt A5000 -v models vllm-openai -d model=/media/models/Llama-3.2-3B-Instruct

Parametry

  • -n - nazwa instancji, która będzie używana w adresach URL
  • -c - rdzenie CPU, w większości przypadków nie więcej niż 4 są potrzebne
  • -m - pamięć, w większości przypadków nie więcej niż 8 GiB jest potrzebne
  • -g, -gt - liczba i typ GPU. Upewnij się, że vRAM jest wystarczający dla modelu.
  • -v - wolumen z modelami
  • -d - flaga do definiowania argumentów

Argumenty

Poniższe argumenty należy przekazywać za pomocą flagi -d, na przykład -d model=... -d hf_token=....

  • model: (Wymagane) Ścieżka do folderu z modelem (np. /media/models/Llama-3.2-3B-Instruct) lub ID repozytorium z Hugging Face (np. speakleash/Bielik-11B-v2.6-Instruct).
  • hf_token: (Opcjonalnie) Twój token z Hugging Face. Potrzebny, jeśli ściągasz model z ograniczonym dostępem (gated).
  • trust_remote_code: (Opcjonalnie) Pozwala na uruchamianie zdalnego kodu z repozytorium modelu. Domyślnie opcja jest wyłączona.
  • download_dir: (Opcjonalnie) Folder, do którego mają być pobierane modele. Domyślnie: /media/models/huggingface.
  • max_model_len: (Opcjonalnie) Maksymalna długość sekwencji dla modelu. Domyślnie: 4096.
  • tensor_parallel_size: (Opcjonalnie) Liczba kart GPU, które mają zostać użyte do tensor parallelism. Pozwala to na uruchomienie modeli, które są za duże na jedno GPU.
  • max_num_batched_tokens: (Opcjonalnie) Maksymalna liczba tokenów w jednym batchu.
  • vllm_use_modelscope: (Opcjonalnie) Ustaw na true, żeby używać ModelScope do ładowania modelu.
  • vllm_use_precompiled: (Opcjonalnie) Ustaw na true, żeby używać prekompilowanych kerneli, co może przyspieszyć start.
  • vllm_use_v1: (Opcjonalnie) Określa wersję silnika vLLM.
  • uv_torch_backend: (Opcjonalnie) Definiuje backend dla UV Torch.

Używając -d możesz przekazać wszystkie argumenty dla polecenia vllm serve. Listę wszystkich możliwych argumentów można znaleźć tutaj.

Użycie API

Twój endpoint znajduje się pod adresem:

https://<name>.<NAMESPACE>.cgc-waw-01.comtegra.cloud/

Pobierz token API:

cgc compute list -d

Przykładowe wywołanie

curl -H "Authorization: Bearer $API_TOKEN" \
-H "Content-Type: application/json" \
-X POST \
-d '{
"model": "/media/models/Llama-3.2-3B-Instruct",
"messages": [
{"role":"user","content":"Hello!"}
]
}' \
https://<name>.<NAMESPACE>.cgc-waw-01.comtegra.cloud/v1/chat/completions