LLaVA-OneVision: Tek Resim, Çok Resim, Tek Modeldeki Video
Type: Build
Languages: Python (stdlib, token budget solver + curriculum planner)
Prerequisites: Phase 12 · 05 (LLaVA), Phase 12 · 06 (any-resolution)
Time: ~180 minutes
Öğrenme Hedefleri
- Tek görüntü, çok görüntü ve video girişleri boyunca sabit olan görsel bir jeton bütçesini tasarlayın.
- Tek görüntüden videoya yetenekleri felaketli bir unutma olmadan aktaran bir eğitim programı sipariş edin.
- Ders programı doğru yapıldığında tek bir model neden aynı parametreler sayımında uzmanlardan üstün olduğunu açıklayın.
- LLaVA-OneVision tarafından bildirilen üç yeni yetenek adı: çoklu kamera akıl yürütme, işaretleme uyarısı, iPhone ekran görüntüsü ajanı.
Sorun
Resim, çoklu görüntü ve video her biri farklı bir model üzerinde durur.
Tek görüntü, OCR ve ince ayrıntıları yakalamak için yüksek çözünürlüklü jetonlar (AnyRes, ~ 2880 görsel jetonlar) ister.
Multi-image, orta çözünürlükte birkaç görüntü istiyor (her biri yaklaşık 576 token) bu nedenle görüntüler arasındaki mantık bağlamına uymaktadır.
Video, zamansal dinamikleri yakalamak için düşük çözünürlükte (bir çerçeveye bir araya getirildikten sonra yaklaşık 196 token) birçok çerçeve ister.
Ayrı modeller eğitirseniz, tek bir bütçe seçersiniz.
Pre-OneVision, varsayılan cevap "bir senaryoyu eğit, diğerlerini görmezden gelin". Video-LLaVA, videoyu ek eğitim aşamalarıyla birlikte bir görüntü modeline yeniden ayarladı. LLaVA-NeXT, kapaklama ile çoklu görüntü desteği ekledi.
Anlaşım
OneVision token bütçesi
LLaVA-OneVision, örnek başına yaklaşık 3000-4000 tane görsel jeton bütçesini seçer ve senaryo başına farklı olarak tahsis edilir:
- Tek görüntü: AnyRes-9 (3x3 bez + küçük resim), her bez 384'te 729 yama ile, saldırgan çift çizgi birleştirme 2x2 → 182 per bez. Toplam: 9 * 182 + 182 = 1820 jeton.
- Çoklu görüntü: her görüntü orta çözünürlükte (384, kapaklama yok), birleştirme olmadan 729 jeton.
- Video: 32 çubuk 384 çözünürlükte agresif 3x3 bilineer havuz → 81 token per frame.
Bu, bir programın entegre edilmesi için kullanılan bir programdır.
Üç aşamalı ders programı
LLaVA-OneVision trenleri üç aşamada:
- Tek görüntü SFT (Stage SI). Tüm veriler tek görüntü artı metindir. Yüksek çözünürlüklü AnyRes giriş üzerinde eğitim. Bu algıyı, OCR'yi ve ince ince ince anlayışı öğretir. LLaVA-NeXT verilerini artı OneVision spesifik tek görüntü verilerini kullanır.
- OneVision SFT (staj OV). Tek görüntü + çok görüntü + video (birbir şekilde örneklenmiş çerçeveler) karıştır. Tek bir token bütçesine göre çalıştırın. Bu, modelin heterogen parti şekilleri ile başa çıkmasını öğretir.
- Görev transfer ( TT aşaması). Genellikle ürünlere bağlı olarak çoklu görüntü veya video üzerinde daha ağır olan hedef görev karışımı ile devam edin.
Kritik: kurikulum düzeninin önemi. Video-birincisi veya çoklu görüntü-birincisi eğitim aynı verilerle bile tek görüntü-birincisi daha kötü görüntü performans üretir. Kağıt bunu açıkça ortadan kaldırır.
Neden kurikulum işe yarıyor
Tek görüntü eğitimi algılama tabanını oluşturur. Patch tokenleri ince ince ince görsel özelliklere sahiptir; LLM onları metinle entegre etmeyi öğrenir. Çoklu görüntü ve video güçlü algılama tabanı olmadan öğrenmek zor olan yapısal zorluklar (ne görüntü, hangisi ilk oldu) sunar.
Eğer tüm senaryoları sıfırdan birlikte eğitirseniz, model algılama (her parti için sınırlı tek görüntü verileri) ve aşırı yapı (çok fazla görüntü / video verileri) ile uyumludur. Sonuç: çapraz görüntü mantık kalıplarını izleyen ancak görsel olarak yüzeysel bir model.
Eğitim düzenlemesi, SI aşamasından algı gücünü, OV aşamasından dahi/zamansal akıl yürütmeyi verir, hiçbirini kaybetmeden.
Yeni gelişen senaryolar arası beceriler
LLaVA-OneVision makalesinde üç yeni yetenek rapor edildi:
- Çoklu kamera akıl yürütme. Çoklu görüntü + video üzerinde ayrı olarak eğitilmiştir; sonuç olarak, çoklu kamera sürüş sahnesi hakkında akıl yürütmek istenmiştir.
- Kullanıcı numaralı işaretlerle bir görüntüdeki nesneleri not eder; model nedenleri "Mark 3'ün 7. işaretle ilgili olarak ne yaptığını" anlatır.
- iPhone ekran görüntüsü ajanı. Kullanıcı bir iPhone ekranının ekran görüntüsünü sağlar ve bir sonraki tıklamayı planlamayı ister. UI ekran görüntüleri, kullanıcı iş akışlarının videoları ve çiftlerden önce / sonra çoklu görüntü üzerinde eğitim almıştır.
Bunlar eğitimli görevler değil; onlar kurikulumun yapısı yapısından kaynaklanmaktadır.
Görsel belirtiler birleştirme
Token bütçesi birleştirmeyi gerektirir. OneVision 2D yama şebekesinde çift çizgili interpolasyon kullanır: 24x24 = 576 yama 12x12 = 144 (2x faktörü) veya 8x8 = 64 (3x faktörü) olur. Birleştirme yerleşimi korumak için token boşluğu değil, yama şebekesi alanında yapılır.
Szenaryo başına birleştirme faktörünün seçimi kendiliğinden bir hiperparametre. Daha az birleştirme = daha fazla token = daha zengin bir temsil. Daha fazla birleştirme = daha az token = daha fazla çerçeve / görüntü uyumlu.
LLaVA-OneVision-1.5
2025 takip (LLaVA-OneVision-1.5, arXiv 2509.23661) eğitim verileri, model ağırlıkları ve kodlarında "tamamen açık"dır. Bazı referans değerlerinde sahiplik boşluğu karşılaştırır ve tarifi demokratikleştirir. Aynı ders planı, daha fazla veri, daha iyi bir LLM tabanı. mimarlık değişimi yoktur.
Qwen2.5-VL ile karşılaştırma
Qwen2.5-VL (Desin 12.09) farklı seçimler yapar. sabit birleştirme yerine M-RoPE ve dinamik FPS kullanır. Giriş ile bütçe ölçekleri 1 dakikalık bir video 5 saniyelik bir video ile karşılaştırıldığında daha fazla jeton kullanır. LLaVA-OneVision bütçeyi düzeltir ve birleştirmeyi ölçeklendirir. Her ikisi de çalışır; tahmin edilebilirlik için yapılandırmayı değiştirirler.
Kullan
code/main.pyBir OneVision tarzı VLM için bir ders planı ve bütçe planlayıcısıdır. Örnek başına bir token bütçesi ve hedef senaryo karışımı (örneğin 40% tek görüntü, 30% çok görüntü, 30% video) verildiğinde:
- Szenaryo başına çözünürlük, birleştirme faktörü ve çerçeveleri ayırır.
- Her senaryoyu paylaşılan bütçeye uygunluğunu kontrol eder.
- Beklenen token sayısını, LLM FLOP'larını ve hangi senaryoların düşük tokenli olduğunu raporlar.
- Adım adım eğitim programını basıyor.
OneVision'ın ince ayarlarını planlamak veya bir VLM dağıtımının talep başına maliyetini sağduyu kontrol etmek için kullanın.
Gönder
Bu ders bize çok yararlı .outputs/skill-onevision-budget-planner.md. Hedef görev dağılımı ve örnek başına bütçe göz önüne alındığında, AnyRes faktörü, çerçeve birleştirme, video çerçeve sayısı ve kurikulum aşama ağırlıklarını yayar.
Egzersizler
- Ürününüz %80 tek görüntü, %10 çok görüntü (2-4 görüntü), %10 video (8-16 çerçeve) destekler.
- LLaVA-OneVision Bölümü 4.3 (Yarınma yetenekleri) okuyun.
- Eğitim programını değiştirin önce çok resim, sonra tek resim, sonra video tren. Hangi referansların düşeceğini ve nedenini tahmin edin.
- Gazete, örnek başına sadece 8 çerçeve üzerinde eğitilen video referanslarını rapor ediyor. Bu, sonuçta 30 saniyelik videolara genel mi?
- 24x24 patchlerin 12x12'e binaylı birleştirilmesi, dim başına 4x azaltma anlamına gelir. stdlib Python'da birleştirmeyi uygulayın ve her 2x2 blok üzerindeki ortalamanın binaylı çıkışla eşleşmediğini kontrol edin.
Anahtar Terimler
| Term | What people say | What it actually means |
|---|---|---|
| OneVision scenario | "Single-image, multi-image, or video" | One of three input shapes the unified VLM handles; the budget stays constant across |
| Token budget | "How many tokens per sample" | Total visual tokens the LLM sees per training / inference sample, typically 3000-4000 |
| Curriculum | "Training order" | Stage ordering (single-image → multi-image → video) chosen for emergent transfer |
| Bilinear pooling | "Token shrink" | Applying bilinear interpolation to the patch grid (2D) to reduce token count while preserving locality |
| Emergent skill | "Not trained, still works" | Capability that appears at inference without matching training data, due to curriculum composition |
| AnyRes-k | "k-tile setup" | k sub-tiles of fixed resolution plus one thumbnail, typical k ∈ {4, 9} |
| Task transfer | "Cross-scenario generalization" | Skills learned on single-image that apply to video (and vice versa) via shared backbone |
Daha Fazla Okumak
- Li et al. — LLaVA-OneVision (arXiv:2408.03326)
- LLaVA-OneVision-1.5: Fully Open Framework (arXiv:2509.23661)
- Lin et al. — Video-LLaVA (arXiv:2311.10122)
- Lin et al. — VILA (arXiv:2312.07533)
- Wang et al. — Qwen2-VL (arXiv:2409.12191)
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.