v2.1.0 (July 27, 2026)
- Helm Chart Version:
2.1.0
- compatibility: 이 버전은 EVA App v3.0.0 이상을 대상으로 합니다.
새로운 기능
- 통합 임베딩 API 추가: 단일 TorchServe 핸들러로 제공되는 임베딩 API를 도입했습니다. 하나의 worker에서 설정 가능한 모델 subset을 로드하며,
inputs 기반 요청(text / image / image+text, 1~4개 항목)과 JSON envelope 응답({model, output, dim, data:[{index, embedding, num_tokens}]})으로 dense 및 multi-vector 출력을 모두 지원하고, Accept 헤더 기반 JSON/NPZ content negotiation을 제공합니다.
- 임베딩 모델 추가:
DINOv2Small, E5EmbeddingSmall과 멀티모달 모델 Qwen3VLEmbed2B(dense 2048-d), ColQwen3(late-interaction multi-vector, AWQ 4-bit)를 추가했습니다.
- 활성화된 임베딩 자산을 통합 MAR로 패키징:
EMBEDDING_ENABLED_MODELS로 선택된 모델 디렉터리만 아카이브하고 모델별 구조를 유지하며, 모델 이름을 검증하고 Docker build argument로 모델 선택을 지원합니다.
- 차량 탐지 및 appearance tracking 파이프라인 추가: 객체별
vehicle N 탐지를 반환하는 vehicle 전용 RT-DETRV2 핸들러, state-in/state-out 오케스트레이션을 갖춘 FastAPI appearance tracking 엔드포인트, 카메라 단위 tracking 요청 직렬화, captured timestamp / frame delta 전파를 추가했습니다.
- Camera state manager(CSM) 구현: tracking 파이프라인 전반에서 카메라별 상태를 조율하는 camera state manager를 추가했습니다.
- Startup probe 추가: worker 초기화가 느린 환경을 위한 startup probe를 추가했습니다.
개선 사항
- 임베딩 및 IG warmup 확장: 활성화된 각 모델을 통합 임베딩 엔드포인트로 warmup하고, 유효한 이미지와 bounding box를 사용한 IG
get_embedding warmup을 추가했으며, IG 빈 응답을 실패로 감지하고, 모델별 warmup payload를 사용하면서 non-2xx 응답을 실패로 처리합니다.
- LLMDet 이미지 입력 해상도 및 visual token 수 최적화: 입력을
800x1344 대신 576x960(32픽셀 배수)으로 resize 및 padding하여 이미지 면적을 약 51.8%, pixel/token workload를 약 48%로 줄였습니다. COCO TorchServe batch size 1 기준 latency가 4703.33 ms에서 3850.39 ms로 감소해 852.94 ms(약 18.1%) 개선되었으며, AP·AP50·AP75는 각각 0.002 향상되고 AR@100은 동일하게 유지되었습니다.
- LLMDet Text token padding 최적화: 토큰화된 Text 길이를 먼저 측정한 뒤
32, 64, 128, 256 중 필요한 최소 bucket을 선택하여 모든 target을 model 최대 길이로 padding하지 않도록 개선했습니다. 256 token을 초과하는 target은 명확한 validation error로 처리합니다.
버그 수정
- MMGDino/LLMDet text attention mask parity 복구: MMGDino와 LLMDet의 zero-shot inference 동작이 올바르게 복구되도록 text attention mask 처리를 수정했습니다.
- 요청마다 Qwen3-VL rope_deltas 초기화: 각 encode 전후로 캐시된
rope_deltas를 초기화하여 batch size가 다른 요청이 다음 요청을 손상시키거나 crash시키지 않도록 하고, 일관된 임베딩을 위해 Qwen3-VL / ColQwen3를 attn_implementation="eager"로 전환했습니다.
- OmDet의 Hugging Face Hub kernel 비활성화: Transformers import 전에
USE_HUB_KERNELS=NO를 설정하고 offline 기본값을 export하여, 폐쇄망 배포에서 hub kernel 다운로드를 시도하지 않도록 했습니다.
- 단일 TorchServe 임베딩 핸들러 클래스 노출: 핸들러 모듈에는
UnifiedEmbeddingHandler만 남기고 EmbeddingResult를 adapters 모듈로 이동하여 TorchServe custom service entry-point 감지 실패를 방지했습니다.
- 컨테이너 이미지에서
EMBEDDING_MODEL_ROOT 고정: 런타임 이미지에 모델 root를 고정하여 임베딩 모델 resolution 문제를 해결하고, 외부 root를 사용할 수 없는 경우 archive-root fallback을 적용했습니다.