LLM’ler ve Üretici Yapay Zekâya Giriş: Bölüm 2 Eğitim Yöntemleri ve Ön-Eğitim

Mehmet Zahit ANGİ
Huawei Developers - Türkiye
7 min readMay 13, 2024

Giriş

Bir önceki yazımızda büyük dil modellerini oluşturan transformer yapısından ve detaylarından bahsetmiş, prompting ve yapılandırma ayarları konularına değinmiştik. Bu yazımızda ise LLM’ler için Pre-training, Fine-Tuning ve In-Context Learning konularına değinip. Pre-training konusunu biraz daha derinlemesine göreceğiz.

LLM’lerin ortaya çıkmasiyle birlikte milyonlarca hatta milyarlarca parametreli modellerimiz var. Ancak, LLM öncesi modellerde “training” olarak adlandırdığımız eğitim işlemi, LLM eğitimde iki parçaya ayrılıyor; birincisi “pre-training”, ikincisi ise “fine-tuning”. Bunlara ek olarak özellikle 1 milyardan fazla parametre içeren Büyük Dil Modelleri için “in-contex learning” diye adlandırılan bağlam içi öğrenme yöntemi de vardır.

Bu kavramları tanımaya başlayalım:

Ön-Eğitim( Pre-Training)

Ön eğitim denilen şey bir Büyük Dil Modelini devasa boyuttaki veri (kitaplardan, makalelerden, web sitelerinden ve daha fazlasından çeşitli metinler içeren veri kümeleri) ile eğitmek ve temelde kelime tahmin görevini öğrenmesini, dil hakkında genel bir anlayış kazanmasını sağlamaktır. On eğitimde modele rehberlik edecek doğru yada yanlış cevaplar sunulmaz, bir unsupervised learning gerçekleştirilir. Bunu iki şekilde yapabiliriz:

  • Bunlardan birincisi BERT gibi çift yönlü modeller için kullanılan MLM (Masked Language Model) yöntemidir. Burada input içerisindeki kelimerin bir kısmı maskelenir ve modelin görevi bu maskelenen kelimeleri bağlama dayanarak tahmin etmektir. Model eksik kelimeden önceki ve sonraki kelimelere erişebilir bu yüzden çift yönlü (bi-directional) olarak adlandırılır. Daha sonra doğru cevap verilir ve modelin tahmin yeteneğini geliştirmek için sonucun doğru cevaba ne kadar uzak olduğunu analiz eder. Bu süreç, modelin kelimelerin birbirleriyle nasıl ilişkili olduğunu ve bir metnin yapısına nasıl uyduklarını anlamasına yardımcı olur.
  • Bir diğeri ise tek yönlü olan ve tahmin edeceği kelimeden sonraki kelimelere erişemeyen “auto-regressive” modelleridir (örnek: GPT). Bunun sebebi, auto-regressive modellerin daha iyi dil üretimi için özel olarak tasarlanmış olmasıdır. Bu yüzden modelin tek yönlü bir şekilde eğitilmesi gerekir. Dolayısıyla, bu on eğitim sürecinde modeli belirli görevler için eğitmiyoruz, yalnızca bir cümledeki kelimeleri nasıl tahmin edeceğini öğreterek genel dil öğrenme yeteneği kazanmasını istiyoruz, ki bu durum dil modeli öğrenme sürecinin temelidir. Bu aşamalardan sonra model genel dil yeteneklerini kazanmış olur ve daha spesifik görevlere adapte edilebilir. Bu süreç genellikle büyük dil modellerinin oluşturulmasının ilk adımıdır. Fakat bu adım genellikle çok maliyetli ve zaman alıcı bir süreçtir.

İnce-Ayar (Fine-Tuning)

Pre-trained dil modellerini belirli görevler için kullanmak istediğimizde, ince ayar yapmamız gerekiyor. İnce-Ayar, Pre-Training işlemine göre çok daha az veri gerektirir(~100 bin).

İnce ayar işlemi sırasında, Pre-trained model’lere göreve özgü bir katman ekliyoruz ve bir kayıp fonksiyonu kullanarak backpropagation yöntemini uyguluyoruz. İnce ayar işlemi sırasında sadece eklenen özel katmandaki değil, model içerisindeki tüm parametreler güncellenir. Bunun ön eğitime kıyasla çok daha az zaman almasının nedeni, kullanılan veri kümesi boyutunun çok daha küçük olmasıdır.

Bunun yanı sıra Pre-trained modeller sadece belirli katmanları dondurmamıza ve geri kalan kısımlara ince-ayar yapmamıza da olanak sağlar ve bu durum daha iyi performans elde etmek için kullanılabilir. Ancak çok fazla katman dondurulmasının performans düşüklüğüne yol açtığı görülmektedir.

Ince-Ayarin bazi özellikleri:

Transfer Öğrenme: Model, on eğitim sırasında edindiği anlayışı (örneğin gramer ve sözdizimi öğrenme) alır ve eldeki belirli göreve göre uyarlar. Bu, öğrenmeyi hızlandırır ve modeli yeni zorlukların üstesinden gelmede daha verimli hale getirir.

Görev-Odaklı Veriler: İnce ayar, modele göreve özel veri setleri sağlamayı içerir. Bu spesifik bir konu özelinde toplanmış bilgi, modele söz konusu görevde başarılı olması için gereken uzmanlığı kazandırır.

Gradyan Tabanlı Optimizasyon: Model göreve özgü verileri işlerken, tahminleri ile gerçek sonuçlar arasındaki farkı hesaplar.Bu fark, parametre ayarlamalarında rol oynar. Optimizasyon teknikleri daha sonra bu bilgiyi (gradyan bilgisini) kullanarak modelin parametrelerine ince ayar yapar. Bu, tahmin hatalarını en aza indirir ve LLM’nin göreve özgü uzmanlık geliştirmesini sağlar.

Bağlam-İçi Öğrenme(In-Context Learning)

Fine-tuning işleminin uygulanması BERT gibi bir kaç yüz milyon parametleri modellerde kolay olsa da, GPT benzeri milyarlarca parametre içeren modellerde veri seti küçük olsa bile bu durum öğrenimi kolaylaştıran bir şey değildir. Çünkü, ince ayar sırasında da tüm model parametrelerinin güncellenmesi gerekmektedir ve daha küçük bir veri setinde bile GPT gibi LLM modellerinde ince ayar maliyetleri bu işlemi engelleyici derecede büyük olabilir.

İnce-Ayar işlemini uygulanmasının zor olduğu bu derece büyük modellerde, “In-Context Learning” denilen bağlam içi öğrenme veya bir önceki yazımızda bahsettiğimiz few-shot learning bize yardımcı olmaktadır. Model, yüzlerce veya binlerce girdi metniyle ince ayar yapmak yerine, sadece göreve özgü birkaç örneği (genellikle <10) girdi olarak kullanarak ve on eğitim sırasında model tarafından daha önce öğrenilen tüm bağlamları kullanarak verilen yeni görevin bağlamını anlayabiliyor ve bu bilgiyi kullanarak tahminde bulunuyor. Bu süreçte ince-ayarda olduğu gibi model parametlerinin güncellenmediğini gözden kaçırmayalım. Bu güncelleme işlemi olmadığı ve gradian descent gibi bir optimizasyon kullandılmadığı için bu süreç çok daha büyük dil modellerinde kullanılabilir hale gelir. Ayrıca, bu sürecin büyülü ve gizemli yanı da budur. Çünkü, bu sürecin tam olarak nasıl çalıştığı henüz tam anlamıyla çözülebilmiş değildir. Araştırmacılar GPT benzeri modellerin, promptları kullanarak bir tür Bayesian çıkarımı yaptığını öne sürseler de bu konudaki araştırmalar hala devam etmektedir.

Fine Tuning ve In-Context Learning Özellikleri

Ayrıca suna dikkat etmek gerekir ki fine tuning ve ın-context learning kavramlarını kesinlikle sadece birbirleri yerine kullanılabilirler veya ikisinden birisini seçmek zorundayız gibi durum yoktur, bir model için iki yöntem de kullanılabilir.

Ön-Eğitim (Pre-Training)

Bu yazımızın asıl konusu olan Pre-Training aşamasını biraz daha açacak olursak:

On eğitim olarak adlandırılan bu eğitim sürecini, modelin büyük miktarda yapılandırılmamış metin verişi kullanarak dilin genel yapısı hakkında bilgi edinmesi şeklinde tanımlaşmıştık. Bu on eğitim belirli bir görev için hangi modelin kullanılabileceğini anlamak açısından oldukça önemlidir. Eğitim hedefi, Auto-Encoding modeller için maskelenmiş dil modellemesi(MLM) veya Auto-Regressive modeller için nedensel dil modellemesi(CLS) gibi model mimarisine bağlı olarak değişir. Amaç, modelin verilerde bulunan kalıpları ve yapıları öğrenerek dilin istatistiksel bir temsilini geliştirmesidir.

Autoencoding Models: Encoder-Only Models

Yalnızca encoder kullanan Autoencoding modellerde, masked language modeling kullanılarak ön-eğitim yapılır.

Bu yaklaşımda yazının başında da bahsettiğimiz gibi giriş dizisindeki bazı kısımlar rastgele maskelenir ve modelin amacı original cümleyi yeniden oluşturmak için maskelenmiş kısımları tahmin etmektir. Autoencoding modeller girdiyi çift yönlü olarak görürler ve bu da duygu analizi, named entity recognition gibi görevlerde kullanılabilir hale getirir.

BERT ve RoBERTa bu tip modellerin en bilinen örnekleridir.

Autoencoding Modellerin Çalisma Şekli

Autoregressive Models: Decoder-Only Models

