σ-GPTs: Yeni Bir Özbağlanımlı Model Yaklaşımı
(arxiv.org)- σ-GPT, verinin girdi sırasını özbağlanımlı üretim sırasından ayırarak Transformer’ın dizileri keyfi biçimde karıştırılmış bir sırada da öğrenip üretebilmesini sağlar
- Mevcut özbağlanımlı modeller çoğu zaman metnin soldan sağa sırası ya da görüntülerdeki raster tarama sırası gibi doğal bir dizilimi izler; ancak iki sıranın mutlaka aynı olması gerekmez
- Her örnek için rastgele bir karıştırma sırası σ anında seçilir; girdi ve çıktı sıralarına karşılık gelen iki konum kodlaması eklenerek özbağlanımlı süreç tutarlı tutulur
- Üretimin herhangi bir anında kalan token’ların koşullu dağılımı tahmin edilebilir; bu da keyfi konumdan örnekleme, keyfi koşullu üretim, infilling ve burst sampling’e genişler
- Curriculum learning ile birlikte kullanıldığında soldan sağa özbağlanımlı modellere benzer performansa ulaşabilir; token tabanlı rejection sampling ile birden fazla token burst birimleri halinde üretilebilir
Girdi sırası ile üretim sırasının ayrılması
- Transformer, çeşitli modalitelerde güçlü özbağlanımlı performans göstermiştir
- Geleneksel özbağlanımlı yöntemler verinin doğal sırasını izler
- Metin genellikle soldan sağa işlenir
- Görüde, görüntü raster tarama sırasına göre açılarak elde edilen dizi Transformer ile modellenir
- σ-GPT, verinin girdi sırası ile özbağlanımlı sırasını birbirinden ayırır
- Çoğu uygulamada iki sıra hizalıdır, ancak mutlaka aynı olmak zorunda değildir
- Dizileri keyfi biçimde karıştırılmış bir sırada öğrenme ve üretme yöntemini araştırır
- Dizi sırasını değiştirmek öğrenmeyi zorlaştırsa da modele keyfi konumdan koşullu üretim gibi yeni özellikler kazandırır
σ-GPT mimarisi ve işleyişi
- σ-GPT, her örnek için rastgele bir karıştırma sırası σ’yı anında seçebilir
- Seçilen σ, girdi sırası
0, σ(1), σ(2), ...ve çıktı sırasıσ(1), σ(2), σ(3), ...oluşturur- Girdiye, token sayısını tutarlı biçimde eşitlemek için önce
0padding eklenir - Token’lar ilgili sıraya göre karıştırılır
- Girdiye, token sayısını tutarlı biçimde eşitlemek için önce
- Model girdisine iki konum kodlaması eklenir
- Biri girdi sırasına karşılık gelir
- Diğeri çıktı sırasına karşılık gelir
- Çıktı en sonunda gerçek sıraya geri döndürülür
- Kod açık: https://github.com/idiap/sigma-gpt
Standart GPT ve difüzyon modelleriyle karşılaştırma
- σ-GPT, standart causal transformer encoder olan GPT ve difüzyon modelleriyle karşılaştırılır
- Desteklediği işlevler şunlardır
- Dizinin keyfi konumlarında token örnekleme
- Kısmen örneklenmiş bir diziye göre kalan yoğunluğun modellenmesi
- Keyfi koşullu üretim
- Infilling
- Birden fazla token’ı tek seferde üreten burst sampling
- Cross-entropy tabanlı log-likelihood öğrenimi
- Standart GPT’nin keyfi koşullu üretim ve log-likelihood öğrenimini desteklediği, ancak keyfi konumdan örnekleme, koşullu yoğunluk tahmini, infilling ve burst sampling’i desteklemediği şeklinde karşılaştırılır
- Difüzyon modelleri burst sampling’i destekler, ancak log-likelihood öğrenimini desteklemez şeklinde karşılaştırılır
Üretim sırasında koşullu dağılım ve rejection sampling
- Standart özbağlanımlı sıranın dışına çıkıldığında model, token’ları belirli bir sıraya göre tahmin edebilir
- Bu yöntemde üretimin herhangi bir anında kalan token’ların koşullu dağılımı tahmin edilebilir
- Koşullu dağılım tahmini, belirli bir anda olası üretim sonuçlarını nicelleştirmek için kullanılır
- Bu rejection sampling’e uygulandığında, dizi dinamik sayıda adımla burst birimleri halinde üretilebilir
Değerlendirme görevleri ve katkılar
- σ-GPT, karıştırmalı özbağlanımı tanıtır ve curriculum yöntemiyle birleştirildiğinde temel model performansını artırıp artıramayacağını değerlendirir
- Değerlendirilen üç ana görev vardır
- Açık uçlu metin üretimi
- Yol çözme
- Uçak dikey hız tahmini
- Katkılar dört başlıkta özetlenir
- Girdi sırası ve çıktı sırasına ayrı ayrı karşılık gelen iki konum kodlamasına sahip σ-GPT mimarisinin tanıtılması
- Curriculum learning kullanıldığında soldan sağa özbağlanımlı modellere benzer performansa ulaşılabildiğinin gösterilmesi
- Keyfi sırada örnek üretimiyle dizinin herhangi bir bölümü için koşullu üretimin mümkün olduğunun gösterilmesi
- Burst birimiyle örnek üretimi için token tabanlı rejection sampling yönteminin tanıtılması
1 yorum
Hacker News yorumları
İyi görünüyor. Eğitim sırasında giriş token’larını rastgele karıştırıyor ve her token’a iki tür konum kodlaması ekliyor: biri o token’ın konumu, diğeri tahmin edilecek token’ın konumu
Bunun dışında standart bir özbağlanımlı GPT; ama basit görünen bu değişikliğin sonucu büyük. Eğitilmiş modele bir dizinin bir kısmını prompt olarak verdiğinizde, eksik token’ları sıradan bağımsız biçimde tek seferde paralel olarak decode edebiliyor; ayrıca tüm eksik token’ların koşullu olasılık yoğunluğunu da paralel hesaplayabiliyor
Yazarlar ayrıca red örneklemesine dayalı paralel doldurma üretimi yöntemi önermişler ve pratikte iyi çalışıyor gibi görünüyor
I . . . . . . . . happily.ise, tahmin edilecek ikinci kelime birinci kelimeye bağlı değil mi diye düşünüyorumEski bir şey[1] yeniden yeni olmuş, ama önceki çalışmaya atıf yok. Bilinmeyen bir çalışma da değil; ICML’de yayımlanmış ve yaklaşık 250 atıfı var
[1]: https://arxiv.org/abs/1902.03249
Gerçekten harika bir kavram. Görüntü üretim modellerinde görülen dinamiklere benzemeye başlayıp başlamadığını merak ediyorum: görüntünün bir bölgesinde yapı ve ayrıntı oluşuyor, çevredeki bölgeler de giderek buna uyum sağlayıp çözülüyor
Bu davranış uzun çıkarım/mantık/planlama için özellikle yararlı görünüyor. Çünkü büyük fikir önce ortaya çıkabilir, aradaki ayrıntılar ve metin de doğal biçimde doldurulabilir
Twitter’da metin ürettiğini gösteren bir video var. Biraz görüntü difüzyonu gibi görünüyor
https://x.com/ArnaudPannatier/status/1799055129829839166
Bugün bu makaleyi sürekli düşündüm; yetenekleri gerçekten hoşuma gidiyor. Sıralı LLM’lerde nispeten zor olan işler burada kolaylaşıyor
JSON istiyorsanız süslü parantez token’larını başa ve sona sabitleyebilirsiniz. Belirli token uzunluğunda bir yanıt açıklaması istiyorsanız kısa yanıtı sona ekleyip ortasını doldurtabilirsiniz
Daha bilgi yoğunluğu yüksek yanıtlar istiyorsanız üretilen metne bir yoğunluk değerlendirme bölümü ve LLM’in bilgi yoğunluğunu puanlayacağı bir alan ekleyip yüksek puanı bulacak şekilde üretim yaptırabilirsiniz. Denenecek çok şey var gibi görünüyor; makaleye göre yaklaşık 3 kat token gerektirmesi üzücü, ama makul token sayısına sahip 8B parametreli bir model ile de denense iyi olurdu
Ama daha iyi bir yol da var. LLM çıktısını JSON gibi belirli bir gramerle sınırlarsanız, yalnızca sözdizimsel olarak geçerli JSON ile yanıt vermesini sağlayabilirsiniz
Bunun bilgisayar kodu üretiminde özellikle faydalı olup olmayacağını merak ediyorum. Çünkü bir aşamada çıktılanacak içerik, sonraki aşamada yazılacak içeriğe fiilen bağlı olabilir
İlginç bir çalışma. Benzer bir permütasyon yaklaşımı Taylorformer makalesinde (https://arxiv.org/pdf/2305.19141v1) de zaten var
Yazarlar zaman serileri gibi sürekli süreçler için Transformer decoder kullanıyor ve eğitim sırasında her diziyi rastgele karıştırıyor. Her dizi öğesinde konum kodlaması var ve karıştırılmış dizi için log-olabilirlik kullanılıyor
Orada permütasyon enterpolasyon, ekstrapolasyon ve düzensiz örneklenmiş veri tahminine yardımcı oluyor. Ayrıca üretim sırasından bağımsız olarak ortalama kare hatanın genel olarak aynı hâle geldiği “tutarlılığa” da yardımcı gibi görünüyor
Bu makalenin bu fikirlerin anlaşılmasına veya uygulanmasına ne kattığını merak ediyorum. Dizi sırasını karıştırma fikri Transformer Neural Process makalesinde de geçiyor: https://arxiv.org/pdf/2207.04179
Bu, vision Transformer’larda öğrenilenleri dil Transformer’larına uygulamak mı acaba
Anladığım kadarıyla vision modelleri görüntüyü karolara ayırıyor ve modele karoların göreli konumunu anlaması için her karoya konum kodlaması ekliyor
Açıkçası yalnızca özeti okudum ve birçok kısmı zor geliyor, ama bu makale benzer bir fikri 2D yerine 1D için öneriyor gibi görünüyor
Eğitimi daha zor, ama birden fazla token’ı aynı anda üretmeyi mümkün kılıyor gibi. Yani N token uzunluğunda bir yanıtı N adımda değil, N/x adımda alabiliyorsunuz
Kod var mı merak ediyorum. Çift konum ve karıştırmayı tam anlayabilmiş değilim. Konum değerlerini toplamak yerine uç uca eklemeleri de ilginç
Yann LeCun olsa özbağlanımlılığın kendisinin sorun olduğunu ve bu tür makine öğrenmesiyle AGI’nin yakınına bile gidilemeyeceğini söylerdi[0]
En azından özbağlanımlı paradigma içinde kaldıkça halüsinasyon sorunu çözülemez
[0] https://twitter.com/ylecun/status/1640122342570336267
Asıl makalenin yazarları bu çalışmanın AGI’ye yaklaşmaya yardımcı olduğunu iddia etmiyor. Yalnızca özbağlanımlı LLM’lerin daha önce yapamadığı yeni bir şeyi yapmasını sağlamışlar
Çoğu iş için AGI gerektiğini de düşünmüyorum. Bilinçli bir varlık için acı yaratma niyetiniz yoksa hele hiç değil
Sezgisel olarak bazı token’lar diğerlerinden daha zordur. Çıktı içinde kritik token’lar olabilir ve onlardan sonra kalan token’lar çok daha kolaylaşabilir. Ayrıca özbağlanımlı yöntemde de
actually no...gibi token’lar üreterek yanlış bir token’dan toparlanmak mümkündürToken örnekleme yöntemine bağlı olarak önerilen üretimi bir bütün olarak görüp düzeltebilmek mümkün gibi. Mevcut makalede önerilen örnekleme yönteminin bunu şu anda yapıp yapmadığını bilmiyorum, ama olasılıklardan gelen bilgiyle mümkün görünüyor