|
| 1 | +# 🚀 **Przewodnik Szybkiego Startu** dla `speakleash/Bielik-11B-v2.3-Instruct-FP8` z **vLLM** & **LLM‑Router** |
| 2 | + |
| 3 | +Ten przewodnik prowadzi Cię krok po kroku przez: |
| 4 | + |
| 5 | +1. **Instalację vLLM** i modelu `speakleash/Bielik-11B-v2.3-Instruct-FP8`. |
| 6 | +2. **Instalację LLM‑Router** (bramki API). |
| 7 | +3. **Uruchomienie routera** z konfiguracją modeli dostarczoną w `models-config.json`. |
| 8 | + |
| 9 | +Wszystkie polecenia zakładają, że pracujesz na systemie Unix‑like (Linux/macOS) z **Python 3.10.6**, `virtualenv` oraz ( |
| 10 | +opcjonalnie) kartą GPU obsługującą CUDA 11.8. |
| 11 | + |
| 12 | +--- |
| 13 | + |
| 14 | +## 📋 **Wymagania wstępne** |
| 15 | + |
| 16 | +| Wymaganie | Szczegóły | |
| 17 | +|---------------|--------------------------------------------------------------| |
| 18 | +| **OS** | Ubuntu 20.04 + (lub dowolna nowsza dystrybucja Linux/macOS) | |
| 19 | +| **Python** | 3.10.6 (domyślna wersja projektu) | |
| 20 | +| **GPU** | CUDA 11.8 + (minimum 12 GB VRAM) **lub** środowisko CPU‑only | |
| 21 | +| **Narzędzia** | `git`, `curl`, `jq` (opcjonalnie, przydatne do testowania) | |
| 22 | +| **Sieć** | Dostęp do PyPI oraz Hugging Face w celu pobrania modelu | |
| 23 | + |
| 24 | +--- |
| 25 | + |
| 26 | +## 1️⃣ **Utworzenie i aktywacja wirtualnego środowiska** |
| 27 | + |
| 28 | +```shell script |
| 29 | +# (opcjonalnie) utwórz katalog demo i przejdź do niego |
| 30 | +mkdir -p ~/bielik-demo && cd $_ |
| 31 | + |
| 32 | +# Inicjalizacja venv |
| 33 | +python3 -m venv .venv |
| 34 | +source .venv/bin/activate |
| 35 | + |
| 36 | +# Aktualizacja pip (zawsze dobry pomysł) |
| 37 | +pip install --upgrade pip |
| 38 | +``` |
| 39 | + |
| 40 | +--- |
| 41 | + |
| 42 | +## 2️⃣ Instalacja **vLLM** oraz pobranie modelu Bielik |
| 43 | + |
| 44 | +> Pełną instrukcję znajdziesz w pliku [`VLLM.md`](./VLLM.md). |
| 45 | +
|
| 46 | +--- |
| 47 | + |
| 48 | +## 3️⃣ **Uruchomienie serwera vLLM** |
| 49 | + |
| 50 | +Skopiuj do bieżącego katalogu dostarczony skrypt Bash (dostosuj ścieżkę, jeśli potrzebujesz) i uruchom go: |
| 51 | + |
| 52 | +```shell script |
| 53 | +cp path/to/llm-router/examples/quickstart/speakleash-bielik-11b-v2_3-Instruct/run-bielik-11b-v2_3-vllm.sh . |
| 54 | +chmod +x run-bielik-11b-v2_3-vllm.sh |
| 55 | + |
| 56 | +# Uruchom (warto w tmux/screen) |
| 57 | +./run-bielik-11b-v2_3-vllm.sh |
| 58 | +``` |
| 59 | + |
| 60 | +Serwer nasłuchuje na **`http://0.0.0.0:7000`** i udostępnia endpoint zgodny z OpenAI pod `/v1/chat/completions`. |
| 61 | + |
| 62 | +Możesz szybko go przetestować: |
| 63 | + |
| 64 | +```shell script |
| 65 | +curl http://localhost:7000/v1/chat/completions \ |
| 66 | + -H "Content-Type: application/json" \ |
| 67 | + -d '{ |
| 68 | + "model": "speakleash/Bielik-11B-v2.3-Instruct-FP8", |
| 69 | + "messages": [{"role": "user", "content": "Cześć, jak się masz?"}], |
| 70 | + "max_tokens": 100 |
| 71 | + }' | jq |
| 72 | +``` |
| 73 | + |
| 74 | +Powinieneś otrzymać odpowiedź w formacie JSON. |
| 75 | + |
| 76 | +--- |
| 77 | + |
| 78 | +## 4️⃣ Instalacja **LLM‑Router** |
| 79 | + |
| 80 | +```shell script |
| 81 | +# Sklonuj repozytorium (jeśli jeszcze go nie masz) |
| 82 | +git clone https://github.com/radlab-dev-group/llm-router.git |
| 83 | +cd llm-router |
| 84 | + |
| 85 | +# Instalacja core + API (w tym samym venv) |
| 86 | +pip install .[api] |
| 87 | + |
| 88 | +# (Opcjonalnie) wsparcie dla Prometheus |
| 89 | +pip install .[api,metrics] |
| 90 | +``` |
| 91 | + |
| 92 | +> **Uwaga:** Router używa tego samego wirtualnego środowiska, które utworzyłeś wcześniej, więc wszystkie zależności |
| 93 | +> pozostają odizolowane. |
| 94 | +
|
| 95 | +--- |
| 96 | + |
| 97 | +## 6️⃣ **Przygotowanie konfiguracji routera** |
| 98 | + |
| 99 | +Plik `models-config.json` znajdujący się w katalogu **speakleash‑bielik** już zawiera definicję naszego modelu: |
| 100 | + |
| 101 | +```json |
| 102 | +{ |
| 103 | + "speakleash_models": { |
| 104 | + "speakleash/Bielik-11B-v2.3-Instruct-FP8": { |
| 105 | + "providers": [ |
| 106 | + { |
| 107 | + "id": "bielik-11B_v2_3-vllm-local:7000", |
| 108 | + "api_host": "http://localhost:7000/", |
| 109 | + "api_type": "vllm", |
| 110 | + "input_size": 56000, |
| 111 | + "weight": 1.0 |
| 112 | + } |
| 113 | + ] |
| 114 | + } |
| 115 | + }, |
| 116 | + "active_models": { |
| 117 | + "speakleash_models": [ |
| 118 | + "speakleash/Bielik-11B-v2.3-Instruct-FP8" |
| 119 | + ] |
| 120 | + } |
| 121 | +} |
| 122 | +``` |
| 123 | + |
| 124 | +Skopiuj go (lub przenieś) do katalogu `resources/configs/` routera: |
| 125 | + |
| 126 | +```shell script |
| 127 | +mkdir -p resources/configs |
| 128 | +cp path/to/speakleash-bielik/models-config.json resources/configs/ |
| 129 | +``` |
| 130 | + |
| 131 | +--- |
| 132 | + |
| 133 | +## 6️⃣ Uruchomienie **LLM‑Router** |
| 134 | + |
| 135 | +### Lokalny Gunicorn |
| 136 | + |
| 137 | +W repozytorium znajduje się pomocniczy skrypt `run-rest-api-gunicorn.sh`. Upewnij się, że jest wykonywalny, a następnie |
| 138 | +go uruchom: |
| 139 | + |
| 140 | +```shell script |
| 141 | +chmod +x run-rest-api-gunicorn.sh |
| 142 | +./run-rest-api-gunicorn.sh |
| 143 | +``` |
| 144 | + |
| 145 | +Domyślne zmienne środowiskowe (można zmienić w skrypcie): |
| 146 | + |
| 147 | +| Zmienna | Domyślna wartość | Opis | |
| 148 | +|-----------------------------|----------------------------------------|-----------------------------------| |
| 149 | +| `LLM_ROUTER_SERVER_TYPE` | `gunicorn` | Backend serwera | |
| 150 | +| `LLM_ROUTER_SERVER_PORT` | `8080` | Port nasłuchiwania routera | |
| 151 | +| `LLM_ROUTER_MODELS_CONFIG` | `resources/configs/models-config.json` | Ścieżka do pliku konfiguracyjnego | |
| 152 | +| `LLM_ROUTER_USE_PROMETHEUS` | `1` (jeśli zainstalowano `metrics`) | Włącza endpoint `/api/metrics` | |
| 153 | + |
| 154 | +Router będzie dostępny pod **`http://0.0.0.0:8080/api`**. |
| 155 | +Pełna lista dostępnych zmiennych środowiskowych znajduje się w |
| 156 | +[opisie zmiennych środowiskowych](../../../llm_router_api/README.md#environment-variables) |
| 157 | + |
| 158 | +--- |
| 159 | + |
| 160 | +## 7️⃣ **Test pełnego stosu (router → vLLM)** |
| 161 | + |
| 162 | +```shell script |
| 163 | +curl http://localhost:8080/api/v1/chat/completions \ |
| 164 | + -H "Content-Type: application/json" \ |
| 165 | + -d '{ |
| 166 | + "model": "speakleash/Bielik-11B-v2.3-Instruct-FP8", |
| 167 | + "messages": [{"role": "user", "content": "Opowiedz krótki żart."}], |
| 168 | + "max_tokens": 80 |
| 169 | + }' | jq |
| 170 | +``` |
| 171 | + |
| 172 | +Zapytanie przechodzi przez **LLM‑Router**, który przekazuje je do lokalnego serwera vLLM, a odpowiedź zostaje zwrócona w |
| 173 | +formacie JSON. |
| 174 | + |
| 175 | +--- |
| 176 | + |
| 177 | +## 🚀 **Uruchamianie przykładów** |
| 178 | + |
| 179 | +W folderze [`examples/`](../../../examples) znajduje się szereg przykładów (LangChain, LlamaIndex, OpenAI SDK, LiteLLM, |
| 180 | +Haystack). Aby je uruchomić: |
| 181 | + |
| 182 | +1. **Ustaw adres routera** – w środowisku (`LLM_ROUTER_HOST`) lub w pliku `examples/constants.py`: |
| 183 | + |
| 184 | +```shell script |
| 185 | +export LLM_ROUTER_HOST="http://localhost:8080/api" |
| 186 | + |
| 187 | +# lub w Pythonie (constants.py): |
| 188 | +HOST = "http://localhost:8080/api" |
| 189 | +``` |
| 190 | + |
| 191 | +2. **Zainstaluj zależności przykładów** |
| 192 | + |
| 193 | +```shell script |
| 194 | +pip install -r examples/requirements.txt |
| 195 | +``` |
| 196 | + |
| 197 | +3. **Uruchom wybrany przykład** |
| 198 | + |
| 199 | +```shell script |
| 200 | +python examples/langchain_example.py |
| 201 | +python examples/llamaindex_example.py |
| 202 | +python examples/openai_example.py |
| 203 | +python examples/litellm_example.py |
| 204 | +python examples/haystack_example.py |
| 205 | +``` |
| 206 | + |
| 207 | +Wszystkie pozostałe szczegóły konfiguracji (obsługa promptów, strumieniowanie, użycie wielu modeli, obsługa błędów itp.) |
| 208 | +są udokumentowane w poszczególnych plikach przykładów oraz w plikach [`examples/README.md`](../../README.md) i [ |
| 209 | +`examples/README_LLAMAINDEX.md`](../../README_LLAMAINDEX.md). Dostosuj jedynie zmienną `HOST`/`LLM_ROUTER_HOST` |
| 210 | +(ewentualnie także `MODELS`), a przykłady automatycznie odpytają instancję uruchomionego llm‑routera. |
| 211 | + |
| 212 | +--- |
| 213 | + |
| 214 | +## 🎉 **Co dalej?** |
| 215 | + |
| 216 | +| Obszar | Co możesz zrobić | |
| 217 | +|---------------------------|------------------------------------------------------------------------------------------------------------------------------| |
| 218 | +| **Prometheus** | Jeśli włączyłeś `metrics`, dodaj endpoint `/api/metrics` do swojego systemu monitorującego. | |
| 219 | +| **Guardrails & Masking** | Ustaw zmienne `LLM_ROUTER_FORCE_MASKING`, `LLM_ROUTER_FORCE_GUARDRAIL_REQUEST`, itp., aby dodać warstwy ochronne. | |
| 220 | +| **Wiele dostawców** | Rozbuduj `models-config.json` o kolejne providery (np. Ollama, OpenAI) i eksperymentuj z różnymi strategiami load‑balancing. | |
| 221 | +| **Aktualizacje** | `pip install -U vllm` oraz `pip install -U llm-router` zapewnią najnowsze poprawki i funkcje. | |
| 222 | +| **Optymalizacja pamięci** | Przy ograniczonej VRAM użyj flagi `--cpu-offload` w skrypcie `run-bielik-11b-v2_3-vllm.sh`. | |
| 223 | + |
| 224 | +--- |
| 225 | + |
| 226 | +**Powodzenia i miłego korzystania z modelu Bielik!** |
| 227 | + |
| 228 | +--- |
0 commit comments