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

İ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: Türkçe Destekli Açık Kaynak Yapay Zeka Devrimi

Google Gemma 3: Türkçe Destekli Açık Kaynak Yapay Zeka Devrimi

Merhabalar arkadaşlar, hoş geldiniz. Bugün sizlerle Google DeepMind tarafından yayınlanan ve yapay zeka dünyasında, özellikle açık kaynak modeller tarafında büyük ses getiren Gemma 3 modelini derinlemesine inceleyeceğiz.

Biliyorsunuz, açık kaynak dünyası hızla gelişiyor ancak Türkçe dil desteği konusunda her zaman bazı kısıtlarla karşılaşıyorduk. Gemma 3, 128.000 token bağlam penceresi (context window) ve resmi Türkçe desteği ile oyunun kurallarını değiştiriyor olabilir. Peki, 4 milyar parametreli "küçük" bir model, 27 milyarlık abileriyle veya ChatGPT gibi devlerle yarışabilir mi? Gelin, teknik detaylara ve performans testlerine birlikte bakalım.

Bu konuyu uygulamalı olarak görmek, kodları adım adım takip etmek ve modelin canlı performans testlerini izlemek için videoyu izlemenizi şiddetle öneririm:

Bu Eğitimde Neler Öğreneceksiniz?

  • Gemma 3'ün teknik mimarisi ve getirdiği yenilikler (Multimodal yapı).
  • Modelin Türkçe dil performansı, mantık ve muhakeme yetenekleri.
  • 4B ve 27B modellerin donanım gereksinimleri (VRAM tüketimi).
  • Açık kaynak modellerin yerel bilgisayarda çalıştırılması.
  • RAG ve Agent (İş Gören) sistemlerinde kullanım potansiyeli.

Gemma 3 Nedir ve Neden Önemli?

Google'ın "Gemma" serisi, aslında kapalı kaynak olan Gemini modellerinin teknolojisiyle üretilmiş, ağırlıkları (weights) halka açılmış versiyonlarıdır. Gemma 3 ile birlikte Google, sadece ağırlıkları değil, teknik raporu da yayınlayarak şeffaflık konusunda önemli bir adım attı.

Bu modelin en çarpıcı özelliği Multimodal (Çok Modlu) olmasıdır. Yani modele hem metin hem de görsel verip, metin çıktısı alabilirsiniz. Ayrıca daha önceki versiyonlarda 8K olan bağlam penceresi, Gemma 3 ile 128K seviyesine çıkarılmış. Bu, yaklaşık olarak yüzlerce sayfalık bir kitabı tek seferde modele verip üzerinde konuşabileceğiniz anlamına gelir.

Türkçe Performansı ve Tokenizer Devrimi

Videodaki testlerimizde gördük ki, Gemma 3 özellikle Türkçe konusunda çok başarılı. Bunun arkasındaki temel sebep, Google'ın Tokenizer yapısını değiştirmesidir. Eski modeller genellikle İngilizce ağırlıklı eğitildiği için Türkçe kelimeleri çok fazla parçaya bölüyor ve anlam bütünlüğünü kaybedebiliyordu. Gemma 3, 140 dili kapsayan özel eğitim setiyle Türkçeyi "anadil" seviyesine yakın bir akıcılıkta işliyor.

Mantık ve Muhakeme Testleri

4 milyar parametreli (4B) versiyonu 4-bit quantize edilmiş haliyle test ettik. Şaşırtıcı sonuçlar aldık:

  • Oğuz Atay Özeti: "Tutunamayanlar" kitabından ağır bir paragrafı başarıyla ve felsefi derinliği koruyarak özetledi.
  • Mantık Soruları: Klasik "kuruyan gömlek" veya "otobüs durağı" sorularında, kendisinden çok daha büyük modellerin (hatta bazen GPT-4 seviyesindeki modellerin) düştüğü tuzaklara düşmedi. Kendi hatasını fark edip düzeltebilen bir yapı sergiledi.

Kodlama ve Teknik Kurulum

