- ViT özellik haritalarındaki yüksek normlu token’lar çoğunlukla bilgi miktarı düşük arka plan bölgelerinde görülür ve patch token’larının iç hesaplama için bir depolama alanı gibi yeniden kullanıldığı bir olgu olarak yorumlanır
- Çözüm, görüntü patch’lerinden ayrı register token’larını giriş dizisine ekleyerek iç hesaplama rolünü özel token’lara ayırmaktır
- Hem gözetimli öğrenme hem de öz-gözetimli öğrenme ViT’lerinde artefaktlar azalır; özellik haritaları ve attention map’ler daha pürüzsüz hale gelerek downstream görsel görevler için avantaj sağlar
- Object discovery ve dense prediction’da iyileşmeler bildirildi; ancak OpenCLIP’te object localization performansı hafif düştüğü için “tüm modellerde iyileşme” ifadesi düzeltildi
- 4~16 register token’ı eklendiğinde %2~6 ek hesaplama oluşur; token sayısını artırmak dense task performansını her zaman yükseltmez
ViT özellik haritalarında ortaya çıkan artefaktlar
- Vision Transformer, görsel temsil öğrenmede güçlü bir araç olarak kullanılsa da, gözetimli ve öz-gözetimli öğrenme ViT’lerinin özellik haritalarında artefaktlar tespit edilmiştir
- Artefaktlar, çıkarım sırasında ortaya çıkan yüksek normlu token’lar olarak gözlemlenir
- Çoğunlukla görüntünün bilgi miktarı düşük arka plan bölgelerinde oluşur
- Ağın bu token’ları iç hesaplamada yeniden kullandığı bir biçim gibi görünür
- Bu token’lar, çevredeki patch’lere benzer arka plan patch’lerinden gelir; yerel patch bilgisinin az, küresel görüntü bilgisinin ise daha fazla olduğu değerlendirilir
- DINOv2 ve diğer ViT’lerde attention map’in uzamsal çözünürlüğü ve doğruluğundaki düşüş, downstream object discovery ve localization performansını etkileyebilir
Register token yöntemi
- Önerilen çözüm, Vision Transformer giriş dizisine görüntü patch’lerinden ayrı register token’ları eklemektir
- Register’lar, CLS token gibi görüntü patch token’larından ayrıdır; ancak loss hesaplamasında doğrudan kullanılmayan token’lar olarak tanımlanır
- Amaç, mevcut patch token’larının iç hesaplama için “depolama alanı” gibi kullanılmasını önlemek ve bu rolü özel token’ların üstlenmesini sağlamaktır
- Bu yöntem mevcut Memory Transformer ile ilişkili olsa da, özellik artefaktlarını analiz edip bunları düzeltmek için yeni token ekleme yaklaşımı bu makalenin analizine özgüdür
Özellik haritaları ve downstream görevlerdeki değişim
- Register eklendiğinde, hem gözetimli hem de öz-gözetimli öğrenme modellerinde ilgili artefaktların ortadan kalktığı bildirilmektedir
- Özellik haritaları ve attention map’ler daha pürüzsüz hale gelerek downstream visual processing için avantaj sağlar
- Öz-gözetimli görsel modellerin dense visual prediction task’lerinde yeni bir state of the art elde edildiği belirtilir
- Daha büyük modellerde de object discovery yöntemlerini kullanmak mümkün hale gelir
- DINOv2 ve DeiT-III’te object discovery performansı artar; görüntü düzeyi task performansı ise genel olarak korunur
Modele göre istisnalar ve ek analiz
- OpenCLIP’te register eklenmesine rağmen object localization sonuçları iyileşmedi; tablodaki sayılara göre performansta hafif bir düşüş var
- Yazar yanıtı, “object discovery performansı tüm modellerde iyileşir” ifadesinin sayılarla desteklenmediğini kabul eder
- Bu içerik Section 3.3’te düzeltilmiştir
- OpenCLIP için Figure 7’de norm azalması görülse de, bunun Table 3’te object localization iyileşmesine dönüşmemesi şeklindeki tutarsızlık tartışılır
- LOST değerlendirmesinde, modele göre keys, queries ve values arasından en iyi performans gösteren embedding seçilir
- CLIP’te en iyi sonuç values ile elde edilmiştir; artifacts keys veya queries’de görünürken values’de görünmediği için bu durum Table 3 ve nitel analizle tutarlıdır
- MAE’de aynı “outlier patches”in ortaya çıkmadığı görülür
- Bunun nedeni, MAE’nin yalnızca local loss ile eğitilmesi ve küresel bilgiyi toplama ihtiyacının olmaması ya da az olması olabilir
- MAE-ViT-Large’ın linear probing ImageNet sınıflandırma doğruluğu %75’tir ve diğer SSL yöntemlerinden daha düşüktür
Performans, maliyet ve sınırlamalar
- Register basit bir yöntemdir; ancak ek token’lar nedeniyle hesaplama miktarı artar
- 4~16 register token’ı eklendiğinde hesaplama miktarında %2~6 artış bildirilmektedir
- Register sayısındaki artış her zaman dense task iyileşmesine yol açmaz
- 0’dan 1 register’a çıkıldığında artefaktlar ortadan kalkar; segmentation ve depth prediction iyileşir
- 1’den sonra daha fazla register eklense de feature map zaten temizlendiğinden segmentation ve depth prediction performansı belirgin şekilde artmaz
- Classification performansı, register sayısı arttıkça ek iyileşme gösterme eğilimindeydi; ancak bunun nedeni konusunda henüz net bir sezgi yok
- NYU depth dataset’inde 8 register’dan 16 register’a çıkıldığında RMSE hafif artar
- Dizi uzunluğunun artması, optimal hyperparameter’ların değişmesine neden olmuş olabilir
- 8’den 16’ya geçerken görülen 0,03 RMSE farkı, 0’dan 1’e geçerken görülen 0,1 RMSE farkına kıyasla küçük olduğundan basitçe gürültü de olabilir
OpenReview kabulü ve inceleme tartışmaları
- OpenReview kararı Accept (oral) şeklindedir
- Meta incelemede dört hakemin tamamı 8 puan vermiş ve makalenin teknik katkısı kabul edilmiştir
- Hakemler performans tutarsızlığı, dataset bias ile SSL modelleri arasındaki ilişki, optimizasyon ayarlarının seçimi ve gradient clipping etkisi gibi konularda endişeler dile getirdi
- Yazarlar, yanıt sürecinde ek deneyler ve appendix analizleri ekledi
- Sonraki tartışmalarda register’ların outlier davranışını devralıp devralmadığı, image token’ların daha local bir niteliğe dönüp dönmediği ve CLS token normunun nasıl değiştiği gibi iç mekanizma analizleri güçlendirildi
1 yorum
Hacker News yorumları
Makaleye göre register, Vision Transformer modelinin eğitimi sırasında giriş dizisine eklenen, eğitilebilir ek bir token'dır.
Patch embedding katmanından sonra [CLS] token'ı gibi eğitilebilir bir değer olarak eklenir; Vision Transformer'ın sonunda ise register token'ları atılır ve yalnızca [CLS] token'ı ile patch token'ları görüntü temsili olarak kullanılır.
Bu token, modelin ileri geçiş sırasında küresel bilgiyi saklaması, işlemesi ve sorgulaması için bir alan sağlar; böylece patch token'larını bu amaçla zorla kullanmasına gerek kalmaz.
Sonuç olarak, eğitilmiş Vision Transformer'ın özellik haritalarında görülen artefaktlar ve yüksek normlu aykırı token'lar ortadan kalkar; özellik haritaları daha pürüzsüz hale gelir, dense prediction performansı ve gözetimsiz nesne keşfi de iyileşir.
Çıkarım maliyetini yalnızca %2 artırıp ViT performansını epey geliştirdiği için, neredeyse bedavaya gelen temiz bir sonuç gibi görünüyor.
Olasılıksal regex de bir örnek ama bu, matematiksel başıboşluğun tamamen başka bir seviyesi.
Yine de böyle çalışması gerçekten şaşırtıcı.
attention sink ya da pause token'a benziyor.
Bir geçişin ham çıktısını doğrudan sonraki girişe aktarma yöntemini araştıran oldu mu merak ediyorum.
İlgili görünüyor: "Let's Think Dot by Dot: Hidden Computation in Transformer Language Models" https://arxiv.org/abs/2404.15758
Bu makale, dil modellerindeki chain-of-thought performans artışının insan benzeri görev ayrıştırmadan mı, yoksa ek token'ların sağladığı hesaplama miktarından mı kaynaklandığının belirsiz olduğunu savunuyor.
Transformer'ların anlamsız dolgu token'larıyla, örneğin yalnızca
......kullanarak, ara token olmadan yanıtladıklarında çözemediği zor algoritmik görevleri çözebildiğini göstermiş; ancak böyle dolgu token'larının kullanımını öğretmek için spesifik ve yoğun bir gözetim gerektiğini söylüyor.Bu yüzden metin LLM'lerine de özel hesaplama/register token'ları eklemenin fayda sağlayıp sağlamayacağını merak ediyorum.
Ek tartışma: https://news.ycombinator.com/item?id=40182695, https://www.reddit.com/r/LocalLLaMA/comments/1cf2w5a/transfo...
Son birkaç yılda görüntü ve multimodal algı alanında onlarca, belki 100'den fazla makale ve fikri denedim; bu, nadiren her şeyin iyi çalıştığı örneklerden biriydi.
Örneğin bu model, 4 register token'ı ve Matryoshka tarzı kaybı birlikte kullanarak eğitiliyor ve CLIP alternatifi arayanlar için faydalı olabilecek çok küçük bir 64 boyutlu embedding üretiyor: https://huggingface.co/unum-cloud/uform3-image-text-english-...
ICLR'da gördüm; yılın en iyi makalelerinden biriydi ve poster oturumunda da bu açıkça belliydi.
Yazarları tebrik ederim.
Birkaç aydır DinoV2 kullanıyorum ve [CLS] + patch token'larının yanında 4 register token'ı olan modeli de denedim.
Register'sız mevcut modelden gelen çeşitli embedding token'ları zaten çözümün bir parçası olduğundan, 0 register'lı model ile 4 register'lı model arasında [CLS] token'ı hizalı olmadığı için yeni register modelini benimsemedim.
İki model arasında [CLS] ve patch token'ları bir şekilde hizalanabilse keşke.
Görüntü modelleri için attention sink gibi görünüyor