Prompt Mühendisliği

Büyük Dil Modellerinin İncelenmesi: Büyük Dil Modellerini Özel Gereksinimlerinize Uyarlama

mm
Unite.AI sitesini Google'daki tercih ettiğiniz kaynaklara ekleyin
LLM Fine tuning representation - Midjourney

2023 Eylül’ünde, Büyük Dil Modelleri (LLM) manzarası hala Alpaca, Falcon, Llama 2, GPT-4 ve diğer birçok modelin yükselişini görüyor.

Bu LLM’lerin potansiyelini kullanmanın önemli bir yönü, fine-tuning sürecinde yatıyor. Bu strateji, önceden eğitilmiş modelleri özel görevlere uyarlamak için izin veriyor. Bu fine-tuning sayesinde bu modeller gerçekten bireysel gereksinimlerle uyumlu hale geliyor ve hem yenilikçi hem de özel gereksinimlere uygun çözümler sunuyor.

Ancak, tüm fine-tuning yolları eşit yaratılmaz. Örneğin, GPT-4’ün fine-tuning yeteneklerine erişmek, diğer seçeneklere kıyasla daha pahalı bir ücretli abonelik gerektirir. Diğer taraftan, açık kaynak alanındaki alternatifler, büyük dil modellerinin gücünü kullanmak için daha erişilebilir bir yol sunuyor. Bu açık kaynak seçenekleri, gelişen AI peyzajında inovasyonu ve kapsayıcılığı teşvik ediyor.

Neden LLM Fine-Tuning Önemlidir?

LLM fine-tuning, yalnızca bir teknik iyileştirme değil, LLM model geliştirmesinin kritik bir yönüdür. Fine-tuning, önceden eğitilmiş modelleri daha spesifik ve rafine bir şekilde çeşitli görevlerde uygulamak için izin veriyor. Fine-tuning, modellerin yeni verilere uyum sağlama yeteneğini ortaya koyuyor ve bu, AI uygulamalarına olan ilgi arttıkça çok önemlidir.

Büyük dil modellerini fine-tune etmek, birçok fırsatı açıyor ve modelleri belirli görevlerde uzmanlaşmasını sağlıyor. Bu, sentiment analizi ve tıbbi literatür incelemeleri gibi görevlerde modellerin verimliliğini ve doğruluğunu artırıyor. Ayrıca, fine-tuning, sistem kaynaklarının daha ekonomik kullanımını sağlıyor, çünkü fine-tuning, modeli sıfırdan eğitmekle karşılaştırıldığında daha az hesaplama gücü gerektiriyor.

Bu kılavuzda, LLM fine-tuninginin inceliklerini tartışacağız ve size bu alanda son gelişmeleri ve en iyi uygulamaları temel alan kapsamlı bir bakış sunacağız.

Talimat Tabanlı Fine-Tuning

Generatif AI yaşam döngüsündeki fine-tuning aşaması, girdi ve çıktıların entegrasyonunu ve adım adım akıl yürütme örneklerini içerir. Bu yaklaşım, modelin yalnızca ilgili değil, aynı zamanda spesifik talimatlara uyumlu yanıtlar üretmesini sağlar. Bu, modelin belirli görevleri ve kullanım durumlarını çözmek için önceden eğitilmiş modelleri uyarladığı aşamadır.

Generatif AI Yaşam Döngüsü - Fine-Tuning, Prompt Mühendisliği ve RLHF

Generatif AI Yaşam Döngüsü – Fine-Tuning

Tek Görev Fine-Tuning

Tek görev fine-tuning, modelin belirli bir görevde uzmanlaşmasını hedefler. Bu yaklaşım, büyük belgeler veya sohbet ipleri içeren iş akışlarını optimize etmede özellikle faydalıdır. Şaşırtıcı bir şekilde, bu fine-tuning, yalnızca 500 ila 1000 örnek ile önemli performans iyileştirmeleri sağlayabilir, bu da ön eğitim aşamasında kullanılan milyarlarca tokenle karşılaştırıldığında oldukça az bir örnek sayısıdır.

Tek Görev Fine-Tuning Örneği Görseli

Tek Görev Fine-Tuning Örneği Görseli

 

LLM Fine-Tuninginin Temelleri: Transformer Mimarisi ve Ötesi

LLM fine-tuningini anlamak, bu modellerin temel bileşenlerini anlamayla başlar. Bu modellerin kalbinde, self-attention mekanizmalarını kullanarak kelimelerin bağlamını önceliklendiren bir sinir ağı olan transformer mimarisi yer alır. Bu yenilikçi yaklaşım, girdideki kelimelerin uzak ilişkilerini daha derin bir şekilde anlamayı sağlar.