Gemma 3'ü yerel bilgisayarınızda çalıştırmak için Unsloth, Hugging Face Transformers veya Ollama kullanabilirsiniz. 4B modeli çalıştırmak için yaklaşık 7-8 GB VRAM (veya RAM) yeterli oluyor. Bu da ortalama bir oyun bilgisayarında veya Apple Silicon işlemcili bir Mac'te rahatlıkla çalışabileceği anlamına gelir.

Aşağıda, modeli Python ortamında `unsloth` kütüphanesi ile nasıl yükleyebileceğinize dair basit bir örnek paylaşıyorum:

from unsloth import FastLanguageModel
import torch

# 4-bit quantization ile modeli yükle (Daha az bellek kullanımı için)
max_seq_length = 2048
dtype = None 
load_in_4bit = True 

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

# Inference (Tahmin) Moduna Al
FastLanguageModel.for_inference(model)

# Prompt Formatı
messages = [
    {"role": "user", "content": "Bana Python'da bir QuickSort algoritması yazabilir misin?"},
]

inputs = tokenizer.apply_chat_template(
    messages,
    tokenize = True,
    add_generation_prompt = True,
    return_tensors = "pt",
).to("cuda")

# Çıktı Üret
outputs = model.generate(input_ids = inputs, max_new_tokens = 1024, use_cache = True)
print(tokenizer.batch_decode(outputs)[0])

Bu kod bloğu, Unsloth kütüphanesinin optimize edilmiş yapısını kullanarak modeli çok daha hızlı ve az bellek tüketerek çalıştırmanızı sağlar.

Sıkça Sorulan Sorular (SSS)

