Florence-2: Model Vision Multi-Task dari Microsoft
Daftar Isi
Pendahuluan
Florence-2 adalah model vision foundation dari Microsoft yang dirancang untuk menangani berbagai tugas computer vision dalam satu model tunggal. Tidak seperti model-model sebelumnya yang memerlukan arsitektur terpisah untuk setiap tugas, Florence-2 menggunakan pendekatan sequence-to-sequence yang unified, di mana semua tugas vision dirumuskan sebagai masalah generasi teks berdasarkan prompt tertentu.
Keunggulan utama Florence-2:
- Multi-task dalam satu model: Captioning, deteksi objek, OCR, segmentasi, dan grounding dalam satu arsitektur
- Prompt-based: Cukup ganti prompt teks untuk beralih antar tugas tanpa mengubah model
- Dua varian ukuran: Florence-2-base (232M parameter) dan Florence-2-large (771M parameter)
- Zero-shot yang kuat: Performa baik tanpa fine-tuning pada banyak tugas
- Ringan dan efisien: Ukuran model relatif kecil dibanding VLM lain dengan kemampuan sebanding
- Open-source: Tersedia di Hugging Face untuk penggunaan penelitian dan komersial
Florence-2 dilatih pada dataset FLD-5B yang berisi 5,4 miliar anotasi visual-linguistik, mencakup 126 juta gambar. Dalam tutorial ini, Anda akan belajar menggunakan Florence-2 untuk berbagai tugas vision, melakukan batch processing, fine-tuning pada dataset kustom, dan membangun pipeline analisis dokumen.
Prasyarat
- Python 3.9 atau lebih tinggi
- PyTorch 2.0+ dengan dukungan CUDA (GPU sangat direkomendasikan)
- Minimal 8GB VRAM GPU untuk Florence-2-base, 16GB untuk Florence-2-large
- Pemahaman dasar tentang konsep computer vision
- Akun Hugging Face (untuk mengunduh model)
Instalasi
# Instal PyTorch (periksa pytorch.org untuk versi CUDA Anda)
pip install torch torchvision
Instal dependensi utama
pip install transformers accelerate einops timm
pip install Pillow matplotlib
Instal flash-attn untuk inferensi lebih cepat (opsional, memerlukan CUDA)
pip install flash-attn --no-build-isolation
Instal supervision untuk visualisasi (opsional)
pip install supervision
Verifikasi instalasi:
import torch
from transformers import AutoProcessor, AutoModelForCausalLM
print(f"PyTorch: {torch.version}")
print(f"CUDA tersedia: {torch.cuda.isavailable()}")
if torch.cuda.isavailable():
print(f"GPU: {torch.cuda.getdevicename(0)}")
print(f"VRAM: {torch.cuda.getdeviceproperties(0).totalmem / 1e9:.1f} GB")
Memuat Model Florence-2
Florence-2 tersedia dalam dua varian utama beserta versi fine-tuned-nya:
from transformers import AutoProcessor, AutoModelForCausalLM
import torch
Pilih model - varian yang tersedia:
"microsoft/Florence-2-base" - 232M parameter
"microsoft/Florence-2-large" - 771M parameter
"microsoft/Florence-2-base-ft" - base, fine-tuned pada downstream tasks
"microsoft/Florence-2-large-ft" - large, fine-tuned pada downstream tasks
MODELID = "microsoft/Florence-2-base-ft"
Muat processor dan model
processor = AutoProcessor.frompretrained(MODELID, trustremotecode=True)
model = AutoModelForCausalLM.frompretrained(
MODELID,
trustremotecode=True,