Mert Özen Her Satırda Daha İleri
Yapay Zeka LLM Temelleri — #18

Transformer'dan ChatGPT'ye: LLM'lerin Doğuşu (2017–2022)

Mert Özen 6 Kas 2026 7 dk 7 görüntülenme
Transformer'dan ChatGPT'ye: LLM'lerin Doğuşu (2017–2022)

2017'deki "Attention Is All You Need" makalesinden ChatGPT'nin çıkışına kadar bugünkü LLM'leri mümkün kılan adımlar: Transformer, GPT-1 ve BERT ile ön eğitim, GPT-2'nin aşamalı yayını, ölçeklenme yasaları ve GPT-3, InstructGPT ve RLHF. Her adımın serideki hangi kavramın kökü olduğunu ve geliştirici için ne değiştirdiğini görüyoruz.

Sürüm notu: Bu yazı LLM'lerin 2017–2022 dönemini, Transformer'dan ChatGPT'ye kadar olan yolu anlatır. Tarihler arXiv kayıtlarından ve şirketlerin kendi duyurularından doğrulanmıştır.

Önce Tahmin Et

GPT-3 2020'de 175 milyar parametreyle çıktı. İki yıl sonra OpenAI, insan geri bildirimiyle eğitilmiş 1,3 milyar parametrelik bir modeli 175 milyarlık GPT-3 ile karşılaştırdı ve değerlendirmeyi yapan insanlara hangisinin cevabını tercih ettiklerini sordu. Sence hangisi kazandı? Yüz kat küçük olan mı, yüz kat büyük olan mı?

Cevap bu yazının ortasında. O sonuç, ChatGPT'nin neden GPT-3'ten bu kadar farklı hissettirdiğini de açıklıyor. Serinin ilk on yedi yazısında kavramları yerel modellerle çalıştırarak kurduk; şimdi o kavramların nereden geldiğine bakıyoruz.

2017: Attention Is All You Need

Hikâye 12 Haziran 2017'de arXiv'e yüklenen bir makaleyle başlıyor: Ashish Vaswani ve arkadaşlarının "Attention Is All You Need" çalışması. Makale makine çevirisi için Transformer adında yeni bir mimari öneriyordu.

O yıllarda metinle çalışan modellerin çoğu RNN tabanlıydı. RNN bir cümleyi kelime kelime, sırayla okur; her adımda bir öncekinin sonucuna ihtiyaç duyar. Bunu tek şeritli bir yol gibi düşün: araçlar ne kadar hızlı olursa olsun sıradan çıkamazlar. Bu iki sorun yaratıyordu. Uzun cümlelerde baştaki bilgi sona taşınırken zayıflıyordu ve eğitim paralel yapılamadığı için büyük veride yavaştı.

Transformer sırayla okumayı bıraktı. Attention mekanizmasıyla her token, metindeki bütün diğer token'lara aynı anda bakıp hangisinin kendisi için önemli olduğuna karar verir. Bütün token'lar paralel işlendiği için eğitim GPU'lara çok daha iyi oturdu. 16. yazıda gördüğümüz "girdi hızlı, çıktı yavaş işlenir" farkının kökü de burada: girdinin tamamı tek seferde işlenebilir, ama çıktı yine token token üretilir. Context window kavramı da bu mimariden gelir; her token diğer her token'a baktığı için pencere büyüdükçe hesap ve bellek maliyeti hızla artar.

2018: Önce Oku, Sonra Öğren

Bir sonraki büyük fikir, modeli belirli bir görev için sıfırdan eğitmek yerine önce büyük miktarda etiketsiz metinle eğitmekti. OpenAI 11 Haziran 2018'de "Improving language understanding with unsupervised learning" başlıklı yazısıyla bugün GPT-1 dediğimiz yaklaşımı duyurdu: Transformer'ı önce bir sonraki token'ı tahmin ederek eğit, sonra küçük bir etiketli veriyle görevine göre ince ayar (fine-tuning) yap. GPT adındaki "Generative Pre-Training" de buradan gelir.

Aynı yıl 11 Ekim'de Jacob Devlin ve arkadaşlarının BERT makalesi yayımlandı. BERT de Transformer'ı ön eğitimle kullanıyordu ama farklı bir yoldan: metni iki yönden birden okuyan bir encoder'dı ve sınıflandırma, arama gibi anlama görevlerinde çok başarılı oldu. GPT ise metni soldan sağa üreten decoder çizgisinde kaldı. Bugün sohbet ettiğimiz LLM'lerin neredeyse hepsi bu ikinci çizgiden geliyor; 1. yazıdaki "next-token prediction" tanımı tam olarak bu.

