Showing posts with label Llama. Show all posts
Showing posts with label Llama. Show all posts

Thursday, January 22, 2026

İnce Ayar (Fine-Tuning): QLoRA Adaptörünü GGUF Formatına Dönüştürme ve Ollama Entegrasyonu

İnce Ayar (Fine-Tuning) Serisi: QLoRA Adaptörünü GGUF Formatına Dönüştürme ve Ollama Entegrasyonu

Değerli arkadaşlar, Murat Karakaya Akademi'ye hoş geldiniz. İnce ayar (Fine-Tuning) eğitim serimizin dördüncü ve tamamlayıcı bölümüyle karşınızdayım. Hatırlarsanız bu seriye veri setimizi hazırlayarak başlamış, ardından temel kavramları incelemiş ve üçüncü videomuzda Llama 3 modelini "Nutuk" verisiyle Unsloth kütüphanesini kullanarak eğitmiştik.

Bugünkü dersimizde ise eğittiğimiz bu QLoRA adaptörünü, baz (base) model ile birleştirip tek bir dosya haline getireceğiz. Daha sonra bu modeli GGUF formatına dönüştürüp 4-bit quantization (nitelik kaybı olmadan boyut küçültme) işlemini uygulayacağız. Son olarak da elde ettiğimiz bu modeli Ollama ve Llama.cpp kullanarak yerel bilgisayarımızda nasıl çalıştırabileceğimizi adım adım göreceğiz. Bu işlem, eğittiğiniz modelleri dağıtmak ve CPU üzerinde bile hızlıca çalıştırmak için kritik bir adımdır.

Bu teknik süreci uygulamalı olarak görmek, kodları adım adım takip etmek ve modelin canlı performansını izlemek için videoyu izlemenizi öneririm:

Bu Eğitimde Neler Öğreneceksiniz?

  • QLoRA adaptörünün baz model (Llama 3) ile birleştirilmesi (Merging).
  • Unsloth kütüphanesi ile GGUF formatına dönüşüm ve 4-bit Quantization.
  • Modelin Hugging Face Hub üzerine yüklenmesi.
  • Eğitilen modelin Ollama ve Llama.cpp ile yerel bilgisayarda çalıştırılması.
  • Gradio kullanarak model için basit bir sohbet arayüzü oluşturulması.

Neden Birleştirme (Merging) ve GGUF?

Bir önceki dersimizde modelimizi QLoRA tekniği ile eğitmiş ve elimizde sadece eğitilen parametreleri içeren küçük bir "adaptör" dosyası kalmıştı. Ancak modeli kullanmak istediğimizde hem devasa baz modeli hem de adaptörü aynı anda yüklememiz gerekiyordu. Bu durum hem bellek yönetimi açısından zorlayıcıdır hem de çıkarım (inference) hızını düşürür.

Bugün yapacağımız "Merging" işlemi ile adaptörü baz modelin içine gömeceğiz. Ardından yapacağımız GGUF dönüşümü ile modeli tek bir dosya haline getirip, Apple Silicon (Mac) veya standart CPU'lu bilgisayarlarda bile çok hızlı çalışabilir hale getireceğiz. Unsloth kütüphanesi, normalde Llama.cpp ile yapılan bu karmaşık işlemi bizim için çok basit bir hale getiriyor.

Unsloth ile GGUF Dönüşümü ve Hugging Face Upload

Unsloth kütüphanesi, modelin kaydedilmesi aşamasında bize save_pretrained_gguf metodunu sunar. Bu metod sayesinde hem 16-bit (orijinal) hem de 4-bit (quantize edilmiş) versiyonları tek komutla oluşturabilir ve Hugging Face hesabımıza yükleyebiliriz.

Aşağıdaki kod bloğunda, eğittiğimiz modelin "q4_k_m" (4-bit medium) formatında dönüştürülüp yüklenmesini görüyoruz:

# Modeli GGUF formatında kaydetme ve Hugging Face'e yükleme
model.push_to_hub_gguf(
    "hf_kullanici_adiniz/Nutuk-Llama-3-8B-GGUF", # Hugging Face Repo Adı
    tokenizer,
    quantization_method = "q4_k_m", # Yaygın kullanılan 4-bit quantization
    token = "hf_token_buraya_gelecek" # Hugging Face Token'ınız
)

Ollama ile Yerelde Çalıştırma

Modelimiz Hugging Face üzerinde GGUF formatında hazır olduğunda, artık onu Ollama ile çalıştırmak çocuk oyuncağı. Ollama'nın yeni özelliklerinden biri, doğrudan Hugging Face üzerindeki GGUF dosyalarını indirip çalıştırabilmesidir.

Google Colab veya yerel terminalinizde şu komutu kullanarak modeli indirebilir ve sohbeti başlatabilirsiniz:

# Ollama'yı arka planda çalıştırın (Linux/Colab için)
ollama serve &

# Hugging Face üzerindeki GGUF modelini çalıştırın
ollama run hf.co/hf_kullanici_adiniz/Nutuk-Llama-3-8B-GGUF

Python ve Gradio ile Arayüz Oluşturma

Sadece terminalden değil, Python kodları içerisinden de modelimize erişebiliriz. Videoda gösterdiğim gibi, llama-cpp-python kütüphanesini kullanarak bir çıkarım (inference) fonksiyonu yazabilir ve bunu Gradio ile basit bir web arayüzüne dönüştürebiliriz.

from llama_cpp import Llama

# Modeli yükle (Hugging Face'den indirdiğiniz GGUF dosya yolu)
llm = Llama(
    model_path="./Nutuk-Llama-3-8B.Q4_K_M.gguf",
    chat_format="llama-3"
)

# Örnek sorgu
response = llm.create_chat_completion(
    messages=[
        {"role": "user", "content": "Sivas Kongresi ne zaman yapıldı?"}
    ]
)

print(response['choices'][0]['message']['content'])

Sıkça Sorulan Sorular (SSS)

1. Neden modeli GGUF formatına çeviriyoruz?
GGUF formatı, modelin tek bir dosya içinde tutulmasını sağlar ve özellikle CPU (işlemci) üzerinde çalıştırmak için optimize edilmiştir. Ayrıca 4-bit quantization ile model boyutu 16GB'lardan 4-5GB seviyelerine düşer, bu da standart bilgisayarlarda çalışmasını mümkün kılar.

2. Unsloth kullanmadan bu işlemi yapabilir miyim?
Evet, llama.cpp kütüphanesini doğrudan kullanarak da dönüşüm yapabilirsiniz ancak bu süreç çok daha manuel ve karmaşıktır. Unsloth, bu süreci optimize ederek arka planda gerekli dönüşümleri otomatik yapar.

3. Eğittiğim modeli ticari olarak kullanabilir miyim?
Bu, temel aldığınız modelin (Llama 3) lisansına ve kullandığınız veri setinin telif haklarına bağlıdır. Llama 3 genellikle açık bir lisansa sahiptir ancak "Nutuk" gibi kamuya mal olmuş veriler dışında özel veri setleri kullanıyorsanız dikkatli olmalısınız.

Sonuç

Bu eğitimle birlikte, veri seti hazırlamadan başlayıp, modeli eğitme ve son kullanıcıya sunulabilir bir formata (GGUF) dönüştürme sürecini tamamlamış olduk. Artık kendi özelleştirilmiş yapay zeka modellerinizi oluşturup, şirketinizde veya kişisel projelerinizde internete ihtiyaç duymadan (lokal olarak) çalıştırabilirsiniz.

Daha Fazlasını Keşfedin:
Yapay zeka, Büyük Dil Modelleri (LLM) ve yazılım dünyasındaki en güncel gelişmeleri teknik derinlikle öğrenmek için Murat Karakaya Akademi YouTube kanalına abone olun.

Kanalı Ziyaret Et & Abone Ol 🚀

