SigLIP

FSA·2025년 2월 9일
0

딥러닝 기초

목록 보기
39/44



GPT input output

1. 기존 CLIP 모델과의 차이점

(1) 손실 함수(Loss Function)

  • CLIP:
    • 기존 CLIP은 이미지와 텍스트 임베딩 간의 유사도를 계산한 후, 전체 배치에 대해 softmax 기반의 contrastive loss를 사용합니다.
    • 이 방식은 배치 내 모든 이미지와 텍스트 쌍의 유사도를 정규화해야 하므로, 대규모 배치에서는 계산 복잡도와 메모리 사용량이 크게 증가합니다.
  • 제안 논문:
    • 제안하는 방법은 pairwise sigmoid loss를 사용
    • 각 이미지-텍스트 쌍에 대해 독립적으로 손실을 계산하기 때문에 전역적인 정규화(softmax)를 하지 않아도 됩니다.
    • 이로 인해 배치 사이즈와 독립적으로 동작할 수 있어, 소규모 배치에서도 안정적이며, 큰 배치로 확장할 때 메모리 및 계산 효율이 크게 개선됩니다.

(2) 메모리 효율성과 분산 학습 구현

  • CLIP:
    • 전체 배치에 대한 쌍별 유사도 행렬(크기: |B|×|B|)을 계산하고, 각 디바이스 간에 모든 임베딩을 모아야 하므로, 분산 학습에서 all-gather 연산과 같은 비용이 발생합니다.
  • 제안 논문:
    • “Chunked” 구현 방식을 도입하여, 각 디바이스에서의 배치 크기(b)를 사용해 손실을 계산하고, 디바이스 간에 필요한 최소한의 교환만 수행합니다.
    • 이로 인해 한 시점에 필요한 메모리 비용이 |B|² 대신 b²로 줄어들어, 적은 자원으로도 매우 큰 배치(최대 1백만)에 대해 학습할 수 있습니다.

(3) 배치 사이즈 확장 효과

  • CLIP:
    • 최적의 성능을 내기 위해서 매우 큰 배치 사이즈가 필요하며, softmax 정규화 과정으로 인해 배치 크기 확장이 제한적입니다.
  • 제안 논문:
    • Sigmoid loss는 소규모 배치(예: 16k 미만)에서 softmax보다 월등한 성능을 보이고, 배치 사이즈가 증가함에 따라 두 손실 함수의 성능 차이가 점차 줄어듭니다.
    • 실험 결과, 배치 사이즈 32k 정도가 최적 범위이며, 그 이후 확장은 성능 개선에 미치는 효과가 포화되는 것으로 나타났습니다.

2. Input / Output Specification (Vector Shape 포함)

(1) 입력(Input)

  • 이미지 입력:
    • 이미지 인코더(예: Vision Transformer)를 통과한 후의 결과로, 각 이미지에 대해 임베딩 벡터가 생성됩니다.
    • 벡터 shape: [n, dim]
      • n: 미니 배치의 이미지 개수
      • dim: 임베딩 차원 (예를 들어, 768, 1024 등 모델에 따라 달라짐)
  • 텍스트 입력:
    • 텍스트 인코더(예: Transformer)를 통과한 후의 결과로, 각 텍스트(캡션)에 대해 임베딩 벡터가 생성됩니다.
    • 벡터 shape: [n, dim]
      • 동일하게 미니 배치 내 텍스트 개수와 임베딩 차원을 가짐

(2) 전처리 및 정규화

  • L2 정규화:
    • 이미지와 텍스트 임베딩은 각각 L2 정규화를 수행하여 단위 벡터로 만듭니다.
    • 이를 통해 두 임베딩 사이의 내적(dot product)이 코사인 유사도와 유사한 역할을 하게 됩니다.