1. Gemma 3 tamamen ücretsiz mi?
Evet, Gemma 3 açık ağırlıklı (open weights) bir modeldir. Ticari kullanım şartlarına (Google'ın lisansına) uymak kaydıyla projelerinizde ücretsiz kullanabilirsiniz.

2. ChatGPT yerine kullanılabilir mi?
Günlük sohbetler için ChatGPT daha geniş bir genel kültüre sahip olabilir. Ancak veri gizliliğinin önemli olduğu şirket içi projelerde, RAG (Retrieval Augmented Generation) sistemlerinde ve yerel "Agent" (İş Gören) uygulamalarında Gemma 3 harika bir alternatiftir.

3. Hangi donanıma ihtiyacım var?
4 milyar parametreli (4B) modeli çalıştırmak için 8GB RAM/VRAM yeterlidir. 27 milyar parametreli (27B) versiyonu verimli çalıştırmak için ise RTX 3090 veya 4090 gibi en az 24GB VRAM'e sahip kartlar önerilir.

Sonuç

Özetle, Google Gemma 3, özellikle Türkçe doğal dil işleme projeleri geliştirmek isteyen mühendisler, öğrenciler ve araştırmacılar için muazzam bir fırsat. Açık kaynak olması, yerelde çalışabilmesi ve mantıksal çıkarım yeteneğinin boyutuna göre çok yüksek olması onu öne çıkarıyor. Projelerinizde API maliyetlerinden kurtulmak ve verinizi dışarı çıkarmadan işlemek istiyorsanız, Gemma 3'ü mutlaka test etmelisiniz.

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 #Gemma3 #YapayZeka #LLM #DeepLearning #Python

Google Gemma 3 Vision: Python ile Görüntü İşleme, OCR ve Tarihi Analiz Deneyimleri

Google Gemma 3 Vision: Python ile Görüntü İşleme, OCR ve Tarihi Analiz Deneyimleri

Merhaba değerli arkadaşlar, ben Prof. Dr. Murat Karakaya. Murat Karakaya Akademi'ye hoş geldiniz. Bugün hem teknik hem de manevi açıdan çok özel bir inceleme ile karşınızdayım. 18 Mart Çanakkale Zaferi vesilesiyle, Google'ın yeni multimodal modeli Gemma 3 (4B)'ü, Çanakkale Savaşı'na ait tarihi fotoğraflar, belgeler ve menüler üzerinde test ettik.

Amacımız şu: Sadece 4 milyar parametreli küçük bir model, karmaşık tarihi belgeleri okuyabilir mi (OCR)? Yıpranmış siyah beyaz fotoğraflardaki duyguyu ve bağlamı anlayabilir mi? Ve en önemlisi, bunları Türkçe olarak hatasız yorumlayabilir mi? Sonuçlar beni gerçekten şaşırttı. Gelin, bu deneyimi ve Python kodlarını birlikte inceleyelim.

Bu duygusal ve teknik analizi baştan sona izlemek, modelin tarihi belgeleri nasıl yorumladığına şahit olmak için videoya göz atmanızı öneririm:

Bu Eğitimde Neler Öğreneceksiniz?

  • Hugging Face Transformers kütüphanesi ile Gemma 3 Vision kurulumu.
  • Gemma 3'ün OCR (Optik Karakter Tanıma) performansı ve kalori hesabı örneği.
  • Eski ve yıpranmış fotoğraflarda duygu ve bağlam analizi.
  • Yabancı dildeki (İngilizce/Yunanca) tarihi belgelerin analizi ve çevirisi.
  • Python ile Multimodal (Resim + Metin) pipeline oluşturma.

Gemma 3 Vision ve Teknik Altyapı

Gemma 3, sadece metin üreten bir LLM değil, aynı zamanda görüntüleri de "görebilen" bir VLM (Vision Language Model). Modelin içinde bir Vision Encoder bulunuyor. Bu encoder, görüntüyü küçük parçalara (patch) bölüyor, token'lara çeviriyor ve dil modelinin anlayabileceği bir formata dönüştürüyor.

Bu çalışmada, henüz çok yeni olduğu için Hugging Face'in transformers kütüphanesinin geliştirici sürümünü (GitHub branch) kullandık. Model olarak da 4 milyar parametreli (4B-it) versiyonu tercih ettik. Neden? Çünkü Colab'ın ücretsiz T4 GPU'sunda veya standart bir bilgisayarda (yaklaşık 7-8 GB VRAM ile) rahatlıkla çalışabiliyor.

Çanakkale Özel: Model Neleri Başardı?

1. OCR ve Mantıksal Çıkarım (Asker Menüsü)

Modele, Çanakkale Savaşı'nda askerlerimize verilen yemek listesini (15 Haziran, 26 Haziran gibi tarihlerin ve öğünlerin yazdığı eski bir belge) gösterdik. Gemma 3'ten sadece okumasını değil, askerlerin günlük kalorisini hesaplamasını ve günümüz hamburger menüsüyle kıyaslamasını istedik.

Sonuç: Model, tablodaki "Üzüm Hoşafı", "Yarım Ekmek" gibi silik yazıları kusursuz okudu. Askerin günlük ortalama 270 kalori aldığını hesapladı ve bunu günümüzün 1100 kalorilik menüsüyle kıyaslayarak aradaki uçurumu (yokluğu ve fedakarlığı) çok net ortaya koydu.

2. Duygu Analizi (Siperdeki Askerler)

Atatürk'ün cephede gözlemlediği anları anlattığı bir mektubun görselini ve siperdeki askerlerin bir fotoğrafını verdik. "Buradaki ruh halini özetle" dedik. Model, askerlerin yüzündeki kararlılık, korku, gerginlik ve vatan sevgisi ifadelerini metinle birleştirerek lise düzeyinde bir öğrencinin yazabileceği kalitede duygusal bir analiz yaptı.

3. Bağlamı Anlama (Fotoğraf Nerede Çekildi?)

Hiçbir yazı içermeyen, sadece askerlerin olduğu bir fotoğraf gösterdik. Model, üniformalardan, kask yapısından (her ne kadar kalpak yerine kask dese de) ve ortamdan bunun 1. Dünya Savaşı, Osmanlı Cephesi olduğunu ve muhtemelen Çanakkale veya Filistin cephesi olabileceğini "akıl yürüterek" buldu.

Python Kodları: Gemma 3 Vision Kurulumu

Bu analizi kendi bilgisayarınızda veya Google Colab'da yapmak için aşağıdaki Python kodlarını kullanabilirsiniz. Transformers kütüphanesinin güncel olduğundan emin olun.

import torch
from transformers import pipeline
from PIL import Image
import requests

# 1. Pipeline'ı Hazırlama
# 'image-text-to-text' görevi multimodal modeller içindir.
pipe = pipeline(
    "image-text-to-text",
    model="google/gemma-3-4b-it",
    device_map="auto",
    torch_dtype=torch.bfloat16 # Bellek tasarrufu için bfloat16 önemli
)

# 2. Resmi Yükleme (Örnek URL)
image_url = "https://example.com/canakkale_fotografi.jpg"
image = Image.open(requests.get(image_url, stream=True).raw)

# 3. Modele Mesaj Gönderme
# Gemma 3 için özel mesaj formatı
messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "image": image},
            {"type": "text", "text": "Bu resimde ne görüyorsun? Askerlerin ruh halini ve ortamı detaylıca analiz et."}
        ]
    }
]

