ML Background · Sprint 2 준비

Multi-task fine-tuning은 무엇을 같이 배우는가

Apple이 pre-train한 MobileCLIP2-S3/S4 계열 모델을 가져와 우리 랜드마크 데이터셋에 fine-tuning할 때, 이미지 분류와 이미지-텍스트 정렬을 동시에 학습하는 이유와 그에 맞춰 라벨링이 어떻게 바뀌어야 하는지 정리한다.

핵심 결론

Sprint 1 방식은 이미지가 어느 landmark_id인지 맞추는 분류 학습에 가까웠다. Sprint 2에서 자연어 검색까지 강하게 만들려면 같은 이미지에 대해 분류 정답한/영 caption을 함께 제공해, 모델이 “이 사진은 광화문이다”와 “이 사진은 palace gate라는 문장과 가깝다”를 동시에 배우게 해야 한다.

1. Multi-task 방식의 좋은 점

좋은 점 무슨 의미인가 우리 프로젝트에서 좋아지는 부분
이미지 인식 성능을 붙잡는다 classification loss가 현재 지원 landmark class를 계속 구분하게 만든다. 사진 입력 시 Top-1/Top-3 후보가 안정된다.
자연어 검색이 모델 내부에서 강해진다 contrastive loss가 이미지 embedding과 caption embedding을 가까이 둔다. “돌담 있는 공원”, “palace gate”, “royal shrine” 같은 검색이 keyword 보정에 덜 의존한다.
비슷한 landmark를 더 잘 분리할 수 있다 hard negative caption과 혼동쌍을 넣으면 유사 class 사이 margin을 키울 수 있다. 광화문/근정문, 궁궐/사찰, 청와대/궁궐 배경 혼동을 별도 목표로 다룰 수 있다.
텍스트 카탈로그와 모델 학습이 연결된다 앱 검색용 문장과 학습 caption이 같은 방향의 supervision이 된다. 문서화된 라벨링 작업이 곧 검색 품질 개선으로 이어진다.

2. 실제로 어떻게 학습되는가

한 mini-batch 안에 이미지와 caption이 함께 들어간다고 생각하면 된다. 모델은 같은 행의 이미지-문장을 positive pair로 보고, 다른 행의 이미지-문장은 negative pair로 본다. 동시에 각 이미지가 어느 class인지도 맞춘다.

이미지 gwanghwamun_001.jpg landmark_id=gwanghwamun Caption 광화문 정면의 큰 궁궐 문 Image encoder image embedding Text encoder text embedding Classification loss image embedding → landmark class 정답 class 점수는 올리고, 나머지는 낮춘다 Contrastive loss 맞는 image-text pair는 가까이 틀린 pair와 hard negative는 멀리
total_loss =
  classification_loss(image_embedding, landmark_id)
  + lambda_text * contrastive_loss(image_embedding, text_embedding)
  + lambda_hard * optional_hard_negative_loss

lambda_text는 두 목표의 힘 조절값이다. 너무 크면 텍스트 정렬은 좋아져도 이미지 분류가 흔들릴 수 있고, 너무 작으면 자연어 검색 개선이 약하다. 보수적으로는 작은 값에서 시작해 validation으로 조절한다.

3. 기존 데이터셋과 무엇이 달라져야 하는가

기존에는 이미지마다 “정답 landmark_id가 무엇인가”가 가장 중요했다. Multi-task에서는 여기에 “이 이미지가 어떤 문장과 같은 의미인가”가 추가된다. 그래서 라벨링은 이미지 라벨링과 caption 라벨링으로 나뉘되, 둘이 같은 record 안에서 연결되어야 한다.

영역 기존 방식 Multi-task 방식 이유
이미지 record file_name, landmark_id, label_status 중심 주 피사체, 배경 landmark, view, quality, source group까지 기록 잘못된 positive와 leakage가 contrastive 학습을 더 크게 망칠 수 있다.
Caption 있어도 보조 설명에 가까움 학습 supervision으로 사용되는 필수 필드 caption이 틀리면 이미지와 잘못된 의미를 가까이 학습한다.
언어 영어 중심 또는 keyword 보정 중심 한국어와 영어를 모두 작성 사용자는 한국어로도 검색하고, MobileCLIP 계열은 영어 강점도 유지해야 한다.
Hard negative 실패 후 분석에 가까움 라벨 단계부터 confusing_with와 contrast caption으로 기록 광화문/근정문처럼 비슷한 pair를 batch 안에서 의도적으로 멀게 할 수 있다.
텍스트 카탈로그 앱 검색용 사전 앱 검색용 + caption 생성 기준 + 회귀 질의 seed 검색과 학습이 같은 vocabulary를 공유해야 수정 효과가 쌓인다.

