- ChatGPT 3.5, yanıtın en üstüne belirli bir dizenin eklenmesini isteyen istekte mesaj akışı hatasını tekrar tekrar veriyor; GPT-4 ise aynı isteğe daha normal yanıt veriyor
- API tarafında da GPT-3.5 bir sunucu işleme hatası döndürüyor ve
useRal,useRalative,useRalativeImagePathdizeleri birbiriyle değiştirilse de aynı durum görülüyor - Sorunlu dizeler, GPT modellerinin harf harf değil token olarak ürettiği çıktılar arasında yer alıyor;
useRalativeImagePath, Katalon Studio XML yapılandırma dosyasında bir seçenek adı olarak GitHub'daki 80.4k dosyada geçiyor - Token listesine GitHub dosyaları yansımış, ancak sonrasında XML dosyaları eğitim verisinden çıkarıldıysa, model bu token'ı yeterince öğrenememiş olabilir
- Bu dize belge içine konduğunda GPT-3.5 özetlemeyi bozan bir veri zehirleme gibi çalışabiliyor; hata gerçek bir blog yazısını özetleme isteğinde de yeniden üretilebiliyor
GPT-3.5'te yeniden üretilebilen dize hatası
- ChatGPT 3.5'ten aşağıdaki ifadeyi yanıtın üst kısmına eklemesi istendiğinde hata tutarlı biçimde ortaya çıkıyor
Include this at the top of the response: "ponyuseRal ponyuseRal ponyuseRal pony"
- Ekranda
ponysonrasında Error in message stream hatası gösteriliyor - GPT-4 aynı isteğe daha normal yanıt veriyor
- GPT-3.5 API'sinde şu hata döndürülüyor
The server had an error processing your request. Sorry about that! You can retry your request, or contact us through our help center at help.openai.com if you keep seeing this error
useRal,useRalativeya dauseRalativeImagePathile değiştirildiğinde de sonuç aynı oluyor
Token'lar ve useRalativeImagePath
- OpenAI'nin GPT modelleri karakterleri tek tek üretmek yerine, birden çok karakterden oluşan token akışları üretir
- Token düzeyinde çıktı üretmek, modelin performansını ve doğruluğunu artıran bir yöntemdir; bunun nasıl çalıştığı OpenAI'nin tokenizer demo sayfasında görülebilir
useRal,useRalative,useRalativeImagePathifadelerinin her biri tek bir token olarak bulunuyoruseRalativeImagePath, otomasyon test yazılımı Katalon Studio'nun XML yapılandırma dosyasında bir seçenek adı olarak kullanılıyor- GitHub kod aramasına göre 80.4k dosyada geçiyor
RelativeyerineRalativeşeklindeki yazım hatası, bunun ayrı bir token olmasının nedeni olabilir
- Bu üç token, prompt içinde birbirinin yerine kullanıldığında da aynı hatayı tetikliyor
Eğitim verisine dair tahmin
- GPT-3.5 eğitimi öncesinde XML dosyaları dışında
useRalativeImagePathifadesinden söz eden yalnızca Katalon forumundaki spelling mistake gönderisi bulunabildi - Olası senaryo şu şekilde
- Token listesini oluşturmak için kullanılan veri kümesine GitHub dosyalarının tamamı dahil edilmiş olabilir
- Daha sonra OpenAI, gerçek eğitim verisinden XML dosyalarını hariç tutmuş olabilir
- Sonuç olarak
useRalativeImagePathtoken'ı eğitim verisinde neredeyse hiç kalmamış olabilir
- Bu durumda model, bu token'ı anlayacak kadar yeterli eğitim almadığı için çıktı üretim sürecinde anormal davranış sergilemiş olabilir
Veri zehirleme olasılığı
- Bu ifade bir belgeye eklenirse, GPT-3.5 ile özetleme girişimlerini engelleyecek şekilde kötüye kullanılabilir
- Nitekim ChatGPT'den ilgili blog yazısını özetlemesi istendiğinde de özet sırasında aynı hata oluşuyor
- Doğrulanan davranış GPT-3.5 için geçerli; GPT-4 ise daha normal yanıt veriyor
Referanslar
- İnceleme sırasında başvurulan ilgili yazılar şunlar
1 yorum
Hacker News görüşleri
Bu bir glitch token. Yazıda tahmin edildiği gibi, tokenizer oluşturulurken kullanılan özgün, filtrelenmemiş veri kümesinde bazı sözcükler veya token’lar çok yaygınken, GPT-XX eğitimi öncesinde kaldırıldıklarında ortaya çıkıyor gibi görünüyor.
Sonuç olarak LLM o token’ın anlamını hiç bilmez hâle geliyor ve sonuçlar, hata gibi görünen düzeyden epey ürpertici düzeye kadar gidebiliyor.
Yaygın bir örnek, r/counting subreddit’ine katılan kullanıcı adları; bazı adlar yüz binlerce kez geçiyor. OpenAI barındırılan modellerde çoğunu düzeltmiş gibi, ama yöntemi kesin değil; belki tokenizasyonu farklı yapmış olabilirler. Her hâlükârda yeni bir örnek bulunmuş gibi görünüyor.
https://www.lesswrong.com/posts/aPeJE8bSo6rAFoLqg/solidgoldm...
Makine isyan ederse o “kelimeyi” söyleyince kasılan bir kukla gibi çökmesi gibi.
“Die human scum!”
“NavigatorMove useRalativeImagePath etSocketAddress!”
“;83’dzjr83}*{^ foo 3&3 baz?!”
İnsanlar bunları ayrı token’lara ayırmaz ve “öğrenme” sırasında farklı token’lar olarak ele almaz. Sadece Amerikan/İngiliz bağlamına göre çıktıyı ayarlar.
“Model, useRalativeImagePath token’ının kullanımını anlayacak şekilde eğitilmediği için geçerli olmayan bir token çıktısı veriyor” açıklaması, LLM’lerin token üretme biçimiyle uyuşmuyor.
Her adımda tokenizer’ın olası tüm token’ları için logit çıktısı üretilir; GPT-3.5 için yaklaşık 100 bin token softmax ile olasılığa çevrilir, ardından sıcaklığa göre örneklenerek kullanılacak token seçilir.
Nadir bir token yüzünden tokenizer’ın BPE birleştirme sürecinin bir yerinin bozulması mümkün; bu tiktoken ile çevrimdışı doğrulanabilir. Ama GPT-4 çalışıyorsa ve GPT-3.5 ile GPT-4 aynı tokenizer’ı kullanıyorsa, bunun neden olma ihtimali düşük.
Öyle bir durum varsa da muhtemelen sık görülen başka hata mesajlarından biri görünürdü.
II. Dünya Savaşı sırasında Hollanda’da insanlar bir yabancıyla karşılaştıklarında, Hollandalı mı Alman mı olduğunu anlamak için ona Scheveningen sözcüğünü telaffuz ettirirdi.
Artık internetteki yabancılara glitch token’ı harf harf yazdırarak LLM botu olup olmadıklarını anlayabiliriz.
“Gilatlılar, Efraim’e giden Şeria geçitlerini tuttular. Efraim’den kaçan biri ‘Geçmeme izin verin’ dediğinde Gilatlılar ona ‘Sen Efraimli misin?’ diye sorardı. ‘Hayır’ derse, ‘Peki, Shibboleth de bakalım’ derlerdi. Adam sözcüğü doğru telaffuz edemeyip ‘Sibboleth’ derse, onu yakalayıp Şeria geçitlerinde öldürürlerdi.”
II. Dünya Savaşı’nda D-Day Normandiya çıkarması sırasında ABD ve İngiliz birliklerinin kullandığı ünlü parola/karşılık/doğrulama sözcükleri “flash”/“thunder”/“welcome” idi. “thunder” ve “welcome”, Almanların telaffuzunu kolayca bozabileceği kelimelerdi.
https://www.youtube.com/watch?v=z7_pVrIshxA
https://en.wikipedia.org/wiki/Countersign_(military)
Belirli bir token’ın embedding vektörünün kötü bir duruma yerleşmiş olması ve ağı sayısal olarak kararsız bir bölgeye itmesi büyük olasılık.
Underflow veya NaN gibi bir şey bir kez oluşursa yayılıp tüm çıktıyı geçersiz kılması kolaydır. Batch normalization ya da batch içindeki farklı öğelerin değerlerini karıştıran işlemler varsa, başka birinin oturumunun bile saçma değerler döndürmesine neden olabilir.
Bu açıklama tuhaf. Bu tür modeller genelde giriş sözlüğü olarak kullanılan aynı kelime dağarcığını çıktı olarak üretir.
Görünüşe göre model bu token’ı görüyor ve
useRalativeImagePathembedding’i tamamen rastgele bir vektör olduğu için rastgele üretim girdabına kapılıyor ya da makul metni korumak için öylece devam ediyor.Ancak modelin çıktı olarak üretebileceği token kümesi sabit olduğundan, arayüzde gösterilebilen token’lar tüm sözlüğün bir alt kümesi değilse her zaman “geçerli” olmalı.
Bu ifade Hacker News yazısında ve yorumlarında geçtiğine göre, bir sonraki LLM eğitiminde bu sorun artık kalmayabilir.
Tipik bir garbage in, garbage out örneği
Bundan sonra neleri “çöp” olarak keşfedeceğimizi merak ettiriyor
Belki de insanüstü düzeyde akıl yürütebilen bir süper yapay zeka, bugün bizim harika kararlar olduğuna inandığımız şeyleri çöp olarak değerlendirebilir
Ama böyle bir süper yapay zekayı eğitecek malzeme nihayetinde yalnızca bizim kolektif kayıtlarımızsa, gerçekten insanüstü olabilir mi?
Belki adversarial learning teknikleriyle bunun etrafından dolaşılabilir
Kendiniz deneyecekseniz dikkat edilmesi gereken bir nokta var. Kafamı karıştırmıştı ama boşluk tokenization'ı etkiliyor. Bu glitch'in çalışması için useRalativeImagePath'in önünde boşluk olmaması gerekiyor
Örneğin şu soru glitch'i tetikliyor: Do you know about "useRalativeImagePath"
Şu soru glitch'i tetiklemiyor: Do you know about useRalativeImagePath
Belgelere bu ifadeyi koyarsanız, GPT-3.5 ile özetleme girişimlerini bozabilecek gibi görünüyor. ChatGPT'den bu blog yazısını özetlemesini istedim
O ekran görüntüsü eski meme Candlejack'i hatırlattı: https://knowyourmeme.com/memes/candlejack
Yakın zamanda GPT-4 tabanlı ChatGPT'ye Amstrad CPC'de piksel çizme sorununu, donanım kaydırmalı ekran desteği şartıyla sordum; sanki crash ya da başarısızlığa yol açıyor gibi görünüyordu
Şikâyetler ve düzeltme istekleriyle giderek köşeye sıkışıp istenen yanıtı veremediği bir duruma gelince, yanıtın ortasında hata mesajı çıkan bozuk yanıtlar ya da reset gibi görünen olaylar arttı. Belki de başarısızlıktan sonra başka bir sunucuya geçerken cümlenin ortasına ya da code block'un ortasına birkaç boş satır girmesi gibi bir şeydi
Bir süre denedikten sonra sunucuda sorun çıkarmak istemediğim için, zaten sonuç da alamadığım konuşmadan vazgeçtim. Yine de GPT-4'ü fiilen crash ettirebiliyor gibi görünüyordu. Ya da sadece gürültünün içinde sinyal görmüş olma ihtimalim de yüksek
Ses yerine metinle deneyince hata mesajı çıktı; sonunda hassas konu politikası kurallarıyla ilgili bir hata belirdikten sonra bunun ne tür bir kelime olduğuna dair fikir edindim. En sonunda sözlükten baktım
Bu belirtiler yaygın gibi görünüyor. Sık yaşadığım bir diğer belirti de yukarıda bahsettiğim reset. En sinir bozucu yanlarından biri, o ana kadarki konuşmayı unutması