# 4. Cevabı Üretme
output = pipe(messages, max_new_tokens=1024)
print(output[0]["generated_text"][-1]["content"])

Sıkça Sorulan Sorular (SSS)

1. Gemma 3 Türkçe OCR konusunda ne kadar başarılı?

4 milyar parametreli bir model için inanılmaz başarılı. Çanakkale menüsündeki eski yazı tiplerini, Atatürk'ün el yazısına yakın notlarını ve yıpranmış gazete küpürlerini %95'in üzerinde doğrulukla okuyup Türkçeye çevirebildi.

2. Bu model sadece CPU ile çalışır mı?

Evet, Llama.cpp gibi araçlarla CPU üzerinde çalıştırılabilir ancak bu rehberde kullandığımız Transformers kütüphanesi ile GPU (Colab T4 veya yerel RTX kartlar) kullanmak çok daha hızlı sonuç verir. CPU'da bir resmin analizi dakikalar sürebilir.

3. Llama 3.2 Vision ile farkı nedir?

Gemma 3, özellikle Türkçe dil desteği ve muhakeme (reasoning) yeteneği konusunda çok daha "yerel" hissettiriyor. Yaptığımız testlerde Türk tarihi ile ilgili bağlamları (üniformalar, coğrafya) şaşırtıcı derecede doğru tanıdı.

Sonuç

Bu 18 Mart'ta, teknolojiyi tarihimizi anlamak için kullandık. Gemma 3, 4 milyar parametresine rağmen, o dönemin zorluklarını, askerimizin fedakarlığını ve tarihin tozlu sayfalarındaki detayları bize bir kez daha, yapay zeka gözüyle gösterdi. Bize bu vatanı emanet eden tüm kahramanlarımızı saygı ve rahmetle anıyoruz.

Daha Fazlasını Keşfedin:
Yapay zeka modellerinin sınırlarını zorladığımız, teknik analizleri milli değerlerimizle harmanladığımız videoları kaçırmamak için Murat Karakaya Akademi YouTube kanalına abone olun.

Kanalı Ziyaret Et & Abone Ol 🚀

#MuratKarakayaAkademi #Gemma3 #VisionAI #CanakkaleZaferi #YapayZeka #Python

Monday, June 9, 2025

Yapay Zeka ve Yazılım Mühendisliği Arasındaki İlişkiyi Yeniden Düşünmek

Merhaba değerli Murat Karakaya Akademi takipçileri,

Bu blog yazımızda, yapay zeka (YZ) ve yazılım mühendisliği arasındaki ilişkiyi ele alacağız. Bu konu, hem benim kendi içimde uzun süredir tartıştığım hem de farklı akademisyenlerle konuştuğum bir konu. Yapay zeka ve yazılım mühendisliği denildiğinde, aslında farklı şeyler anlaşılıyor ve bu durum kavram karmaşasına yol açabiliyor. Bu nedenle, bu ilişkiyi daha net bir şekilde ortaya koymak ve kavramları yerine oturtmak istedim.

