GPT-4 ayrıntıları sızdı mı?
(archive.md)- Yaklaşık 1,8 trilyon parametre ve 120 katmandan oluşan devasa bir dil modeli; GPT-3'e kıyasla 10 kattan daha büyük
- 16 expert içeren Mixture of Experts (MoE) yapısı; her forward pass'te yalnızca 2 expert etkinleştirilerek maliyet düşürülüyor
- Yaklaşık 13 trilyon token ile eğitildi; metinde 2 epoch, kodda 4 epoch uygulandı
- Ayrı bir vision encoder kullanan çok modlu yapı; metin ön eğitiminden sonra yaklaşık 2 trilyon token ile ek fine-tuning yapıldı
- Yaklaşık 25.000 A100 üzerinde 90~100 gün eğitim; tahmini eğitim maliyeti yaklaşık 63 milyon dolar
Parametre sayısı ve model ölçeği
- GPT-4'ün, GPT-3'ten 10 kattan daha büyük olduğu ve toplam yaklaşık 1,8 trilyon parametreyi 120 katmanda barındırdığı tahmin ediliyor
- Her forward pass'te (1 token üretimi) yalnızca yaklaşık 280B parametre ve yaklaşık 560 TFLOPs kullanılıyor
- Saf dense bir model olsaydı yaklaşık 1,8 trilyon parametre ve yaklaşık 3.700 TFLOP gerekirdi
- Attention için paylaşılan parametreler yaklaşık 55B seviyesinde
Mixture of Experts (MoE) yapısı
- OpenAI, MoE model kullanımıyla maliyeti makul seviyede tutuyor
- Model içinde 16 expert kullanılıyor; her expert, MLP bazında yaklaşık 111B parametreye sahip
- Her forward pass'te 2 expert'e routing yapılıyor
-
MoE routing
- Akademide token bazında expert seçimi için gelişmiş routing algoritmaları çokça tartışılsa da, GPT-4'ün mevcut routing yapısının oldukça basit olduğu belirtiliyor
-
Expert sayısı seçimindeki trade-off
- MoE'de tüm parçalar her token üretiminde kullanılmadığı için inference işlemi oldukça zorlaşıyor
- Bazı alanlar atıl kalıyor ve bu da kullanıcıya hizmet verirken kullanım oranını düşürüyor
- Araştırmalarda 64~128 expert'in 16 expert'ten daha düşük loss elde ettiği görülse de bu daha çok saf araştırma düzeyinde
- Expert sayısı arttıkça çeşitli görevlerde genelleme zorlaşıyor, yakınsama da daha problemli hale geliyor
- Bu nedenle OpenAI temkinli biçimde 16 expert seçti
- MoE'de tüm parçalar her token üretiminde kullanılmadığı için inference işlemi oldukça zorlaşıyor
Veri kümesi
- GPT-4, yaklaşık 13 trilyon token ile eğitildi; bu sayı benzersiz token sayısı değil, epoch tekrarları dahil edilerek hesaplanan toplam
- Metin verisinde 2 epoch, kod verisinde 4 epoch uygulandı
- ScaleAI ve şirket içinde elde edilen milyonlarca satırlık instruction fine-tuning verisi de dahil
-
Veri kümesi karışımının yapısı
- 13 trilyon token içinde CommonCrawl ve RefinedWeb'in her biri 5 trilyon token oluşturuyor
- Epoch tekrarları çıkarıldığında kaynağı belirsiz "gizli" veri kalıyor
- Bunun bir kısmının twitter, reddit ve youtube'dan geldiğine dair söylentiler var
- Olası kaynaklar arasında LibGen (4 milyondan fazla kitap), Sci-Hub (80 milyondan fazla makale) ve GitHub'ın tamamı anılıyor
- Eksik verinin elle toplanmış üniversite ders kitabı veri kümesi olduğu görüşü de öne sürülüyor
txtdönüşümünden sonra self-instruct ile instruction biçimine dönüştürmek kolay- Bunun sonucunda GPT-4, uzmanlık alanından bağımsız olarak "zeki" bir izlenim veriyor
- GPT-4'ün ezberlediği bazı kitapları zorla çıkararak eğitim verisini tespit etmeye çalışan makaleler de var
- Bazı kitapları çok iyi bildiği için bunlarla eğitildiği kesin görünüyor; hatta Project Euler sorularının benzersiz id'lerini bile hatırlıyor
GPT-4 32K context
- Ön eğitim aşamasında 8k context length (seqlen) kullanıldı
- 32k seqlen sürümü, ön eğitimden sonra 8k modelin fine-tuning uygulanmış hali
Batch size
- Kümede birkaç gün boyunca batch size kademeli olarak artırıldı ve sonunda 60 milyon batch size kullanıldı
- Tüm expert'ler her token'ı görmediği için expert başına yaklaşık 7,5 milyon token düşüyor
- Gerçek batch size, bu değerin seq len'e bölünmesiyle hesaplanabiliyor
Paralelleştirme stratejisi
- Tüm A100 GPU'lar arasında paralelleştirme için 8-way tensor parallelism kullanıldı (NVLink sınırı)
- Bunun ötesinde 15-way pipeline parallelism uygulandı
- ZeRO Stage 1 kullanılmış olması muhtemel; block-level FSDP de mümkün
-
FSDP kullanılmama nedeni
- Elde bulunan donanım altyapısının bir kısmı eski nesil olabilir
- Yerel hesaplama kümelerinde hizmet kesintisini önlemek için altyapıyı birkaç "aşama" halinde yükseltmek yaygındır
- Elde bulunan donanım altyapısının bir kısmı eski nesil olabilir
Eğitim maliyeti
- GPT-4'ün eğitim FLOPS'u yaklaşık 2.15e25; yaklaşık 25.000 A100 üzerinde 90~100 gün, MFU ise yaklaşık %32~36
- Bu çok düşük kullanım oranının nedeni, checkpoint yeniden başlatmalarına yol açan aşırı arıza sayısı olarak gösteriliyor
- A100 için saatlik yaklaşık 1 dolar varsayılırsa, yalnızca bu eğitim için yaklaşık 63 milyon dolar harcandığı tahmin ediliyor
- Güncel koşullarda yaklaşık 8.192 H100 ile yaklaşık 55 günde, H100 saatlik 2 dolar varsayımıyla yaklaşık 21,5 milyon dolara ön eğitim yapılabilir
GPT-4 inference maliyeti
- GPT-4, 175B parametreli Davinci'ye kıyasla 3 kat maliyetli
- Bunun nedeni daha büyük küme gereksinimi ve çok daha düşük kullanım oranı
- Maliyet tahmini: 128 A100 ile GPT-4 8k seqlen inference için 1k token başına $0.0049 cent, 128 H100 ile $0.0021 cent
- Bunun için yeterince yüksek kullanım oranı ve büyük batch size'ın korunması gerekiyor
Multi-Query Attention (MQA)
- OpenAI de diğerleri gibi MQA kullanıyor
- Yalnızca 1 head gerektiğinden KV cache'in bellek kapasitesi ihtiyacı ciddi biçimde azalıyor
- Buna rağmen 32k seqlen GPT-4, 40GB A100 üzerinde çalışmıyor; 8k sürümünde ise maksimum batch size sınırlı
Continuous Batching
- OpenAI, değişken batch size ile birlikte continuous batching de uyguluyor
- Böylece belirli bir maksimum gecikme süresine tolerans tanırken inference maliyetini de optimize ediyor
Vision multimodal
- Metin encoder'ından ayrılmış bağımsız bir vision encoder, cross-attention ile bağlanıyor; Flamingo'ya benzer bir mimari
- 1,8 trilyon parametrenin üzerine ek parametreler eklenmiş durumda
- Yalnızca metin için yapılan ön eğitimden sonra yaklaşık 2 trilyon token ile ek fine-tuning yapıldı
- Vision modelini baştan eğitmek istediler ancak olgunluk seviyesi yeterli olmadığı için riski azaltmak adına önce metinle başladılar
- Vision yeteneğinin temel amacı, web sayfalarını okuyup görsel ve video içeriklerini yazıya dökebilen otonom ajanlar geliştirmek
- Eğitim verisine render edilmiş LaTeX/metin birleşik veri, web sayfası ekran görüntüleri, YouTube video frame örneklemesi ve Whisper tabanlı transkripsiyon da dahil
Speculative Decoding
- GPT-4 inference'ında speculative decoding kullanılıyor olabilir (%100 kesin değil)
- Önce daha küçük ve hızlı bir model birkaç token'ı önceden decode eder, ardından bunlar tek bir batch halinde büyük oracle modele verilir
- Küçük modelin tahmini doğruysa büyük model bunu onaylar ve bir batch içinde birden fazla token decode edilir
- Büyük model reddederse kalan batch atılır ve büyük modelle devam edilir
- Son dönemdeki GPT-4 kalite düşüşü komplo teorileri, oracle modelin speculative decoding modelinin düşük olasılıklı dizilerini kabul etmesinden kaynaklanıyor olabilir
Inference mimarisi
- Inference, 128 GPU'luk kümelerde çalıştırılıyor ve birden fazla veri merkezinde çok sayıda küme bulunuyor
- 8-way tensor parallelism ve 16-way pipeline parallelism ile yürütülüyor
- Her 8 GPU düğümünde yaklaşık 130B parametre bulunuyor
- Model 120 katmandan oluştuğu için 15 düğüme dağıtılarak yükleniyor
- Embedding'i de hesaplamak zorunda olan ilk düğümde daha az katman bulunuyor olabilir
- Bu rakamlara göre, eğer chinchilla optimumu izlenmiş olsaydı eğitim için 2 kat daha fazla token gerekirdi; bu da yüksek kaliteli veri bulmanın zorluğuna işaret ediyor
1 yorum
Hacker News görüşleri
Bu daha önce de burada https://news.ycombinator.com/item?id=36671588 ve burada https://news.ycombinator.com/item?id=36674905 paylaşılmıştı
Asıl kaynak https://www.semianalysis.com/p/gpt-4-architecture-infrastruc... ve Twitter tarafındaki yazı gerçek blog yazısını neredeyse yeniden ifade etmiş gibi görünüyor. Bu yüzden tweet’in silinmiş olduğu anlaşılıyor
Uzman karışımı (MoE) kullanılması yeni ve çok ilginçti; bunun nasıl çalıştırıldığını daha fazla bilmek isterim. Uygulamadaki varyasyonlar, insanların gözlemlediği çıktı kalitesindeki dalgalanmaları açıklıyor olabilir. Burada bahsedilen görsel model hakkında da birkaç ay önceki birkaç demo dışında hâlâ çok az şey biliniyor, bu yüzden yayınlanmasını bekliyorum
Yapay zeka bağlamında “MoE” genelde “Mixture of Experts” anlamına gelir; bu, problemi alt problemlere bölüp her alt problemi uzmanlaşmış “uzman”ların (modellerin) çözmesini sağlayan ve ardından çıktıları birleştiren bir makine öğrenimi tekniğidir
GPT-4’ün MoE kullandığı bilgisi yeniyse, bu iddiaya bir miktar güvenilirlik katıyor olabilir
Bu, büyük dil modellerinin genel yapay zekadan tamamen farklı olduğunu gösteriyor. Hesap makinesi eklemek sadece geçici bir çözümdür; yararlı bir geçici çözüm olsa da onu bilim yapabilir hâle getirdiğini düşünmüyorum
Bu gönderi en azından şimdilik ücretsiz görülebiliyor
Eğer bu doğruysa, eğitim için 21 yottaflops gerekmiş. Yotta- önekini en son ne zaman nerede gördüğümü bilmiyorum
Ayrıca GPT-4 eğitiminin maliyeti bir yıl öncesinin üçte birine inmiş. Büyük dil modeli eğitimi fiyatlarının düşüş hızı gerçekten şaşırtıcı ve açık kaynak için iyi haber. Google notunda hendek olmadığını söylemekte haklıydı
Pirincin toptan fiyatı kg başına 0,001 dolar olsa bile, benim 1 milyon dolarım ve senin 1000 doların varsa ben yine senden 1000 kat fazla pirinç alabilirim
Ayrıca birçok kullanım alanında daha zeki olan daha iyidir. Birkaç sente daha doğru cevap satın alabiliyorsan, o birkaç senti ödemek her zaman değer. Daha fazla donanım ve daha fazla veriyle daha büyük ve daha iyi modeller eğitebildikleri sürece, hendek de budur
Teknolojiye hayranım ama bu kez gelecekte ne anlama geleceğini hayal etmek bile korkutucu. Muhtemelen bu açık web’i öldürecek ve ardından ilgili yasalar geçerek açık web’in üstünü tamamen örtecek
“Yeni GPT-4 kalitesinin düştüğüne dair komplo teorileri, oracle modelin speculative decoding modelinin daha düşük olasılıklı dizilerini kabul etmesinden kaynaklanıyor olabilir” demek, sonuçta tahminlerin doğru çıkmış olabileceğini kabul edip hatta belirli bir mekanizma önermek, ama aynı zamanda bu meseleyi gündeme getiren insanlara hakaret etmeye ve gaslighting yapmaya devam etmek demek
Kanıtlanmadığı için teoridir ve insanlar OpenAI’ın kendi hizmetini bilerek kötüleştirdiğini düşündüğü için de komplo teorisidir
Bu kişi ne dediğini bilmiyor gibi görünüyor. Twitter’da sürekli böyle saçmalıklar paylaşıyor. Genel olarak kopyala-yapıştır yapıp biraz sos ekliyor gibi
Örneğin MoE neyse de 111 milyar parametreli 16 uzman mantıklı değil. GPT-3 bile 175 milyar parametreydi ve bundan sonra temel model ölçeğini küçülteceklerini sanmıyorum. Daha makul bir sayı, model başına yaklaşık 220 milyar parametre ve 8 uzman model olurdu; toplam çıkarım maliyeti de aynı kalırdı
13 trilyon token eğitim verisi sayısı da havadan uydurulmuş gibi görünüyor
Google, büyük dil modellerini ölçeklemek için uzman karışımı üzerinde çalışıyordu. 2022’de duyurulan GLaM modeli 1,7 trilyon parametreye ve 64 uzmana sahipti
https://icml.cc/media/icml-2022/Slides/17378.pdf
George Hotz, kısa süre önce Lex Fridman röportajında “Sam Altman sana GPT-4’ün 220 milyar parametre olduğunu ve 16 yönlü bir mixture modelinde 8 set ağırlık kullandığını söylemeyecek” dedi
Lex’in tepkisine bakılırsa, o da bunun doğru olduğunu biliyor gibiydi
Bu yeterli kanıta dayanmıyor. GPT-4’ün tam olarak nasıl çalıştığını bilen tek kişiler OpenAI çalışanları ve geri kalan herkes ancak tahmin yürütebilir.
Ancak gizli kaynak ve hendek veride. OpenAI’nin rekabetçi programlama yarışmacılarına para ödeyip karmaşıklık gibi bilgileri içeren kodlar yazdırdığı ve yorumlattığına dair bir söylenti duymuştum.
Twitter API erişimi için fahiş ücretler alıp scraping karşıtı önlemler uygularken, Thread Reader gibi premium ücretsiz hizmetlerin hâlâ nasıl çalıştığını merak ediyordum.
Okuma izni veren en ucuz API planı ayda 100 dolara 10 bin tweet okuma seviyesinde, yani bu tür sayfalardan isteğe bağlı olarak ancak yaklaşık 500 tane üretilebilir.
const puppeteer = require('puppeteer');diye devam ediyordur.Bu yazıda, “bütün sayıları biliyor” türü bir özgüvene kıyasla tuhaf duran yerler var.
“Günümüzde ön eğitim yaklaşık 8192 adet H100 ile yaklaşık 55 günde, H100 saatlik 2 dolar baz alındığında 21,5 milyon dolara yapılabilir” deniyor ama sistem boyutunu ve eğitim süresini neden ikisini birden keyfi sayılarla ayarladığını anlamıyorum.
Ayrıca MoE’de her token üretiminde modelin tüm parçaları kullanılmadığı için çıkarım tarafında ele alınmasının zor olduğu, bir kısmı boşta kalırken bir kısmı kullanıldığı için kullanıcıya hizmet verirken kullanım oranını kötü etkilediği söyleniyor; ama bunun neyin kullanım oranı olduğu belirsiz. Bellek mi? Çıkarım kullanım oranı bu kadar dertse, neden sadece MoE olmayan bir model ayağa kaldırılmasın?
MQA hakkında da “bu yüzden yalnızca 1 head gerekir ve KV cache’in bellek kapasitesi büyük ölçüde azaltılabilir” denmiş ama yakın olsa da yanlış. Sadece Key ve Value head’leri için bir tane gerekir, Query head sayısı aynı kalır.
Benim tahminim, nispeten bilgili biri 2020 scaling paper formülünü kullanıp matematik olarak doğru olan hayali bir sistem kurmuş. Ben de buna benzer bir yazıyı kulağa makul gelecek şekilde uydurabilirim ama bu benim seviyemin ötesinde olurdu, dolayısıyla benzer biçimde yakın ama kesin olarak yanlış olurdu. Bu yüzden bıraktığı izlenim çok şüpheli.
MQA’nin özü, bu paylaşım sayesinde KV cache’in normal duruma göre head sayısı kadar küçülmesidir. Birden fazla Query head olması cache boyutunu etkilemez ve hem bellek kapasitesi hem de bant genişliği açısından MHA decoding’in sınırlayıcı unsuru cache’tir.