(3) 유사도 행렬 계산

  • 내적 연산:

    • 정규화된 이미지 임베딩과 텍스트 임베딩의 내적을 계산합니다.
    • 결과 벡터 shape: [n, n]
      • 행 i, 열 j의 원소는 이미지 i와 텍스트 j 간의 내적 값(유사도)을 나타냅니다.
  • 스케일링 및 바이어스:

    • 계산된 내적 값은 학습 가능한 온도(temperature, t)를 exponentiation한 값으로 스케일되고, 추가적인 학습 가능한 바이어스(b)가 더해집니다.

    • 식으로 표현하면:

      logits = dot(z_img, z_txt^T) * t + b

      여기서 z_imgz_txt는 각각 L2 정규화된 이미지 및 텍스트 임베딩입니다.

(4) 라벨 생성 및 손실 함수 계산

  • 라벨 행렬:

    • 정답(positive) 쌍에 대해서는 1, 나머지(negative) 쌍에 대해서는 -1 값을 부여합니다.
    • 생성 방식:
      labels = 2 * eye(n) - ones(n)
      • eye(n)은 n×n 단위 행렬로, 대각선은 1, 나머지는 0
      • 결과적으로 대각선은 (2-1)=1, 나머지는 (0-1)=-1
  • Sigmoid Loss 계산:

    • 각 이미지-텍스트 쌍에 대해, 라벨과 스케일된 유사도(logit)의 곱에 대해 log-sigmoid 함수를 적용하고, 전체 배치에 대해 평균을 취해 손실을 계산합니다.
    • 의사코드 형태로:
      l = -sum( log_sigmoid( labels * logits ) ) / n
    • 이 과정에서 긍정 쌍은 log_sigmoid(양수 값)이 크게 나오도록, 부정 쌍은 log_sigmoid(음수 값)이 크게 나오도록 학습됩니다.

(5) 출력(Output)

  • 최종 출력:
    • 위의 과정을 통해 계산된 평균 손실 값이 출력으로 사용되며, 이 손실 값을 최소화하는 방향으로 이미지 인코더와 텍스트 인코더의 파라미터가 업데이트됩니다.
  • 임베딩 공간:
    • 학습이 완료된 후, 이미지와 텍스트 인코더는 동일한 임베딩 공간에 매핑되어, zero-shot 분류, 검색 등 다양한 다운스트림 작업에 활용됩니다.

결론

  • 차별점:
    해당 논문은 기존 CLIP의 softmax 기반 contrastive loss 대신, 전역 정규화가 필요 없는 sigmoid loss를 사용하여 메모리 및 계산 효율성을 크게 개선하고, 분산 학습 구현을 단순화하였습니다. 또한, 배치 사이즈의 제약에서 벗어나 소규모 배치에서도 우수한 성능을 보이는 동시에, 대규모 배치 확장에서도 효과적임을 실험적으로 입증하였습니다.

  • 입출력 명세:

    • 입력: 이미지와 텍스트 임베딩 ([n, dim])
    • 처리: L2 정규화 → 내적(유사도 행렬, [n, n]) → 온도 및 바이어스 스케일링 → 라벨 행렬 생성 → sigmoid 기반 손실 계산
    • 출력: 평균 손실 값(학습 신호) 및 동일 임베딩 공간으로 매핑된 이미지/텍스트 벡터



GPT 요약

아래는 논문의 핵심 내용을 정리한 한국어 요약입니다.


1. 연구 배경 및 동기

  • 이미지-텍스트 프리트레이닝의 중요성:
    최근 CLIP, ALIGN 등과 같이 웹에서 수집한 이미지-텍스트 쌍을 활용하여 범용 비전 백본(vision backbone)을 학습하는 방법이 주목받고 있습니다. 기존의 방법들은 배치 내 모든 이미지와 텍스트 쌍의 유사도를 전역적으로 정규화하는 softmax 기반의 contrastive 손실을 사용합니다.

  • 문제점:
    softmax 손실은 배치 내 모든 쌍의 유사도를 고려해야 하므로, 배치 사이즈가 클 경우 계산 및 메모리 비용이 크게 증가하며 분산 학습 구현 시에도 복잡성이 증가합니다.

citeturn0fetch0


