LQN이 한 번의 순전파로 VLM을 테스트 시점에 적응시킨다
Position Aware Layer Queries for Test Time Training in Vision Language Models
무엇인가
CLIP 같은 Vision-Language 모델(VLM)은 제로샷 일반화가 강하지만 실제 배포에서 분포 이동(out-of-distribution, OOD)을 만나면 성능이 떨어진다. 라벨 있는 타깃 데이터를 요구하는 LoRA·Adapter·VPT 같은 파라미터 효율적 파인튜닝은 현실에서 가정하기 어렵고, Test-Time Adaptation은 여러 테스트 샘플을 캐시해야 안정적으로 동작해 의료 진단처럼 데이터가 제약된 상황에 쓰기 어렵다. Test-Time Training(TTT)은 단 하나의 테스트 샘플만으로 적응한다는 점에서 이 제약을 피한다. 문제는 기존 TTT인 TPT·TPS가 증강 뷰들 사이의 일관성을 자기지도 신호로 쓰기 때문에, 증강 하나하나마다 VLM 전체를 순전파(그리고 흔히 역전파)해야 해 계산 비용이 크다는 것이다.
어떻게 동작하나
이 논문의 출발점은 관찰이다. VLM을 한 번 순전파하면 최종 임베딩뿐 아니라 L개 층 각각의 H×W 공간 토큰(D차원)이 나온다. 저자들은 이 스택을 3D hidden-state volume Y^{1,2,...,L} ∈ R^{H×W×L×D}로 보고, 모든 증강의 최종 임베딩보다 한 번의 순전파가 주는 중간층 신호가 훨씬 많다고 주장한다. 그래서 제안하는 것이 Layer Query Network(LQN)다. 동결된 VLM을 교사로 두고, 25M 파라미터의 작은 학생 네트워크가 교사의 중간층 공간 토큰을 흉내 내도록 N회 반복 학습한다. 교사는 테스트 샘플당 단 한 번만 순전파하면 되고, 이후 반복은 값싼 학생 쪽에서만 일어난다.
무엇과 다른가
첫 번째 목적함수는 Position-Aware Distillation(PAD)이다. 학생 S_img는 테스트 이미지 x_ood와 src, dest 좌표를 입력받아 S_img(x_ood, i, j, l) → f ∈ R^D를 출력하고, 교사의 (i,j,l) 위치 토큰을 코사인 손실 L_PAD = 1 - cos(S_img, Y_img[i_d,j_d,l_d])로 모방한다. 3D 정수 좌표를 그대로 넣으면 수렴이 나빠서 3D RoPE 위치 인코딩 P(i,j,l)을 쓰고, src와 dest를 구분하기 위해 상수 sinusoidal flag P^T ∈ R^{2×D}를 채널 방향으로 concat한다. 기존 중간층 증류가 학생 블록과 교사 블록의 1대1 대응을 요구해 학생 구조를 제약하는 것과 달리, PAD는 하나의 공유 네트워크가 모든 층을 위치 조건으로 맞추게 한다.
어떻게 쓰나
두 번째는 Location Consistency Regularization(LCR)이다. TTT에서 증강 뷰 일관성이 주던 자기지도 신호를, 이미지 증강 대신 좌표 샘플링으로 대체한다. src1, src2 두 위치와 dest 하나를 뽑아 (src1,dest)와 (src2,dest)의 출력이 dest에서 같아지도록 코사인 일관성을 건다. 비용은 O(H×W) 픽셀 증강이 아니라 O(1) 좌표 조회다. 다만 자명해가 있다. 모델이 src를 무시하고 w_src → 0으로 가면 일관성은 공짜로 달성된다. 저자들은 -log||w_src||_2 항(ε=1e-7, 최대 0.7로 클램프)을 더해 가중치 붕괴를 막는다. 최종 손실은 Loss = L_PAD + α·L_LCR이고, 추론 시에는 src=(0,0,0), dest=(i,j,L)로 마지막 층 특징을 예측해 분류에서는 공간 특징을 평균 내 텍스트 특징과 내적하고, 분할에서는 동결된 mask head에 그대로 넣는다.
전제와 한계
실험은 14개 분류 벤치마크와 5개 분할 태스크에서 이뤄졌다. 자연 분포 이동에서는 ImageNet val과 ImageNet-A/V2/R/Sketch를 쓴다. 제로샷 CLIP의 평균 OOD 정확도는 57.1%인데, LQN과 LQN(pretrained)은 CLIP ViT-Base에서 OOD 평균 기준 기존 TTT 대비 4.9%/6.5% 향상했다. 초록 기준으로 CLIP ViT-B/16은 OOD ImageNet Top-1이 9.8%, ViT-L/14는 5.7% 올랐다. Fine-grained 9개 데이터셋(Flowers102, DTD, OxfordPets, UCF101, Caltech101, Food101, SUN397, FGVCAircraft, EuroSAT)에서는 평균 5.4%/6.8% 향상으로 이전 최고였던 GS-Bias를 넘어섰고, GS-Bias 대비 3.9% Top-1 우위를 기록했다. 계산 비용 수치가 이 주장을 뒷받침한다. TPT는 테스트 샘플당 경사 업데이트를 한 번만 하지만 증강 63개 때문에 VLM 순전파가 64회 필요해 총 1312 GFLOPS를 쓴다. LQN은 CLIP 순전파 1회(20.5 GFLOPs)에 학생 업데이트 N=14회의 역전파(10 GFLOPs씩)를 더해 160.5 GFLOPs로 끝난다. ImageNet 검증 50,000장에 대한 TTT wall-clock은 단일 A6000에서 APM이 1시간 이상, LQN이 47분이었고 정확도는 4.2% 더 높았다. 초록은 CLIP ResNet-50에서 TPS 대비 47분 대 55분으로 더 빠르게 수렴한다고 적는다.
일반화 범위도 넓다. 학생은 5개 선형층 + ReLU + 16×16 커널, stride 16 conv 필터 하나로 된 25M 네트워크이고, MLP뿐 아니라 ResNet18/34, VGG 같은 30M 미만 ConvNet도 학생으로 쓸 수 있다(이 경우 RGB에 위치 인코딩 채널을 하나 더해 4채널로 넣고 학습 가능한 projector로 3채널로 되돌린다). 교사 쪽은 CLIP 외에 SigLIP, EVA-CLIP, CoCa로 확장되고, EoMT를 교사로 COCO·Cityscapes·ADE20K의 panoptic/instance/semantic 분할에도 적용된다. 흥미로운 분석도 있다. EoMT ViT-L의 20개 층만 증류하고 추론 시 20~24층을 예측하게 했더니 20번째 층 56.2에서 24번째 층 60.3 mIoU로 올라, 위치 조건부 학생이 학습 때 보지 못한 층으로 외삽할 수 있음을 보였다(24층 전부 쓰면 peak 64.5). 반면 테스트 샘플 자체를 증강하면 ViT-B 기반 TPT/TPS에서는 도움이 되지만 LQN에는 해로웠다. 손실은 코사인이 L1/L2보다, 위치 인코딩은 RoPE가 절대 인코딩보다, 샘플링은 균등 샘플링이 가장 좋았다.
개발자 관점에서 LQN은 라벨 없는 단일 샘플 스트림에 모델을 맞춰야 하는 상황, 예컨대 도메인이 계속 바뀌는 엣지 추론이나 의료 영상처럼 샘플을 모아둘 수 없는 환경에서 의미가 있다. 실제로 붙일 때 확인할 것은 세 가지다. 첫째, 적응은 테스트 샘플마다 독립적으로 이뤄지고 다음 샘플 전에 가중치를 리셋해 샘플 간 정보 누출을 막는다. 둘째, 교사 VLM은 동결이지만 중간층 특징을 역전파 동안 들고 있어야 하므로 메모리 오버헤드가 남는다. 셋째, LQN(pretrained) 변형은 DINOv2의 ImageNet 특징을 증류하는 SSL 사전학습을 먼저 거친 뒤 TTT를 수행한다는 전제가 붙는다.
저자들이 밝힌 한계와 다음 단계는 명확하다. 중간 특징 저장 오버헤드, top-k 토큰 선택을 통한 효율적 feed-forward, 특징 압축으로 메모리와 연산을 더 줄일 여지가 있다고 본다. 다음 단계로는 스트리밍 비디오, 즉 들어오는 프레임에 선택적·동적으로 적응하는 것을 제안한다. 또한 LCR은 src 가중치가 0으로 붕괴하는 자명해를 정규화로 막아야 동작하고, PAD는 교사 출력이 불확실한 OOD 입력에서 교사에 대한 맹목적 의존을 줄이기 위해 LCR과 함께 써야 한다는 것이 실험으로 드러난 전제다.