Showing posts with label GGUF. Show all posts
Showing posts with label GGUF. 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

Google Gemma 3: GPU Olmadan Sadece CPU ile Llama.cpp Kullanarak Nasıl Çalıştırılır?

Google Gemma 3: GPU Olmadan Sadece CPU ile Llama.cpp Kullanarak Nasıl Çalıştırılır?

Merhaba değerli arkadaşlar, ben Prof. Dr. Murat Karakaya. Murat Karakaya Akademi'ye hoş geldiniz. Bu dersimizde, takipçilerimden gelen sıkça sorulan bir soruyu uygulamalı olarak yanıtlayacağız: "Hocam, güçlü bir ekran kartım (GPU) yok, VRAM'im yetersiz. Google'ın yeni çıkan Gemma 3 modelini kendi bilgisayarımda, sadece işlemci (CPU) kullanarak çalıştırabilir miyim?"

Cevabım: Evet! Hem de oldukça tatmin edici bir hızda. Bu rehberde, Llama.cpp kütüphanesini kullanarak, Google'ın en yeni multimodal (hem metin hem görsel anlayabilen) modeli Gemma 3 (4B) sürümünü, hiçbir bulut servisine veri göndermeden, tamamen yerel bilgisayarınızda (Local PC) nasıl ayağa kaldıracağınızı adım adım göstereceğim.

Bu süreci baştan sona canlı olarak görmek ve performans testlerini izlemek için videoya göz atmanızı öneririm:

Bu Eğitimde Neler Öğreneceksiniz?

  • Llama.cpp kütüphanesinin Windows için kurulumu ve AVX desteği.
  • Hugging Face üzerinden Gemma 3 GGUF (Quantized) modellerin indirilmesi.
  • Multimodal özellikler için "mmproj" dosyalarının kullanımı.
  • Komut satırı (CLI) üzerinden Gemma 3 ile sohbet etme.
  • Llama Server ile modeli web arayüzü üzerinden kullanma.

Neden GPU Yerine CPU? Ve Llama.cpp Nedir?

Büyük Dil Modelleri (LLM) normalde devasa GPU gücü ister. Ancak Llama.cpp projesi, bu modelleri C/C++ ile optimize ederek standart işlemcilerde (CPU) çalışabilir hale getiriyor. Özellikle Apple Silicon (M serisi) veya Intel/AMD işlemcilerdeki AVX2 komut setlerini kullanarak şaşırtıcı performanslar sunuyor.

Videoda gördüğünüz üzere, benim bilgisayarımda 24GB VRAM'li bir GPU olmasına rağmen, bu deneyde sadece CPU kullandım ve saniyede yaklaşık 12-16 token (kelime parçası) üretim hızına ulaştık. Bu, bir sohbet botu için gayet akıcı bir hızdır.

Adım Adım Kurulum Rehberi

1. Llama.cpp İndirme

GitHub'daki llama.cpp sayfasının "Releases" bölümüne gidin. Windows kullanıyorsanız ve işlemciniz son 10 yılda üretildiyse muhtemelen AVX2 destekliyordur. İlgili .zip dosyasını (örneğin: llama-bxxxx-bin-win-avx2-x64.zip) indirin ve bir klasöre çıkarın.

2. Gemma 3 Model Dosyalarını İndirme (GGUF)

Hugging Face üzerinde ggml-org veya benzeri güvenilir kaynaklardan Gemma 3'ün GGUF formatını bulun. Ben videoda 4 milyar (4B) parametreli versiyonun Q4_K_M (4-bit quantization) sürümünü kullandım. Bu sürüm hem hafiftir (yaklaşık 2.5 - 3 GB) hem de CPU dostudur.

ÖNEMLİ: Gemma 3 multimodal (görsel görebilen) bir modeldir. Resimleri işleyebilmesi için modelin yanında mutlaka mmproj (projector) dosyasını da indirmelisiniz. Bu genelde model dosyalarının yanında .gguf uzantılı ek bir dosya olarak bulunur.

3. Komut Satırı ile Çalıştırma (CLI)

Llama.cpp klasörüne gidin ve terminali (PowerShell) açın. Gemma 3 için özel bir çalıştırılabilir dosya veya parametre gerekebilir, ancak genel mantık şöyledir:

# Örnek Çalıştırma Komutu
.\llama-gemma3-cli.exe -m "C:\Yol\gemma-3-4b-it-Q4_K_M.gguf" --mmproj "C:\Yol\gemma-3-4b-mmproj-f16.gguf" --image "test_resmi.jpg" -p "Bu resimde ne görüyorsun?"

4. Web Server Olarak Çalıştırma

Siyah ekranlarla uğraşmak istemiyorsanız, Llama.cpp içindeki llama-server.exe aracıyla modeli bir web sunucusu gibi başlatabilirsiniz. Böylece tarayıcınızdan (ChatGPT benzeri bir arayüzle) sohbet edebilirsiniz.

# Server Başlatma Komutu
.\llama-server.exe -m "C:\Modeller\gemma-3-4b.gguf" --port 8080

Komutu çalıştırdıktan sonra tarayıcınızda http://localhost:8080 adresine giderek modelle konuşmaya başlayabilirsiniz.

Sıkça Sorulan Sorular (SSS)

1. Bilgisayarım çok ısınır mı?

CPU kullanımı %100'e yaklaşacağı için fanlarınızın hızlanması normaldir. Ancak modern işlemciler termal korumaya sahiptir, güvenlidir.

2. 4-bit (Q4) model kullanmak kaliteyi düşürür mü?

Çok az bir miktar düşürür ancak 4B gibi bir modelde aradaki farkı anlamak zordur. Buna karşılık RAM kullanımını ve işlem yükünü ciddi oranda azaltır, ev kullanıcıları için en iyi takastır.

3. Kendi resimlerimi yükleyebilir miyim?

Evet! Videoda gösterdiğim gibi, kanalın logosunu veya herhangi bir fotoğrafı yükleyip "Bu resimdeki kişi kim?" veya "Burada ne yazıyor?" diye sorabilirsiniz. Gemma 3 bunu başarıyla analiz eder.

Sonuç

Gördüğünüz gibi, yapay zeka ile çalışmak için binlerce dolarlık donanımlara her zaman ihtiyacınız yok. Doğru optimizasyon araçları (Llama.cpp) ve verimli modeller (Gemma 3) ile standart bir laptop bile güçlü bir AI asistanına dönüşebilir. Veri gizliliğiniz cebinizde, hızınız parmaklarınızın ucunda!

Daha Fazlasını Keşfedin:
Bu ve benzeri yapay zeka rehberlerini kaçırmamak, modellerin derinlemesine incelemelerini izlemek için Murat Karakaya Akademi YouTube kanalına abone olun. Yorumlarınız ve beğenileriniz bizim için çok değerli!

Kanalı Ziyaret Et & Abone Ol 🚀

#MuratKarakayaAkademi #Gemma3 #LlamaCpp #LocalAI #YapayZeka #DeepLearning