2019: GPT-2 ve Aşamalı Yayın

14 Şubat 2019'da OpenAI "Better language models and their implications" yazısıyla 1,5 milyar parametrelik GPT-2'yi duyurdu. Model, özel bir göreve göre eğitilmeden tutarlı paragraflar yazabiliyordu. OpenAI tam modeli hemen yayımlamadı; kötüye kullanım endişesiyle önce küçük sürümleri paylaştı ve 1,5 milyarlık modeli 5 Kasım 2019'da açtı. Bir modelin ağırlıklarının ne zaman ve kime açılacağı tartışması, yani bugünkü open-weight ile kapalı model ayrımı, ilk kez bu kadar görünür hâle geldi.

2020: Ölçeklenme ve GPT-3

23 Ocak 2020'de Jared Kaplan ve arkadaşlarının "Scaling Laws for Neural Language Models" makalesi çıktı. Makalenin gözlemi şuydu: model büyüklüğü, veri miktarı ve hesaplama gücü arttıkça modelin hatası öngörülebilir biçimde azalıyor. Bu, büyük modellere yatırım yapmanın tahmin edilebilir bir getirisi olduğunu gösteriyordu.

28 Mayıs 2020'de Tom B. Brown ve arkadaşlarının "Language Models are Few-Shot Learners" makalesiyle GPT-3 geldi: 175 milyar parametre ve makaledeki ifadeyle 2.048 token'lık bir context window. Asıl şaşırtıcı olan boyut değil, few-shot davranışıydı. Modele birkaç örnek gösterdiğinde, ağırlıklarına hiç dokunmadan yeni bir görevi yapabiliyordu. 8. yazıda yazdığımız örnekli prompt'ların akademik adı bu: in-context learning. 11 Haziran 2020'de OpenAI ilk API'sini açtı ve GPT-3'ü bir HTTP isteğiyle çağırmak mümkün oldu. Bu API'nin bugüne nasıl evrildiğini 20. yazıda ayrıntılı anlatacağız.

Ama GPT-3'ün bir sorunu vardı: bir talimatı izlemek için değil, metni sürdürmek için eğitilmişti. "Bana bir kitap öner" diye yazdığında öneri yerine benzer soruların listesini sürdürebiliyordu. 1. yazıdaki base model ile instruct model ayrımı tam olarak bu.

2022: InstructGPT ve RLHF

Çözümün tohumu aslında Transformer makalesiyle aynı gün atılmıştı. 12 Haziran 2017'de Paul Christiano ve arkadaşları "Deep reinforcement learning from human preferences" makalesinde, ödül fonksiyonunu elle yazmak yerine insanların iki davranıştan hangisini tercih ettiğini sorarak öğrenmeyi önermişti.

OpenAI bu fikri dil modellerine uyguladı ve 27 Ocak 2022'de "Aligning language models to follow instructions" yazısıyla InstructGPT'yi duyurdu; makalesi Long Ouyang ve arkadaşlarının imzasıyla 4 Mart 2022'de arXiv'e yüklendi. Yöntem üç adımlıydı. Önce insanların yazdığı örnek cevaplarla model ince ayardan geçti. Sonra insanlar modelin farklı cevaplarını iyiden kötüye sıraladı ve bu sıralamalardan bir ödül modeli eğitildi. Son olarak model, bu ödül modelini kullanan reinforcement learning ile tekrar eğitildi. Yöntemin adı RLHF: reinforcement learning from human feedback.

Açılıştaki sorunun cevabı makalenin özetinde: 1,3 milyar parametrelik InstructGPT'nin cevapları, yüz kat daha az parametresine rağmen 175 milyarlık GPT-3'ün cevaplarına tercih edildi. Kullanıcının hissettiği kaliteyi yalnız boyut değil, modelin ne için eğitildiği belirliyordu. Aynı ay, 28 Ocak 2022'de Jason Wei ve arkadaşlarının chain-of-thought makalesi de yayımlanmıştı; 9. yazıda kullandığımız "adım adım düşün" yaklaşımının kökü bu çalışma.

30 Kasım 2022: ChatGPT

