237 lines
6.7 KiB
YAML
237 lines
6.7 KiB
YAML
services:
|
||
# ============================================================================
|
||
# FlyGuard: Универсальный производственный запуск (NVIDIA GPU / CUDA 12)
|
||
# Поддерживает Ada Lovelace (RTX 4070 Ti Super 16GB) / Ampere / CPU Fallback
|
||
# ============================================================================
|
||
|
||
# --- Главный сервис общего запуска конвейера по всем бэгам лидара ---
|
||
pipeline:
|
||
build:
|
||
context: .
|
||
dockerfile: Dockerfile.offline
|
||
image: flyguard:latest
|
||
container_name: flyguard-pipeline
|
||
command: ["pipeline", "--all", "--verbose"]
|
||
volumes:
|
||
- ./artifacts:/app/artifacts
|
||
- ./data:/data:ro
|
||
environment:
|
||
- PYTHONUNBUFFERED=1
|
||
- FLYGUARD_DATA=/data
|
||
- FLYGUARD_DEVICE=auto
|
||
- NVIDIA_VISIBLE_DEVICES=all
|
||
- NVIDIA_DRIVER_CAPABILITIES=compute,utility
|
||
deploy:
|
||
resources:
|
||
reservations:
|
||
devices:
|
||
- driver: nvidia
|
||
count: all
|
||
capabilities: [gpu]
|
||
shm_size: '8gb'
|
||
|
||
# --- Полный прогон тестового набора ядра и роутинга устройств ---
|
||
test:
|
||
image: flyguard:latest
|
||
container_name: flyguard-test
|
||
command: ["test"]
|
||
volumes:
|
||
- ./artifacts:/app/artifacts
|
||
- ./data:/data:ro
|
||
environment:
|
||
- PYTHONUNBUFFERED=1
|
||
- FLYGUARD_DATA=/data
|
||
- FLYGUARD_DEVICE=auto
|
||
- NVIDIA_VISIBLE_DEVICES=all
|
||
- NVIDIA_DRIVER_CAPABILITIES=compute,utility
|
||
deploy:
|
||
resources:
|
||
reservations:
|
||
devices:
|
||
- driver: nvidia
|
||
count: all
|
||
capabilities: [gpu]
|
||
shm_size: '8gb'
|
||
|
||
# --- Диагностика доступности GPU и характеристик оборудования ---
|
||
info:
|
||
image: flyguard:latest
|
||
container_name: flyguard-info
|
||
command: ["info"]
|
||
environment:
|
||
- NVIDIA_VISIBLE_DEVICES=all
|
||
- NVIDIA_DRIVER_CAPABILITIES=compute,utility
|
||
deploy:
|
||
resources:
|
||
reservations:
|
||
devices:
|
||
- driver: nvidia
|
||
count: all
|
||
capabilities: [gpu]
|
||
|
||
# --- Оценка метрик детекции (Folds Cross-Validation / AUC) ---
|
||
evaluate:
|
||
image: flyguard:latest
|
||
container_name: flyguard-evaluate
|
||
command: ["evaluate", "--mbon-dir", "artifacts/mbon_folds", "--device", "auto"]
|
||
volumes:
|
||
- ./artifacts:/app/artifacts
|
||
- ./data:/data:ro
|
||
environment:
|
||
- PYTHONUNBUFFERED=1
|
||
- FLYGUARD_DATA=/data
|
||
- NVIDIA_VISIBLE_DEVICES=all
|
||
- NVIDIA_DRIVER_CAPABILITIES=compute,utility
|
||
deploy:
|
||
resources:
|
||
reservations:
|
||
devices:
|
||
- driver: nvidia
|
||
count: all
|
||
capabilities: [gpu]
|
||
shm_size: '8gb'
|
||
|
||
# --- Генерация синтетического бенчмарка с GPU DoG и MBON ---
|
||
benchmark:
|
||
image: flyguard:latest
|
||
container_name: flyguard-benchmark
|
||
command: [
|
||
"benchmark",
|
||
"--memory", "artifacts/mushroom_body.npz",
|
||
"--mbon-dir", "artifacts/mbon_folds",
|
||
"--augment",
|
||
"--device", "auto",
|
||
"--out", "artifacts/benchmark_gpu.json"
|
||
]
|
||
volumes:
|
||
- ./artifacts:/app/artifacts
|
||
- ./data:/data:ro
|
||
environment:
|
||
- PYTHONUNBUFFERED=1
|
||
- FLYGUARD_DATA=/data
|
||
- NVIDIA_VISIBLE_DEVICES=all
|
||
- NVIDIA_DRIVER_CAPABILITIES=compute,utility
|
||
deploy:
|
||
resources:
|
||
reservations:
|
||
devices:
|
||
- driver: nvidia
|
||
count: all
|
||
capabilities: [gpu]
|
||
shm_size: '8gb'
|
||
|
||
# --- Обучение MBON Readout на 50 000 клеток Кеньона на GPU ---
|
||
train-mbon:
|
||
image: flyguard:latest
|
||
container_name: flyguard-train-mbon
|
||
command: [
|
||
"train-mbon",
|
||
"--device", "auto",
|
||
"--n-kc", "50000",
|
||
"--active", "100",
|
||
"--epochs", "100",
|
||
"--save-folds", "artifacts/mbon_folds_50k",
|
||
"--out", "artifacts/mbon_readout_50k.npz"
|
||
]
|
||
volumes:
|
||
- ./artifacts:/app/artifacts
|
||
- ./data:/data
|
||
environment:
|
||
- PYTHONUNBUFFERED=1
|
||
- FLYGUARD_DATA=/data
|
||
- NVIDIA_VISIBLE_DEVICES=all
|
||
- NVIDIA_DRIVER_CAPABILITIES=compute,utility
|
||
deploy:
|
||
resources:
|
||
reservations:
|
||
devices:
|
||
- driver: nvidia
|
||
count: all
|
||
capabilities: [gpu]
|
||
shm_size: '8gb'
|
||
|
||
# --- Обучение классификатора треков TrackReadout ---
|
||
train-track:
|
||
image: flyguard:latest
|
||
container_name: flyguard-train-track
|
||
command: [
|
||
"train-track",
|
||
"--device", "auto",
|
||
"--epochs", "300",
|
||
"--baseline",
|
||
"--save-folds", "artifacts/track_folds",
|
||
"--out", "artifacts/track_readout.npz"
|
||
]
|
||
volumes:
|
||
- ./artifacts:/app/artifacts
|
||
- ./data:/data
|
||
environment:
|
||
- PYTHONUNBUFFERED=1
|
||
- FLYGUARD_DATA=/data
|
||
- NVIDIA_VISIBLE_DEVICES=all
|
||
- NVIDIA_DRIVER_CAPABILITIES=compute,utility
|
||
deploy:
|
||
resources:
|
||
reservations:
|
||
devices:
|
||
- driver: nvidia
|
||
count: all
|
||
capabilities: [gpu]
|
||
shm_size: '8gb'
|
||
|
||
# --- Интерактивная Bash-сессия разработчика ---
|
||
shell:
|
||
image: flyguard:latest
|
||
container_name: flyguard-shell
|
||
command: ["bash"]
|
||
volumes:
|
||
- ./artifacts:/app/artifacts
|
||
- ./data:/data
|
||
environment:
|
||
- PYTHONUNBUFFERED=1
|
||
- FLYGUARD_DATA=/data
|
||
- NVIDIA_VISIBLE_DEVICES=all
|
||
- NVIDIA_DRIVER_CAPABILITIES=compute,utility
|
||
deploy:
|
||
resources:
|
||
reservations:
|
||
devices:
|
||
- driver: nvidia
|
||
count: all
|
||
capabilities: [gpu]
|
||
stdin_open: true
|
||
tty: true
|
||
shm_size: '8gb'
|
||
|
||
# ============================================================================
|
||
# СЕРВИСЫ ДЛЯ ЧИСТОГО CPU (Stand-alone без NVIDIA GPU)
|
||
# ============================================================================
|
||
cpu-test:
|
||
build:
|
||
context: .
|
||
dockerfile: Dockerfile.offline
|
||
target: cpu
|
||
image: flyguard:cpu
|
||
container_name: flyguard-cpu-test
|
||
command: ["test"]
|
||
volumes:
|
||
- ./artifacts:/app/artifacts
|
||
- ./data:/data:ro
|
||
environment:
|
||
- PYTHONUNBUFFERED=1
|
||
- FLYGUARD_DATA=/data
|
||
- FLYGUARD_DEVICE=cpu
|
||
shm_size: '2gb'
|
||
|
||
cpu-pipeline:
|
||
image: flyguard:cpu
|
||
container_name: flyguard-cpu-pipeline
|
||
command: ["pipeline", "--all"]
|
||
volumes:
|
||
- ./artifacts:/app/artifacts
|
||
- ./data:/data:ro
|
||
environment:
|
||
- PYTHONUNBUFFERED=1
|
||
- FLYGUARD_DATA=/data
|
||
- FLYGUARD_DEVICE=cpu
|
||
shm_size: '2gb'
|