Transformerleri keşfederken, girdinin tokenleştirme ve pozisyon vektörlerinin oluşturulmasını içeren bir dizi hesaplama süreciyle karşılaşırız. Sonraki aşamalar, Query, Value ve Key olarak bilinen matrislerin hesaplanmasını içerir ve bu, cümledeki farklı kısımlara ve tokenlere odaklanmayı belirleyen self-attention puanını hesaplar.

Transformer Mimarisi

Transformer Mimarisi

Fine-tuning, LLM’lerin geliştirilmesinde kritik bir aşamadır ve bu aşamada modellerin çıktılarını daha arzulanan çıktılara dönüştürmek için ince ayarlamalar yapılır. Bu aşamada, modellerin eğitimi için gereken hesaplama ve depolama kaynakları önemli bir zorluk oluşturur. Parametre Etkin Fine-Tuning (PEFT), eğitilmesi gereken parametre sayısını azaltmak için teknikler sunar.

LLM Ön Eğitimi: Güçlü Bir Temelin Oluşturulması

LLM geliştirmesinin ilk aşamalarında, ön eğitim öne çıkar ve büyük ölçekli unsupervised corpora üzerinde över-parametreli transformer mimarilerini kullanır. Bu süreç, doğal dili çeşitli şekillerde modelleme ve daha sonra görev özgü hedefleri tanıtmak için kullanılır. Bu aşamada oluşturulan temel, daha sonra özel alt görevler için fine-tune edilebilir.

Ön Eğitimi, Fine-Tuning

Ön Eğitimi, Fine-Tuning

Bu alanda dikkat çekici bir trend, ön eğitimi yapılan LLM’lerin ölçeğinin artmasıdır. Veriler, daha büyük modellerin ve daha fazla verinin genellikle daha iyi performans sağladığını gösteriyor. Örneğin, 175 milyar parametreye sahip GPT-3, yüksek kaliteli doğal dil oluşturma ve çeşitli sıfır-shot görevleri gerçekleştirme konusunda bir standart oluşturdu.

Fine-Tuning: Model Uyarlamasının Yolu

Ön eğitimden sonra, LLM’ler belirli görevlere uyum sağlamak için fine-tune edilir. Ön eğitimi yapılan LLM’lerde görülen in-context öğrenme performansı vaat ediyor olsa da, fine-tuning vẫn görev özgü ayarlamalar için üstündür. Ancak, tüm parametrelerin fine-tuningi, özellikle büyük ölçekli modellerle çalışırken, yüksek hesaplama ve bellek gereksinimleri gibi zorluklar sunar.

Büyük dil modelleri için, özellikle büyük parametre sayılarına sahip modellerde, GPU RAM’inin verimli yönetimi çok önemlidir. Tek bir model parametresi, tam 32-bit kesinlikte 4 byte alanı gerektirir, bu da 1 milyar parametreli bir modeli yüklemek için 4GB GPU RAM’ı gerektirir. Gerçek eğitim süreci, optimize edici durumları ve gradyanları barındırmak için daha fazla bellek gerektirir, bu da 80GB’a kadar GPU RAM’ı gerektirebilir.

GPU RAM’ın sınırlamalarını aşmak için, parametrelerin kesinliğini azaltan bir teknik olan kuantizasyon kullanılır. Örneğin, 32-bit’ten 16-bit’e geçmek, modelin yüklenmesi ve eğitimi için gereken belleği yarıya indirir. Daha sonra, QLoRA gibi tekniklerin kuantizasyon kavramını fine-tuning için nasıl kullandığını öğreneceğiz.

LLM GPU Bellek Gereksinimi - Parametre ve Kesinlik

LLM GPU Bellek Gereksinimi – Parametre ve Kesinlik

 

PEFT Yöntemlerinin Kategorilerini Keşfetme

Büyük Dil Modellerini tamamen fine-tune ederken, yalnızca model ağırlıklarını değil, optimize edici durumlarını, gradyanları, ileri aktivasyonları ve eğitim sürecindeki geçici belleği de verimli bir şekilde yönetebilecek bir hesaplama kurulumuna sahip olmak önemlidir.

İlaveli Yöntem

Bu tür fine-tuning, önceden eğitilmiş modeli ek parametreler veya katmanlar ile genişletir ve yalnızca yeni eklenen parametreleri eğitmeye odaklanır. Bu yöntemler, eğitim süresini ve alanını artırarak fine-tuning için daha verimli bir seçenek sunar. İlaveli yöntem, aşağıdaki alt kategorilere ayrılır:

  • Adaptörler: Transformer alt katmanları之后 küçük, tam bağlantılı ağlar eklenmesi, örneğin AdaMix, KronA ve Compactor.
  • Yumuşak Prompts: Modelin girdi gömme vektörlerinin bir bölümünün, gradyan inişli bir şekilde fine-tune edilmesi, örneğin IPT, prefix-tuning ve WARP.
  • Diğer İlaveli Yaklaşımlar: LeTS, AttentionFusion ve Ladder-Side Tuning gibi teknikleri içerir.