Yapay zekanın yazılım mühendisliğinde kullanımı, diğer alanlara göre daha hızlı oldu. Bunun nedeni, yapay zekayı geliştirenlerin çoğunlukla bilgisayar mühendisleri ve yazılım mühendisleri olmasıdır. Yapay zekayla ilk çözülmek istenen problemler, genellikle yazılımcıların kendi karşılaştığı problemlerdi. Örneğin, kod yazma sürecini kolaylaştırmak veya yazılan kodlardaki hataları bulup düzeltmek gibi. Bu nedenle, yapay zekanın gelişimiyle yazılım mühendisliğinin gelişimi paralel bir şekilde ilerliyor. Diğer alanlar da yazılım mühendisliğindeki gelişmeleri takip ederek kendi alanlarına uygulamaya başlıyor. Örneğin, tıpta yapay zeka kullanımı çok önemli olsa da, yazılım mühendisliği tecrübelerinden faydalanarak bu alana aktarımlar yapılıyor.

Bu konuyu daha iyi inceleyebilmek için yapay zeka ve yazılım mühendisliği arasındaki ilişkiyi üç farklı boyutta ele alacağım:

  1. Yapay Zeka Amaçlı Geliştirilen Yazılımlar (AI-Driven Software Development)
  2. Yapay Zeka Destekli Yazılım Geliştirme (AI-Enhanced Software Development)
  3. Yapay Zeka Gömülü Yazılım Geliştirme (AI-Embedded Software Development)

Bu sınıflandırma, benim şu anki gözlemlerime dayanıyor ve bu üç boyutun, yazılım mühendisliği ile yapay zeka arasındaki ilişkiyi daha iyi anlamamızı sağlayacağını düşünüyorum. Bu içerikle, bu ilişkiye farklı bir açıdan bakmanızı umuyorum.

1. Yapay Zeka Amaçlı Geliştirilen Yazılımlar

Bu kategori, yapay zeka teorisini uygulamaya geçirmek için geliştirdiğimiz yazılımları ifade eder. Yani, yapay zekayı son kullanıcıya sunmaktan ziyade, yapay zeka kavramlarını kodlayarak yazılımlar oluşturmayı amaçlarız. Örneğin, kedi ve köpeği ayırt etmek için bir yazılım geliştirmek veya nesneleri tanıyabilen bir yazılım oluşturmak gibi. Bu tür yazılımlara "Yapay Zeka için Yazılım Geliştirme" veya doğrudan "Yapay Zeka Yazılım Geliştirmesi" de diyebiliriz. Amaç, yapay zekanın hedeflerine yönelik yazılımlar geliştirmektir.

Bu alana örnek olarak, büyük dil modellerini (LLM) verebiliriz. Büyük dil modellerinin arkasında, Transformer modeli gibi teoriler bulunur. Bu teorilerin kodlanması ve eğitilmesi, bu kategoriye girer. GPT-4 gibi modellerin geliştirilmesi, bu alandaki çalışmalara örnektir.

2. Yapay Zeka Destekli Yazılım Geliştirme

Bu boyutta, yapay zeka, yazılım geliştirme sürecini destekler. Yapay zeka, yazılım mühendislerinin verimliliğini artırmak, hataları azaltmak ve iş akışlarını kolaylaştırmak için kullanılır. Bu tür yazılımları geliştirmeye "Yapay Zeka ile Güçlendirilmiş Yazılım Geliştirme" de diyebiliriz. Bu, kod asistanları (GitHub Copilot, Amazon CodeWhisperer gibi) gibi araçları içerir. Amaç, yazılımcıların daha verimli ve üretken olmasını sağlamaktır.