2. 제안하는 방법: 시그모이드 손실 (Sigmoid Loss)

  • 핵심 아이디어:
    논문은 이미지-텍스트 쌍에 대해 개별적으로 작동하는 시그모이드 손실을 제안합니다.

    • 글로벌 정규화 불필요: 각 이미지-텍스트 쌍을 독립적으로 처리하여, 전체 배치에 대한 정규화 연산이 필요하지 않습니다.
    • 배치 사이즈와 독립적: 이로 인해 배치 사이즈가 작더라도 효과적으로 학습할 수 있으며, 대규모 배치로 확장하는 경우에도 효율적입니다.
  • 추가 기법:
    초기 학습 시 부정(negative) 샘플의 불균형 문제를 완화하기 위해, 학습 가능한 온도(temperature)와 바이어스(bias)를 도입합니다. 초기에는 온도를 크게, 바이어스를 음수 값으로 설정하여 학습이 과도하게 한쪽으로 치우치지 않도록 합니다.

  • 메모리 효율적 구현:
    전통적인 방식에서는 배치 내 쌍별 유사도 행렬(|B|×|B|)을 계산해야 하지만, 제안하는 “chunked” 방식은 각 디바이스에서 계산되는 배치 크기를 b로 제한하여 메모리 사용량을 b²로 줄입니다. 이를 통해 적은 수의 연산 자원으로도 매우 큰 배치 사이즈(최대 1백만)로 학습할 수 있습니다.

citeturn0fetch0


3. 실험 및 결과 분석

  • SigLiT와 SigLIP 모델:
    논문에서는 두 가지 프레임워크(기존 LiT와 CLIP 기반)에서 각각 SigLiT와 SigLIP 모델을 실험하였습니다.

  • 배치 사이즈의 영향:

    • 소규모 배치 (<16k): 시그모이드 손실이 softmax 손실보다 큰 성능 향상을 보였습니다.
    • 대규모 배치: 배치 사이즈가 32k 정도로 증가하면 두 손실 간의 성능 차이가 점차 줄어들며, 그 이후 배치 사이즈를 늘려도 성능 개선 효과는 포화 상태에 도달합니다.
  • 구체적 성능:

    • 4 TPUv4 칩을 사용해 SigLiT 모델을 4k 배치로 1일 만에 학습시켰을 때 ImageNet zero-shot accuracy가 79.7%에 도달하였으며, 20k 배치로 2일 학습 시 84.5%에 달하는 결과를 보였습니다.
    • 메모리 효율성 덕분에 같은 자원으로도 softmax 기반 모델보다 더 큰 배치 사이즈를 사용할 수 있음을 확인하였습니다.
  • 다국어 학습:
    다국어 데이터를 대상으로 한 SigLIP 실험에서도, 배치 사이즈 32k가 충분하며, 대규모 배치 확장이 오히려 성능 저하로 이어질 수 있음을 보였습니다.

citeturn0fetch0


4. 기여 및 의의

  • 구현 단순화 및 효율성:
    시그모이드 손실은 softmax 기반의 정규화 과정을 제거함으로써, 분산 학습 구현이 단순해지고 메모리 소모를 크게 줄이는 효과를 가져옵니다.

  • 배치 사이즈 독립성:
    배치 사이즈에 덜 민감하게 작동하여, 작은 배치에서도 우수한 성능을 보이고, 대규모 배치에서도 효율적으로 확장할 수 있습니다.

  • 실제 적용 가능성:
    제한된 자원(예: 4 TPUv4 칩)으로도 높은 성능의 모델을 단기간 내에 학습시킬 수 있어, 연구자 및 실무자에게 큰 도움이 될 수 있는 방법론을 제시합니다.


결론

이 논문은 이미지-텍스트 프리트레이닝 분야에서 기존 softmax 기반 방법의 한계를 극복하기 위해, 개별 이미지-텍스트 쌍에 대해 독립적으로 작동하는 시그모이드 손실을 제안합니다. 이 방식은 메모리 효율성이 뛰어나고, 배치 사이즈와의 결합성이 낮아 다양한 학습 설정에서 우수한 성능을 보이며, 특히 제한된 자원에서도 경쟁력 있는 결과를 낼 수 있음을 실험적으로 증명하였습니다.

profile
모든 의사 결정 과정을 지나칠 정도로 모두 기록하고, 나중에 스스로 피드백 하는 것

0개의 댓글

관련 채용 정보