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:
| Platform | Rol / Katman | Kullanıcı Profili | Öne Çıkan Yetenek | Çıkarım Motoru |
| Ollama | Arka Plan Servisi / CLI / API | Geliştiriciler, Sistem Yöneticileri | Docker benzeri yönetim, arka plan servisi, hafif mimari | llama.cpp |
| LM Studio | Masaüstü İstemcisi / Laboratuvar | Araştırmacılar, Son Kullanıcılar | Model kütüphanesi tarama, görsel parametre denetimi, yerel sunucu | llama.cpp |
| AnythingLLM | RAG Platformu / Kurumsal Uygulama | Kurumlar, Bilgi Yöneticileri, Ekipler | Dahili vektör veritabanı, belge indeksleme, çoklu kullanıcı yönetimi | Harici / Dahili Motor |
| Unsloth | İnce Ayar / Model Eğitimi | Veri 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.
Kurulum:
Linux/macOS:
Bashcurl -fsSL https://ollama.com/install.sh | shWindows:
ollama.comüzerinden indirilen yürütülebilir dosya ile servis olarak başlatılır.
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:8bProgramatik Entegrasyon: Ollama, varsayılan olarak
http://localhost:11434adresinde OpenAI uyumlu bir uç nokta sunar.
# 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 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.
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.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.
Yerel Sunucu Modu: "Developer / Local Server" sekmesinden OpenAI uyumlu
http://localhost:1234/v1portu 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.
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).Gömme Modeli (Embedding): Dokümanların anlamsal vektörlere dönüştürülmesi için yerel bir embedding modeli (örn.
nomic-embed-textveyaall-minilm) tercih edilir.Vektör Veritabanı: Dahili olarak gelen LanceDB ile dokümanlar parçalanır (chunking) ve indekslenir.
Ç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.
# 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
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.