Tüm yazılar

Yapay Zekada Eğitim ve Çıkarım: Gerçekte Ne Değişir

Öğrenme (yaygın adıyla eğitim) modelin değiştiği aşamadır. Çıkarım ise modelin iş yaptığı aşama. Eğitim sırasında modelin içindeki ağırlıklar bir veri kümesine karşı defalarca güncellenir, hatası küçülene kadar. Çıkarım sırasında o ağırlıklar donmuştur: girdi girer, ağdan bir kez geçer, çıktı çıkar. İkisi arasındaki diğer bütün farklar, maliyet, donanım, gecikme, bellek, hepsi tek bir sorunun cevabından türer: ağırlıklara yazılıyor mu, yoksa sadece okunuyor mu?

Fark tek tabloda

Eğitim (öğrenme) Çıkarım
Ne değişir Modelin ağırlıkları Modelin içinde hiçbir şey
Girdi Büyük ve sabit bir veri kümesi Her seferinde tek bir istek
Adım başına hesap İleri geçiş, geri yayılım, ağırlık güncellemesi Sadece ileri geçiş
Tipik donanım GPU veya TPU kümeleri Tek bir hızlandırıcı, bazen dizüstü ya da telefon
Zaman ölçeği Saatlerden aylara Milisaniyelerden saniyelere
Ne sıklıkta çalışır Bir kez, artı ara sıra güncelleme Ürünü kullanan herkeste, her seferinde
Hata neye benzer Kayıp düşmeyi bırakır, eğitim dağılır Yanlış cevap, geç cevap veya bellek taşması

Eğitim sırasında ne oluyor

Eğitim, bir grup örneği ağdan geçirir, çıktının hedeften ne kadar saptığını ölçer ve bu hatayı katman katman geriye taşıyarak her ağırlığın hataya ne kadar katkı verdiğini hesaplar. Sonra her ağırlık, hatayı azaltacak yönde azıcık itilir. Bunun adı geri yayılım. Rumelhart, Hinton ve Williams'ın 1986 tarihli Nature makalesi "Learning representations by back-propagating errors" ile tarif edilmişti ve bugün yayında olan neredeyse her büyük modelin arkasındaki mekanizma hâlâ bu.

Karşılaştırma açısından iki sonucu önemli. Birincisi, eğitimin bellekte tutması gereken şey ağırlıklardan ibaret değil: ileri geçişten gelen aktivasyonları, gradyanları ve her parametre için optimize edicinin kendi durumunu da saklar. İkincisi, tek bir adım modele neredeyse hiçbir şey öğretmez. İşe yarar davranış, bu adımın devasa sayıda tekrarlanmasından çıkar. Eğitimin "küme haftası" ile, çıkarımın milisaniye ile ölçülmesinin sebebi de bu.

Çıkarım sırasında ne oluyor

Çıkarım, tek başına ileri geçiş demek. Bir dil modelinde yazdığın metin token'lara bölünür, katmanlardan geçirilir ve model bir sonraki token için bir olasılık dağılımı üretir. Bir token seçilir, sona eklenir ve süreç durana kadar tekrarlanır. Her yeni token için her şeyi baştan hesaplamamak adına model, önceki token'lara ait ara anahtar ve değer tensörlerini önbellekte tutar. Bir cevabın ilk kelimesinin genelde geri kalanından daha yavaş gelmesinin nedeni budur.

Asıl mesele şu: burada olan hiçbir şey geri yazılmaz. Model salt okunurdur. Onu düzeltsen de, tartışsan da, adını öğretsen de ağırlıklar konuşmadan sonra tıpatıp konuşmadan önceki gibidir.

İkisi neden karıştırılıyor

