Showing posts with label Derin Öğrenme. Show all posts
Showing posts with label Derin Öğrenme. 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

Teknofest Yapay Zeka Yarışması: Tıp Doktorundan Derece Tüyoları

Teknofest Sağlıkta Yapay Zeka Yarışması: Bir Tıp Doktorunun Dereceye Uzanan Yolculuğu

Merhabalar arkadaşlar, Murat Karakaya Akademi kanalına ve bloğuna hoş geldiniz. Bugün, özellikle yapay zekaya ilgi duyan ancak "Ben mühendis değilim, bu işi yapabilir miyim?" diye soran herkes için ilham verici bir başarı hikayesini ve teknik bir rehberi paylaşıyoruz.

Konuğumuz, 2019 Çapa Tıp mezunu olan ve mesleğini icra ederken yapay zeka alanında kendini sıfırdan geliştirerek Teknofest "Sağlıkta Yapay Zeka" yarışmasında 5800 takım arasından finalist olup 7.lik derecesi elde eden Dr. Alperen Kaban. Bu yazıda, Alperen Hocamızın tecrübelerinden yola çıkarak; sıfırdan öğrenme sürecinden DICOM verilerinin sanatsal işlenişine kadar tüm detayları inceleyeceğiz.

Bu değerli tecrübe aktarımını ve yarışma atmosferini Alperen Hocamızın kendi ağzından dinlemek için videoyu izlemenizi şiddetle öneririm:

Bu Eğitimde Neler Öğreneceksiniz?

  • Tıp doktoru olarak sıfırdan yapay zeka uzmanlığına geçiş metotları (MIT OCW, Kaggle ve ötesi).
  • Teknofest Raporlama Aşamaları: Proje Sunuş ve Detay Raporunda jürinin beklediği kritik detaylar.
  • Tıbbi görüntüleme (DICOM) verileriyle çalışma: 16-bit hassasiyeti ve veri kaybını önleme yolları.
  • Kaggle ve Teknofest veri setleri arasındaki yapısal farklar ve model stratejileri.
  • Final alanındaki donanım hazırlığı: Yedek bilgisayarın ve Docker kullanımının önemi.

1. Sıfırdan Başlamak: Bir Doktorun AI Yolculuğu

Dr. Alperen Kaban, 2019 yılında mezun olduktan sonra geleneksel yollar yerine programlama öğrenmeye karar veriyor. Sürecini şu şekilde özetliyor: "İlk yıl programlamanın temellerini (C ve Python) öğrendim. Google'ın AlphaGo belgeseli beni çok etkiledi ve bu alanın dünyayı değiştireceğine inandım."

Hocamızın önerdiği kaynak rotası ise altın değerinde:

  • MIT OCW (OpenCourseWare): Özellikle bilgisayar bilimi temelleri için 6.001 gibi dersler.
  • YouTube ve Udemy: Uygulamalı projeler (Tutorials).
  • Kaggle: Bitmiş yarışmaların çözümlerini incelemek ve lider tablolarındaki yöntemleri analiz etmek.

2. Teknofest Raporlama ve Strateji: Sadece Kod Yetmez

Teknofest, sadece en yüksek skoru alanın kazandığı bir yer değildir. Süreç; Proje Sunuş Raporu, Proje Detay Raporu ve Finaller şeklinde üç aşamadan oluşur. Alperen Hoca, birçok takımın "raporlama" aşamasında elendiğine dikkat çekiyor.

Raporun Püf Noktaları:

  • Literatür Taraması: Amerika'yı yeniden keşfetmeyin. Benzer problemler için hangi makaleler neyi önermiş? (Örn: Segmentasyon için Unet mi, Mask R-CNN mi?)
  • Özgün Değer: Siz bu literatürün üzerine ne koyuyorsunuz? Hangi veri artırma (Augmentation) tekniklerini denediniz?
  • Analitik Yaklaşım: ChatGPT ile doldurulmuş basit metinler yerine; verinin istatistiksel analizini, sınıf dengesizliğini ve preprocessing (ön işleme) basamaklarını detaylandırın.

3. Teknik Derinlik: DICOM ve Ön İşleme (Preprocessing)

Tıbbi verilerle çalışırken en büyük hata, DICOM dosyalarını standart JPG gibi görmektir. DICOM dosyaları 16-bit veri ve metadata (üst veri) barındırır. Hocamızın vurguladığı gibi: "16-bit veriyi yanlışlıkla 8-bit'e cast ederseniz, teşhis koyduracak o minik piksel farklarını kaybedersiniz."

Aşağıdaki Python örneği, BT (Bilgisayarlı Tomografi) verilerini doğru şekilde normalize etmek ve "Hounsfield Unit" (HU) dönüşümü yapmak için temel bir çerçeve sunar:

import pydicom
import numpy as np

def dicom_to_tensor(filepath):
    # DICOM dosyasını metadata ile oku
    ds = pydicom.dcmread(filepath)
    image = ds.pixel_array.astype(float)
    
    # Metadata'dan Rescale Slope ve Intercept değerlerini al
    # Bu değerler BT görüntülerindeki HU değerlerini hesaplamak için şarttır!
    slope = ds.RescaleSlope if 'RescaleSlope' in ds else 1
    intercept = ds.RescaleIntercept if 'RescaleIntercept' in ds else 0
    
    # Gerçek HU değerlerine dönüştür
    image = (image * slope) + intercept
    
    # Windowing (Pencereleme) - Akciğer için örnek: Center -600, Width 1500
    win_center, win_width = -600, 1500
    img_min = win_center - win_width // 2
    img_max = win_center + win_width // 2
    
    # Sınırları aşan pikselleri kırp (Clipping)
    image = np.clip(image, img_min, img_max)
    
    # 0-1 Normalizasyonu
    image = (image - img_min) / (img_max - img_min)
    
    return image

Dikkat Edilmesi Gerekenler: Maske (Segmentasyon) verileri her zaman iyi organize edilmiş olmayabilir. Zip dosyalarının içindeki klasör yapılarını manuel analiz etmek gerekebilir.

4. Kaggle vs. Teknofest Farkı

Dr. Alperen Kaban'a göre iki platformun veri yapıları çok farklıdır:

  • Kaggle: Veri seti çok büyük ve gürültülüdür (Noisy). Modelin "genellenebilirliği" (Generalization) daha zordur.
  • Teknofest: Veri seti daha "butik" ve temizdir. Radyologlar tarafından 3 aşamalı kontrolden geçirilmiş, kesin tanılı verilerdir. Ancak veri az olduğu için Overfitting (Aşırı öğrenme) riskine karşı dikkatli olunmalıdır.

5. Final Günü Hazırlığı: Sınav Atmosferi

Final alanına geldiğinizde sadece yazılım bilginiz değil, kriz yönetiminiz de test edilir. Hocamızın hayati önerileri:

  • İnternetsiz Çalışma: Alanda internet çok yavaş veya kesik olabilir. Tüm kütüphaneleri (PyTorch, TF, OpenCV) önceden kurup, modellerinizi internetsiz çalışacak şekilde yedekleyin.
  • Donanım: Yanınızda mutlaka güçlü bir yedek bilgisayar götürün. Final çıkarımı (Inference) için sınırlı süreniz (genelde 1 saat) olacak.
  • Formatlar: Sonuçları genelde bir JSON objesi olarak yüklemeniz beklenir. Kodunuzun bu formatı hatasız ürettiğinden emin olun.

Sıkça Sorulan Sorular (SSS)

1. Mühendislik okumayan biri bu yarışmada başarılı olabilir mi?
Evet! Alperen Hocamız bunun en canlı örneğidir. Ciddi bir çalışmayla (yaklaşık 1-2 yıl) bir bilgisayar mühendisi seviyesine gelmek mümkündür.

2. Yarışmada bulut tabanlı (Colab/Kaggle) araçlar kullanılabilir mi?
Ön hazırlık aşamasında evet, ancak final anında internet kullanımı yasak olabilir. Tüm işlemlerinizi yerel (local) donanımınızda yapabilmelisiniz.

3. Takım kurarken nelere dikkat edilmeli?
Görev dağılımını en baştan yapın (Veri temizliği, Rapor yazımı, Model eğitimi). İletişim sorunu olmayan, disiplinli arkadaşları seçmek "zaman çizelgesine" uymak için kritiktir.

Sonuç

Yapay zeka sadece bilgisayar mühendislerinin tekelinde değil; her disiplinden gelen uzmanın kendi bilgisiyle harmanladığında devrim yaratabileceği bir alandır. Alperen Hocamızın başarısı, sabır ve doğru kaynak takibinin sonucudur. Siz de Teknofest'e katılarak bu ekosistemin bir parçası olabilirsiniz.

Daha Fazlasını Keşfedin:
Yapay zeka, derin öğrenme ve modern yazılım dünyasındaki güncel gelişmeleri, Türkçe ve İngilizce anlatımlarla takip etmek için Murat Karakaya Akademi kanalımıza davetlisiniz.

Kanalı Ziyaret Et & Abone Ol 🚀

#MuratKarakayaAkademi #Teknofest #YapayZeka #SağlıktaYapayZeka #DeepLearning #Python #DICOM #DrAlperenKaban