Bu kategori, kod kalitesini artırmak, hataları bulup gidermek, test süreçlerini otomatik hale getirmek ve proje yönetimini desteklemek için kullanılan araçları kapsar. Çok ajanlı altyapılar (Multi-Agent Frameworks) da bu kategoriye örnek olarak verilebilir.

3. Yapay Zeka Gömülü Yazılım Geliştirme

Bu yaklaşım, yazılımlarımızın içine yapay zeka yeteneklerini entegre etmeyi ifade eder. Yazılımın daha zeki ve kullanıcı deneyiminin daha iyi olmasını sağlar. Örneğin, bir müşteri temsilcisinin sohbetini analiz ederek, kullanıcının sorularına daha akıllıca cevaplar vermek veya bir PDF dosyasındaki metni analiz ederek metnin kalitesini değerlendirmek gibi. Bu yaklaşım, kullanıcıların daha iyi bir deneyim yaşamasını, daha genel kod yazılmasını ve geliştirme süreçlerinin hızlanmasını sağlar. Bu tür yazılımlara "Yapay Zeka Gömülü Yazılım Geliştirme" denir.

Bu alanda, fonksiyon çağırma (function calling) gibi yöntemler ve çoklu ajan altyapıları kullanılabilir. Özellikle, kullanıcı arayüzleri ve kullanıcı deneyimi gibi alanlarda büyük bir potansiyele sahiptir.

  • Erişim destekli Metin Üretimi (RAG)
  • Yapısal Çıktı (Structurec Output)
  • Çoklu Yapay Zeka İşgörenleri (AI AGENTS)
  • Fonksyion Çağırma (Function Calling)

Bu üç boyutun geleceği, YZ'nin gelişimiyle birlikte şekillenecektir. Daha gelişmiş algoritmalar, daha büyük veri kümeleri ve daha güçlü donanımlar sayesinde, bu boyutların her birinde önemli gelişmeler beklenmektedir.

Gelecekte Yazılım Mühendislerini Neler Bekliyor?

Yapay zeka ve yazılım mühendisliğinin geleceği, bu üç boyutun etkileşimine bağlı olacaktır. Yazılım mühendisleri olarak, YZ teorilerini uygulamaya geçiren, YZ araçlarını etkin bir şekilde kullanan veya geliştirdikleri yazılımlara YZ'yi entegre eden yeteneklere sahip olmamız gerekecektir. Bu, yazılım mühendislerinin rolünün yeniden şekilleneceği anlamına geliyor. Mikser örneğinde olduğu gibi, bazı görevler otomatikleşebilirken, yazılımcıların yeni beceriler kazanması ve daha karmaşık projelere odaklanması gerekecektir. Özellikle, YZ sistemlerinin tasarımı, geliştirilmesi, uygulanması ve bakımı konusunda uzmanlaşmak, yazılım mühendisleri için önemli bir avantaj sağlayacaktır.

Gelecekte yazılım mühendislerinin, YZ'nin etik yönlerini de dikkate almaları gerekecektir. Veri gizliliği, önyargıların ortadan kaldırılması ve yapay zeka sistemlerinin şeffaflığı gibi konular, yazılım mühendislerinin sorumluluğunda olacaktır. Ayrıca, farklı disiplinlerden uzmanlarla işbirliği yaparak, daha kapsamlı ve etkili çözümler üretmeleri gerekecektir.

Sizin Fikirleriniz ve Katkılarınız

Bu tartışmayı daha da zenginleştirmek için sizlerin de fikirlerini ve deneyimlerini duymak istiyorum. Yazılım mühendisliği alanında çalışan veya bu alana ilgi duyan herkesin görüşleri benim için değerli. Lütfen düşüncelerinizi, önerilerinizi ve sorularınızı yorumlar kısmında paylaşmaktan çekinmeyin.


🎥 Murat Karakaya Akademi YouTube Kanalı'ndaki Tamamını İzleyin

Yapay Zeka ve Yazılım Mühendisliği İlişkisi

👉 Tam eğitimi izlemek için buraya tıklayın: YouTube'da İzle