Blog Yazısı

Yerel Yapay Zekâ (Local AI) Dağıtım ve Optimizasyon Mimarisi: Ollama, LM Studio, AnythingLLM ve Unsloth Kılavuzu

Yerel Yapay Zekâ (Local AI) Dağıtım ve Optimizasyon Mimarisi: Ollama, LM Studio, AnythingLLM ve Unsloth Kılavuzu

23 Eylül 2026 Admin User 5 görüntülenme

Bulut tabanlı Yapay Zekâ (YZ) servis sağlayıcılarına olan bağımlılık; veri gizliliği, KVKK/GDPR uyumluluğu, öngörülemeyen API maliyetleri ve ağ gecikmesi gibi stratejik kısıtları beraberinde getirmektedir. Kurum içi veri mahremiyetini temin etmek ve açık kaynaklı Büyük Dil Modellerini (LLM) bağımsız bir altyapıda barındırmak amacıyla yerel çıkarım (local inference) ve yerel ince ayar (fine-tuning) mimarileri yaygınlaşmıştır.

Bu makalede; yerel YZ modellerinin çalışma mekanizması, donanım optimizasyonları ve sektör standardı haline gelen dört temel araç (Ollama, LM Studio, AnythingLLM ve Unsloth) teknik ve yönetsel boyutlarıyla incelenmektedir.

1. Yerel Çıkarımın Temelleri ve Donanım Parametreleri

Büyük Dil Modellerinin yerel donanımda çalışabilmesi, model parametrelerinin belleğe (RAM / VRAM) yüklenmesi ve tensör matris çarpımlarının işlenmesi esasına dayanır. Bu süreçte donanım kaynaklarının verimli yönetimi için Kuantizasyon (Quantization) tekniği uygulanır.

  • Hassasiyet Azaltma (Kuantizasyon): 16-bit kayan nokta (FP16) değerleri; GGUF formatı kullanılarak 4-bit (örn. Q4_K_M) veya 8-bit (Q8_0) tamsayı seviyesine indirgenir. Bu yaklaşım, model performansında istatistiksel olarak ihmal edilebilir bir kayıp yaratırken bellek gereksinimini yaklaşık %60–75 oranında azaltır.

  • Bellek Maliyeti Hesaplama:

    $$\text{Bellek İhtiyacı (GB)} \approx \left(\frac{\text{Parametre Sayısı (Milyar)} \times \text{Bit Derinliği}}{8}\right) + \text{Bağlam Penceresi (KV Cache Overhead)}$$

    Örneğin, 8 milyar parametreli bir model Q4 formatında yaklaşık 4.5–5.5 GB VRAM kaplarken, 16K bağlam penceresi ile bu ihtiyaç 6.5–7.5 GB bandına ulaşır.

  • İşlem Birimleri: NVIDIA CUDA çekirdekleri saf çıkarım hızı (token/saniye) açısından en verimli performansı sunar. Apple Silicon mimarisi ise Birleşik Bellek (Unified Memory) sayesinde 70B ve üzeri büyük parametreli modelleri tekil tüketici cihazlarında barındırma kabiliyetine sahiptir.

2. Araçların Mimarisi ve Karşılaştırmalı Analizi

Yerel yapay zekâ ekosisteminde yer alan platformlar farklı katmanlara ve kullanım senaryolarına hizmet eder:

PlatformRol / KatmanKullanıcı ProfiliÖne Çıkan YetenekÇıkarım Motoru
OllamaArka Plan Servisi / CLI / APIGeliştiriciler, Sistem YöneticileriDocker benzeri yönetim, arka plan servisi, hafif mimarillama.cpp
LM StudioMasaüstü İstemcisi / LaboratuvarAraştırmacılar, Son KullanıcılarModel kütüphanesi tarama, görsel parametre denetimi, yerel sunucullama.cpp
AnythingLLMRAG Platformu / Kurumsal UygulamaKurumlar, Bilgi Yöneticileri, EkiplerDahili vektör veritabanı, belge indeksleme, çoklu kullanıcı yönetimiHarici / Dahili Motor
Unslothİnce Ayar / Model EğitimiVeri Bilimciler, Makine Öğrenimi Müh.2–5x hızlı ince ayar, %80'e varan bellek tasarrufu, LoRA/QLoRAÖzel CUDA Çekirdekleri

3. Kurulum ve Entegrasyon Kılavuzları

3.1. Ollama: Geliştirici ve Sistem Odaklı Yerel Sunucu

