Учебник

On-prem AI: клиентские данные не уходят третьим лицам

Юристы запрещают отправлять данные в облачные ChatGPT? Ваши клиенты - госорганы или банки с требованием приватности? Разбираем, как запустить LLM на своём сервере без программиста: изолированная сеть, аудит-логи, шифрование. Шаг за шагом - от выбора инструмента до чеклиста compliance.

Макс Космов··7 мин чтения

Юристы говорят: «клиентские данные не должны покидать периметр». Облачные LLM типа ChatGPT API - сразу мимо. On-prem инференс (запуск готовой модели для получения ответов) решает это не в теории, а в конкретном стеке: vLLM за Nginx, изолированная сеть, аудит каждого промпта. Цена вопроса - правильная архитектура с первой итерации. Разберём на примере стройфирмы, которая хочет обрабатывать договоры и сметы через AI, но не может отправлять их в облако.

Почему облачные LLM недостаточны для бизнеса

По данным Cloudera (2025), 53% CTO и CIO назвали приватность данных главным барьером для внедрения AI. Это не паранойя - конкретные регуляторные требования:

  • GDPR (Евросоюз): персональные данные граждан ЕС нельзя передавать третьим сторонам без явного согласия. Отправить медицинскую выписку или ФИО клиента в ChatGPT API - это передача третьей стороне. Штраф до 4% годового оборота или 20 млн евро.
  • HIPAA (США, медицина): Protected Health Information (PHI) требует Business Associate Agreement с каждым облачным провайдером. У OpenAI и Anthropic такие соглашения есть, но данные всё равно обрабатываются на их серверах.
  • EU AI Act (август 2026): высокорисковые AI-системы (медицина, юстиция, критическая инфраструктура) требуют документации, регистрации и оценки рисков. On-prem даёт полный контроль над этой документацией.
  • Российские требования: банки (ЦБ РФ 382-П, PCI DSS), госорганы (ФСБ требования), 152-ФЗ о персональных данных - всё запрещает отправку данных в иностранные облака.

Регуляторный ландшафт 2026

EU AI Act вступил в полную силу в августе 2026. Что требует в контексте LLM:

High-risk системы (Annex III) - медицинские диагностические AI, HR-системы найма/увольнения, кредитный скоринг, правоохранительные системы:

  • Обязательная регистрация в EU AI Act Database до запуска
  • Техническая документация и risk assessment
  • Логирование всех решений с retention не менее 6 лет
  • Human oversight mechanism (человек в контуре принятия решений)
  • Adversarial testing и red-teaming

General Purpose AI (GPAI) с системными рисками (мощнее 10^25 FLOPs при обучении):

  • Обязательное уведомление регулятора
  • Оценка серьёзных инцидентов

On-prem инференс сам по себе не освобождает от EU AI Act - освобождает от передачи данных третьим сторонам. Документация и логирование всё равно обязательны.

Для российского рынка: Федеральный закон 152-ФЗ «О персональных данных» требует локализации персональных данных граждан РФ на серверах в России. Облачные LLM через зарубежные датацентры нарушают это требование.

Архитектура изолированного стека

Базовая схема on-prem LLM сервиса:

[Корпоративная сеть]
 |
[Nginx reverse proxy] -- TLS 1.3 -- [Клиентские приложения]
 |
[vLLM inference server] -- GPU сервер (изолированный)
 |
[Audit Logger] -- SIEM система
 |
[Embedding service] -- для RAG
 |
[Vector DB] -- Qdrant/Chroma (локально)

Ключевые принципы air-gapped сети:

  • LLM-сервер не имеет маршрута в интернет (нет default gateway наружу)
  • Модели скачиваются заранее через внутреннее зеркало или ручную загрузку
  • Обновления ОС через корпоративный WSUS/APT-зеркало
  • DNS только внутренний
# Проверить отсутствие исходящих соединений
ip route show
# Убрать маршрут наружу если он есть
ip route del default via 1.2.3.4

# Файрвол: разрешить только входящие на порт 8000
iptables -P OUTPUT DROP
iptables -A OUTPUT -d 10.0.0.0/8 -j ACCEPT # корпоративная сеть
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

RBAC и аутентификация

vLLM с API-ключами - базовый уровень:

vllm serve meta-llama/Llama-3.3-8B-Instruct \
 --api-key ${VLLM_API_KEY} \
 --port 8000

Для многопользовательской среды с ролями - vLLM Gateway или TrueFoundry:

Nginx как API Gateway с JWT-валидацией:

# nginx.conf
server {
 listen 443 ssl;
 ssl_certificate /etc/nginx/ssl/cert.pem;
 ssl_certificate_key /etc/nginx/ssl/key.pem;
 ssl_protocols TLSv1.3;

 location /v1/ {
 # Валидация JWT через lua-resty-jwt или auth_request
 auth_request /auth;
 auth_request_set $user $upstream_http_x_user;
 auth_request_set $role $upstream_http_x_role;

 # Передать заголовки в vLLM
 proxy_set_header X-User $user;
 proxy_set_header X-Role $role;
 proxy_pass http://vllm-backend:8000;
 }

 location /auth {
 internal;
 proxy_pass http://auth-service:3000;
 }
}

Интеграция с LDAP/Active Directory:

TrueFoundry (open-source LLM gateway) поддерживает LDAP из коробки. Альтернатива - Keycloak как IdP с LDAP-коннектором:

# Keycloak LDAP federation
ldap:
 connectionUrl: ldap://corporate-ad.company.local:389
 usersDn: OU=Users,DC=company,DC=local
 bindDn: CN=service-account,DC=company,DC=local
 bindCredential: ${LDAP_PASSWORD}

RBAC модели: viewer (только чтение), user (стандартные запросы), power-user (расширенный контекст), admin (управление моделями).

Шифрование: данные в покое и в транзите

Шифрование VRAM (NVIDIA Confidential Computing):

NVIDIA H100/H200 поддерживают Confidential Computing через Hopper Confidential VM. Данные в VRAM зашифрованы AES-256 аппаратно, недоступны даже hypervisor. Включение:

# Проверить поддержку
nvidia-smi conf-compute -f

# Включить Confidential Computing режим
nvidia-smi conf-compute -scc 1

Требует H100/H200 - на потребительских RTX недоступно. Для enterprise без H100 - шифрование VRAM через программные средства не имеет смысла (overhead и нет реальной защиты).

Шифрование данных в покое:

# LUKS для дисков с моделями и логами
cryptsetup luksFormat /dev/sdb
cryptsetup luksOpen /dev/sdb llm-storage
mkfs.ext4 /dev/mapper/llm-storage

# Автоматическое монтирование через ключ в TPM
clevis luks bind -d /dev/sdb tpm2 '{}'

TLS 1.3 для трафика: Все соединения между компонентами через mTLS (взаимная аутентификация). Генерация внутренних сертификатов через Vault PKI или внутренний CA.

Аудит-логи: полное логирование без замедления инференса

Аудит-лог должен содержать: timestamp, user_id, model, prompt_hash (не промпт!), response_hash, latency, tokens. Полный промпт и ответ - в зашифрованное хранилище отдельно от метаданных.

Async logging через Kafka или Redis чтобы не блокировать инференс:

import asyncio
import json
import hashlib
from datetime import datetime
from kafka import KafkaProducer # или redis

producer = KafkaProducer(
 bootstrap_servers='kafka:9092',
 value_serializer=lambda v: json.dumps(v).encode()
)

async def log_request(user_id: str, model: str, prompt: str, 
 response: str, latency_ms: float):
 record = {
 "timestamp": datetime.utcnow().isoformat(),
 "user_id": user_id,
 "model": model,
 "prompt_hash": hashlib.sha256(prompt.encode()).hexdigest(),
 "response_hash": hashlib.sha256(response.encode()).hexdigest(),
 "prompt_tokens": len(prompt.split()), # приближение
 "latency_ms": latency_ms
 }
 # Fire-and-forget, не блокируем основной поток
 loop = asyncio.get_event_loop()
 await loop.run_in_executor(None, producer.send, 'llm-audit', record)

Хранение самих промптов и ответов - отдельный зашифрованный топик Kafka или S3-совместимое хранилище (MinIO для on-prem) с retention policy.

Retention по регуляторным требованиям:

  • GDPR: минимально необходимый срок (обычно 1-3 года)
  • HIPAA: 6 лет
  • EU AI Act high-risk: 6 лет

Экспорт в SIEM: Splunk Universal Forwarder или Filebeat для ELK Stack читают топик Kafka и индексируют события. Стандартные алерты: аномально длинные промпты (>10K токенов), высокая частота запросов от одного пользователя, ошибки авторизации.

Triton Inference Server как альтернатива vLLM

NVIDIA Triton Inference Server - enterprise-grade альтернатива с сертификацией для NVIDIA-certified систем.

Отличия от vLLM:

  • Поддерживает не только LLM, но и CV-модели, AudioML, рекомендательные системы
  • Multi-framework: TensorRT, ONNX, PyTorch, TensorFlow в одном сервере
  • Ensemble pipelines: несколько моделей в одном запросе (preprocessing + LLM + postprocessing)
  • Официальные SLA и enterprise поддержка от NVIDIA

