Ferret: Apple이 공개'했'던 대규모 멀티모달 모델(LMM / MLLM)

PyTorchKR:fire::kr: :speech_balloon:

  • Apple이 지난 10월 대규모 멀티모달 모델(LMM)인 '페럿(Ferret)'을 조용히 공개했습니다.
  • 이에 더해, 지난 12월 14일, 7B 모델과 13B 모델의 가중치를 공개해서 알아보았습니다.
  • Ferret의 데이터와 코드는 연구용으로 공개되었으며, LLaMA, Vicuna 및 GPT-4 라이선스를 따릅니다.
  • CC-BY-NC 4.0 데이터셋으로 학습한 모델이므로 동일하게 비상업적인 연구 목적의 사용만 가능합니다.

  • 이 글은 GPT 모델로 자동 요약한 설명으로, 잘못된 내용이 있을 수 있으니 원문을 참고해주세요! :smile:
  • 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다! :bowing_man:

Ferret: Refer and Ground Anything Anywhere at Any Granularity Ferret: Refer and Ground Anything Anywhere at Any Granularity

개요

Apple이 새로운 멀티모달 대규모 언어 모델(MLLM; Multimodal Large Language Model) "Ferret"을 공개했습니다. 이 모델은 다양한 형태와 크기의 공간 참조를 이해하고 이미지 내에서 오픈 보캐뷸러리 설명을 정확하게 근거지을 수 있습니다. Ferret은 하이브리드 영역 표현과 공간 인식 시각 샘플러를 활용하여, 미세한 공간 참조와 근거지를 가능하게 합니다. 이 모델은 약 1.1M 샘플의 대규모, 계층적인 GRIT 데이터셋과 Ferret-Bench라는 멀티모달 평가 벤치마크를 사용합니다.

Ferret: Apple이 공개한 대규모 멀티모달 모델(LMM / MLLM)

모델 소개

Ferret은 이미지 내의 공간 참조(spatial referring) 및 시각적 근거(grounding)를 이해하도록 설계된 새로운 MLLM(Multimodal Large Language Model)입니다. 이 모델은 이산 좌표(discrete coordinates)와 연속적인 특징(continuous features)을 결합하여 이미지 영역을 표현하는 새로운 접근 방식을 제공합니다. 이를 통해 Ferret은 점, 경계 상자, 자유형 도형과 같은 다양한 입력 유형을 처리할 수 있습니다. 이 모델은 주로 고유한 하이브리드 영역 표현과 공간 인식 시각 샘플러를 통해 구동되며, 기존 및 새로운 MLLM 작업 모두에서 성능을 향상시킵니다.

모델 구조

하이브리드 영역 표현 (Hybrid Region Representation)

페럿은 이미지 내에서 다양한 모양과 형식의 영역을 표현하기 위해 하이브리드 접근 방식을 사용합니다. 이 방식은 이산 좌표와 연속적인 시각적 특징을 결합하여 점, 상자, 자유형 등 다양한 형식의 특정 영역을 이해하고 참조하는 모델의 능력을 향상시킵니다.

페럿 모델의 주요 구성 요소

이미지 인코더(Image Encoder)

이미지 인코더는 입력 이미지로부터 이미지 임베딩(Z ∈ R H×W ×C)을 추출합니다. Ferret은 OpenAI가 개발한 CLIP 모델의 일부인 CLIP-ViT-L/14를 사용하여 이미지 임베딩을 추출합니다.

공간 인식 비주얼 샘플러 (Spartial-Aware Visual Sampler)

Ferret 모델의 공간 인지적 시각 샘플러는 Ferret 모델이 이미지 내 다양한 형태와 밀도를 가진 지역을 정확하게 인식하고 이해하는 데 핵심적인 역할을 합니다. 전통적인 컨볼루션 또는 패치-어텐션 방식으로는 처리할 수 없는 불규칙한 형태의 지역들을 효율적으로 다룰 수 있게 하며, 이를 통해 모델은 보다 정교한 시각적 이해를 구현할 수 있습니다. 이는 특히 이미지 내 특정 영역에 대한 상세한 참조와 그라운딩 작업에서 중요한 역할을 합니다.

공간 인식 비주얼 샘플러의 기능과 목적

  • 다양한 형태의 지역 처리: 공간 인지적 시각 샘플러는 점, 사각형, 또는 더 복잡한 형태의 지역들을 처리할 수 있습니다. 이는 전통적인 그리드 기반 처리 방식으로는 다루기 어려운 불규칙한 형태의 지역들도 취급할 수 있게 합니다.
  • 시각적 특징 추출: 이 샘플러는 이미지의 특징 맵과 이진 지역 마스크를 사용하여 지역별 연속적인 시각적 특징을 추출합니다.