Yalnızca decoder kullanan Autoregressive modellerde, Causal Language Modeling kullanarak on eğitim yapılır. Encoder-Only modellerde olduğu girdi maskelenir ama girdiye tek yönlü şekilde yaklaşak bir önceki tökenlardan yola çıkarak bir sonraki tokeni tahmin ederler. Autoregressive modeller çok sayıda örnekten yararlanarak bir sonraki belirteci tahmin etmeyi öğrenir ve dilin istatistiksel bir temsilini oluştururlar. Genellikle metin oluşturma görevleri için kullanılırlar.

GPT ve BLOOM en bilinen autoregressive modelleridir.

Autoregressive Modellerin Çalisma Şekli

Sequence-to-Sequence Models: Encoder-Decoder Models

Hem encoder hem decoder kullanan modeller modeller için ön eğitim değişkenlik gösterebilir. Örnek verecek olursak T5(text-to-text transfer transformer) modeli, “span corruption” yöntemini, masked language modeling yöntemini ve buna ek olarak “Şentinel Belirteci” diye adlandırılan ayrı bir yöntemi kullanan modellerdir. Genellikle çeviri, metin özeti oluşturma ve soru-cevap görevleri için kullanılırlar. BART ve T5 bu gibi modellere bir örnektir.

Yukarıdaki bazı kavramları açıklayalım:

Span Corruption: T5 içerisinde, giriş metni içindeki belirli kısımları bozarak (örneğin, rastgele bir kısmı maskeler veya değiştirir) modeli bu bozulmuş metni çıkış metniyle yeniden oluşturacak şekilde eğitir. Bu, modelin dil içindeki ilişkileri anlamasına, çeşitli dil zorluklarıyla başa çıkabilme yeteneği kazanmasına ve genel dil anlayışını geliştirmesine yardımcı olur. Kelimeleri maskelemek, farklı kelimelerle değiştirmek, cümleye anlamsız harfler veya kelime grupları eklemek gibi yöntemler span corruption için kullanılabilirler.

MLM (Masked Language Modeling): Modelin giriş metnindeki rastgele seçilen kelimeleri maskeler ve ardından bu maskelenmiş kelimeleri tahmin etmeye çalışması işlemlerini içerir. Bu, modelin bir kelimenin bağlamını anlamasına ve genel dil bilgisini güçlendirmesine katkıda bulunur.

Sentinel Token: Belirli görevlerle ilgili özel tökenler ekleyerek, belirli pozisyonları ve konseptleri işaretleyerek modelin öğrenme yeteneklerini artırmayı amaçlar. Şentinel token’lar, dil modellerinin belirli kelimeler veya konseptler arasındaki bağlantıları daha iyi anlamasına yardımcı olabilir ve belirli görevlerde daha spesifik özellikler öğrenilmesine yardımcı olur.

Sequence-to-sequence Modellerin Çalisma Şekli

Konseptler hakkında bazı örnekler:

Span Corruption (Açıklık Bozulması):

Incorrect Span Insertion:

  • Orijinal Cümle: “Hava çok güzeldi.”
  • Bozulmuş Cümle: “Hava çok asdfgüçzeldi.”

Token Deletion:

  • Orijinal Cümle: “Bu kitabı bugün bitirmeliyim.”
  • Bozulmuş Cümle: “Bu kitabı bitirmeliyim.”

Masked Language Modeling (MLM):

  • Orijinal Cümle: “Bu restoranda yemek yemeyi düşünüyorum.”
  • Bozulmuş Cümle: “Bu [MASK] yemek yemeyi düşünüyorum.”

Sentinel Token:

Konsept Vurgulama:

  • Cümle: “Bu öneri, [POSITIVE] harika bir fikir.”
  • Sentinel Token Eklenmiş Cümle: “Bu öneri, [SENTIMENT] harika bir fikir.”

Name Entity Recognition:

  • Cümle: “Beyoncé, ABD’li ünlü bir şarkıcıdır.”
  • Sentinel Token Eklenmiş Cümle: “[ARTIST] Beyoncé, [COUNTRY] ABD’li ünlü bir şarkıcıdır.”

Bu örnekte, “Açıklık Bozulması” modelin bozulmuş verilerle başa çıkma yeteneğini öğrenir. “MLM” modelin maskelenmiş bir kelimeyi doğru tahmin etme yeteneğini geliştirir. “Sentinel Token” ise belirli bir konuya odaklanmayı sağlar. Bu stratejilerin bir kombinasyonu, modelin genel dil anlayışını artırır ve özellikle belirli bir konuyla ilgili daha güçlü tahminlerde bulunmasını sağlar.

MLM — CLM — Span Corruption Örnekleri

Sonuç

Bu yazımızda Büyük Dil Modellerinde kullanılan eğitim yöntemleri ve Ön-Eğitim işleminin detayları hakkında bilgi sahibi olduk.
Gelecek yazılarda görüşmek üzere :)

--

--