Руководство по установке AppSec.AIGate¶
Целевая аудитория¶
Настоящее руководство предназначено для системных администраторов и DevOps-инженеров, занимающихся установкой, настройкой и сопровождением AppSec.AIGate (GPU версия).
Назначение документа¶
В настоящем документе описаны следующие действия:
- подготовка сервера и установка зависимостей;
- установка NVIDIA драйверов и Docker с поддержкой GPU;
- загрузка и конфигурация Docker-образов;
- запуск и проверка работоспособности системы;
- обновление, резервное копирование и устранение неполадок.
Обзор системы¶
AppSec.AIGate — это security gateway для Large Language Models (LLM), который инспектирует входящие запросы и исходящие ответы для предотвращения jailbreak-атак, утечек персональных данных (PII) и нарушений политик безопасности.
GPU версия обеспечивает аппаратное ускорение ML-моделей:
- 10x ускорение перевода (Translation Service)
- 3-5x ускорение детекции угроз (Threat Detector)
- 3-5x ускорение контентной безопасности (Content Safety)
- Значительно выше throughput для высоконагруженных сценариев
Архитектура компонентов¶
┌────────────────────────────────────────────────┐
│ Control Plane │
│ │
│ ┌───────────┐ ┌──────────────────┐ │
│ │ Admin UI │───▶│ Admin API │ │
│ │ :4200 │ │ :8001 │ │
│ └───────────┘ └───────┬──────────┘ │
│ ┌────────┼────────┐ │
│ ▼ ▼ ▼ │
│ ┌──────────┐ ┌──────┐ ┌──────────┐ │
│ │Profiles │ │MinIO │ │ Keycloak │ │
│ │Registry │ │(S3) │ │ (OIDC) │ │
│ │:8000 │ │:9000 │ │ :8080 │ │
│ └────┬─────┘ └──┬───┘ └──────────┘ │
└────────────────┼──────────┼────────────────────┘
│ │
┌─────────────────────────────────────────┼──────────┼────────────────────┐
│ Data Plane │ │ │
│ │ │ │
│ Client ──▶ ┌──────────────┐ │ ┌─────▼────┐ │
│ │ API Gateway │────────────┼───▶│ OPA │ │
│ │ :8085 │ │ │ :8181 │ │
│ └──────┬───────┘ │ └────┬─────┘ │
│ │ │ │ │
│ ┌──────────┼──────────┬─────────┤ ┌────▼─────┐ │
│ ▼ ▼ ▼ │ │ PDP │ │
│ ┌───────────┐ ┌────────┐ ┌─────────┐ │ │ :8086 │ │
│ │Normalizer │ │ PII │ │Translat.│ │ └──────────┘ │
│ │ :8081 │ │Detector│ │Service │ │ │
│ └───────────┘ │ :8084 │ │ :8087 │ │ │
│ └────────┘ └─────────┘ │ │
│ ┌────────┐ ┌──────────┐ │ ┌────────────┐ │
│ │Threat │ │Content │ │ │ Event │ │
│ │Detector│ │Safety │ │ │ Exporter │ │
│ │ :8090 │ │ :8088 │ │ │ :8091 │ │
│ └────────┘ └──────────┘ │ └────────────┘ │
│ ┌──────────┐ │ │
│ │Content │ │ │
│ │Policy Svc│ │ │
│ │ :8089 │ │ │
│ └──────────┘ │ │
│ ┌─────────┐ ┌──────────┐ │ │
│ │ Redis │ │PostgreSQL│ │ │
│ │ :6379 │ │ :5432 │ │ │
│ └─────────┘ └──────────┘ │ │
└─────────────────────────────────────────┘ │
│
LLM Backend ◀──────────────────────────────┘
GPU-ускоренные сервисы¶
Все ML-сервисы используют единые Docker-образы на базе NVIDIA CUDA Runtime. Для GPU-режима достаточно добавить переменную ML_DEVICE=cuda и блок deploy.resources:
| Сервис | Образ | GPU env var | VRAM (float16) |
|---|---|---|---|
| threat-detector | llm-firewall/threat-detector:latest | THREAT_DETECTOR_ML_DEVICE=cuda |
~10 GB |
| content-safety | llm-firewall/content-safety:latest | CONTENT_SAFETY_ML_DEVICE=cuda |
~10 GB |
| translation-service | llm-firewall/translation-service:latest | TRANSLATION_SERVICE_MODEL_DEVICE=cuda |
~400 MB |
Примечание
Threat Detector и Content Safety используют неквантизированные модели на 4B параметров в float16 (~8 GB только веса, плюс KV cache и overhead). VRAM указан с учётом накладных расходов на инференс.
Итоговые требования к VRAM¶
| Сервис | VRAM (float16) |
|---|---|
| Translation Service | ~400 MB |
| Threat Detector | ~10 GB |
| Content Safety | ~10 GB |
| Итого | ~20 GB |
Минимальная рекомендация: GPU с 24+ GB VRAM для всех трёх сервисов.
Единые CPU/GPU образы¶
Принцип работы:
Все ML-сервисы используют единые Docker-образы, построенные на базе NVIDIA CUDA Runtime. Принцип работы:
- Автодетекция устройства — при запуске сервис вызывает
_detect_device(), который проверяет наличие GPU черезtorch.cuda.is_available(). - CPU fallback — если GPU недоступен, сервис автоматически переключается на CPU-режим.
- Принудительный GPU — переменная
ML_DEVICE=cudaзаставляет сервис использовать GPU (ошибка при отсутствии). - Docker deploy — блок
deploy.resources.reservations.devicesвыделяет GPU контейнеру через NVIDIA Container Toolkit.
Остальные сервисы (API Gateway, Request Normalizer, PDP, PII Detector, Content Policy Service, Event Exporter, Admin API, Admin UI, Profiles Registry) работают на CPU и не требуют GPU.