LOT 1 - Optimizare script build -Instalare mono comanda
This commit is contained in:
parent
5380c3fc63
commit
42ff22bf85
127 changed files with 16163 additions and 532 deletions
74
ai_platform/local_gpu_stack/README.md
Normal file
74
ai_platform/local_gpu_stack/README.md
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
# DiDi LOT 1 — Local GPU stack (deploy progresiv)
|
||||
|
||||
Deploy „cărămidă cu cărămidă" al întregii platforme pe un host cu GPU.
|
||||
Pentru fiecare componentă: **build/pull + download → seed (dacă e cazul) →
|
||||
TEST funcțional → doar dacă testul trece corect → următoarea**. Idempotent,
|
||||
se oprește la primul test picat.
|
||||
|
||||
## Cerințe (verificate de preflight, nu se instalează automat)
|
||||
- Docker Engine 24+ cu plugin `docker compose` v2
|
||||
- NVIDIA driver ≥535 + `nvidia-container-toolkit` (runtime configurat în Docker)
|
||||
- ≥1 GPU (proiectat pe 2× H200; GPU 0 = LLM+Whisper, GPU 1 = BusterX+bge×2)
|
||||
- ~100 GB liberi pe `/` (toate modelele ≈ 94 GB)
|
||||
|
||||
## Modele — o singură zonă locală
|
||||
Toate modelele stau în **`ai_platform/models/`** (format HF cache, un folder per model),
|
||||
servite **offline** de acolo (fără rețea la runtime). `MODELS_DIR` în `.env` (auto = acest folder).
|
||||
Ce lipsește se descarcă o singură dată în el (`deploy.sh` pasul DOWNLOAD). NU se comite în git.
|
||||
|
||||
| Folder | Model | Folosit de |
|
||||
|---|---|---|
|
||||
| `models--Qwen--Qwen3.5-35B-A3B` | LLM (67G) | llm (vLLM) |
|
||||
| `models--l8cv--BusterX_plusplus` | deepfake (16G, Qwen2.5-VL intern) | video (vLLM) |
|
||||
| `models--BAAI--bge-m3` | embeddings | embeddings (vLLM) |
|
||||
| `models--BAAI--bge-reranker-v2-m3` | reranker | rerank (vLLM) |
|
||||
| `models--mobiuslabsgmbh--faster-whisper-large-v3-turbo` | STT | audio |
|
||||
| `models--urchade--gliner_multi-v2.1` + `models--microsoft--mdeberta-v3-base` | NER + backbone | extractors |
|
||||
|
||||
Copiezi `ai_platform/models/` pe altă mașină → zero download la deploy.
|
||||
|
||||
## Utilizare
|
||||
```bash
|
||||
cd ai_platform/local_gpu_stack
|
||||
./deploy.sh # tot, de la preflight la dashboard
|
||||
./deploy.sh --from web # reia de la cărămida 'web' (sare peste cele dinainte)
|
||||
./deploy.sh --only llm # rulează o singură cărămidă (presupune deps deja up)
|
||||
./deploy.sh --install-deps # instalează Docker + nvidia-container-toolkit (sudo), apoi continuă
|
||||
```
|
||||
`.env` se creează automat din `.env.example` la prima rulare.
|
||||
|
||||
### Mașină nouă (VM „chioară" cu GPU)
|
||||
1. (o singură dată) driver NVIDIA ≥535 + reboot — `sudo ubuntu-drivers install` (nu se automatizează, cere reboot).
|
||||
2. `git clone <repo> && cd .../ai_platform/local_gpu_stack`
|
||||
3. `./deploy.sh --install-deps` → instalează Docker+toolkit, apoi:
|
||||
- **HOST_IP** se auto-detectează și se scrie în `.env`
|
||||
- **BusterX** se descarcă automat din HF dacă nu e pe disc (`BUSTER_HF_CACHE`)
|
||||
- Qwen/bge se descarcă (cu progres), totul se ridică cărămidă cu cărămidă cu test la fiecare.
|
||||
|
||||
> Singurul pas care NU e o comandă: driverul NVIDIA (reboot). Restul e `./deploy.sh`.
|
||||
Cărămizi, în ordine: `embeddings · rerank · llm · extractors · audio · video · forensic · web · catalog · gateway · brain · dashboard`.
|
||||
|
||||
La final: dashboard pe `http://<HOST_IP>:51300/admin-ai/` (staging mode, fără login).
|
||||
|
||||
## Ce automatizează (fixurile care înainte erau manuale)
|
||||
- rețea unică `didi-network`; plasare GPU 0/1; nume containere `didiAI-*`
|
||||
- base-URL vLLM **fără** `/v1` (codul îl adaugă) pentru llm/embeddings/video
|
||||
- YOLO scrie modelul în `/tmp` (cwd e read-only la non-root)
|
||||
- gateway LLM injectează `enable_thinking:false` → JSON curat din Qwen3.5 (sentiment/OCR/semantic/brain)
|
||||
- SearXNG fără proxy outbound, ca serviciu compose
|
||||
- brain: aliniere parolă postgres, creare **token atomic** (auto, salvat în `.env`), **seed taxonomie** (79 tag-uri)
|
||||
- dashboard: `.env` cu staging + override-uri health; **seed catalog** (9 intrări)
|
||||
|
||||
## Fișiere
|
||||
| Fișier | Rol |
|
||||
|---|---|
|
||||
| `deploy.sh` | orchestratorul progresiv gated |
|
||||
| `lib.sh` | logging, `wait_health`, `gate`, shim docker (merge și prin `sg docker`) |
|
||||
| `docker-compose.yml` | stack-ul GPU + non-GPU + searxng |
|
||||
| `.env.example` | configurația (host, porturi, parole, token) |
|
||||
| `seed/seed_catalog.sh` | populează catalogul DB al dashboard-ului (idempotent) |
|
||||
| `seed/seed_brain.sh` | token atomic + taxonomie + env brain |
|
||||
| `TESTING.md` | comenzi de testare per componentă + smoke-test |
|
||||
|
||||
> Brain rulează din `modules/didi_brain/infra/docker-compose.yml`; dashboard și gateway
|
||||
> din `modules/*/deploy/` — `deploy.sh` le orchestrează pe toate sub proiectul `local_gpu_stack`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue