본문으로 건너뛰기

EVA Vision Release Notes

v2.0.2 (June 12, 2026)

  • compatibility: 이 버전은 EVA App v3.0.0 이상을 대상으로 합니다.

Improvements

  • 서버 사이드 앙상블 예측 추가: /predictions/ensemble을 추가하고, 모델별 threshold, vote 기반 탐지 집계, current-model 결과 리포팅을 지원합니다.
  • ROI 전용 탐지 동작 추가: 설정된 interest area 안에 있는 box만 응답으로 반환하여 downstream VLM 플로우가 영역 관련 탐지만 받도록 개선했습니다.
  • EVA App 동기화 플로우 개선: POST /sync를 camera count, health snapshot, dynamic worker scaling의 source of truth로 사용하도록 변경했습니다.
  • Proxy 모듈 구조 개편: proxy를 route module, Pydantic schema, TorchServe service, health service, camera registry, scaling policy module로 분리하고, 기존 import 호환을 위한 wrapper는 유지했습니다.
  • Background health checker 및 probe 추가: FastAPI, TorchServe inference/management endpoint, model worker readiness, optional inference probe, accelerator detection, system resource threshold 기반으로 최신 health state를 추적합니다.
  • Dynamic worker scaling policy 추가: camera count 기반 worker scaling, 모델별 resource profile, min/max worker constraint, optional GPU memory validation을 도입했습니다.
  • CUDA MPS 배포 지원 추가: GPU_MPS_ENABLED, MPS pipe/log directory 처리, run.sh의 daemon start/stop, MPS 환경용 Helm values 및 volume mount를 추가했습니다.
  • MIG GPU 배포 지원 추가: MIG resource name, GPU count, CUDA visible devices를 설정할 수 있는 Helm 구성을 추가했습니다.
  • MMGDino 및 LLMDet 추론 최적화: fixed image preprocessing bucket, GPU-side image preparation, cached text feature, compiled model submodule을 적용해 반복 zero-shot inference 성능을 개선했습니다.

Bug Fixes

  • 사용 불가능한 모델로 ensemble fallback되는 문제 수정: TorchServe에 등록되지 않았거나 READY worker가 없는 모델을 ensemble 후보에서 제외하도록 수정했습니다.
  • Ensemble prediction의 non-serving model 처리 수정: Ensemble request를 보내기 전에 TorchServe management 상태를 확인해 unavailable model 때문에 prediction flow가 실패하지 않도록 했습니다.
  • MIG metric 권한 오류 처리 수정: MIG memory/utilization metric을 조회할 수 없는 경우 resource failure로 처리하지 않고 optional data 누락으로 다루도록 개선했습니다.
  • MIG UUID 처리 수정: MIG partition 환경에서 GPU discovery가 올바르게 동작하도록 visible MIG UUID를 사용합니다.
  • MIG utilization metric 누락 처리 수정: utilization field가 없어도 resource schema나 health response가 실패하지 않도록 허용했습니다.
  • Sync 중 minimum worker 유지 문제 수정: EVA App sync가 camera count를 갱신할 때 설정된 minimum worker count가 유지되도록 수정했습니다.
  • SYNC API request field 이름 수정: Sync request format의 ideva_id로 변경했습니다.
  • RT-DETRV2 person target labeling 수정: RT-DETRV2의 person-only detection label이 일관되게 처리되도록 수정했습니다.
  • Long-running sync/scaling timeout 수정: 긴 worker operation을 처리할 수 있도록 timeout을 90초에서 3600초로 늘렸습니다.
  • Helm boolean 처리 수정: 명시적인 false 값이 빈 값과 동일하게 처리되지 않고 올바르게 render되도록 수정했습니다.

v1.3.5 (May 12, 2026)

  • 호환성: 이 버전은 EVA App v2.7.0 이상을 필요로 합니다.