#MuratKarakayaAkademi #FineTuning #Llama3 #GGUF #Ollama #YapayZeka

Llama 4: 10 Milyon Token, MoE Mimarisi ve Gerçekler

Llama 4: 10 Milyon Token, MoE Mimarisi ve Gerçekler

Merhaba değerli okuyucularım. Meta AI tarafından geliştirilen ve yapay zeka dünyasında büyük ses getiren Llama 4 modelleri nihayet duyuruldu. Özellikle "Scout" ve "Maverick" gibi kod adlarıyla piyasaya sürülen bu yeni nesil modeller, kağıt üzerinde muazzam yetenekler vaat ediyor. Ancak bir akademisyen ve mühendis gözüyle baktığımızda, bu modeller gerçekten anlatıldığı kadar erişilebilir ve "açık kaynak" mı? Bu yazımda, Llama 4'ün teknik detaylarını, Mixture of Experts (MoE) mimarisini ve Türkiye'deki kullanıcılar için ne anlama geldiğini laboratuvar notlarım eşliğinde sizlerle paylaşacağım.

Konuyu daha derinlemesine kavramak ve canlı yayında yaptığım performans testlerini (kodlama, mantık ve Türkçe kültürü soruları) adım adım takip etmek için aşağıdaki eğitim videosunu mutlaka izlemenizi öneririm:

Llama 4 Ailesi: Devlerin Savaşı

Meta AI bu sefer karşımıza tek bir modelle değil, devasa bir aileyle çıktı. Ancak baştan uyarayım; "küçük" dediğimiz model bile aslında bir dev. Modelleri şöyle sınıflandırabiliriz:

  • 🚀 Llama 4 Scout (Öncü): Yaklaşık 110 milyar parametreye sahip. En dikkat çekici özelliği 10 Milyon Token Context Window (Bağlam Penceresi) sunması. Bu, yaklaşık 8.000 sayfalık bir kitabı tek seferde hafızasında tutabilmesi demek.
  • 🦅 Llama 4 Maverick (Başıbozuk): 400 milyar parametreli devasa bir model. Özellikle karmaşık akıl yürütme (reasoning) görevleri için tasarlandı.
  • 🦖 Behemoth (Dev): Henüz eğitimi devam eden, yaklaşık 2 trilyon parametreli "canavar" model. Diğer modeller aslında bu dev modelin ara çıktılarından damıtılarak (distillation) oluşturulmuş durumda.

Teknolojik Altyapı: Mixture of Experts (MoE) Nedir?

Llama 4 ile Meta, mimari bir değişikliğe giderek Mixture of Experts (Uzmanların Karışımı) yapısını benimsedi. Daha önceki Llama modelleri (Dense) tek bir büyük blok halindeyken, Llama 4'te işler değişti.

Bu yapıyı şöyle hayal edebilirsiniz: Elinizde her işten anlayan tek bir kişi yerine, her biri farklı konuda (fizik, kodlama, edebiyat vb.) uzmanlaşmış 16 kişilik bir ekip var. Sisteme bir soru geldiğinde, bir "Router" (Yönlendirici) devreye giriyor ve soruyu en iyi çözebilecek uzmana iletiyor.

Neden Önemli?

  • Verimlilik: 110 milyar parametrenin hepsi aynı anda çalışmıyor. Örneğin Scout modelinde, her token üretimi için sadece belirli uzmanlar aktif oluyor. Bu da inference (çıkarım) hızını artırıyor.
  • Uzmanlaşma: Her bir "uzman" sinir ağı, veri setinin belli bir bölümünde daha yetkin hale geliyor.

Ev Kullanıcısı İçin Kötü Haber: Donanım Gereksinimleri

Videoda da detaylıca bahsettiğim gibi, "Açık Kaynak" olması bu modeli hemen indirip evdeki bilgisayarınızda çalıştırabileceğiniz anlamına gelmiyor. Gerçekler biraz acı:

Scout modeli (110B) bile, 8-bit quantization ile çalıştırılsa dahi tek bir Nvidia RTX 4090'a (24GB VRAM) sığmaz. Bu modeli ayağa kaldırmak için en az:

- Minimum 70-80 GB VRAM (Sadece modeli yüklemek için)
- 10 Milyon Token Context kullanacaksanız çok daha fazlası (KV Cache şişmesi)
- Pratikte: Nvidia H100 (25-30 Bin Dolar) veya çoklu GPU kurulumu

Eğer bir KOBİ veya bireysel geliştiriciyseniz, şu aşamada Gemma 2 (27B veya 9B) gibi daha optimize ve tek GPU dostu modelleri tercih etmeniz çok daha mantıklı olacaktır.

Lisans ve Erişim Sorunları: Gerçekten "Açık" mı?

Yayında canlı olarak denediğimizde gördük ki, Llama 4'ü indirmek Hugging Face üzerinden tek tıkla mümkün olmuyor. Meta, katı lisans kuralları ve onay mekanizmaları getirmiş. Özellikle:

  • Ticari kullanımda "Built with Llama" logosu zorunluluğu.
  • Modelin çıktılarını kullanarak başka modelleri eğitirken orijinal lisansı koruma şartı.
  • Onay süreçlerindeki belirsizlikler (Bazı kullanıcılara anında onay verilirken, bazı bölgelerdeki veya profillerdeki kullanıcılara erişim verilmemesi).

Bu durum, Llama'nın "Open Weights" (Açık Ağırlıklar) felsefesini biraz zedeliyor. Tam erişim için kurumsal bir kimlik veya onaylı bir araştırma geçmişi gerekebilir.

Performans Testleri: Türkçe ve Mantık Soruları

Yayında Grok API üzerinden Scout modelini test etme şansı bulduk. Sonuçlar karmaşıktı:

✅ Başarılı Olduğu Alanlar:

  • Kodlama: Python ile çekiliş kodu yazma ve JSON çıktısı üretme konusunda oldukça hızlı ve başarılıydı.
  • Hız: Grok altyapısı üzerinde (LPU'lar sayesinde) inanılmaz bir token üretim hızı var.
  • Finansal Hesaplama: Karmaşık faiz/getiri hesaplama sorusunu doğru yanıtladı.

❌ Başarısız Olduğu Alanlar (Halüsinasyonlar):

  • Kültürel Sorular: "Nasrettin Hoca göle neden maya çaldı?" veya "Keloğlan neden keldir?" gibi kültürel sorulara tamamen uydurma (halüsinasyon) cevaplar verdi.
  • Yerel Bilgi: Türkiye'nin il sayısını bile karıştırdı, olmayan futbol takımı lakapları uydurdu.
  • Sonuç: Model çok dilli (Multilingual) olduğunu iddia etse de, Türkçe kültürel derinliği henüz bir ChatGPT veya Gemini seviyesinde değil.

Sonuç: Kimler Kullanmalı?

Llama 4, teknolojik olarak (özellikle MoE ve Context Window açısından) büyük bir mühendislik başarısı. Ancak:

  1. Evinizde H100 GPU'nuz yoksa yerel (local) olarak çalıştıramazsınız.
  2. Türkçe dil desteği teknik konularda iyi olsa da, kültürel konularda zayıf.
  3. Büyük ölçekli kurumsal AR-GE projeleri için uygun, bireysel kullanım için fazla maliyetli.

Benim önerim; eğer yerel bir model arıyorsanız Google Gemma serisi veya Mistral modelleri şu an için fiyat/performans açısından daha erişilebilir seçenekler sunuyor.

Daha fazla içerik, kodlama örnekleri ve düzenli yapay zeka eğitimleri için Murat Karakaya Akademi YouTube kanalımı ziyaret etmeyi ve abone olmayı unutmayın:
👉 https://www.youtube.com/@MuratKarakayaAkademi

#MuratKarakayaAkademi #Llama4 #YapayZeka #LLM #BüyükDilModelleri #OpenSourceAI #DerinÖğrenme #Python #Yazılım