Seçici Yöntem

Seçici PEFT’ler, belirli üst katmanları, katman tipi ve iç model yapısına bağlı olarak fine-tune eder. Bu kategori, BitFit ve LN ayarlamaları gibi yöntemleri içerir, bunlar modelde belirli öğeleri, örneğin model yanlılıklarını veya belirli satırları ayarlamaya odaklanır.

Parametreleştirme Tabanlı Yöntem

Bu yöntemler, eğitilmesi gereken parametre sayısını azaltmak için düşük rütbeli temsil kullanır. En nổi bật olanı, Low-Rank Adaptation veya LoRA’dır. Bu yöntem, ağırlık güncellemesini parametreleştirmek için basit bir düşük rütbeli matris ayrışmasını kullanır ve düşük rütbeli alt uzaylarda etkili fine-tuning gösterir.

1) LoRA (Düşük Rütbeli Uyum)

LoRA, 2021 yılında Edward J. Hu ve diğerleri tarafından sunulan bir PEFT tekniği olarak ortaya çıktı. Bu yöntem, transformer mimarisinin her katmanına yeni, eğitilebilir düşük rütbeli matrisler entegre ederek, orijinal ağırlıkları dondurur. Bu yaklaşım, yalnızca eğitilmesi gereken parametre sayısını azaltmakla kalmaz, aynı zamanda eğitim süresini ve gerektirilen hesaplama kaynaklarını da azaltır, böylece tam fine-tuning’e daha verimli bir alternatif sunar.

LoRA’nın mekanizmasını anlamak için, transformer mimarisine geri dönmeli ve girdinin tokenleştirme ve pozisyona bağlı vektörlerin oluşturulmasını içeren süreci incelemeliyiz. Bu vektörler, transformerin kodlayıcı ve/veya dekoder segmentlerinden geçer ve self-attention ve besleme ileri ağları ile karşılaşır, bunların ağırlıkları önceden eğitilmiştir.

LoRA, Singular Value Decomposition (SVD) kavramını kullanır. Temel olarak, SVD bir matrisi üç ayrı matrise ayırır, biri diyagonal matris olup singular değerleri içerir. Bu singular değerler, matrislerdeki farklı boyutların önemini ölçmede kritiktir, daha büyük değerler daha yüksek önem, daha küçük değerler ise daha az önem gösterir.

m × n Matrisin Singular Değer Ayrışması (SVD)

m × n Matrisin Singular Değer Ayrışması (SVD)

Bu yaklaşım, LoRA’nın veri özellikleri korunurken boyutluluğunu optimize etmesini sağlar.

LoRA, bu sürece müdahale eder ve tüm orijinal model parametrelerini dondurur, orijinal ağırlıkların yanı sıra yeni, eğitilebilir “rütbe ayrışması matrisleri” ekler. Bu daha küçük matrisler, A ve B olarak adlandırılır ve denetimli öğrenme yoluyla eğitilir.

Bu stratejideki kritik unsur, ‘r’ parametresidir, bu parametre düşük rütbeli matrislerin boyutunu belirler. ‘r’ parametresinin dikkatli bir şekilde seçilmesi, hatta küçük bir değerle bile etkileyici sonuçlar elde edilebilir, bu da daha az parametreyle eğitilen düşük rütbeli bir matris oluşturur. Bu strateji, HuggingFace Transformers gibi açık kaynak kütüphaneleri kullanarak çeşitli görevlerde etkili bir şekilde uygulanmıştır.

2) QLoRA: LoRA Verimliliğini Artırma

LoRA’nın temelini oluşturan QLoRA, bellek gereksinimlerini daha da azaltır. 2023 yılında Tim Dettmers ve diğerleri tarafından tanıtılan QLoRA, düşük rütbeli adaptasyonu 4-bitlik bir kuantizasyon formatı olan NormalFloat veya nf4 ile birleştirir. Kuantizasyon, esasen yüksek bilgi temsilinden daha az bilgi içeren bir temsil’e geçiş sürecidir. Bu yaklaşım, 16-bit fine-tuning yöntemlerinin etkinliğini korur, ancak 4-bit ağırlıkları 16-bite kadar çıkarmak için gereken hesaplamaları gerçekleştirir.

Fine-Tuning Yöntemlerinin Karşılaştırılması: QLORA, LoRA'yı 4-Bit Kesinlik Kuantizasyonu ve Paged Optimizerlerle Geliştirir

Fine-Tuning Yöntemlerinin Karşılaştırılması: QLORA, LoRA’yı 4-Bit Kesinlik Kuantizasyonu ve Paged Optimizerlerle Geliştirir