개선 사항

  • TorchServe 로그 프로파일 설정 기능 추가: 개발 환경에서는 모델 및 메트릭 전체 가시성을 유지하고, 운영 환경에서는 모델 로그 출력량을 경고/오류 수준으로 줄일 수 있도록 개발용 및 운영용 Log4j2 프로파일을 분리하여 추가했습니다.
  • 모델 로그 관찰성 개선: TorchServe MODEL_LOG 출력에 Python 로거 및 모델명 메타데이터를 추가하여 관리자가 각 model.log 항목을 생성한 핸들러를 식별할 수 있도록 했습니다.
  • 지연 시간 분석을 위한 접근 및 메트릭 가시성 유지: HTTP 지연 시간을 TorchServe HandlerTime, 큐, 시스템 메트릭과 비교할 수 있도록 두 로그 프로파일 모두에서 ACCESS_LOG, TS_METRICS, MODEL_METRICS를 유지합니다.
  • 서비스 시작 시 로그 프로파일 지원 추가: run.sh에 --log-profile dev|prod 옵션을 추가하고, 기본값은 개발 로깅으로 설정했으며, 운영 환경 Docker 시작 인수, 로그별 보존 정리, 더 안전한 셸 실행 동작을 포함합니다.
  • 프로파일별 프록시 로깅 조정: 시작 시점에 프록시 INFO 로그 샘플링을 제어할 수 있도록 하여, 개발 환경에서는 전체 INFO 로깅을, 운영 환경에서는 샘플링된 INFO 로깅을 적용합니다.
  • RT-DETR V2 고속 프로세서 명시적 사용: 프로세서 폴백 모호성을 방지하기 위해 use_fast=True 옵션으로 RTDetrImageProcessorFast를 명시적으로 로드합니다.

버그 수정

  • TorchServe 핸들러 로그 출처 표기 수정: TorchServe가 캡처하기 전에 Python 워커 로그 레코드를 재포맷하여, model.log가 모든 핸들러 출력을 추적 불가능한 MODEL_LOG 스트림으로 합치는 문제를 해결했습니다.
  • IG 프로세서 디바이스 배치 수정: IG 프로세서 호출 시 device=self.device를 전달하여 임베딩 및 추론 흐름에서 생성된 텐서가 핸들러 디바이스와 일치하도록 수정했습니다.
  • TorchServe pynvml 경고 반복 출력 수정: TorchServe 시스템 메트릭 pynvml 사용 중단 FutureWarning이 errors.log를 반복적으로 오염시키지 않도록 억제했습니다.
  • 로깅 유틸리티의 아카이브/런타임 패키징 수정: handlers 디렉터리는 핸들러 파일만 포함하도록 유지하면서, eva_ts/utils의 공유 로깅 유틸리티를 모델 아카이브 추가 파일에 포함시켰습니다.

v1.3.4 (May 6, 2026)

  • 호환성: 이 버전은 EVA App v2.7.0 이상이 필요합니다.

개선 사항

  • IG 추론 런타임 최적화: IG embedding 및 inference 경로를 재사용 가능한 core module로 리팩터링하고, eager fallback을 포함한 torch.compile(dynamic=True) 및 CUDA bfloat16 실행을 적용해 serving 효율을 개선했습니다.
  • IG API 검증 및 문서 강화: IG inference payload에 대한 proxy-side validation을 추가하고, scenario threshold와 interest zone을 포함한 get_embedding / inference request-response format을 문서화했습니다.
  • 기본 serving worker 설정 조정: 더 가벼운 기본 runtime profile을 위해 OmDetMMGDino의 기본 worker 수를 2에서 1로 줄였습니다.

버그 수정

  • IG 런타임 패키징 및 유틸리티 로딩 수정: TorchServe에서 IG runtime dependency가 올바르게 resolve되도록 새 IG utility module을 model archive flow에 포함하고 interest-zone utility import 방식을 개선했습니다.
  • IG box conversion 호환성 수정: compile 및 runtime compatibility 문제를 방지하기 위해 IG hot path의 torchvision.ops.box_convert 사용을 Torch-native conversion helper로 대체했습니다.

v1.3.3 (April 30, 2026)

  • 호환성: 이 버전은 EVA App v2.7.0 이상이 필요합니다.