Çünkü modeller çıkarım anında öğreniyormuş gibi davranır. İstemine bir biçim örneğini üç kez koy, dördüncü cevabı o biçime uysun. Brown ve arkadaşları bunu 2020 tarihli GPT-3 makalesi "Language Models are Few-Shot Learners" ile sistemli biçimde belgeledi: 175 milyar parametreli bir model, hiçbir gradyan güncellemesi olmadan, sadece isteme konan örneklerden yeni görevleri kapabiliyordu. Buna bağlam içi öğrenme dediler ve isim epey iş yapıyor: öğrenmeye benziyor, ama tek bir ileri geçişin içinde gerçekleşen bir örüntü tamamlama.

Pratik testi kalıcılık. Bağlam içi öğrenme tamamen bağlam penceresinde yaşar. Oturumu kapat, uçtu. Bir sohbet ürünü seni oturumlar arası hatırlıyorsa, bunun arkasında neredeyse her zaman sessizce istemine geri yerleştirilen bir not veritabanı vardır, değişmiş bir model değil.

Maliyet, donanım ve çıkarım gerçekte nerede çalışır

Eğitim bir yatırım gideridir: büyük bir küme kiralarsın, belirli bir süre çalıştırırsın, elinde bir kontrol noktası kalır. Çıkarım ise işletme gideridir: kullanıcı her düğmeye bastığında, sonsuza kadar çalışır. Gerçek trafiği olan bir üründe isteklere cevap vermek için harcanan toplam para, tek seferlik eğitim faturasını geçebilir. Çünkü çarpan, eğitim sayısı değil kullanıcı sayısıdır.

Çıkarımın bu kadar agresif optimize edilmesinin sebebi de o baskı: ağırlıkları daha düşük hassasiyete indirmek, büyük bir modeli küçüğüne damıtmak, istekleri toplu işlemek. Yeterince ileri götürülürse çıkarımın veri merkezine ihtiyacı kalmaz. Bugünün telefonları metin tanıma ve konuşmadan yazıya modellerini yerelde çalıştırıyor. Örneğin Qora'da fotoğraflanmış bir sayfanın okunması da, kaydedilmiş bir dersin yazıya dökülmesi de cihazın kendisinde oluyor, çünkü bunlar telefona sığacak kadar küçük, yalnızca çıkarım gerektiren işler. Bu kalitede bir modeli telefonda eğitmek imkânsız olurdu; çalıştırmak sıradan.

Bu net ayrımın bozulduğu yerler

Eğitim/çıkarım çizgisi iyi bir zihin haritası, ama bir yasa değil. Bilmeye değer dört yerden sızıntı yapıyor.

İnce ayar da eğitimdir. İnce ayar, yalnızca eklenen küçük bir parametre kümesini güncelleyen LoRA gibi ucuz varyantlar dahil, sıfırdan değil mevcut bir kontrol noktasından başlayan bir eğitim koşusudur. Çıkarımın özel bir modu değildir.

Verin yine de gelecekteki bir modele ulaşabilir. "Model senden öğrenmiyor" cümlesi, konuştuğun yayındaki model için doğrudur. Bir sonraki sürüm için otomatik olarak doğru değildir, çünkü sağlayıcı konuşmaları toplayıp daha sonraki bir eğitimde kullanabilir. Bunu yapıp yapmadıkları mimari değil politika sorusudur, yani mekanizmadan çıkarım yapmak yerine sözleşmeyi oku.

Çıkarım artık istek başına güvenilir biçimde ucuz değil. Akıl yürüten modeller cevap vermeden önce uzun iç düşünce zincirleri üreterek çıkarımda çok daha fazla hesap harcıyor. Tek bir zor istek artık basit bir istekten hatırı sayılır ölçüde pahalıya gelebiliyor, bu da "eğitim pahalı, çıkarım önemsiz" kuralını aşındırıyor.

İnsan benzetmesi gevşek. İnsanların da bir eğitim modu ile bir çıkarım modu olduğunu söylemek cazip. Beyinler öyle çalışıyor görünmüyor ve buradaki hiçbir ciddi iddia bu metafora yaslanmamalı.