Деплой через Docker:

docker run --gpus all \
 -p 8000:8000 \
 -p 8001:8001 \
 -p 8002:8002 \
 -v /models:/models \
 nvcr.io/nvidia/tritonserver:24.12-vllm-python-py3 \
 tritonserver --model-repository=/models

Для LLM-задач в чистом виде vLLM проще и быстрее. Triton оправдан когда: нужна мультимодальная система (текст + изображения + аудио). Интеграция с NVIDIA AI Enterprise (официальные контракты), сложные pipeline с несколькими моделями.

Чеклист compliance перед запуском

Технический:

  • Сетевая изоляция проверена (исходящие соединения закрыты)
  • TLS 1.3 на всех внешних API-адресах
  • API-ключи и JWT настроены, дефолтные пароли изменены
  • Аудит-логирование запущено и проверено на тестовых запросах
  • Шифрование дисков с моделями и логами включено
  • Мониторинг и алерты настроены (Prometheus + Grafana)
  • Penetration testing проведён (хотя бы внутренний)

Организационный:

  • Data Processing Agreement (DPA) подписан с юридическим отделом
  • Классификация данных: какие данные можно отправлять в LLM
  • Data Protection Impact Assessment (DPIA) для GDPR
  • Политика retention для логов утверждена
  • Ответственный за AI (AI Officer) назначен

EU AI Act (для high-risk систем):

  • Классификация системы по EU AI Act Annex III
  • Техническая документация подготовлена
  • Human oversight механизм задокументирован
  • Регистрация в EU AI Act Database
  • Adversarial testing проведён

Частые вопросы

Какой минимальный стек нужен для GDPR-compliant локального LLM?

Минимум: сервер без доступа в интернет + vLLM или llama-server + Nginx с TLS + аудит-логирование (хотя бы в файл с ротацией). Дополнительно нужны организационные меры: DPA внутри компании, политика использования, назначение ответственного за обработку данных. Технический стек без организационных мер не обеспечивает GDPR compliance.

Как организовать аудит-логирование без замедления инференса?

Асинхронное логирование через очередь (Kafka, Redis Streams, или просто asyncio Queue). Основной поток инференса пишет в очередь (микросекунды), отдельный worker пишет в постоянное хранилище. Логировать хеши промптов и ответов в основной лог (быстро), сами данные - асинхронно в зашифрованный сторедж. Overhead при правильной реализации - менее 1 мс на запрос.

EU AI Act 2026 - какие LLM-системы попадают под high-risk классификацию?

High-risk (Annex III) включает AI в медицинской диагностике, кредитном скоринге, найме и увольнении, биометрической идентификации, правоохранительной деятельности, управлении критической инфраструктурой. Корпоративный чатбот для внутренних FAQ - не high-risk. LLM для автоматического принятия решений о кредитах или медицинских диагнозах - high-risk с полным набором требований.

Можно ли использовать Ollama в корпоративном on-prem или нужен vLLM?

Ollama подходит для: один-два пользователя, тестирование, прототипы. Для корпоративного использования не хватает: RBAC, аудит-логирования, горизонтального масштабирования, метрик для compliance. vLLM с Nginx gateway закрывает всё это. При малом числе пользователей (<5) и отсутствии требований аудита - Ollama с API-ключом через Nginx технически достаточен. При серьёзных регуляторных требованиях - vLLM + полноценный стек.

Как изолировать LLM-сервер в корпоративной сети без доступа в интернет?

Три шага: убрать default gateway на LLM-сервере (или создать отдельный VLAN без выхода наружу). Настроить iptables с политикой OUTPUT DROP и разрешением только корпоративной подсети, настроить внутренний DNS чтобы имена резолвились только во внутренние адреса. Модели и обновления ОС доставлять через внутренний артефакт-репозиторий (Nexus, Artifactory) или вручную через защищённый канал.

Что дальше

Если у вас стройфирма и вы хотите обрабатывать договоры и сметы через AI, но не можете отдавать данные в облако - начните с vLLM на одном сервере без доступа в интернет. Установка занимает пару часов. Используйте бесплатную модель Llama 3.1 8B - она даст качество, достаточное для извлечения данных из договоров. Аудит-логи настраиваются через syslog или простой файл с ротацией. Для compliance с 152-ФЗ этого достаточно.

AI Компас (t.me/kosmoslab_ai) - канал для предпринимателей в РФ и СНГ, которые применяют AI в своём бизнесе без программиста. Разбираем инструменты и схемы - без курсов и теории.