개선 사항

  • Helm 기반 TorchServe 설정 흐름 정리: Helm ConfigMap의 config.properties.template를 /app/eva_ts/config.properties.template 경로에 마운트하여, 배포된 템플릿을 기반으로 런타임 설정 파일이 생성되도록 정리했습니다.
  • Helm의 모델 및 워커 설정을 런타임에 반영: Helm values.yaml에 설정한 로드 모델, 워커 수, 배치 크기, 배치 지연 시간이 생성된 config.properties에 반영되도록 개선했습니다.
  • TorchServe 런타임 제어 옵션 추가: Helm에서 렌더링되는 TorchServe 설정 템플릿에 number_of_netty_threads와 worker_retry_timeout_sec 항목을 추가했습니다.
  • Kubernetes 서비스 기본값 개선: 기본 서비스 타입을 NodePort에서 ClusterIP로 변경하고, 서비스 타입이 NodePort일 때만 nodePort가 렌더링되도록 수정했습니다.
  • 기본 서빙 리소스 및 모델 파라미터 조정: 더 안정적인 런타임 구성을 위해 기본 메모리 request/limit을 32Gi로 상향하고, 일부 모델의 워커 수를 1로 조정했으며, RT-DETRV2의 배치 설정을 변경했습니다.

버그 수정

  • Helm values 설정이 TorchServe 런타임 설정에 반영되지 않던 문제 수정: 배포된 설정 파일 경로와 런타임 설정 생성 흐름이 맞지 않아 Helm values.yaml의 모델 및 워커 설정이 무시될 수 있던 문제를 해결했습니다.
  • RT-DETRV2의 동적 입력에 대한 torch.compile 동작 수정: 다양한 입력 크기를 더 안정적으로 지원할 수 있도록 RT-DETRV2 컴파일 시 dynamic=True 옵션을 적용했습니다.
  • IG 모델 아카이브 의존성 누락 수정: 런타임에서 interest-zone 로직을 사용할 수 있도록 IG 모델 아카이브 설정에 interest_zone.py를 포함했습니다.

v1.3.2 (April 14, 2026)

  • 호환성: 이 버전은 EVA App v2.7.0 이상이 필요합니다.

새로운 기능

  • 폴리곤 기반 관심영역 처리 추가: 보다 정밀한 영역 기반 필터링을 위해 polygon foot-point 지원을 도입하고, 핸들러 및 프록시 모델 전반에 새로운 interests 인터페이스를 적용했습니다.
  • 임계값 정규화/비정규화 기능 구현: 프록시 서비스 계층에서 threshold 값을 정규화된 값과 비정규화된 값 사이로 변환할 수 있도록 지원합니다.
  • 경계 잘림 제어 옵션 추가: 객체가 이미지 경계에 닿는 경우의 후처리 동작을 더 세밀하게 제어할 수 있도록 boundary truncation 검사와 모드(off / only_flag / on)를 추가했습니다.
  • 그룹 기반 VitPose 검증 및 파이프라인 옵션 추가: 그룹 단위 VitPose 처리와 설정 가능한 실행 옵션을 검증 파이프라인에 확장 적용했습니다.

개선 사항

  • 관심영역 요청 처리 단순화: 기존 legacy interest request schema를 제거하고, 새로운 인터페이스 기준으로 요청 처리 구조를 정리했습니다.

버그 수정

  • 응답 파싱 형식 불일치로 VitPose 검증이 실행되지 않던 문제 수정: RT-DETR v2 핸들러에서 응답 형식 불일치로 인해 VitPose 검증이 건너뛰어질 수 있던 문제를 해결했습니다.

기타 변경 사항

  • 런타임 베이스 이미지를 Ubuntu 24.04 기반 CUDA 12.8로 업그레이드: 컨테이너 런타임 의존성을 최신 NVIDIA CUDA 베이스 이미지로 업데이트했습니다.

v1.3.1 (March 11, 2026)

  • 호환성: 이 버전은 EVA App v2.3.0 ~ 2.6.1 버전이 필요합니다.

성능 개선

  • 벤치마크 결과 기반 MODEL_RESOURCE_PROFILES 업데이트: 카메라 부하 테스트 결과를 반영하여 카메라-워커 매핑, 워커당 GPU 메모리, max_effective_cameras 제약 조건을 설정.
  • 동적 워커 스케일링 설정 업데이트: 운영 환경에서의 리소스 할당 정확도를 높이기 위해 스케일링 파라미터 조정.
  • MMGDino & LLMDet Vision Caching 적용: 중복 연산을 줄여 추론 처리량을 개선하기 위해 비전 캐싱 활성화.

