Ana içeriğe geç
Kategoriye Dön

Ollama Kurulumu: Yerel LLM Çalıştırma Rehberi

Ollama kurulumu, yerel LLM modelleri çalıştırma (Llama 3, Mistral, Gemma), API kullanımı, model yönetimi, GPU hızlandırma ve Docker ile deployment.

Okuma süresi: 15 dk AI & ML Self-Hosting
ollamallmyapay zekaself-hostingdockergpullama

İçindekiler

Ollama Kurulumu: Yerel LLM Çalıştırma Rehberi

Ollama, büyük dil modellerini (LLM) yerel sunucunuzda kolayca çalıştırmanızı sağlayan açık kaynaklı bir araçtır. Llama 3, Mistral, Gemma, Phi-3 ve daha birçok modeli tek bir komutla indirip kullanabilirsiniz. Bu rehberde Ollama kurulumunu, model yönetimini, API kullanımını ve GPU hızlandırmayı detaylı olarak ele alacağız.

Ollama Nedir?

Ollama, LLM modellerini yerel ortamda çalıştırmak için tasarlanmış hafif bir çalışma zamanıdır. Docker benzeri bir yaklaşımla modelleri indirip yönetmenizi sağlar. Temel özellikleri:

  • Kolay Kurulum: Tek komutla kurulum ve model indirme
  • Geniş Model Desteği: Llama 3, Mistral, Gemma, Phi-3, CodeLlama, Qwen ve daha fazlası
  • REST API: OpenAI uyumlu API endpoint
  • GPU Hızlandırma: NVIDIA ve AMD GPU desteği
  • Modelfile: Özel model yapılandırmaları oluşturma
  • Düşük Kaynak Kullanımı: Quantize edilmiş modeller ile düşük bellek tüketimi

Sistem Gereksinimleri

BileşenMinimumÖnerilen
RAM8 GB16 GB+
Disk20 GB50 GB+
GPU (opsiyonel)NVIDIA 4 GB VRAMNVIDIA 8 GB+ VRAM
İşletim SistemiLinux, macOS, WindowsUbuntu 22.04 LTS

Linux'ta Kurulum

Ollama'yı Linux'a kurmak için resmi kurulum scriptini kullanın:

hljs bash
curl -fsSL https://ollama.com/install.sh | sh

Kurulum tamamlandıktan sonra Ollama servisi otomatik olarak başlar. Durumu kontrol edin:

hljs bash
systemctl status ollama

Çıktı:

● ollama.service - Ollama Service
     Loaded: loaded (/etc/systemd/system/ollama.service.d/...)
     Active: active (running)

Manuel Kurulum

Eğer script çalışmazsa manuel kurulum yapabilirsiniz:

hljs bash
# Binary indirme
curl -L https://ollama.com/download/ollama-linux-amd64 -o /usr/local/bin/ollama
chmod +x /usr/local/bin/ollama

# Ollama kullanıcısı oluşturma
useradd -r -s /bin/false -m -d /usr/share/ollama ollama

# Systemd servis dosyası
cat > /etc/systemd/system/ollama.service << 'EOF'
[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="HOME=/usr/share/ollama"

[Install]
WantedBy=default.target
EOF

systemctl daemon-reload
systemctl enable --now ollama

Docker ile Kurulum

Ollama'yı Docker container olarak çalıştırmak için:

CPU Modu

hljs bash
docker run -d \
  --name ollama \
  -p 11434:11434 \
  -v ollama_data:/root/.ollama \
  ollama/ollama

GPU Modu (NVIDIA)

hljs bash
docker run -d \
  --name ollama \
  --gpus all \
  -p 11434:11434 \
  -v ollama_data:/root/.ollama \
  ollama/ollama

Docker Compose

hljs yaml
version: '3.8'
services:
  ollama:
    image: ollama/ollama
    container_name: ollama
    ports:
      - "11434:11434"
    volumes:
      - ollama_data:/root/.ollama
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    restart: unless-stopped

volumes:
  ollama_data:

Model İndirme ve Çalıştırma

Model İndirme

hljs bash
# Llama 3.1 8B modeli
ollama pull llama3.1

# Mistral 7B
ollama pull mistral

# Google Gemma 2 9B
ollama pull gemma2

# Microsoft Phi-3
ollama pull phi3

# CodeLlama (kod üretimi için)
ollama pull codellama

# Küçük model (düşük RAM için)
ollama pull llama3.1:8b-q4_0

Model Çalıştırma

hljs bash
# İnteraktif sohbet
ollama run llama3.1

# Tek seferlik soru
ollama run llama3.1 "Linux'ta disk kullanımını nasıl kontrol ederim?"

# Sistem promptu ile
ollama run llama3.1 --system "Sen bir Linux sistem yöneticisisin."

Model Yönetimi

hljs bash
# Yüklü modelleri listele
ollama list

# Model bilgisi
ollama show llama3.1

# Model silme
ollama rm mistral

# Çalışan modelleri göster
ollama ps

# Model kopyalama
ollama cp llama3.1 my-llama

REST API Kullanımı

Ollama, port 11434'te bir REST API sunar:

Sohbet Tamamlama

hljs bash
curl http://localhost:11434/api/chat -d '{
  "model": "llama3.1",
  "messages": [
    {
      "role": "system",
      "content": "Sen yardımcı bir asistansın."
    },
    {
      "role": "user",
      "content": "Docker nedir?"
    }
  ],
  "stream": false
}'

