AI Sözlüğü
Local AI
En kolay başlangıç

Ollama

Tek komutla local LLM — başlangıç için ideal

Genel bakış

Ollama, llama.cpp motoru üzerine inşa edilmiş, tek komutla local LLM çalıştırmayı sağlayan bir geliştirici aracı. Modelleri kendi registry'sinden indirir, GGUF formatında saklar, OpenAI uyumlu bir API açar. Kurulumdan ilk konuşmaya 5 dakika.

Tek-stream odaklı: aynı anda 1 kullanıcıyı çok hızlı yanıtlar, ama production tipi 50+ eşzamanlı istek için tasarlanmamıştır. Mac'te Metal, NVIDIA'da CUDA, AMD'de ROCm — donanımı otomatik algılar.

Kurulum

# Homebrew
brew install ollama

# veya .dmg installer:
# https://ollama.com/download/Ollama-darwin.zip

ollama serve &
ollama --version

Yapılandırma

İlk model indirip çalıştırmak — Ollama otomatik olarak donanıma uygun quantization'ı seçer (genelde Q4_K_M).

Model indir & sohbetbash
# Model çek (otomatik Q4_K_M)
ollama pull llama3.1:8b

# Veya direkt çalıştır (yoksa otomatik indirir)
ollama run llama3.1:8b
> Merhaba, kendini tanıt
... cevap ...
> /bye

# Yüklü modelleri listele
ollama list
ollama show llama3.1:8b
Ortam değişkenleri (env)bash
# Model deposunun yeri (varsayılan: ~/.ollama/models)
export OLLAMA_MODELS=/Volumes/External/ollama-models

# Aynı anda yüklü kalacak model sayısı
export OLLAMA_MAX_LOADED_MODELS=2

# Eşzamanlı istek
export OLLAMA_NUM_PARALLEL=4

# Context length (varsayılan 2048!)
export OLLAMA_CONTEXT_LENGTH=8192

# Sunucu adresi (uzak erişim için)
export OLLAMA_HOST=0.0.0.0:11434

# GPU katmanı (otomatik algılar, override için)
export OLLAMA_NUM_GPU=999  # tüm katmanları GPU'ya
Modelfile — kendi varyantındockerfile
# Modelfile
FROM llama3.1:8b

PARAMETER temperature 0.3
PARAMETER num_ctx 8192
PARAMETER top_p 0.9

SYSTEM """Sen Türkçe konuşan bir kod asistanısın.
Kısa ve teknik cevap ver."""

# Build & run:
# ollama create mybot -f Modelfile
# ollama run mybot

Donanım hızlandırma

Ollama donanımı otomatik algılar; ayar gerektirmez. Apple Silicon'da Metal Performance Shaders üzerinden GPU + Neural Engine kullanır. NVIDIA'da CUDA, AMD'de ROCm. CPU yedeği var ama 7B'den büyük modellerde yavaş.

Apple Silicon (M1/M2/M3/M4)Metal (otomatik), unified memory
NVIDIA GPUCUDA 11.4+ (otomatik), tüm RTX serisi
AMD GPUROCm (Linux), RDNA2/3 ailesi
Intel MacSadece CPU — yavaş
CPU fallback
Multi-GPUTek node, tensor split desteklenmez

Model formatları & quantization

Format: GGUF (llama.cpp standardı). Her model birden çok quantization varyantında gelir; kullanıcı seçmezse Ollama Q4_K_M çeker. Resmi registry'de Llama, Mistral, Qwen, DeepSeek, Phi, Gemma, vs. — Hugging Face'den de GGUF çekilebilir.

Quantization seçimibash
# Varsayılan (Q4_K_M)
ollama pull llama3.1:8b

# Daha iyi kalite, daha çok RAM
ollama pull llama3.1:8b-instruct-q5_K_M
ollama pull llama3.1:8b-instruct-q8_0

# Daha küçük (3-4 GB), kalite kaybı kabul edilebilir
ollama pull llama3.1:8b-instruct-q3_K_M

# Hugging Face'den GGUF
ollama pull hf.co/bartowski/Qwen2.5-7B-Instruct-GGUF:Q4_K_M
Q2_KÇok küçük — kaliteyi düşürür, sadece deneme
Q3_K_MKüçük, kabul edilebilir kalite
Q4_K_M ★Tatlı nokta — varsayılan, dengeli
Q5_K_MDaha kaliteli, %25 daha fazla VRAM
Q8_0Neredeyse FP16 kalitesi, 2× boyut
FP16Kayıpsız ama büyük (8B = 16 GB)

API

İki API: kendi native API'si (port 11434, /api/chat, /api/generate) ve OpenAI uyumlu API (/v1/chat/completions). Mevcut OpenAI client'larıyla base_url değiştirip kullanabilirsin.

OpenAI uyumlu çağrı (Python)Python
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama",  # gerekli ama kullanılmıyor
)

resp = client.chat.completions.create(
    model="llama3.1:8b",
    messages=[{"role": "user", "content": "Selam!"}],
    stream=True,
)
for chunk in resp:
    print(chunk.choices[0].delta.content or "", end="", flush=True)
Native API (curl)bash
curl http://localhost:11434/api/chat -d '{
  "model": "llama3.1:8b",
  "messages": [{"role":"user","content":"Selam"}],
  "options": {
    "temperature": 0.3,
    "num_ctx": 8192,
    "num_predict": 256
  }
}'

Performans

Tek-stream throughput (M2 Max, Llama-3.1-8B Q4)~50 tok/s
Tek-stream throughput (RTX 4090, Llama-3.1-8B Q4)~110 tok/s
İlk-token gecikmesi (TTFT)100-300 ms (sıcak model)
Eşzamanlı istekOLLAMA_NUM_PARALLEL ile, ama vLLM'in çok altında
Soğuk model yükleme5-30 sn (boyut + disk hızına bağlı)
RAM/VRAM verimliliğiOrta — KV cache paged değil

Sık yapılan hatalar

  • Varsayılan context 2048OLLAMA_CONTEXT_LENGTH ya da Modelfile'da PARAMETER num_ctx ayarlamazsan, 2048'de takılırsın. Uzun bağlam isteyip cevabın boş gelmesinin sebebi genelde bu.
  • Production için tasarlanmamıştırContinuous batching yok, paged attention yok. 10 eşzamanlı kullanıcıda latency hızla yükselir. Production sunucusu için vLLM kullan.
  • Auto-quant tahmini bazen yanılırOllama RAM'ine bakıp quantization seçer ama bazen küçük modeli aşırı sıkıştırır. Önemli işlerde Q5_K_M veya Q8_0 elle çek.
  • Uzaktan erişim güvensiz defaultOLLAMA_HOST=0.0.0.0 yaparsan port 11434 dünyaya açılır — auth yok. Reverse proxy + auth (Caddy, nginx, Tailscale) zorunlu.

Kaynaklar