공간 인식 비주얼 샘플러의 동작 방식

  1. 양성 점 샘플링: 주어진 이진 지역 마스크(M)와 이미지 특성 맵(Z)에 대해, 샘플러는 지역 마스크 내부의 N개 양성 점을 무작위로 샘플링합니다.
  2. 점 특징 획득: 각 점의 특징은 이중선형 보간(bi-linear interpolation)을 통해 얻을 수 있습니다.
  3. 캐스케이드 블록 처리: 샘플링된 점들은 캐스케이드 블록을 통해 처리됩니다. 각 블록은 샘플링, 수집, 풀링의 세 단계로 구성됩니다.
  4. LLM 임베딩으로의 투영: 점 특징들은 하나의 벡터로 평탄화되고, LLM 임베딩 차원으로 투영됩니다. 최종 특징은 입력에서의 연속적인 특징 토큰(⟨SPE⟩)을 대체합니다.

대규모 언어 모델(LLM)

페럿은 텍스트와 이미지 임베딩을 함께 처리하기 위해 사전 학습된 LLM인 Vicuna 모델을 사용하고 있습니다. Vicuna는 디코더-전용 언어 모델(Decoder-only LLM)로, LLaMA 모델 위에 지시(instruction-tuned)를 추가한 형태입니다. 이미지 임베딩은 추가적인 선형 레이어를 통해 텍스트 토큰의 임베딩 차원에 맞게 변환되며, 이미지, 텍스트, 지역 특징들을 종합적으로 모델링합니다.

페럿 모델의 동작 방식

Ferret 모델은 입력 이미지와 텍스트를 받아 처리하고, 최종적으로 텍스트 응답과 이미지 내 특정 영역의 좌표를 출력합니다. 이 과정은 다음 단계로 구성됩니다:

1. 이미지와 텍스트의 입력 처리

  • 이미지 처리: 입력된 이미지는 먼저 CLIP-ViT-L/14 이미지 인코더를 통해 처리됩니다. 이 과정에서 이미지 임베딩(Z ∈ R H×W ×C)이 추출됩니다.
  • 텍스트 처리: 동시에, 입력된 텍스트는 LLM의 토크나이저를 통해 토큰화되고, 이후 텍스트 임베딩(T ∈ R L×D)으로 변환됩니다.
  • 지역 참조 처리: 이미지 내 참조되는 특정 영역(예: "a cat [100 50 200 300] ⟨SPE⟩")은 좌표와 특별 토큰(⟨SPE⟩)을 포함해 입력됩니다. 이는 연속적인 시각적 특징의 자리 표시자 역할을 합니다.

2. 공간 인지적 시각 샘플러를 통한 특징 추출

  • 프로세스: 공간 인지적 시각 샘플러는 이미지 특성 맵(Z)과 이진 지역 마스크(M)를 사용하여 지역별 연속적인 시각적 특징을 추출합니다. 이 과정에는 양성 점의 샘플링, 이중선형 보간, 캐스케이드 블록 처리 등이 포함됩니다.
  • 임베딩 투영: 추출된 특징은 LLM 임베딩 차원으로 투영되어, 입력에서의 ⟨SPE⟩ 토큰을 대체합니다.

3. LLM을 통한 종합적 처리

  • LLM의 역할: 이미지 임베딩과 텍스트 임베딩은 추가적인 선형 레이어를 통해 LLM에 적합한 차원으로 조정됩니다. Vicuna 언어 모델은 이러한 정보들을 종합적으로 처리하여, 이미지 내의 객체와 텍스트 사이의 관계를 이해하고 참조를 생성합니다.

4. 출력 생성

  • 텍스트 응답: Ferret는 최종적으로 텍스트 응답을 생성합니다. 이 응답은 이미지 내 특정 영역과 관련된 내용을 포함할 수 있습니다.
  • 지역 참조 및 좌표 생성: 모델은 또한 참조되는 객체의 좌표를 생성하여 응답에 포함시킵니다. 예를 들어, "There is a dog [100 150 300 200] in the figure."와 같은 형태로 텍스트 내에서 객체의 위치를 나타냅니다.

image

페럿 모델 정보

Hyperparameter Global Batch Size Learning rate Epochs Max length Weight decay
FERRET-7B 128 2e-5 3 2048 0
FERRET-13B 128 2e-5 3 2048 0

가중치 다운로드

빠른 시작

Ferret 모델의 GitHub 저장소를 통해 시작할 수 있습니다. 기본 제공 되는 Gradio로 아래와 같이 실행해볼 수 있습니다.

더 읽어보기

Ferret 논문

https://arxiv.org/pdf/2310.07704v1.pdf

GitHub 저장소

관련 모델들

임베딩 관련 글

3개의 좋아요

안녕하세요 모델에 관련된 질문은 아니지만 , 위에 gpt4로 자동 번역 요약하셨다고 하셨는데 방법좀 간단히 공유해주실 수 있을까요? Gpt4 유료버전 pdf 업로드로 사용하신걸까요?

안녕하세요, @stnguswnd 님!
네네, GPTs를 만들어놓고 말씀해주신 것처럼 PDF 업로드를 하고 GitHub 저장소나 다른 링크들도 함께 제공하고 요약을 요청하고 있습니다!
저도 어느 정도는 이해하는게 목적이라서 완전히 자동화를 하지는 않았고, 아래처럼 GPTs가 정리한 내용을 읽다가 이해가 잘 안되는 내용이 있으면 추가적인 질문-답변으로 정리하곤 합니다 :sweat_smile:


더 궁금하신게 있으시면 알려주세요! :smiley: