Yapay Zeka

Fine-tuning: LLM Modellerini Özelleştirme

05 Nov 2025
5 dakika okuma
İninia Teknoloji

Fine-tuning, önceden eğitilmiş büyük dil modellerini (LLM) spesifik görevler veya domainler için özelleştirme sürecidir. OpenAI, Anthropic ve açık kaynak modeller için fine-tuning, kurumsal AI çözümlerinin temelini oluşturur.

Fine-tuning Nedir?

Fine-tuning, foundation model'in (GPT-4, Llama, Mistral vb.) ağırlıklarını özel veri setiyle yeniden eğiterek, belirli bir alanda uzmanlaştırma işlemidir.

Ne Zaman Fine-tuning Gerekir?

  • Prompt engineering yeterli değilse
  • Tutarlı format/stil gerekiyorsa
  • Domain-specific bilgi gerekiyorsa
  • Latency kritikse (kısa prompt'larla)
  • Token maliyetini düşürmek istiyorsanız

Fine-tuning vs RAG vs Prompt Engineering

YöntemKullanım AlanıAvantaj
Prompt EngineeringBasit görevlerHızlı, maliyet yok
RAGGüncel/özel bilgiHalüsinasyon azaltır
Fine-tuningStil/format/davranışTutarlılık, performans

Veri Hazırlığı

Format (OpenAI)

{"messages": [
  {"role": "system", "content": "Sen müşteri hizmeti asistanısın."},
  {"role": "user", "content": "Siparişim nerede?"},
  {"role": "assistant", "content": "Sipariş numaranızı alabilir miyim?"}
]}

Veri Kalitesi İpuçları

  • En az 50-100 örnek (ideal 500+)
  • Çeşitli senaryolar
  • Tutarlı format
  • Gerçek kullanım vakalarından örnekler
  • Edge case'ler dahil

OpenAI Fine-tuning

# 1. Veri yükle
from openai import OpenAI
client = OpenAI()

file = client.files.create(
    file=open("training_data.jsonl", "rb"),
    purpose="fine-tune"
)

# 2. Fine-tuning job başlat
job = client.fine_tuning.jobs.create(
    training_file=file.id,
    model="gpt-3.5-turbo",  # veya gpt-4
    hyperparameters={
        "n_epochs": 3
    }
)

# 3. Modeli kullan
response = client.chat.completions.create(
    model="ft:gpt-3.5-turbo:my-org:custom_suffix:id",
    messages=[{"role": "user", "content": "..."}]
)

Açık Kaynak Modeller (Llama, Mistral)

LoRA (Low-Rank Adaptation)

Tüm model yerine küçük adapter katmanları eğiterek verimli fine-tuning:

from peft import LoraConfig, get_peft_model
from transformers import AutoModelForCausalLM

model = AutoModelForCausalLM.from_pretrained("mistralai/Mistral-7B-v0.1")

lora_config = LoraConfig(
    r=16,
    lora_alpha=32,
    target_modules=["q_proj", "v_proj"],
    lora_dropout=0.05
)

model = get_peft_model(model, lora_config)

QLoRA

4-bit quantization + LoRA ile düşük bellek gereksinimi:

  • 7B model: ~6GB VRAM
  • 13B model: ~10GB VRAM
  • 70B model: ~40GB VRAM

Hyperparameters

  • Epochs: 2-4 genellikle yeterli
  • Learning Rate: 1e-5 ile 5e-5 arası
  • Batch Size: VRAM'a göre
  • LoRA Rank (r): 8-64 arası

Değerlendirme

  • Test seti ayırın (%10-20)
  • A/B testi yapın (base vs fine-tuned)
  • Domain-specific metrikler belirleyin
  • Human evaluation (ölçeklendirilemese de değerli)

Maliyetler

  • OpenAI: $8/1M tokens (training), model kullanım ücreti
  • Açık kaynak: GPU saati (A100: ~$2/saat)
  • Cloud: AWS SageMaker, Google Vertex AI

Fine-tuning, LLM'leri spesifik ihtiyaçlara uyarlamanın güçlü bir yoludur. Doğru veri ve parametrelerle, base modelden çok daha iyi sonuçlar elde edebilirsiniz.

İninia Teknoloji

İstanbul Teknik Üniversitesi ARI Teknokent'te kurulu Ininia Teknoloji, 12+ yıllık deneyimle AR/VR, yapay zeka ve mobil uygulama alanlarında yenilikçi çözümler sunmaktadır.

Projeniz için profesyonel destek mi arıyorsunuz?

12+ yıllık deneyimimizle dijital dönüşümünüzü hızlandıralım.

Ücretsiz Görüşme Talep Et