4. Caption은 어떤 식으로 써야 하는가

Caption은 “예쁜 설명문”이 아니라 모델에게 주는 정답 문장이다. 이미지에 실제로 보이는 시각 단서를 먼저 쓰고, 그 다음 장소의 기능과 이름을 붙인다. 한 이미지에 여러 caption을 둘 수 있지만, 모두 같은 사진과 맞아야 한다.

{
  "caption_set": [
    {
      "caption_type": "name_anchor",
      "text_ko": "광화문 사진",
      "text_en": "Gwanghwamun Gate photo"
    },
    {
      "caption_type": "visual_feature",
      "text_ko": "넓은 광장 앞에 있는 큰 궁궐 문과 흰 돌담, 어두운 기와지붕이 보인다.",
      "text_en": "A large palace gate in front of a broad plaza, with white stone walls and dark tiled roofs."
    },
    {
      "caption_type": "contrast_with",
      "target": "gyeongbokgung_geunjeongmun",
      "text_ko": "근정문과 달리 광화문은 경복궁 바깥쪽의 주 출입문이다.",
      "text_en": "Unlike Geunjeongmun, Gwanghwamun is the outer main gate of Gyeongbokgung Palace."
    }
  ]
}

5. 왜 데이터가 많으면 좋은가

데이터가 많다는 것은 단순히 숫자가 늘어나는 것만이 아니다. 모델이 “광화문은 항상 낮 사진 정면만 있다”처럼 좁게 외우지 않고, 야간, 측면, 원거리, 사람 많음, 비 오는 날, crop된 사진까지 같은 의미로 묶을 수 있게 된다.

부족한 데이터 모델이 배우기 쉬운 잘못된 규칙 보강 방향
정면 낮 사진만 많음 야간/측면 광화문을 낮은 confidence로 본다. night, side_exterior, far view를 별도 수집한다.
궁궐 계열 contrast 부족 기와지붕과 단청이 보이면 비슷한 class로 몰린다. 광화문/근정문/덕수궁/창경궁 hard negative를 만든다.
OOS/저품질 부족 모든 입력을 지원 class 중 하나로 억지로 답한다. screen capture, blur, noise, 비대상 건축물을 test set으로 분리한다.
한국어 caption 부족 한국어 자연어 검색을 keyword 보정에 의존한다. 한국어 visual/function/contrast caption을 추가한다.

Sprint 2 권장 실험

  1. 현재 image-label classification baseline을 고정해 성능과 실패 케이스를 보존한다.
  2. 각 이미지에 한/영 caption_set을 추가하고, landmark 단위 text catalog와 용어를 맞춘다.
  3. image encoder는 낮은 learning rate, text/embedding head는 조금 더 높은 learning rate로 시작한다.
  4. classification-only, contrastive-only, multi-task 세 실험을 같은 split으로 비교한다.
  5. 이미지 Top-1, Top-3, 자연어 검색 Top-3, hard pair margin, OOS 거절률을 따로 본다.

참고해볼만한 자료

지식 자료 읽는 이유
MobileCLIP2 Apple Machine Learning Research: MobileCLIP2 우리가 쓰는 MobileCLIP2가 어떤 계열의 image-text model인지 확인하기 좋다.
CLIP contrastive 학습 Learning Transferable Visual Models From Natural Language Supervision 맞는 이미지-텍스트 쌍을 가깝게 두는 원래 CLIP 학습 원리를 이해할 수 있다.
분류 loss PyTorch CrossEntropyLoss 이미지-label classification이 어떤 목표로 class 점수를 학습하는지 확인할 수 있다.
Supervised contrastive Supervised Contrastive Learning 같은 class는 가깝게, 다른 class는 멀게 만드는 representation learning 관점을 볼 수 있다.