Florence-2는 Microsoft가 공개한, 프롬프트 기반으로 다양한 시각 및 시각-언어 태스크 (Vision-Language Tasks)를 처리할 수 있는 통합 시각 기반 모델 (Unified Vision Foundation Model)입니다. Florence-2는 캡션 생성, 객체 탐지 (Object Detection), 세그멘테이션 (Segmentation) 등 폭넓은 태스크를 단순한 텍스트 프롬프트로 실행할 수 있으며, 1억 2,600만 장의 이미지와 54억 건의 어노테이션 (Annotation)을 포함하는 FLD-5B 데이터셋을 활용하여 멀티태스크 학습 (Multi-task Learning)을 수행합니다.
Florence-2-base-ft는 이 시리즈 중에서 base 사이즈를 다운스트림 태스크 (Downstream Tasks) 군으로 파인튜닝 (Fine-tuning)한 「제너럴리스트 모델 (Generalist Model)」입니다. 여러 다운스트림 태스크로 파인튜닝된 결과, Florence-2-base-ft와 Florence-2-large-ft라는 두 가지 제너럴리스트 모델이 탄생하였으며, 폭넓은 다운스트림 태스크를 수행할 수 있게 되었습니다.
| 모델 | 사이즈 | 설명 |
|---|
| Florence-2-base | 0.23B | FLD-5B로 사전 학습 (Pre-training)만 수행 |
| Florence-2-large | 0.77B | FLD-5B로 사전 학습 (Pre-training)만 수행 |
| Florence-2-base-ft | 0.23B | 다운스트림 태스크 군으로 파인튜닝 (Fine-tuning) 완료 |
| Florence-2-large-ft | 0.77B | 다운스트림 태스크 군으로 파인튜닝 (Fine-tuning) 완료 |
위의 모델 목록은 Hugging Face의 모델 카드 (Model Card)에 기재되어 있는 것입니다. base-ft의 파라미터 (Parameter) 수는 약 0.2B이며, Hugging Face 상의 모델 사이즈 표시도 0.2B 파라미터 · F16 텐서 (Tensor) 타입으로 되어 있습니다.
- 논문: Florence-2: Advancing a unified representation for a variety of vision tasks (arXiv:2311.06242, Xiao et al., 2023)
- 라이선스: MIT (모델 카드의 태그 표시 기준)
- 구현: Hugging Face의 transformers 라이브러리에 의한 Microsoft 제작 Florence-2 모델의 구현이 이 리포지토리 (Repository)에 포함되어 있습니다.
- 공개 시기: Florence-2는 2024년 6월에 Microsoft로부터 MIT 라이선스로 오픈 소스 공개된, 경량 기반 시각-언어 모델 (Vision-Language Model)입니다.
모델 카드에 명시되어 있는 대응 태스크는 다음과 같습니다.
<CAPTION>: 간이 캡션
<DETAILED_CAPTION>: 상세 캡션
<MORE_DETAILED_CAPTION>: 더욱 상세한 캡션
<CAPTION_TO_PHRASE_GROUNDING>: 캡션 문장 중의 구절을 이미지 영역에 대응 (텍스트 입력이 별도로 필요)
<OD>: 객체 탐지 (Object Detection)
<DENSE_REGION_CAPTION>: 밀집 영역 캡션
<REGION_PROPOSAL>: 영역 후보 제안
<OCR>: 문자 인식 (OCR)
<OCR_WITH_REGION>: 영역 포함 문자 인식
공식 노트북과 차이가 있는 점
공식 노트북이나 다른 Florence-2 파생 모델에서는 <REFERRING_EXPRESSION_SEGMENTATION>이나 <REGION_TO_SEGMENTATION>과 같은 추가 태스크 토큰 (Task Token)이 소개되어 있는 경우도 있는 듯합니다.
공식 모델 카드의 샘플은 대체로 다음과 같은 흐름입니다.
## @brief transformers를 사용하여 Florence-2-base-ft를 로드하고 객체 탐지(<OD>)를 실행한다
# @details trust_remote_code=True 가 필수
import torch
...
이 실행 예시는 모델 카드에 게재되어 있는 공식 샘플 코드에 기반하고 있습니다.
또한, 모델 카드에는 pipeline을 경유한 간편한 사용법(pipeline("image-text-to-text", ...))이나, vLLM · SGLang에서의 서빙 방법도 게재되어 있었으나, 이것들은 Florence-2 고유의 태스크 전환 (post_process_generation 등)에는 대응하지 못할 가능성이 있습니다.
COCO Caption Karpathy test에서 CIDEr 점수 140.0, NoCaps val CIDEr 116.7, TextCaps val CIDEr 143.9, VQAv2 test-dev 정확도 79.7, TextVQA test-dev 정확도 63.6, VizWiz VQA test-dev 정확도 63.6이라는 결과가 보고되었습니다.
또한 객체 탐지 (Object Detection) 및 영역 참조 (Region Referencing) 태스크에서는 COCO Det. val2017 mAP 41.4, Flickr30k test R@1 84.0, RefCOCO 계열의 정확도 (Accuracy)는 대체로 82~95% 범위, RefCOCO RES val mIoU 78.0이라는 수치가 제시되었습니다.
이것들은 generalist (범용) 모델로서의 성능이며, 해당 기사 내의 specialist 모델 (태스크별 개별 fine-tuning)과 비교하면 다소 뒤처지는 경우가 있을 수 있다는 점을 모델 카드 (Model Card)의 설명대로 명시하는 것이 정확합니다.