Water Sort Puzzle Icon

워터 소트 퍼즐 (Water Sort Puzzle)

색깔이 있는 물을 유리병에 분류하는 재미있고 중독성 있는 퍼즐 게임입니다.

Google Play 스토어

프로그래밍 일반

Gemma3 는 어떻게 이미지를 인식하나?

해리슨7 2025. 8. 1. 10:30

Gemma 3는 Google에서 개발한 멀티모달 언어 모델로, 텍스트뿐만 아니라 이미지를 처리할 수 있는 기능을 갖추고 있습니다. 특히 4B, 12B, 27B 파라미터 모델은 이미지 입력을 지원하며, 1B 모델은 텍스트 전용입니다. Gemma 3가 이미지를 인식하는 원리는 다음과 같은 과정을 통해 이루어집니다. 아래는 최신 정보를 바탕으로 한 간결하고 체계적인 설명입니다.


1. 이미지 입력 및 전처리

  • 입력 형식: Gemma 3는 이미지를 896x896 픽셀의 정사각형으로 처리합니다. 고해상도 또는 비정사각형 이미지를 처리하기 위해 Pan & Scan 알고리즘을 사용합니다.
    • Pan & Scan: 이미지를 비중첩 크롭(crop)으로 분할하여 각각 896x896으로 리사이징한 후 처리. 이는 텍스트 가독성 및 작은 객체 인식 문제를 해결하며, 최대 크롭 수를 제어해 효율성을 유지합니다.
  • 전처리:
    • 정규화: 픽셀 값을 표준화(예: 평균 0.5, 표준편차 0.5로 정규화).
    • RGB 변환: 이미지를 RGB 형식으로 변환.
    • 토큰화: 이미지는 시각적 토큰(soft token)으로 변환되어 텍스트 토큰과 함께 처리됩니다.

2. 이미지 특징 추출: SigLIP 비전 인코더

  • SigLIP 비전 인코더: Gemma 3는 400M 파라미터 규모의 SigLIP(Sigmoid Loss for Language-Image Pre-training) 비전 인코더를 사용합니다. 이는 Vision Transformer(ViT) 기반으로, 모든 모델 크기(4B, 12B, 27B)에서 동일하게 사용됩니다.
    • 작동 원리: 이미지를 14x14 패치로 나누고, 컨볼루션 레이어(커널 크기 14x14, 스트라이드 14)를 통해 패치당 임베딩을 생성. 이후 트랜스포머 레이어를 통해 256개의 임베딩 벡터(시각적 토큰)를 출력.
    • 특징: SigLIP은 이미지와 텍스트를 대비 학습(contrastive learning)으로 사전 학습하여 이미지-텍스트 쌍의 의미적 관계를 효과적으로 학습.
  • 출력: 이미지에서 추출된 256개의 시각적 토큰은 언어 모델의 입력 시퀀스에 통합되어 텍스트 토큰과 함께 처리됩니다.

3. 멀티모달 통합

  • 통합 처리: SigLIP에서 생성된 시각적 토큰은 Gemma 3의 언어 모델(트랜스포머 디코더)에 입력됩니다. 이를 통해 이미지와 텍스트를 결합한 멀티모달 이해가 가능합니다.
  • 어텐션 메커니즘:
    • 인터리브드 로컬-글로벌 어텐션: Gemma 3는 모든 레이어에서 글로벌 어텐션을 사용하지 않고, 로컬(슬라이딩 윈도우)과 글로벌 어텐션을 번갈아 사용해 메모리 효율성을 높입니다. 슬라이딩 윈도우 크기는 4096 토큰입니다.
    • Grouped-Query Attention(GQA): 어텐션 헤드의 키와 값을 그룹화하여 계산 효율성을 높이고, 128K 토큰의 긴 컨텍스트를 지원합니다.
  • 토크나이저: Gemma 3는 Gemini 2.0과 동일한 SentencePiece 토크나이저(어휘 크기 262K)를 사용하며, 비영어 언어에 최적화되어 멀티모달 작업에서 다국어 지원을 강화합니다.

4. 학습 데이터 및 훈련

  • 데이터셋: Gemma 3는 텍스트와 이미지 쌍으로 구성된 대규모 데이터로 사전 학습되었습니다. 4B 모델은 4조 토큰, 12B는 12조, 27B는 14조 토큰을 사용하며, 이미지 데이터도 포함됩니다.
    • 데이터 필터링: CSAM(아동 성학대 자료), 민감 데이터, 콘텐츠 품질 및 안전성 필터링을 통해 안전한 학습 데이터를 보장.
  • 지식 증류(Knowledge Distillation): Gemma 3는 Gemini 모델의 지식을 활용해 사전 학습 및 후처리(post-training) 단계를 최적화. 특히 수학, 대화, 다국어 작업에서 성능을 개선했습니다.
  • 파인튜닝: 지시 튜닝(instruction tuning)을 통해 시각적 질문 답변(VQA), 이미지 캡셔닝, OCR 등의 태스크에 최적화.