버그 수정

  • get_gpu_info()에서 CUDA_VISIBLE_DEVICES 기준으로 GPU 필터링: 멀티 GPU 호스트에서 CUDA_VISIBLE_DEVICES 환경 변수를 반영하지 않아 GPU 수가 잘못 감지되던 문제 수정.

기타

  • number_of_netty_threads 및 worker_retry_timeout_sec 설정: 안정적인 워커 생명주기 관리를 위해 TorchServe 내부 스레딩 및 재시도 파라미터 설정.

v1.3.0 (February 12, 2026)

  • Compatibility: 이 버전은 EVA App v2.3.0 ~ 2.6.1 버전이 필요합니다.

Features

  • MM-Grounding-DINO (Swin-B) 모델 추가: 향상된 zero-shot 객체 감지 기능을 위해 Swin-B 백본을 사용하는 MM-Grounding DINO 모델을 도입했습니다.
  • 앱 카메라 관리 및 TorchServe 관리 래핑 API 구현: 카메라 연결 및 TorchServe 모델 라이프사이클을 관리하기 위한 새로운 API 인터페이스를 추가하여 비전 파이프라인 구성 요소에 대한 중앙 집중식 제어를 제공합니다.
  • 배치 카메라 API 추가: 여러 카메라 스트림에 대한 배치 처리 기능을 구현하여 동시 카메라 입력을 효율적으로 처리할 수 있습니다.
  • 모델 워커 관리 API 추가: 모델별 현재 워커 개수를 확인하는 GET models/workers/current 엔드포인트와 수동 워커 스케일링을 위한 PUT models/{model_name}/workers 엔드포인트를 구현하여 모델 서빙 리소스에 대한 세밀한 제어가 가능합니다.

Performance Improvements

  • LLMDet을 Swin-B 백본으로 업데이트: 감지 정확도 향상을 위해 LLMDet 모델을 이전 백본에서 Swin-B로 업그레이드했습니다.
  • LLMDet 텍스트 접두사 및 크롭 영역 수정: 텍스트 프롬프트 접두사 형식을 수정하고 적절한 감지 범위를 위해 크롭 영역 경계 문제(ymin: 1 → ymin: 0)를 해결했습니다.
  • RT-DETRv2 컴파일 최적화: 더 나은 추론 성능을 위해 디바이스 타입을 명시적으로 지정하고 RT-DETRv2 컴파일 모드를 reduce-overhead로 업데이트했습니다.
  • 모델 컴파일 안정성 향상: torch.compile 기능을 검증하기 위한 더미 forward pass를 추가했습니다. 컴파일이 실패하면 자동으로 원본 모델로 폴백하며, 안정성 향상을 위해 컴파일 모드를 기본값으로 설정했습니다.
  • 모델 워밍업 스크립트 구현: 초기 추론 지연 시간을 최적화하고 모델이 프로덕션 워크로드에 준비되도록 전용 워밍업 기능을 추가했습니다.
  • 교차 비율 임계값 조정: 더 정밀한 감지 중첩 필터링을 위해 교차 비율을 0.5에서 0.95로 증가시켰습니다.

Deployment

  • 환경 변수를 사용한 포트 설정 중앙화: 다양한 환경에서 향상된 배포 유연성과 설정 관리를 위해 환경 기반 포트 관리를 구현했습니다.
  • 리소스 관리 개선: 더 나은 시스템 안정성과 성능을 위해 리소스 할당 및 관리를 리팩토링했습니다.

v1.2.0 (December 24, 2025)

  • Compatibility: 이 버전은 EVA App v2.3.0 ~ 2.6.1 버전이 필요합니다.

Features

  • RT-DETR V2 및 VitPose 모델 추가: 인간 전용 감지 시나리오를 위해 RT-DETR V2 객체 감지와 VitPose 포즈 추정 모델을 결합한 새로운 인간 감지 모델을 도입했습니다.
  • 신규 API 인터페이스 추가: EVA App v2.3.0과 호환되는 업데이트된 API 인터페이스를 구현하여 통합 기능을 강화했습니다.

Performance Improvements

  • RT-DETR V2 인퍼런스 성능 최적화: RT-DETR V2 모델에 BF16(bfloat16) 정밀도 및 torch.compile 최적화를 적용하여 인퍼런스 속도를 크게 향상시키고 메모리 사용량을 줄였습니다.

