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.
İç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şen | Minimum | Önerilen |
|---|---|---|
| RAM | 8 GB | 16 GB+ |
| Disk | 20 GB | 50 GB+ |
| GPU (opsiyonel) | NVIDIA 4 GB VRAM | NVIDIA 8 GB+ VRAM |
| İşletim Sistemi | Linux, macOS, Windows | Ubuntu 22.04 LTS |
Linux'ta Kurulum
Ollama'yı Linux'a kurmak için resmi kurulum scriptini kullanın:
curl -fsSL https://ollama.com/install.sh | sh
Kurulum tamamlandıktan sonra Ollama servisi otomatik olarak başlar. Durumu kontrol edin:
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:
# 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
docker run -d \
--name ollama \
-p 11434:11434 \
-v ollama_data:/root/.ollama \
ollama/ollama
GPU Modu (NVIDIA)
docker run -d \
--name ollama \
--gpus all \
-p 11434:11434 \
-v ollama_data:/root/.ollama \
ollama/ollama
Docker Compose
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
# 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
# İ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
# 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
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
curl http://localhost:11434/api/generate -d '{
"model": "llama3.1",
"prompt": "Nginx reverse proxy yapılandırması yaz",
"stream": false
}'
Embedding Oluşturma
curl http://localhost:11434/api/embeddings -d '{
"model": "llama3.1",
"prompt": "Sunucu güvenliği en iyi uygulamalar"
}'
Python ile API Kullanımı
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:
# 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:
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:
# 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)
# 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
# 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
# /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:
systemctl daemon-reload
systemctl restart ollama
Performans İpuçları
# 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.
İlgili Makaleler
Open WebUI Kurulumu: ChatGPT Benzeri Arayüz ile Yerel AI
Open WebUI kurulumu Docker ile, Ollama entegrasyonu, kullanıcı yönetimi, RAG (belge sorgulama), model yönetimi, özel promptlar ve çoklu kullanıcı desteği.
GPU Sunucuda AI Model Deployment: NVIDIA CUDA Rehberi
NVIDIA sürücü kurulumu, CUDA toolkit, nvidia-container-toolkit, vLLM ile model serving, GPU monitoring ve Docker ile AI model deployment rehberi.
Stable Diffusion Kurulumu: Self-Hosted Görsel Üretimi
Stable Diffusion kurulumu, AUTOMATIC1111 ve ComfyUI arayüzleri, model indirme, LoRA eğitimi, ControlNet kullanımı ve Docker ile self-hosted görsel üretimi rehberi.