EVA Vision Release Notes
v2.0.4 (July 6, 2026)
- Helm Chart Version:
2.0.4 - compatibility: 이 버전은 EVA App v3.0.0 이상을 대상으로 합니다.
Improvements
-
App 워크플로우에서 MMGDino를 내부 전용 모델로 전환:
MMGDino는 직접 호출 및 내부 사용을 위해 TorchServe에는 계속 로드하지만,GET /models응답에서는 숨기고/sync기반 동적 카메라 스케일링 대상에서 제외합니다. -
일부 모델만 사용 가능한 상황에서 앙상블 동작 개선: 실제로 등록되어 있고 READY 상태인 모델을 기준으로 투표 요구 조건을 조정하고, 요청된
current_model이 reference score를 제공할 수 없는 경우 명확한503을 반환합니다. -
배포 및 모델 아카이브 구성 개선: 모델 아카이브 생성 시
dummy.pt를 자동 생성하도록 추가하고, Docker build context에서 placeholder 파일을 제거하며,Recreate배포 전략 사용 시 Helm 렌더링이 올바르게 동작하도록 수정합니다. -
서빙 스택 및 worker 프로파일 업데이트: 핵심 런타임 의존성을 업그레이드하고
OmDet,MMGDino,RT-DETRV2의 camera-to-worker 프로파일을 조정합니다. -
RT-DETRV2 VitPose 검증 메모리 사용량 제한: 사람이 많이 탐지되는 혼잡 장면에서 GPU 메모리 spike를 피할 수 있도록 RT-DETRV2 VitPose 검증에 설정 가능한 chunk 처리를 추가합니다.
-
핸들러의 로컬 모델 아티팩트 로딩 강제: 런타임 중 Hugging Face Hub 조회나 다운로드가 발생하지 않도록 로컬 MAR/model directory의 모델 아티팩트만 로드합니다.
Bug Fixes
-
카메라 registry 제거 수정:
app_registry.remove()를 await하여DELETE /models/{model}/cameras/{app_id}호출 시 App entry가 실제로 제거되도록 수정합니다. -
LLMDet/MMGDino compiled text backbone mask 처리 수정: Transformers 5.x의 mask shape 오류를 해결하기 위해 compiled BERT text backbone에는 tokenizer
attention_mask를 전달하고, downstream encoder logic에는 기존text_self_attention_masks를 유지합니다. -
RT-DETRV2 non-person target 처리 수정: multi-target 요청에서 person 검증 작업이 중복되지 않도록 non-person target에 대해서는 RT-DETRV2/VitPose 검증을 건너뜁니다.
-
OmDet backbone input size 수정: 현재 Transformers runtime에서 기대하는 OmDet backbone input size를 복구합니다.
v2.0.3 (June 25, 2026)
- Helm Chart Version:
2.0.3 - compatibility: 이 버전은 EVA App v3.0.0 이상을 대상으로 합니다.
Improvements
- RT-DETRV2 고부하 처리 성능 개선:
base.postprocess()경로를 우회하고 thresholding, NMS, boundary filtering, interest zone filtering, VitPose verification을 handler 내부의 GPU tensor 중심 흐름으로 통합해 CPU 후처리 병목과 CPU/GPU 왕복을 줄였습니다. - Probe 초기 지연 시간 조정: RT-DETRV2 초기화 및 worker 준비 시간이 긴 환경을 고려해 liveness/readiness probe의 initial delay를 각각 3000, 1200으로 늘렸습니다.
- Interest zone 로그 소음 감소: interest zone polygon 생성, 영역 필터링, ROI 제외 로그를
info에서debug로 낮춰 고부하 요청 상황에서 불필요한 로그 비용을 줄였습니다.
Bug Fixes
- Interest zone debug 계산 비용 수정: debug 로그가 꺼져 있을 때 polygon distance 계산을 수행하지 않도록 변경해 불필요한 연산을 제거했습니다.
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의
id를eva_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)및 CUDAbfloat16실행을 적용해 serving 효율을 개선했습니다. - IG API 검증 및 문서 강화: IG inference payload에 대한 proxy-side validation을 추가하고, scenario threshold와 interest zone을 포함한
get_embedding/inferencerequest-response format을 문서화했습니다. - 기본 serving worker 설정 조정: 더 가벼운 기본 runtime profile을 위해
OmDet및MMGDino의 기본 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
- 환경 변수를 사용한 포트 설정 중앙화: 다양한 환경에서 향상된 배포 유연성과 설정 관리를 위해 환경 기반 포트 관리를 구현했습니다.
- 리소스 관리 개선: 더 나은 시스템 안정성과 성능을 위해 리소스 할당 및 관리를 리팩토링했습니다.