Showing posts with label İnce Ayar. Show all posts
Showing posts with label İnce Ayar. Show all posts

Thursday, January 22, 2026

LLAMA 3 ve Unsloth ile Adım Adım Fine-Tuning Rehberi

LLAMA 3 ve Unsloth ile Nutuk Eğitimi: Adım Adım Fine-Tuning Rehberi

Merhabalar arkadaşlar, Murat Karakaya Akademi YouTube kanalına hoş geldiniz. Bugün, daha önce başladığımız "İnce Ayar (Fine-Tuning)" eğitim serimizin en kritik aşamalarından birini gerçekleştireceğiz. 8 milyar parametreli devasa bir dil modeli olan LLAMA 3'ü, kendi hazırladığımız Nutuk veri setiyle nasıl eğitebileceğimizi ve ona Atatürk'ün ölümsüz eseri hakkında nasıl uzmanlık kazandırabileceğimizi göreceğiz.

Bu eğitimde sadece kod yazmayacağız; arkadaki matematiksel hileyi (LoRA), bellek optimizasyonunu ve modelin neden Unsloth kütüphanesiyle 2 kat daha hızlı eğitildiğini derinlemesine inceleyeceğiz. Hazırsanız, yapay zekanın "ince ayar" dünyasına giriş yapalım.

Bu konuyu uygulamalı olarak görmek ve kodları adım adım takip etmek için videoyu izlemenizi öneririm:

Bu Eğitimde Neler Öğreneceksiniz?

  • PEFT ve LoRA Kavramları: Milyarlarca parametreyi eğitmek yerine neden küçük "adaptörler" kullanıyoruz?
  • Unsloth Kütüphanesi: Bellek dostu ve yüksek performanslı Fine-Tuning nasıl yapılır?
  • Veri Hazırlığı: Nutuk metinlerini ShareGPT formatına ve modelin anlayacağı "Instruction" yapısına dönüştürme.
  • QLoRA (4-bit Quantization): T4 gibi ücretsiz GPU'larda dev modelleri eğitmenin sırrı.
  • Model Yayını: Eğitilen modeli Hugging Face'e yükleme ve tekrar geri çağırma.

Fine-Tuning'in Arkasındaki "Sihir": LoRA ve Düşük Dereceli Matrisler

Normalde 8 milyar parametreli bir modeli baştan aşağı eğitmek (Full Fine-Tuning) devasa sunucu parkları gerektirir. Ancak biz LoRA (Low-Rank Adaptation) yöntemini kullanıyoruz. Peki bu nedir?

Düşünün ki dev bir matrisiniz var (modelin ağırlıkları). Biz bu matrisin kendisini değiştirmek yerine, onun yanına çok daha küçük iki matris ekliyoruz. Bu iki küçük matrisin çarpımı, orijinal matristeki değişimi temsil ediyor. Örneğin, 200 milyon parametreyi temsil etmek için sadece 120 bin parametre eğitmemiz yetiyor. İşte bu "matematiksel hile", evdeki bilgisayarlarımızda bile yapay zeka eğitmemizi sağlıyor.

Yapay Zeka Eğitim Görseli

Teknik Derinleşme: Unsloth ve Model Yükleme

Unsloth kütüphanesi, Hugging Face ve Llama.cpp kütüphanelerini temel alarak optimizasyonlar yapar. Bellek kullanımını %70'e kadar azaltırken hızı 2 kat artırabilir. İlk adım olarak modelimizi 4-bit kuantize edilmiş halde yüklüyoruz:

from unsloth import FastLanguageModel
import torch

max_seq_length = 2048 # İstediğiniz uzunluk
dtype = None # Otomatik algılama
load_in_4bit = True # Bellek dostu eğitim için

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "unsloth/llama-3-8b-Instruct-bnb-4bit",
    max_seq_length = max_seq_length,
    dtype = dtype,
    load_in_4bit = load_in_4bit,
)

Veri Seti Hazırlığı: Nutuk'u Modele Öğretmek

Bir önceki dersimizde hazırladığımız 4300 soruluk Nutuk veri setini, modelin "sohbet" edebilmesi için ShareGPT formatına çeviriyoruz. Modelin sadece soruyu değil, bir sohbet akışını (User -> Assistant) anlaması için "Conversation" yapısını kuruyoruz:

def formatting_prompts_func(examples):
    instructions = examples["instruction"]
    inputs       = examples["input"]
    outputs      = examples["output"]
    texts = []
    for instruction, input, output in zip(instructions, inputs, outputs):
        # Modelin chat template'ine göre formatlama
        text = f"### Instruction:\n{instruction}\n\n### Input:\n{input}\n\n### Response:\n{output}"
        texts.append(text)
    return { "text" : texts, }

# Veri setini yükleme ve formatlama adımı burada gerçekleşir

Eğitim Parametreleri ve Optimizasyon

Eğitim esnasında en önemli parametrelerden biri Rank (R) değeridir. Bu değer, adaptörün ne kadar karmaşık olacağını belirler. Biz bu örnekte R=16 kullandık. Daha yüksek değerler daha fazla öğrenme kapasitesi sunsa da bellek maliyetini artırır. 17 dakikalık bir eğitim sonucunda modelin "loss" değerinin 2.7'den 1.2'ye düştüğünü gözlemledik.

Önemli Not: Fine-tuning yapmadan önce model Sivas Kongresi sorularına İngilizce cevap verirken, eğitim sonrası veri setimizdeki üslupla Türkçe ve net cevaplar vermeye başladı.

Sıkça Sorulan Sorular (SSS)

1. Kendi veri setimle bu eğitimi yapabilir miyim?
Kesinlikle. Tek yapmanız gereken verilerinizi "Soru-Cevap" formatında bir JSON veya CSV dosyasına dönüştürmek ve videoda gösterdiğimiz formatting_prompts_func fonksiyonuyla modele sunmaktır.

2. LoRA Rank (R) değerini nasıl belirlemeliyim?
Genellikle 8, 16 veya 32 değerleri standarttır. Eğer modeliniz çok karmaşık bir konuyu (örneğin ileri düzey tıp veya hukuk) öğreniyorsa rank değerini artırabilirsiniz, ancak aşırı öğrenme (overfitting) riskine dikkat etmelisiniz.

3. Google Colab'ın ücretsiz GPU'su yeterli mi?
Evet, Unsloth kütüphanesinin 4-bit optimizasyonu sayesinde LLAMA 3 (8B) modelini ücretsiz T4 GPU'da sorunsuzca eğitebilirsiniz. Bellek kullanımımız yaklaşık 13-15 GB civarında seyretmektedir.

Sonuç

Özetle; doğru araçları (Unsloth), doğru yöntemleri (QLoRA) ve kaliteli bir veri setini (Nutuk) bir araya getirdiğinizde, devasa dil modellerini kendi ihtiyaçlarınıza göre özelleştirmeniz artık hayal değil. Bu model artık sadece genel bir dil modeli değil, aynı zamanda Nutuk konusunda uzmanlaşmış bir asistandır.

Daha Fazlasını Keşfedin:
Yapay zeka ve yazılım dünyasındaki gelişmeleri kaçırmamak için Murat Karakaya Akademi YouTube kanalına abone olun.

Kanalı Ziyaret Et & Abone Ol 🚀

#MuratKarakayaAkademi #FineTuning #Llama3 #Unsloth #Nutuk #YapayZeka #DeepLearning #Python