Deployment

  • Kubernetes 배포 지원 추가: Kubernetes 클러스터의 컨테이너화된 배포를 위한 Helm 차트 구성을 구현하여, 확장 가능하고 관리 용이한 운영 환경 배포가 가능해졌습니다.

v1.1.2 (November 14, 2025)

  • Compatibility: 이 버전은 EVA App v2.2.x 버전이 필요합니다.

Internal Improvements

  • 프록시 서버용 포그라운드/백그라운드 실행 모드 추가: 터미널 출력이 있는 포그라운드 모드 실행을 위한 --foreground (-f) 플래그를 도입했습니다. 운영 배포용 기본값은 nohup을 사용한 백그라운드 모드로 유지됩니다.
  • 세분화된 TorchServe 로그 보기 기능: 특정 TorchServe 구성 요소의 정밀한 디버깅 및 모니터링을 위해 개별 로그 파일(access, errors, metrics, model, warnings) 보기 명령을 구현했습니다.
  • 파일 메타데이터를 포함한 강화된 로그 뷰어: access, errors, model metrics 등 모든 TorchServe 로그에 대해 파일 크기, 로테이션 상태 및 구조화된 출력을 표시합니다.
  • log4j 설정을 위한 자동 절대 경로 해석 구현: 실행 컨텍스트나 작업 디렉토리에 관계없이 로그가 정상적으로 기록되도록 log4j2.xml의 상대 경로를 절대 경로로 동적 변환하는 함수를 추가했습니다.
  • 배포 스크립트 디버깅 기능 강화: 설정 파일 변경 사항, TorchServe 시작 명령, 시작 중 주기적 상태 확인, 시작 실패 시 에러 로그 자동 표시 등 종합적인 디버그 출력을 추가했습니다.
  • 운영 환경용 Docker 이미지 최적화: 포트 모니터링, 프로세스 관리 및 서비스 상태 확인에 필요한 필수 시스템 유틸리티(lsof, net-tools, procps)를 설치했습니다.
  • 자동 로테이션을 포함한 로그 보관 전략 구현: 로그 유형별로 차별화된 보관 정책(에러: 30일, 경고: 7일, 액세스/메트릭: 3일)을 구성하고 gzip 압축을 적용하여, 주요 데이터는 유지하면서 저장 공간 요구 사항을 90% 절감했습니다.
  • 지능형 메트릭 샘플링: 인퍼런스 지연 시간 및 성능 지표를 캡처하면서 트래픽이 많은 환경에서 로그 양을 약 80% 줄이기 위해 초당 6개의 샘플링을 구현했습니다.
  • 프록시 서버 로그 최적화: 높은 부하(초당 30회 이상의 요청) 상황에서 프록시 로그 양을 99% 줄이기 위해, 모든 ERROR/WARNING 로그는 보존하면서 INFO 레벨 로그에 1% 샘플링을 적용했습니다.
  • 서비스 포그라운드 실행을 위한 Dockerfile 업데이트: 적절한 Docker 로그 스트리밍을 지원하고 서비스 가용성을 유지하면서 컨테이너가 종료되는 것을 방지하기 위해 CMD를 --foreground 플래그 사용으로 수정했습니다.