5. 이미지 인식 태스크

Gemma 3는 다음과 같은 이미지 관련 태스크를 수행할 수 있습니다:

  • 시각적 질문 답변(VQA): 예: "이미지에 몇 개의 동전이 있나요?" → 4개.
  • 이미지 캡셔닝: 예: "바닷가에 서 있는 고양이"와 같은 설명 생성.
  • OCR(광학 문자 인식): 이미지 내 텍스트를 정확히 읽음(예: 메뉴에서 가격 추출).
  • 장면 인식: 영화 장면(예: "Home Alone")을 크리스마스 장식과 배우로 식별.
  • 객체 인식: 특정 객체(예: 캔디의 거북이)를 식별하지만, 제로샷 객체 탐지에서는 성능이 제한적.

제한점:

  • 제로샷 객체 탐지에서 실패 사례가 있음(예: 복잡한 장면).
  • 고해상도 이미지 처리 시 Pan & Scan 없이는 세부 정보 손실 가능.
  • 1B 모델은 이미지 입력을 지원하지 않음.

6. 실제 구현 예시

Hugging Face의 transformers 라이브러리를 사용한 이미지 처리 예시:

python
 
import torch
from transformers import AutoProcessor, Gemma3ForConditionalGeneration
 
model_id = "google/gemma-3-4b-it"
model = Gemma3ForConditionalGeneration.from_pretrained(model_id, device_map="auto", torch_dtype=torch.bfloat16)
processor = AutoProcessor.from_pretrained(model_id)
 
messages = [
{"role": "user", "content": [
{"type": "image", "url": "https://example.com/image.jpg"},
{"type": "text", "text": "Describe this image in detail."}
]}
]
inputs = processor.apply_chat_template(messages, add_generation_prompt=True, tokenize=True, return_tensors="pt").to(model.device)
generation = model.generate(**inputs, max_new_tokens=100)
decoded = processor.decode(generation[0], skip_special_tokens=True)
print(decoded) # 예: "The image shows a vibrant garden with pink cosmos flowers and a bumblebee."

7. 안전성 및 윤리적 고려

  • ShieldGemma 2: Gemma 3 기반의 4B 이미지 안전 점검 모델로, 위험 콘텐츠, 성적인 내용, 폭력성을 감지해 안전성을 보장.
  • 데이터 필터링: 학습 데이터에서 유해 콘텐츠(CSAM, 민감 데이터)를 제거하고, 편향 및 안전성 문제를 평가.
  • 윤리적 평가: 어린이 안전, 콘텐츠 안전, 표현적 해악(편향, 고정관념)에 대한 평가를 수행.

요약

Gemma 3는 SigLIP 비전 인코더를 사용해 이미지를 896x896 크기의 패치로 처리하고, Pan & Scan 알고리즘으로 고해상도 및 비정사각형 이미지를 효율적으로 처리합니다. 추출된 시각적 토큰은 언어 모델과 통합되어 VQA, 캡셔닝, OCR 등의 태스크를 수행하며, 128K 토큰 컨텍스트와 140개 이상의 언어를 지원합니다. 제로샷 객체 탐지와 같은 복잡한 태스크에서는 한계가 있지만, 경량화된 설계로 단일 GPU나 모바일 기기에서도 실행 가능합니다.

 

참고자료

https://x.com/_philschmid/status/1950579725107183741?referrer=grok-com

 

X의 Philipp Schmid님(@_philschmid)

Mind-blowing! 🤯 Gemma just showed how a small, open models can run circles around the big ones. @SKtelecom and @AdaptiveML customized Gemma 3 4B to be cheaper, faster, and more accurate than models twice its size. Goal: Create a highly accurate, low-la

x.com

https://x.com/Arindam_1729/status/1948767005601137075?referrer=grok-com

 

X의 Arindam Majumder 𝕏님(@Arindam_1729)

I just built my own OCR app using Gemma 3 Upload an image or PDF and instantly convert it into structured markdown using LLMs! Here’s the stack I used: - gemma-3-27b-it on @nebiusaistudio - @streamlit for the UI Try it now 👇

x.com

https://blog.roboflow.com/gemma-3/

 

Gemma 3: Multimodal and Vision Analysis

Read our analysis of Google's Gemma-3 model and how it performs on a variety of common multimodal vision AI tasks.

blog.roboflow.com

https://blog.google/technology/developers/gemma-3/

 

Introducing Gemma 3: The most capable model you can run on a single GPU or TPU

Today, we're introducing Gemma 3, our most capable, portable and responsible open model yet.

blog.google

 

Water Sort Puzzle Icon

워터 소트 퍼즐 (Water Sort Puzzle)

색깔이 있는 물을 유리병에 분류하는 재미있고 중독성 있는 퍼즐 게임입니다.

Google Play 스토어