QLoRA, NumericFloat4 (nf4) kullanarak transformer mimarisinin her katmanını hedefler ve çift kuantizasyon kavramını sunar, bu da fine-tuning için gereken bellek izini daha da azaltır. Bu, zaten kuantize edilmiş sabitlerin kuantizasyonunu gerçekleştirerek ve paged optimize ediciler ve birleşik bellek yönetimi kullanarak tipik gradient checkpointing bellek sıçramalarını önler.

Guanaco, QLoRA ile fine-tune edilmiş bir ensemble olarak, açık kaynaklı sohbet botu çözümlerinde bir standart oluşturur. Performansı, sistematik insan ve otomatik değerlendirmelerle doğrulanmıştır ve bu, alanındaki baskın konumunu ve verimliliğini vurgular.

Guanaco’nun 65B ve 33B sürümleri, değiştirilmiş OASST1 veri kümesi kullanılarak fine-tune edilmiştir ve ChatGPT ve hatta GPT-4 gibi nổi bật modellere karşı güçlü bir rakip olarak ortaya çıkar.

İnsan Geri Bildiriminden Reinforcement Learning ile Fine-Tuning

İnsan Geri Bildiriminden Reinforcement Learning (RLHF), önceden eğitilmiş dil modellerini insan değerleriyle daha uyumlu hale getirmek için kullanılır. Bu kavram, 2017 yılında Open AI tarafından tanıtılmış ve belge özeti ve InstructGPT geliştirilmesine temel oluşturmuştur.

RLHF’nin merkezinde, bir ajan, bir çevrede eylemler gerçekleştirir ve ödüller alır. Bu, bir eylem ve geri bildirim döngüsüdür ve ajan, en yüksek ödülü elde edecek seçimleri yapmaya teşvik edilir.

Dil modelleri bağlamında, ajan model itself, belirli bir çevrede ve durumda, eylem olarak potential token’ları seçer. “Eylem alanı” tüm olası token’ları içerir ve hedef, insan tercihlerine en uygun token’ı seçmektir.

RLHF süreci, insan geri bildirimi kullanarak bir ödül modeli eğitmeyi içerir. Bu model, fine-tuning sırasında önceden eğitilmiş modeli yönlendirmede kritik bir rol oynar ve insan değerleriyle daha uyumlu çıktılar üretmesi için teşvik eder. Bu, modelin “rollout” adı verilen bir dizi estado ve eylemden oluşan bir süreçte öğrenmesiyle gerçekleşir.

RLHF’nin dikkat çekici bir potansiyeli, AI asistanlarını bireysel kullanıcıların tercihlerine uyumlu hale getirmesidir. Bu, AI sistemlerinin yalnızca teknik olarak yetenekli olmasını değil, aynı zamanda duygusal olarak zeki ve insan iletişimindeki nüansları anlamaya ve yanıtlamaya able olmasını sağlar.

Ancak, RLHF’nin de sınırlamaları vardır. Modeller, masih istenmeyen çıktılar üretebilir, bu da eğitim verilerinin geniş ve thường düzenlenmemiş ve önyargılı olmasından kaynaklanır.

Sonuç

Fine-tuning süreci, Alpaca, Falcon ve GPT-4 gibi LLM’lerin tam potansiyelini kullanmak için kritik bir adımdır ve artık daha rafine ve görevlere özgü hale gelmiştir. Tek görev fine-tuning, modelleri belirli rollerde uzmanlaştırmaya odaklanırken, Parametre Etkin Fine-Tuning (PEFT) yöntemleri gibi LoRA ve QLoRA, eğitimi daha verimli ve maliyet etkin hale getirmeyi hedefler. Bu gelişmeler, yüksek düzeyde AI işlevselliğini daha geniş bir kitleye açıyor.

Open AI’nin 2017 yılında tanıttığı İnsan Geri Bildiriminden Reinforcement Learning (RLHF), AI sistemlerini insan değerleriyle daha uyumlu hale getirmek için bir adım olarak görülüyor. Hem RLHF hem de PEFT, LLM’lerin işlevselliğini ve verimliliğini artırmak için birlikte çalışır.

İşletmeler, şirketler ve bireyler bu fine-tune edilmiş LLM’leri operasyonlarına entegre ettikçe, aslında AI’ı yalnızca bir araç olarak değil, insan bağlamına uyum sağlayan ve çözümler sunan bir ortak olarak karşılarlar.

Son beş yıldır Makine Öğrenimi ve Derin Öğrenme dünyasına kendimi adamış bulunuyorum. Tutkum ve uzmanlığım, özellikle AI/ML'ye odaklanarak 50'den fazla çeşitli yazılım mühendisliği projesine katkıda bulunmama yol açtı. Süregelen meraklılığım da beni Doğal Dil İşleme alanına yöneltti, bu alana daha da derinlemesine girmeye hevesliyim.