OpenAI 30 Kasım 2022'de "Introducing ChatGPT" yazısıyla ChatGPT'yi duyurdu ve onu InstructGPT'nin kardeş modeli olarak tanıttı. Teknik olarak yeni bir buluş değildi; yukarıdaki parçaların birleşimiydi: büyük bir ön eğitimli Transformer, talimat izlemeye yönelik ince ayar ve RLHF, üstüne de herkesin kullanabileceği bir sohbet arayüzü.

Değişen şey erişimdi. Bu yeteneğe ulaşmak için artık makale okumak, API anahtarı almak ya da prompt'u tamamlanacak bir metin gibi kurgulamak gerekmiyordu; bir soru yazmak yetiyordu. Sohbet biçimi de modelin içinde ayrı bir mekanizma değildi. 5. yazıda gördüğümüz system, user ve assistant rolleri, modelin önüne tek bir metin olarak dizilir ve model yine bir sonraki token'ı tahmin eder. Bunu kendi makinende görebilirsin; aşağıdaki denemelerden biri tam olarak bu.

Geliştirici İçin Ne Değişti?

Bu beş yılın geliştiriciye bıraktığı en önemli şey, doğal dilin bir arayüz hâline gelmesi. GPT-3'ten önce bir metin sınıflandırıcı istiyorsan veri toplar, etiketler ve model eğitirdin. GPT-3 ile birlikte aynı işi birkaç örnekli bir prompt'la denemek mümkün oldu. ChatGPT ile de bu prompt'lar talimat biçimine döndü.

Serideki kavramların neredeyse hepsi bu dönemden geliyor. Token ve context window Transformer'dan, next-token prediction ve ön eğitim GPT çizgisinden, few-shot prompt GPT-3'ten, system prompt ve rol ayrımı instruct modellerden, chain-of-thought 2022'den. Bunları tarihsel sırayla bilmek, yeni bir model ya da API çıktığında neyin gerçekten yeni, neyin eski bir fikrin yeni ambalajı olduğunu ayırmanı kolaylaştırır.

Sık Düşülen Tuzaklar

Birincisi, ChatGPT ile modeli aynı şey sanmak. ChatGPT bir ürün, yani arayüz ve onun arkasındaki sistem; arkasında çalışan model zaman içinde değişti. API'de çağırdığın şey ise bir model adıdır.

İkincisi, Transformer ile GPT'yi eş anlamlı kullanmak. Transformer mimarinin adı; GPT bu mimarinin decoder çizgisindeki bir model ailesi. BERT de bir Transformer'dır ama metin üretmek için tasarlanmamıştır.

Üçüncüsü, RLHF'in modele yeni bilgi öğrettiğini düşünmek. RLHF modelin nasıl cevap vereceğini, yani talimata uymasını, biçimini ve tonunu şekillendirir. Modelin bildikleri büyük ölçüde ön eğitimden gelir; bu yüzden 15. yazıda konuştuğumuz halüsinasyon, RLHF'li modellerde de sürer.

Dördüncüsü, "büyük model her zaman daha iyi" sonucunu ölçeklenme yasalarından çıkarmak. InstructGPT sonucu, kullanıcının gözündeki kalitenin eğitim hedefine de bağlı olduğunu gösterdi; 16. yazıda 4b ile 12b'yi karşılaştırırken gördüğümüz de buydu.

Küçük Bir Deneme

★☆☆ gemma3:4b modelinin chat template'ine bak: ollama show gemma3:4b --template. Mesajlarının hangi özel işaretlerle (<start_of_turn> gibi) tek bir metne çevrildiğini bul. System mesajı bu template'te hangi role dönüşüyor?

★★☆ GPT-3 öncesi "metni sürdürme" davranışını gör: /api/generate isteğine "raw": true ver, böylece chat template devre dışı kalır. Prompt olarak yarım bir cümle gönder (ör. The three best-selling programming books of all time are) ve aynı cümleyi /api/chat ile soru olarak sor. Cevapların biçimi nasıl farklılaşıyor?

★★★ In-context learning'i dene: bir kitap adından türünü tahmin eden bir prompt'u önce sıfır örnekle, sonra üç örnekle çalıştır. temperature: 0 ve sabit bir seed kullan; on kitaplık küçük bir setle örneklerin doğruluğu ne kadar değiştirdiğini ölç.

Bir sonraki yazıda 2023'ten bugüne uzanan döneme geçiyoruz: GPT-4, Llama, Mistral ve Gemma ile open-weight modellerin yükselişi, context window'un birkaç bin token'dan milyon token'a büyümesi, görsel okuyabilen modeller ve o1 ile DeepSeek-R1'in getirdiği reasoning modelleri.