Ollama, modelleri tek bir komutla indiren, işletim sistemi servisi olarak çalışan ve RESTful API sunan bir çalışma zamanıdır.

  1. Kurulum:

    • Linux/macOS:

      Bash
      curl -fsSL https://ollama.com/install.sh | sh
      
    • Windows: ollama.com üzerinden indirilen yürütülebilir dosya ile servis olarak başlatılır.

  2. Model İndirme ve Çalıştırma:

    Bash
    # Modeli yerel depoya çekme
    ollama pull llama3.1:8b
    
    # Terminal üzerinden interaktif oturum açma
    ollama run llama3.1:8b
    
  3. Programatik Entegrasyon: Ollama, varsayılan olarak http://localhost:11434 adresinde OpenAI uyumlu bir uç nokta sunar.

Python
# Python ile Ollama API Entegrasyonu (OpenAI Standart Şeması)
import requests

url = "http://localhost:11434/api/generate"
payload = {
    "model": "llama3.1:8b",
    "prompt": "Yönetim organizasyon teorilerinde Weberyan bürokrasi modelinin modern kısıtları nelerdir?",
    "stream": False
}
response = requests.post(url, json=payload)
print(response.json()["response"])
PHP
<?php
// PHP cURL ile Yerel Ollama Çıkarımı
$payload = json_encode([
    'model' => 'llama3.1:8b',
    'prompt' => 'Örgütsel bağlılık ve liderlik stilleri arasındaki ilişkiyi açıkla.',
    'stream' => false
]);

$ch = curl_init('http://localhost:11434/api/generate');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type:application/json']);

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
echo $result['response'];
?>

3.2. LM Studio: Arayüz ve Görsel Çıkarım Laboratuvarı

LM Studio, Hugging Face üzerindeki GGUF formatlı modelleri doğrudan arayüz içerisinden keşfetme ve donanım limitlerine göre GPU katmanlama (GPU offloading) ayarlarını görselleştirme olanağı sunar.

  1. Model İndirme: Arama sekmesinden ilgili model (örn. Qwen/Qwen2.5-7B-Instruct-GGUF) bulunur ve VRAM kapasitesine göre uygun kuantizasyon seviyesi (örn. Q4_K_M) seçilerek indirilir.

  2. Donanım Eşleme (Offloading): Sağ panelden "GPU Offload" seçeneği etkinleştirilir. Grafik kartının VRAM kapasitesine göre model katmanlarının (layer) bir kısmı veya tamamı GPU'ya aktarılır; sığmayan katmanlar sistem RAM'ine bırakılır.

  3. Yerel Sunucu Modu: "Developer / Local Server" sekmesinden OpenAI uyumlu http://localhost:1234/v1 portu tek tıkla ayağa kaldırılarak harici uygulamalar bu sunucuya yönlendirilebilir.

3.3. AnythingLLM: Belge Tabanlı RAG (Retrieval-Augmented Generation)

AnythingLLM; PDF, DOCX, TXT formatlarındaki kurumsal dokümanları indeksleyerek modellerin kurum içi veri üzerinde halüsinasyonsuz yanıt üretmesini sağlayan bütünleşik bir RAG sistemidir.

  1. Bağlantı Kurulumu: Kurulumun ardından "Settings" menüsünden LLM sağlayıcısı olarak Ollama veya LM Studio seçilir (örneğin Ollama seçildiğinde [http://127.0.0.1:11434](http://127.0.0.1:11434) portu bağlanır).

  2. Gömme Modeli (Embedding): Dokümanların anlamsal vektörlere dönüştürülmesi için yerel bir embedding modeli (örn. nomic-embed-text veya all-minilm) tercih edilir.

  3. Vektör Veritabanı: Dahili olarak gelen LanceDB ile dokümanlar parçalanır (chunking) ve indekslenir.

  4. Çalışma Alanı (Workspace) ve Doğruluk Denetimi: Kullanıcı arayüzünde ilgili workspace'e yüklenen akademik veya kurumsal raporlar sisteme iliştirilir. Sorgu esnasında model, doğrudan bağlam içi vektörleri referans alarak kaynak gösterimi (citation) üretir; bu mekanizma uydurma veri üretimini (halüsinasyon) minimize eder.

3.4. Unsloth: Yüksek Başarımlı Model İnce Ayarı (Fine-Tuning)

Unsloth; açık kaynaklı LLM'lerin (Llama, Mistral, Gemma, Phi) düşük bellek tüketimiyle fine-tune edilmesi için manuel olarak optimize edilmiş Triton ve CUDA çekirdeklerini kullanan bir açık kaynak kütüphanedir.

  • Standart Hugging Face PEFT/TRL kütüphanelerine kıyasla bellek kullanımını %80'e kadar düşürürken eğitimi 2 ila 5 kat hızlandırır.

  • QLoRA Desteği: 4-bit temel model ağırlıkları dondurulur; yalnızca düşük dereceli adaptör (Low-Rank Adapter) matrisleri eğitilir. Bu sayede 8B boyutundaki bir model, 16 GB VRAM'e sahip tüketici sınıfı bir GPU üzerinde dahi eğitilebilir.

Python
# Unsloth ile Örnek QLoRA İnce Ayar Başlatma Protokolü
from unsloth import FastLanguageModel
import torch

# 1. Modeli ve Tokenizer'ı 4-bit Kuantize Yükleme
max_seq_length = 2048
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="unsloth/Meta-Llama-3.1-8B-Instruct",
    max_seq_length=max_seq_length,
    load_in_4bit=True,
)

# 2. LoRA Parametrelerinin Entegrasyonu
model = FastLanguageModel.get_peft_model(
    model,
    r=16,
    target_modules=["q_proj", "k_proj", "v_proj", "o_proj",
                    "gate_proj", "up_proj", "down_proj"],
    lora_alpha=16,
    lora_dropout=0, # Unsloth optimize eğitim için 0 önerilir
    bias="none",
    use_gradient_checkpointing="unsloth",
)

# 3. Model Eğitildikten Sonra GGUF Formatına Dönüştürme
# Bu adım, eğitilen modeli doğrudan Ollama veya LM Studio'ya aktarır:
# model.save_pretrained_gguf("custom_model", tokenizer, quantization_method="q4_k_m")

Eğitim tamamlandığında elde edilen adaptörler, Unsloth'un dahili save_pretrained_gguf fonksiyonuyla tek adımda GGUF formatına dönüştürülerek bir Modelfile aracılığıyla Ollama'ya aktarılabilir.

4. Bütünleşik Kurumsal Mimari Tasarımı

Yerel YZ operasyonlarında bu dört araç birbirinin alternatifi olarak değil, uçtan uca bir boru hattının (pipeline) tamamlayıcı bileşenleri olarak kurgulanmalıdır:

[Ham Veri / Kurumsal Korpus] 
              │
              ▼
   [Unsloth ile Fine-Tuning] ──(Alan Terminolojisi / Özelleşmiş Görev)
              │
              ▼  (Dışa Aktarma: GGUF)
     [Ollama / LM Studio]    ──(Yerel Çıkarım ve Model Sunucusu Katmanı)
              │
              ▼  (API / Uç Nokta)
     [AnythingLLM Platformu] ──(RAG, Belge İndeksleme, Kurumsal Arayüz)

Bu topoloji sayesinde; kurumun özel terminolojisi ve süreçleri Unsloth ile modele aktarılır; optimize edilen ağırlıklar Ollama üzerinde bir arka plan servisi olarak dağıtılır; dinamik mevzuat ve iç yönergeler ise AnythingLLM içerisine gömülerek RAG mimarisiyle sıfır halüsinasyon hedefi doğrultusunda güvenli bir karar destek sistemi inşa edilir.

Kaynakça

Dettmers, T., Pagnoni, A., Holtzman, A., & Zettlemoyer, L. (2024). QLoRA: Efficient finetuning of quantized LLMs. Advances in Neural Information Processing Systems, 36, 10088–10115.

Frantar, E., Ashkboos, S., Hoefler, T., & Alistarh, D. (2022). GPTQ: Accurate post-training quantization for generative pre-trained transformers. arXiv preprint arXiv:2210.17323.

Gerganov, G. (2023). llama.cpp: Port of Facebook's LLaMA model in C/C++ [Bilgisayar yazılımı]. GitHub. https://github.com/ggerganov/llama.cpp

Lewis, P., Perez, E., Piktus, A., Petroni, F., Karpukhin, V., Goyal, N., Küttler, H., Lewis, M., Yih, W., Rocktäschel, T., Riedel, S., & Kiela, D. (2020). Retrieval-augmented generation for knowledge-intensive NLP tasks. Advances in Neural Information Processing Systems, 33, 9459–9474.

Mintz, D., & Team Unsloth. (2024). Unsloth: Fast and memory-efficient LLM fine-tuning library [Bilgisayar yazılımı]. GitHub. https://github.com/unslothai/unsloth

Ollama Team. (2023). Ollama: Get up and running with large language models locally [Bilgisayar yazılımı]. https://ollama.com

Yazıyı paylaş

KARSEM'i Google'da tercih edilen kaynak yapın

Tek dokunuşla ekleyin; Google'da eğitim ve yapay zekâ aramalarınızda içeriklerimiz üst sıralarda görünsün.

WhatsApp