콘텐츠로 이동

NaizVL 오프라인 설치 키트

외부망이 차단된 폐쇄망 서버에 NaizVL VLM 추론 서버를 설치하기 위한 오프라인 키트.

문서 구성

문서 대상 내용
BUILD.md 개발자 (키트 제작) make-offline-kit.sh 실행, wheel 캐시, flash-attn 빌드, APT 패키지 정책
INSTALL.md 운영자 (현장 설치) USB Ubuntu 22.04.5 LTS 설치부터 tar 해제 → install.sh → 서비스 기동 → admin 키 발급
INSTALL_FRONTEND.md 운영자 (웹 UI 설치) NaizVL 서버 설치 후 frontend-linux.tar.gzinstall.sh → 127.0.0.1:3001
HARDENING.md 운영자 (안정화) /infer 500 인시던트 분석 + traceback 로깅 fix + watchdog cron 자동 재시작

대상 환경

항목
OS Ubuntu 22.04.5 LTS (USB 설치)
GPU NVIDIA RTX A6000 × 2 (Ampere, 48GB × 2)
드라이버 NVIDIA 570 (open kernel module)
CUDA 12.8 (키트 동봉 local apt repo)
Python 3.10 시스템 (venv 미사용)
모델 Qwen3-VL-8B-Instruct (~16GB)
키트 크기 ~25GB tar.gz

변경 이력

2026-05-19 — 22.04.5 ISO 호환 (kernel 6.8 + Triton JIT) + 문서 분리

신규 OS 설치 환경 (Ubuntu 22.04.5 ISO, kernel 6.8.0-40-generic) 검증 중 발견된 2건 fix + 문서 재편.

  • make-offline-kit.sh
  • APT_PKGSgcc-12 g++-12 cpp-12 추가 — 22.04.5 default kernel 이 gcc-12 로 빌드되어 dkms 가 -ftrivial-auto-var-init=zero 옵션을 요구. gcc-11 로는 nvidia-open-570 dkms compile 실패.
  • APT_PKGSpython3.10-dev libpython3.10-dev 추가 — vLLM 의 Triton JIT compiler 가 런타임에 cuda_utils.c 를 gcc 로 빌드하면서 #include <Python.h> 요구. 빠지면 vLLM 첫 inference 직전 profile_run 단계에서 fatal error: Python.h: No such file or directory. libexpat1-dev/zlib1g-devapt-rdepends 가 transitive 로 펼치므로 명시 불필요.
  • install.sh (Step 4)
  • /usr/bin/gcc-12 감지 시 update-alternatives --install /usr/bin/cc cc /usr/bin/gcc-12 60 + --set cc 자동 실행 → nvidia dkms 가 자동으로 gcc-12 사용.
  • 운영 서버 hotfix 절차 — 키트 재제작 전 4개 .deb (libexpat1-dev, zlib1g-dev, libpython3.10-dev, python3.10-dev, 총 ~5.5MB) 만 USB 전송 후 일괄 dpkg -i 로 즉시 대응 가능.
  • 문서 분리 — README.md 를 BUILD.md (제작) + INSTALL.md (USB Ubuntu 설치부터 정식 가동까지) 두 문서로 분리.

2026-05-14 — 운영 환경 안정화 (user-local 충돌 해결)

  • install.sh 개선
  • set -o pipefail + nvidia-smi | head SIGPIPE 종료 → nvidia-smi --query-gpu CSV 출력으로 우회
  • 단계 6 분할: user-local 잔재 정리(6-1) → --force-reinstall 설치(6-2) → NCCL ldconfig 등록(6-3) → PYTHONNOUSERSITE=1 검증(6-4)
  • systemd/naizvl.service
  • Environment=PYTHONNOUSERSITE=1 추가 → 운영 시 user-local 영구 무시
  • Environment=LD_LIBRARY_PATH=/usr/local/lib/.../nvidia/nccl/lib → torch 동봉 NCCL 우선
  • make-offline-kit.sh
  • 02-app 최소화naizvl_server_replica.py / config.example.yaml / systemd/naizvl.service 3개 파일만 명시 복사 (이전 5.3GB → 45KB)
  • REQUIRED_EXTRAS=(scipy scikit-learn) 자동 보강
  • LOCAL_WHEEL_CACHE 자동 감지 → flash-attn 등 수동 빌드 wheel 통합
  • flash-attn 빌드 가이드 (BUILD.md §6) — multi-arch wheel 직접 빌드 절차

2026-04 — 초기 폐쇄망 키트 설계

  • 시스템 Python (/usr/bin/python3.10) 단독 사용 정책 확립 (venv 미사용)
  • CUDA local repo + cuda-drivers 메타로 드라이버·툴킷 통합 설치
  • GPG 서명 + MANIFEST.sha256 무결성 검증

관련 문서

  • ../research.md §20 (NaizVL 저장소 참고) — 서버 전체 구조 최신 스냅샷
  • ../vlm_event_design.md (NaizVL 저장소 참고) — YOLO+VLM 이벤트 2차 검증 설계
  • ../eval/README.md (NaizVL 저장소 참고) — 오탐 평가 도구