Metin Üretimi

hljs bash
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.1",
  "prompt": "Nginx reverse proxy yapılandırması yaz",
  "stream": false
}'

Embedding Oluşturma

hljs bash
curl http://localhost:11434/api/embeddings -d '{
  "model": "llama3.1",
  "prompt": "Sunucu güvenliği en iyi uygulamalar"
}'

Python ile API Kullanımı

hljs python
import requests
import json

def chat_with_ollama(prompt, model="llama3.1"):
    response = requests.post(
        "http://localhost:11434/api/chat",
        json={
            "model": model,
            "messages": [{"role": "user", "content": prompt}],
            "stream": False
        }
    )
    return response.json()["message"]["content"]

# Kullanım
result = chat_with_ollama("Python'da liste sıralama nasıl yapılır?")
print(result)

Modelfile ile Özel Model Oluşturma

Modelfile, Docker'daki Dockerfile benzeri bir yapılandırma dosyasıdır:

hljs dockerfile
# Modelfile
FROM llama3.1

# Sistem promptu
SYSTEM """Sen REXE Teknoloji teknik destek asistanısın. 
Sunucu yönetimi, Docker, Linux ve ağ konularında yardımcı olursun.
Yanıtlarını Türkçe ver."""

# Model parametreleri
PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER num_ctx 4096
PARAMETER stop "<|eot_id|>"

Özel modeli oluşturun:

hljs bash
ollama create rexe-assistant -f Modelfile
ollama run rexe-assistant

GPU Hızlandırma

NVIDIA GPU

Ollama, NVIDIA GPU'ları otomatik algılar. CUDA sürücülerinin kurulu olduğundan emin olun:

hljs bash
# NVIDIA sürücü kontrolü
nvidia-smi

# CUDA versiyonu
nvcc --version

# Ollama GPU kullanımını doğrulama
ollama run llama3.1 "test" 2>&1 | grep -i gpu

AMD GPU (ROCm)

hljs bash
# ROCm desteği ile Ollama
curl -fsSL https://ollama.com/install.sh | OLLAMA_ACCELERATION=rocm sh

# Docker ile AMD GPU
docker run -d \
  --name ollama \
  --device /dev/kfd \
  --device /dev/dri \
  -p 11434:11434 \
  -v ollama_data:/root/.ollama \
  ollama/ollama:rocm

GPU Bellek Yönetimi

hljs bash
# Ortam değişkenleri ile GPU yapılandırması
export OLLAMA_NUM_GPU=1          # Kullanılacak GPU sayısı
export OLLAMA_GPU_MEMORY=6144    # Maksimum GPU belleği (MB)
export OLLAMA_MAX_LOADED_MODELS=2 # Aynı anda yüklü model sayısı

# Belirli GPU'yu seçme
export CUDA_VISIBLE_DEVICES=0

Ortam Değişkenleri

hljs bash
# /etc/systemd/system/ollama.service.d/override.conf
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"    # Tüm arayüzlerden erişim
Environment="OLLAMA_MODELS=/data/ollama"     # Model dizini
Environment="OLLAMA_NUM_PARALLEL=4"          # Paralel istek sayısı
Environment="OLLAMA_MAX_LOADED_MODELS=2"     # Yüklü model limiti
Environment="OLLAMA_KEEP_ALIVE=5m"           # Model bellekte kalma süresi

Değişiklikleri uygulayın:

hljs bash
systemctl daemon-reload
systemctl restart ollama

Performans İpuçları

hljs bash
# Quantize model kullanarak RAM tasarrufu
ollama pull llama3.1:8b-q4_0    # 4-bit quantize (~4.7 GB)
ollama pull llama3.1:8b-q5_1    # 5-bit quantize (~5.7 GB)
ollama pull llama3.1:8b-q8_0    # 8-bit quantize (~8.5 GB)

# Context window ayarı
ollama run llama3.1 --num-ctx 2048  # Daha düşük = daha az bellek

REXE GPU sunucularında Ollama ile büyük dil modellerini yüksek performansla çalıştırabilirsiniz. NVIDIA A100/H100 GPU'lar ile 70B parametreli modeller bile hızlı yanıt verir.