Bug Fixes

  • CUDA 프로세서 초기화 수정: 프로세서가 CPU 대신 CUDA 장치에서 실행되도록 수정하여 CPU 사용량을 크게 줄이고 인퍼런스 성능을 개선했습니다.
  • 다중 경로 패턴에 대한 설정 파일 처리 수정: 다양한 환경에서 견고한 설정을 보장하기 위해 여러 log4j 경로 형식(file:///, file://, 상대 경로)을 처리하도록 sed 패턴을 업데이트했습니다.
  • 임시 설정 파일 정리 개선: 임시 설정 파일이 쌓이는 것을 방지하기 위해 clean 명령 및 에러 처리 경로에 .properties.tmp 파일의 명시적 삭제 로직을 추가했습니다.
  • log4j2.xml 설정 로드 문제 해결: 절대 경로를 포함한 vmargs=-Dlog4j.configurationFile을 사용하고 ${sys:log_location}을 직접적인 logs 경로 참조로 교체하여 경로 해석 문제를 해결했습니다.

v1.1.0 (October 16, 2025)

  • Compatibility: 이 버전은 EVA App v2.2.x 버전이 필요합니다.

Features

  • 객체 감지 기능 강화를 위한 신규 모델 추가: 오픈 보캐블러리(Open Vocabulary) 제로샷 객체 감지 성능 향상을 위해 OmDet-Turbo 및 LLMDet 모델을 통합했습니다.
  • 유연한 모델 엔드포인트 라우팅 추가: 다양한 모델의 예측 방식을 수용하기 위해 프록시 서버가 동적인 모델별 엔드포인트(기존 predictions/Owl-v2에서 predictions/\{model_name\}으로 변경)를 지원하도록 업데이트했습니다.
  • 종합 로그 관리 명령 도입: 서비스 모니터링 및 유지관리를 용이하게 하기 위해 새로운 logs, status, clean 명령을 추가했습니다.
  • logs: 줄 수 설정이 가능한 로그 보기 (예: ./run.sh logs proxy -n 100)
  • status: 실행 중인 서비스, 포트 상태 및 디스크 사용량 확인
  • clean: 오래된 로그 및 임시 파일 삭제 (예: ./run.sh clean --days 30)

Internal Improvements

  • 보관 정책을 포함한 자동 로그 로테이션 구현: 모든 TorchServe 로그에 대해 15일 보관, 일 단위 로테이션, 100MB 크기 제한 및 자동 .gz 압축을 적용한 Log4j2 기반 설정을 구성했습니다.
  • 서비스 정리 안정성 향상: 서비스를 중단하기 전 패턴 매칭 및 상태 확인을 통해 서비스 상태를 우아하게(gracefully) 처리하도록 stop_services() 함수를 개선했습니다.

v1.0.0 (Oct 1, 2025)

  • Compatibility: 이 버전은 EVA App v2.2.x 버전이 필요합니다.

Features

  • TorchServe 마이그레이션: 운영 수준의 모델 서빙과 안정성 및 확장성 향상을 위해 기존 ALO ML 프레임워크에서 TorchServe로 전환했습니다.
  • 실시간 HTTP 기반 인퍼런스: 더 빠르고 효율적인 처리를 위해 파일 기반 API 통신을 실시간 HTTP 기반 엔드포인트로 교체했습니다.
  • 통합 API 엔드포인트: TorchServe의 여러 포트(인퍼런스, 관리, 메트릭)를 일관된 경로의 단일 인터페이스로 통합하는 FastAPI 기반 프록시 서버를 도입했습니다.
  • 최적화된 OWLv2 모델 핸들러: 배치 인퍼런스 최적화를 위해 OWLv2 모델을 제로샷 감지와 이미지 가이드 감지 전용 핸들러로 분리했습니다.
  • 퓨샷(Few-shot) 학습 지원: 이미지 가이드 감지 핸들러를 통해 퓨샷 학습 기능을 추가했습니다.

Internal Improvements

  • 프로젝트 아키텍처 재구조화: 유지보수성 및 확장성 개선을 위해 TorchServe 핸들러와 프록시 서버 구성 요소를 명확히 분리하여 구조를 재편성했습니다.
  • 유틸리티 모듈 효율화: 코드베이스 정리 및 핸들러 간 재사용성 높이기 위해 유틸리티 모듈을 최적화했습니다.

v0.1.0 (Sep 30, 2025)

  • Compatibility Notice: 이 버전은 EVA App v1.1.0 ~ 2.1.2 버전이 필요합니다.

Features

  • 신규 감지 모델 추가: 오픈 보캐블러리 제로샷 객체 감지를 위해 LLMDet 및 OMDet-Turbo 모델을 통합했습니다.
  • 지원 모델 목록에서 YOLOE 모델 제거: 라이선스 문제로 인해 YOLOE 모델이 지원 대상에서 제외되었습니다.

Bug Fixes

  • Python 3.10 호환성 수정: 지원되는 Python 버전 전반에서 정상 작동하도록 Python 3.10과의 호환성 문제를 해결했습니다.
  • 바운딩 박스(Bbox) 처리 오류 수정: 퓨샷 학습 작업 중 여러 바운딩 박스를 처리할 때 발생하던 오류를 수정했습니다.