Attention bir adım farkla yanlış
(evanmiller.org)- Transformer içindeki attention softmax, bir head'in “hiçbir şey yapmamayı” seçmesini engelleyerek kuantizasyonu ve düşük bellekli dağıtımları zorlaştırabilir
- Sorunun ipucu, LLM'lerde görülen aykırı weight/activation değerleridir; Qualcomm AI Research makalesi, aykırı activation'ların %97'den fazlasının boşluk ve noktalama işareti konumlarından geldiğini analiz ediyor
- Klasik softmax, tüm girdiler çok negatif olsa bile her terime 1/k ağırlığı verir; ancak
softmax_1, paydaya 1 ekleyerek attention çıktısının 0'a yaklaşabilmesini sağlar softmax_1, göreli oranları korurken toplamı 0 ile 1 arasında sınırlar ve pozitif türevleri sayesinde sıfır olmayan gradient bırakır- Bu değişiklik, mevcut modellere doğrudan takılan bir yama değil; yeniden eğitim gerektirir, ancak LLaMA gibi modellerde zero prefix token yaklaşımıyla hızlı deneyler mümkün olabilir
Kuantizasyonu zorlaştıran aykırı değerler
- Transformer modellerinde, diğer değerlerden birkaç basamak daha büyük weight ve activation değerleri ortaya çıkar ve bu değerler modelin çalışması için önemli görünüyor
- Bu tür aykırı değerler, standart scale-and-bias tamsayı kuantizasyonunda performans düşüşüne yol açarak büyük modellerin Mac Mini veya Raspberry Pi gibi RAM'i kısıtlı ortamlarda çalıştırılmasını zorlaştırıyor
- RAM kullanımını azaltmak, hem bulut hem de edge ortamlarında daha büyük modelleri ya da daha fazla özelliği çalıştırmak için alan açar
- Qualcomm AI Research'ün Quantizable Transformers: Removing Outliers by Helping Attention Heads Do Nothing makalesi, aykırı değerleri attention mekanizmasındaki softmax ile ilişkilendiriyor
- LLM'lerdeki aykırı activation'ların %97'den fazlasının whitespace ve punctuation konumlarında oluştuğunu analiz ediyor
- clipped softmax, zero gradient sorununa sahip; gated attention ise milyonlarca yeni parametre ekliyor
Transformer içinde softmax'ın rolü
- Transformer'ın girdi embedding'leri, kelimeleri temsil eden kayan noktalı vektörlerdir
- Meta'nın LLaMA 2 modeli, uzunluğu 3.204 olan embedding vector'ler kullanır ve half-precision ile bir kelimeyi temsil etmek için 6 KB'den fazla gerekir
- vocabulary genellikle 30.000~50.000 öğe içerir
- Transformer, girdi vektörlerini aynı boyutta çıktı vektörlerine dönüştürür ve son çıktı vektörü, mevcut token'dan sonra gelecek token'ı tahmin etmek için kullanılır
- residual connection, attention'ın özgün kelime bilgisine bağlam bilgisini eklemesi şeklinde çalışır
- Örneğin
pupilsözcüğünün öğrenci mi yoksa göz bebeği mi olduğunu ayırt eden bağlamsal bilgiyi ekler
- Örneğin
- Son aşamada çıktı vektörü, vocabulary uzunluğunda bir vektöre dönüştürülür ve ardından softmax uygulanarak sonraki token olasılıkları gibi ele alınır
- Gerçek uygulamalarda softmax çıktısındaki olasılıklara doğrudan güvenmek yerine bir sampling mechanism kullanılır
- Çıkış aşamasındaki softmax, tüm vocabulary'ye gradient vermesi nedeniyle makul bir tercih kabul edilir
İç attention softmax'ının sınırları
- İç attention'ın temel denklemi şöyledir
[ \textrm{Attention}(Q, K, V) = \textrm{softmax}\left(\frac{QK^T}{\sqrt{d}}\right)V ]
- decoder-only model'lerde (Q), (K) ve (V) aynı girdi dizisinden başlar, ancak farklı biçimlerde projection uygulanır
- (QK^T), token embedding vector'leri arasındaki korelasyonları bulur; her satıra softmax uygulanır ve sonuç, (V) matrix'indeki value vector'leri karıştırmak için ağırlık olarak kullanılır
- multi-head attention, bu işlemi her layer'da birden çok head üzerinde paralel biçimde yürütür
- embedding vector birden çok segmente bölünür ve her head, output vector'ün bir segmentine bilgi ekler
- Sorun, softmax'ın her attention head'ini mutlaka bir annotation üretmeye zorlamasıdır
- head'in ekleyecek bilgisi olmasa bile softmax bir seçim üretir
- Bir işte uzmanlaşmış head'lerin “pass” seçeneğine ihtiyaç duyması daha olasıdır, ancak klasik softmax'ta böyle bir abstention yoktur
Öneri: softmax_1 ve QuietAttention
- Önerilen değişiklik, softmax paydasına 1 eklemek
[ (\textrm{softmax}_1(x))_i = \frac{\exp(x_i)}{1+\sum_j \exp(x_j)} ]
- Klasik softmax'ta tüm (x) değerleri çok negatif olduğunda bile her terim (1/k)'ye yakınsar
[ \lim_{x_1 \to -\infty} \ldots \lim_{x_k \to -\infty} (\textrm{softmax}(x))_i = \frac{1}{k} \gt 0 ]
softmax_1, aynı koşullarda her terimi 0'a yaklaştırır
[ \lim_{x_1 \to -\infty} \ldots \lim_{x_k \to -\infty} (\textrm{softmax}_1(x))_i = 0 ]
- Bu fark sayesinde attention head, bilgi eklememeyi seçebilir
- Önerilen attention denklemi şöyledir
[ \textrm{QuietAttention}(Q, K, V) := \textrm{softmax}_1 \left(\frac{QK^T}{\sqrt{d}}\right)V ]
softmax_1'in özellikleri ve deney koşulları
softmax_1, toplam değeri biraz düşürür; ancak attention sonrasındaki normalization bu küçülmeyi telafi edebilir- Çıktı vektörünün göreli oranları klasik softmax ile aynıdır
[ \frac{(\textrm{softmax}_1(x))_i}{(\textrm{softmax}_1(x))_j} = \frac{(\textrm{softmax}(x))_i}{(\textrm{softmax}(x))_j} = \frac{\exp(x_i)}{\exp(x_j)} \quad \forall \ i, j ]
- Türevler pozitiftir; bu nedenle sıfır olmayan gradient korunur ve toplam 0 ile 1 arasında kaldığı için çıktı denetimli aralığın dışına çıkmaz
- Bu sorun, numerical precision değil matematiksel bir sorun olarak ele alınıyor; yalnızca precision artırmak çözüm olmuyor
- Deney fikri, tüm girdi context'inin başına bir zero vector eklemek ve positional encoding dahil hiçbir bias eklenmediğinden emin olmak
- zero olduğu gibi aktarılırsa, sonraki her softmax denominator'ına 1 ekleme etkisi üretir
- fixed embedding ve special prefix token kullanan LLaMA modellerinde bu mümkün olabilir
- Bu, mevcut modellere doğrudan uygulanacak bir deney değildir; modelin yeniden eğitilmesi gerekir
- Bakılmak istenen metrikler, weight kurtosis ve activation infinity norm değişimleridir
1 yorum
Hacker News görüşleri
Yazarın önerdiği şey, nihai çıktının softmax’ı değil, attention içindeki softmax paydasına 1 eklemek
Attention softmax’ı, key/query eşleşmesini olasılık gibi göstererek key-value erişiminin 0/1 lookup yerine sürekli değerli ağırlıklarla yapılmasını sağlıyor
Paydaya 1 eklenirse ağırlıkların toplamı 1’den küçük olur ve artık gerçek bir olasılık vektörü olmaz; ancak model yüksek ağırlıkları öğrenirse neredeyse bir olasılık vektörü gibi davranır, ayrıca tüm ağırlıkları düşük verip “hiçbir şeyden emin olmamayı” da seçebilir
Gerçekte iyi olup olmadığını görmek için bu yöntemle bir LLM eğitmek gerekir. Yine de büyük bir fark yaratmayacak gibi görünüyor. Düşük güvenli attention düğümleri zaten softmax öncesi skorları birbirine yakın yaparak neredeyse uniform bir dağılım oluşturabilir; bu da birçok vektörün ortalaması olacağı için istatistiksel olarak 0’a yaklaşma ihtimalini artırır
Ayrıca Transformer’da, V matrisi ve attention sonrası feed-forward katmanı gibi, opt-out davranışını uygulayabilecek öğrenilmiş ağırlıklar zaten bolca var. Yine de yazının akademik olmayan tonu ve temel fikri kurcalama tavrı hoş; tamamen ikna olmuş değilim ama böyle yazıları daha çok okumak isterim
Büyük modelleri çalıştırırken bellek darboğaz olduğu için, doğruysa bu oldukça önemli olur
Aslında bu fonksiyona
ghostmaxadını vermek istemiş olması gibi, x’e 0 değerli bir öğe daha eklenmiş gibi düşünülebilir veexp(0)=1olduğundan, V matrisinde de sonucu zayıflatan bir 0 vektörü varmış gibi görülebilir“Ağırlıkların toplamı 1’den küçük, yani bazen hiçbir şey seçmiyor” demektense, seçenek kümesi her değerlendirildiğinde hiçbir şey yapmama seçeneğinin de zorunlu olarak birlikte değerlendirildiğini söylemek daha iyi
Bu, “elinde sadece çekiç varsa her şey çivi gibi görünür” ile “elinde sadece çekiç olsa bile çiviyi çakar, çivi olmayanı ise görmezden gelir” arasındaki fark gibi
Örneğin bir konuşma-metin sistemi önce insanın dili seçmesini isteyip, sonra o dildeki sesi verince oldukça iyi bir transkripsiyon üretiyor ama 1. adımda dil seçimi yanlışsa saçma çıktı veriyor; bu rahatsız edici. Bir İngilizce transkripsiyon sistemi, Fransızca ses geldiğinde önce “bu İngilizce değil” diyebilse insana daha yakın olurdu
Birinde attention modülünün softmax paydasına +1 eklenir, diğerinde eklenmez. Performansın benzer olduğu gösterilmeli ve +1 kullanılan modelde taşmanın azalıp daha verimli quantize edilebildiği de gösterilmeli
Sinir ağlarının identity function’ı iyi modelleyememesi ve bu yüzden residual connection gerekmesi gibi, düşük entropili dönüşümleri örtük olarak öğrenmede de oldukça zayıf olduklarını düşünüyorum
İfade gücünü artırmasa bile, gradyan inişiyle bulunması zor olan iğne-delik tipi bir dönüşümü modelin içine gömmenin etkisi olabilir. Gerçekte ne kadar faydalı olduğu ise belirsiz
Yaygın kullanılmamasının nedeni, insanların bunu denemiş olması ve pratikte pek iyi çalışmaması olabilir. Orijinal yazının buna “8 yıldan uzun süredir gözden kaçan bir bug” demesi clickbait’e yakın
Gözden kaçırdığım bir şey olabilir ama yorumların bunu neden bu kadar büyük mesele yaptığını pek anlayamıyorum. Bu numarayı gerçekten birkaç kez gördüm
Örneğin eski bir Google deposunda da şu kod var: https://github.com/google/flaxformer/blob/ee62754ebe5a5eeb11...
Kararlılığa hiç yardımcı olacağını sanmıyorum. Ölçeği büyütürken softmax kararlılığı için Q/K layernorm gibi numaralar daha iyi: https://arxiv.org/pdf/2302.05442.pdf
Farkındalık yaratmak için blog yazısı ya da makale yazmak kesinlikle değerli olabilir. İyi fikirlerin birbirinden bağımsız olarak birden fazla kez keşfedilmesi de yaygın bir durum
Daha büyük paydanın dağılımı düzleştirmesinin daha iyi quantization davranışına yol açıp açmadığını, +1 eklenen ve eklenmeyen durumu doğrudan karşılaştırmadan bilemeyiz. Orijinal yazı bu faydanın büyük olabileceğini düşünüyor
Teknik olarak softmax, verilen formülle değil
exp(x_i-max(x))şeklinde uygulanır ve paydada toplanan da bu değerlerdir. Gözden kaçırdığım bir şey olabilirAyrıca residual connection, ağın identity function’ı öğrenememesi nedeniyle kullanılır ama 0’ı öğrenebilir. Dolayısıyla
f(x): x+g(x)içing:x ~> 0, yani yaklaşık 0 olması yeterlidirf(x): x+g(x)aynı zamanda gradyanın akmasını da kolaylaştırır“Keşfedilen” bu numara, PyTorch multi-head attention standart uygulamasının bir parçası ve adı
add_zero_attentionLogit’lere 0 eklediği için
e^0=1olur ve paydada 1 oluşur: https://pytorch.org/docs/stable/generated/torch.nn.Multihead...Anlamını çok kısa da olsa açıklamıyor. Az önce yazdığım ikinci cümle eklense bile çok daha faydalı olurdu
Yapay zeka ya da bu algoritma hakkında değil ama, bazen küçük bir hataya ne kadar hata deseniz de bunun bir hata olduğuna kimseyi ikna edemiyorsunuz
2011'de kendi projemde reddit sıralama algoritmasını kopyalamaya çalışırken kaynak koda baktım ve negatif toplam oylu gönderiler için tamamen anlamsız davranıyordu
Basit bir formülde terimler yer değiştirmiş gibiydi ve pozitif/negatif işaret yanlış uygulanmıştı. Bunun üzerine blogda yazdım ve reddit'te paylaştım; reddit çalışanları dahil birçok kişi tamamen yanlış olduğumu ve algoritmanın amaçlandığı gibi çalıştığını söyledi
Daha önce de aynı noktayı fark edip dile getirenler olduğu ama onların da yanıldıklarının söylendiği belirtilmişti
Sonunda blog yazısını, “benden daha zeki insanlar reddit algoritmasında hata olmadığını söyledi; sadece benim varyasyonum bana daha mantıklı geliyor” şeklinde düzelttim
Ama sonra 3 yıl sonra, 2014'te reddit kaynak koduna benim ve benden önce başkalarının sürekli önerdiği düzeltmenin aynısı commit edildi: https://github.com/reddit-archive/reddit/commit/50d35de04b92...
Açık kaynak, çok sayıda gözün hataları bulabilmesini sağlar ama bazen bir hatayı bulduğunuzda buna kimseyi ikna edemezsiniz. Tabii reddit 2017'de kodu kapattı
Sonunda kendi uygulamama başta kopyalamak istediğim sıralama özelliğini de, oy özelliğini de eklemedim
Sorgu parametrelerine çok sayıda değer encode etmek gerekiyordu ve belirli parametrelerin fiilen iki kez encode edilmesi gerekiyordu; benim aracım da bunu böyle yapıyordu. Ama implementasyon mühendisi aracımın yanlış olduğunu iddia etti, stajyer olmamı öne sürdü ve hatta OAuth spesifikasyonunu açıp kendi implementasyonunun doğru, benimse yanlış okuduğumu gösterecek şekilde zorlayarak yorumladı
Sonunda Eran Hammer-Lahav çağrılıp doğrulatılınca haklı olduğum ortaya çıktı ve mühendis ancak o zaman bunun zaten doğru olduğunu kabul etti. Günler süren kişisel saldırılar içinse hiçbir kabul ya da özür gelmedi
Buradan, daha kıdemli olmanın her zaman haklı olmak anlamına gelmediği gibi önemli bir ders çıkardım; şimdi çoğu zaman daha kıdemli tarafta olan benim ama bunu her gün hatırlamaya çalışıyorum
Sadece “kod tabanının her yerine log koyup adım adım akıl yürüten kişi” olsanız bile uzun ve etkili bir kariyer kurabilirsiniz. Bunu çok temel düzeyde yaptığımda bile uzun süredir duran sorunlara şaşırtıcı düzeltmeler çıktığını sık sık gördüm
Tabii beraberinde bolca politik eğlence de geliyor. İnsanların ilk tepkisi inkâr oluyor, sonrasıysa daha da kötü. “Aa, bunu düzeltmek yeterli” diye bakan yalnızca 1-2 kişi oluyor; bir başkası ise “eşzamanlılık/bellek yönetimi/vesaire konusunda yeterince kaygı gösterilmemiş” demeyi süsleyip patronun patronunun patronunu bile CC'ye koyarak e-posta atıyor
Böyle durumlarda sessizce beklemek, karşılık vermemek ve şikâyet etmemek daha iyi. Hiçbir şey olmuyorsa ve liderlik sormuyorken ekip arkadaşları sorgulamaya başlıyorsa başka bir takıma geçme planı yapmak daha iyidir
Aykırı özellikler ve quantization hakkında ilginç bir tartışma var: https://timdettmers.com/2022/08/17/llm-int8-and-emergent-fea...
Aykırı değerler, değerleri budamak için kullanılıyor ve Transformer'lar yaklaşık 6,7 milyar parametre civarında aykırı özellikleri ele alış biçiminde bir “faz geçişi” yaşıyor gibi görünüyor. Bu da ablasyon çalışmalarını karmaşıklaştırabilir
Tim Dettmers ile konuşulacak çok şey var gibi görünüyor
Yazar gerçek sorunu işaret ediyor ve basit bir çözüm öneriyor. Benim tuhaflık tespit ölçütlerimin hepsini geçiyor.
“Neden kimse bunu düşünmedi?” sorusuna dair, yazarın makine öğrenimi dışındaki çalışmalarda softmax fonksiyonuna çok aşina olması ve bu sorunu inceleyen kişilerin meseleyi “softmax ile ilgili bir şey”e kadar daraltsalar bile softmax’ın kendisini yeterince derinlemesine anlamamış olabilecekleri açıklaması kulağa makul geliyor.
Yine de asıl yazının yazarı bu yorumu görürse, “aykırı değer geri besleme döngüsünü %99,44 olasılıkla çözeceği” iddiasını biraz daha açması iyi olur. Şu anda aykırı değerlerin softmax ile nasıl ilişkili olabileceğine dair tek açıklama o cümle.
https://github.com/google/flaxformer/blame/ee62754ebe5a5eeb1...
Yorumda şöyle yazıyor: “0 gibi ek bir sanal logit içeren softmax fonksiyonu. Daha önce eğitilmiş bazı modellerle uyumluluk için. Bu, paydaya 1 eklemekle aynıdır. Attention bağlamında, hiçbir şeye bakmamayı sağlar.”
Bu yazıdakiyle tamamen aynı değiştirilmiş softmax’ı üretiyor. Neden kamusal olarak görmezden gelindiğini zaman gösterecek. Etkisi zayıf kalmış olabilir, basitçe gözden kaçmış olabilir ya da Google bunu öne çıkarmamış olabilir.
Gerçekte denenmemiş, sadece işe yarayacağı düşünülmüş. Softmax’ta böylesine basit bir değişikliğin doğrulanması uzun sürmezdi; yayımlamadan önce denenmemiş olması oldukça utanç verici.
Softmax, makine öğrenimi topluluğu içinde çok iyi anlaşılmış durumda. Son derece yaygın bir numara ve bu tür özellikler de iyi biliniyor. Kimsenin bunu düşünmemiş olması pek olası görünmüyor.
Yine de mevcut softmax geleneği tesadüfen seçilmiş olabilir ve yazar da onun dezavantajını gerçekten doğru tespit etmiş olabilir.
Teşhis doğru olsa bile, tam hassasiyetli LLM’ler anlamsız token’lara büyük attention ağırlıkları vererek ve böylece zararsız attention çıktıları üreterek bu sorundan kaçınabilir.
Bu sorun yalnızca ağırlıklar quantize edildiğinde önemli olabilir ve son dönemde en ileri LLM geliştirme çalışmalarının hedefi mutlaka quantization performansı değil.
Softmax sanki %99,9 emin ya da %0,1 emin olmayı iyi beceriyor ama aradaki seviyelerde pek iyi değil gibi.
HN’de akademiden şikâyet etmek moda biliyorum ama bu blog yazısı iyi bir argümantasyon yapmıyor.
Temel fikri toplam uzunluğun dörtte birinde, hatta muhtemelen sekizde birinden azında bile aktarabilirdi; ama bunu gayriresmî ifadeler ve akademik yayımlara yönelik üstü ince örtülmüş yakınmalarla sarmış.
Sonuç olarak burada da tartışma yazının sonucu ya da fikri hakkında değil, akademik yayıncılık vs blog, resmî yazım vs gayriresmî yazım hakkında 200 yoruma dönüyor.
HN ana sayfasına blog yazısı çıkarmak istiyorsanız iyi bir üslup olabilir. Ama insanların fikrin artılarını ve eksilerini inceleyip tartışmasını istiyorsanız pek değil.
İnsanların her şeye ayırabileceği dikkat sınırlı, ama dikkat çekme kapasitesi ve ihtiyacı sınırsız. Michael Goldhaber’in söylediği de buydu.
Bu da bilgi patlamasının tohumunu atıyor. Yumurta haşlama hakkında 6 milyar video ya da bisiklet barınağı tarzı 200 yorum gibi şeyler.
Bunu engellemek için Google, Facebook, HN gibi yerlerde yorumları, bağlantıları ve haber akışlarını sıralıyoruz; ama sıralanan havuzun büyük kısmı saçmalık olduğundan, sadece üstüne başka bir saçmalık katmanı daha eklenmiş oluyor.
Goldhaber’in 30-40 yıl önce dikkat hakkında söylediklerini yansıtan bilgi sistemlerini hâlâ tasarlayabilmiş değiliz.
Amaç hem bilgi vermek hem de eğlendirmek olabilir. Birçok insan ana noktanın etrafındaki gevşek tartışmayı seviyor ve yazar da akademik makalelerin klinik ve resmî tonuna bunu tercih ediyor olabilir.
Yine de biraz sinir bozucu biçimde, bunu görmek için konudan sapmış 200 şikâyet yorumunu geçmek gerekti.
Benzer bir deney yaptım ve benim kurulumumda fayda etmedi.
Hata benzeri bir şey olmadığından emin değilim ama mevcut konuma attention vermek bu sorunu bir ölçüde çözüyor gibi görünüyor. Konuşmaması gereken yerde, sadece mevcut konumun değerini çıkış olarak veriyor gibi.
Tam olarak, softmax paydasına 1 eklemek yerine QK’nin önüne öğrenilmiş bir parametre olan bir attention sink ekledim ve sonra softmax’tan sonra bunu kaldırdım; böylece V ile çarpılırken toplam 1 olmuyordu.
Mevcut konuma bakan ve bakmayan varyantları, ayrıca sink’i öğrenilmiş bir parametre yerine her konum için bir feedforward ağ ile üreten varyantı da denedim. Benim kurulumumda ikisi de büyük fark yaratmadı ama işin içinde başka tuhaf unsurlar da çoktu, dolayısıyla yeniden denemeye değer olabilir.
Bu yazının bağlamında hem görev performansı hem de aykırı değer ağırlıklarının sayısı ve büyüklüğü önemli görünüyor.
Sonuç görünmüyor. Teoriyi destekleyen sayılar olsaydı çok daha güçlü ve ikna edici olurdu.
Küçük bir veriyle mevcut bir dil modelini ince ayar yapıp çalışıp çalışmadığını kontrol etmek o kadar da zor değil.
Yine de daha iyi bir attention formülü olabileceği konusunda benzer düşünüyorum. 2020 tarihli şu makale https://arxiv.org/abs/2005.09561 benim eğittiğim bir Transformer modelinde çok faydalı olmuştu. Genel amaçlı bir dil modeli değildi; özel bir çok kipli grafik problemiydi.
Bu makale normalize edilmiş attention öneriyor; yanlış hatırlamıyorsam quantization sorunlarına da yardımcı olabilir.
Bu yöntem, dummy token yaygınlaşmadan önce sık kullanılıyordu. Bu fikri ilk kez XLNet makalesinde görmüştüm
PyTorch'ta bunun 2019/2020'den beri olduğunu biliyorum; muhtemelen daha eski referansları da biri bulabilir
Asıl yazının abartılı tavrına şaşırdım. Özellikle de Transformer araştırmacılarının çoğunun anladığı bir konu söz konusuysa daha da öyle. Yanıtlarda “araştırma böyle yapılmalı” yaklaşımının çok olmasına da şaşırdım. Bu, daha çok araştırmanın neden böyle işlemediğini gösteren bir örnek ve hakem değerlendirmesi birçok açıdan iyidir; bunlardan biri de kişinin kendini rezil etme ihtimalini azaltmasıdır
Muğlak öz küçümsemeyi gerçek bir iddia gibi okuyor gibiler
Bunun neden önemli görülüp paylaşıldığını özetlemek gerekirse, bu, kısıtlı donanımda ChatGPT'nin soluk bir taklidini çalıştırmaya uğraşırken ancak önem kazanan epey niş bir mesele. Dolayısıyla büyük araştırma ekiplerinin bunu önemli görmemiş olması gayet mümkün. Sonuçta onlar 3090'da LLM çalıştırmaya uğraşmıyor
Yazı konuşma diliyle, kendini küçümseyen ve mizahi bir tonda yazılmış. Artıları eksileri nedir bilmiyorum ama akıl yürütmeyi baştan sona takip edebildim. Kibirle alakası yok
“Kişinin kendini rezil etme ihtimalini azaltır” sözü, yanlışsa ya da ilk keşif değilse bunun utanç verici olduğu varsayımını içeriyor. Asıl kibirli olan bu değil mi?