Bunu bir ders ya da mülakat için çalışıyorsan

Sınavda çıkan hali dardır: ne değişiyor (ağırlıklar), veri hangi yöne akıyor (geri geçiş yalnızca eğitimde vardır) ve hesap nereye gidiyor. Yapay zekaya giriş vizesinde de, teknik mülakatta da sorulan aşağı yukarı bu üç şey. Küçük bir bilgi kümesi olması, onu tekrar tekrar okumak yerine kendini test etmek için iyi bir aday yapıyor.

Roediger ve Karpicke'nin 2006 deneylerinde, materyal üzerinden sınanan öğrenciler gecikmeli testte yalnızca tekrar okuyan öğrencileri geçmişti. Üstelik tekrar okuyan grup kendini daha emin hissediyordu. Bu sayfa üzerine üç soru yazıp yarın cevaplamak, sayfayı fosforlu kalemle boyamaktan daha çok işe yarar. Aynı işi çoktan seçmeli soru biçiminde kurabilirsin: doğru cevabın yanına üç makul yanlış koymak, tanımı gerçekten ayırt edip etmediğini ortaya çıkarır. Kartla çalışmayı tercih ediyorsan evde bilgi kartı nasıl yapılır yazısındaki yöntem bu tür tanımlar için birebir. Tek bir tanımı ezberlemek yerine makine öğrenmesini bütün olarak çalışıyorsan, sözlük yerine düzgün bir yol haritasıyla başlaman daha iyi olur.

Sık sorulan sorular

Çıkarım ile tahmin aynı şey mi?

Pratikte evet. "Çıkarım", eğitilmiş bir modeli yeni girdiyle çalıştırıp çıktı almanın mühendislik terimi ve klasik makine öğrenmesinde bu çıktı zaten kelimenin tam anlamıyla bir tahmindi. Çıktının bir öngörü değil metin ya da görsel olduğu üretken modellerde de kelime yerinde kaldı.

Yapay zeka modeli konuşmalarımdan öğreniyor mu?

Konuştuğun model öğrenmiyor. Ağırlıkları oturum boyunca sabittir ve hatırlıyor göründüğü her şey ya isteminden ya da isteme geri yerleştirilen kayıtlı notlardan gelir. Konuşmalarının ileride bir modeli eğitmek için kullanılıp kullanılmayacağı ise sağlayıcının veri politikasına bağlı, ayrı bir soru.

İnce ayar eğitim mi, çıkarım mı?

Eğitim. İnce ayar, ön eğitimle aynı geri yayılım makinesini kullanarak ağırlıkları günceller; tek farkı zaten çalışan bir modelden başlaması ve çok daha küçük bir veri kümesi kullanması. Modelin bildiğini kalıcı olarak değiştiren her şey tanımı gereği eğitimdir.

Zor kısım eğitimse şirketler neden çıkarım maliyetine takılıyor?

Çünkü eğitim birkaç kez olur, çıkarım her istekte olur. Tek bir çıkarım ucuzdur, ama günde milyonlarca kullanıcıyla çarpıldığında baskın tekrarlayan gidere dönüşür. Nicemleme, önbellekleme ve toplu işlemeye bu kadar mühendislik emeği harcanmasının sebebi de bu.

Bütün karşılaştırma, herhangi bir yapay zeka sistemine sorabileceğin tek bir soruya iniyor: ağırlıklara yazılıyor mu, yoksa sadece okunuyor mu? Eğitim yazar, yavaştır, pahalıdır ve seyrektir. Çıkarım okur, hızlıdır, birim başına ucuzdur ve süreklidir. Bunun aklında kalmasını istiyorsan, bugün kullandığın herhangi bir yapay zeka özelliğini seç ve hangisinin parasını ödediğini, sistemin seni gerçekten hatırlaması için neyin olması gerektiğini bul.