Linux Üzerinde Ollama Kurulumu ve İlk Model Testi
Yapay zeka dünyası artık sadece büyük bulut sağlayıcılarının tekelinde değil. Kendi sunucunda, kendi donanımında, hiçbir verini dışarıya göndermeden büyük dil modelleri çalıştırmak artık gerçekten mümkün ve son derece pratik. Ollama, bu işi inanılmaz derecede kolaylaştıran açık kaynak bir araç. Karmaşık Python ortamlarına, CUDA kurulumlarına saatlerce uğraşmadan, birkaç komutla production kalitesinde modelleri ayağa kaldırabiliyorsun. Bu yazıda Ubuntu/Debian tabanlı bir sistemde Ollama kurulumunu baştan sona anlatacağım, ilk model testlerini yapacağız ve birkaç gerçek dünya senaryosunu ele alacağız.
Sistem Gereksinimleri ve Ön Hazırlık
Ollama’yı çalıştırmadan önce donanım durumunu netleştirmek gerekiyor. CPU üzerinde de modeller çalışır ama performans farkı gece ile gündüz gibi. Gerçekçi olmak gerekirse:
- CPU only kurulum: 8GB+ RAM, modern x86_64 işlemci. Llama 3.2 3B gibi küçük modeller makul hızda çalışır.
- NVIDIA GPU: CUDA 11.8 veya üzeri, minimum 6GB VRAM. 7B modeller için 8GB VRAM ideal.
- AMD GPU: ROCm 5.7+ desteği mevcut, ancak NVIDIA kadar sorunsuz değil.
- Disk alanı: Modeller büyük dosyalar. 7B model ortalama 4-5GB yer tutar, 13B için 8-10GB düşün.
Sistemi güncel tutmak her zaman ilk adım:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git htop
GPU kullanacaksanız NVIDIA sürücülerinizin kurulu olduğunu doğrulayın:
nvidia-smi
Bu komut GPU bilgilerini ve sürücü versiyonunu göstermeli. Eğer command not found alıyorsanız önce NVIDIA driver kurulumu yapmanız gerekiyor. Ollama kurulumuna geçmeden bu adımı atlamayın, yokra sonradan sorun giderme ile vakit kaybedersiniz.
Ollama Kurulumu
Ollama’nın resmi kurulum scripti işleri son derece basitleştiriyor. Script’i indirip çalıştırmak yeterli:
curl -fsSL https://ollama.com/install.sh | sh
Bu script şunları otomatik yapıyor:
- Sisteminize uygun binary’yi indiriyor (Linux x86_64, ARM64 destekli)
/usr/local/bin/ollamakonumuna kuruyorollamaadında bir systemd service oluşturuyor- Servisi başlatıyor
Kurulum tamamlandıktan sonra service durumunu kontrol edin:
sudo systemctl status ollama
Çıktıda Active: active (running) görmelisiniz. Eğer servis başlamamışsa manuel başlatın:
sudo systemctl start ollama
sudo systemctl enable ollama
Ollama varsayılan olarak 127.0.0.1:11434 adresinde dinler. Bunu doğrulayalım:
curl http://localhost:11434/api/tags
Bu endpoint boş bir JSON dönecek çünkü henüz model indirmedik, ama servisin ayakta olduğunu konfirme ediyoruz.
İlk Model İndirme ve Çalıştırma
Model indirmek ollama pull komutuyla yapılıyor. Hangi modeli seçeceğiniz donanımınıza ve kullanım amacınıza göre değişiyor. İlk denemeler için Llama 3.2 3B parametreli model hem hızlı hem makul kaliteli:
ollama pull llama3.2
İndirme süresi internet hızınıza ve model boyutuna göre değişir. Modeller Ollama’nın kendi registry’sinden geliyor, varsayılan depolama dizini /usr/share/ollama/.ollama/models/ konumunda.
İndirme tamamlandıktan sonra direkt konuşmaya başlayabilirsiniz:
ollama run llama3.2
Bu komut interaktif bir chat oturumu açar. >>> promptu görüyorsanız model hazır demektir. Çıkmak için /bye yazın veya Ctrl+D kullanın.
Mevcut modelleri listelemek için:
ollama list
Çıktı şuna benzer bir şey gösterir:
- NAME: Model adı ve versiyonu
- ID: Model hash’i
- SIZE: Diskte kapladığı alan
- MODIFIED: Son güncelleme tarihi
Farklı Model Seçenekleri
Ollama’nın model kütüphanesi oldukça geniş. Birkaç popüler seçenek:
# Mistral 7B - genel amaçlı, güçlü performans
ollama pull mistral
# Code Llama - kod yazma ve analizi için
ollama pull codellama
# Phi-3 Mini - Microsoft'un küçük ama güçlü modeli
ollama pull phi3
# Gemma 2 - Google'ın açık modeli
ollama pull gemma2
# Qwen2.5 - Alibaba'nın çok dilli modeli, Türkçe desteği iyi
ollama pull qwen2.5
Türkçe içerik üretecekseniz qwen2.5 modelini özellikle denemenizi öneririm. Llama modelleri de Türkçe anlıyor ama kalite değişken olabiliyor.
API Üzerinden Model Kullanımı
Gerçek dünya senaryolarında modellerle genellikle API aracılığıyla konuşursunuz. Ollama, OpenAI API formatıyla uyumlu bir REST endpoint sunuyor. Bu da mevcut araçlarla entegrasyonu kolaylaştırıyor.
Basit bir generate isteği:
curl http://localhost:11434/api/generate
-H "Content-Type: application/json"
-d '{
"model": "llama3.2",
"prompt": "Linux sistem yönetimi hakkında 3 önemli ipucu ver",
"stream": false
}'
stream: false yanıtın tek seferde gelmesini sağlıyor, production ortamında streaming genellikle daha iyi kullanıcı deneyimi sunar.
Chat formatında konuşmak için:
curl http://localhost:11434/api/chat
-H "Content-Type: application/json"
-d '{
"model": "llama3.2",
"messages": [
{
"role": "system",
"content": "Sen yardımcı bir Linux sistem yöneticisisin."
},
{
"role": "user",
"content": "Disk kullanımını analiz etmek için hangi komutları kullanmalıyım?"
}
],
"stream": false
}'
Bu format özellikle uygulamalarınıza LLM entegre ederken çok işe yarıyor.
Ollama’yı Ağa Açma
Varsayılan olarak Ollama sadece localhost’tan erişilebilir. Eğer ağınızdaki diğer makinelerden erişmek istiyorsanız veya bir web arayüzü entegre edecekseniz ayarı değiştirmeniz gerekiyor.
Systemd service dosyasını düzenleyin:
sudo systemctl edit ollama
Açılan editöre şunu ekleyin:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Kaydetip servisi yeniden başlatın:
sudo systemctl daemon-reload
sudo systemctl restart ollama
Dikkat: Ollama’yı ağa açtığınızda güvenlik duvarı kurallarına dikkat edin. Production ortamında bu portu doğrudan internete açmayın. Nginx reverse proxy arkasına alın ve en azından temel auth ekleyin.
Firewall ayarı için ufw kullanıyorsanız sadece belirli bir IP’ye izin verebilirsiniz:
sudo ufw allow from 192.168.1.0/24 to any port 11434
Open WebUI Kurulumu
Komut satırı her zaman yeterli olmuyor. Takım arkadaşlarınızın veya kendinizin daha rahat kullanabileceği bir web arayüzü için Open WebUI mükemmel bir seçenek. Docker ile kurulumu çok basit:
docker run -d
--network=host
-v open-webui:/app/backend/data
-e OLLAMA_BASE_URL=http://127.0.0.1:11434
--name open-webui
--restart always
ghcr.io/open-webui/open-webui:main
--network=host kullanıyoruz çünkü container’ın host üzerindeki Ollama’ya erişmesi gerekiyor. Kurulum tamamlandıktan sonra http://localhost:3000 adresinden erişebilirsiniz.
Docker yoksa pip ile de kurabilirsiniz:
pip install open-webui
open-webui serve
Performans Ayarları ve Optimizasyon
Ollama’nın performansını etkileyen birkaç önemli parametre var. Bunları environment variable olarak systemd service’e ekleyebilirsiniz:
sudo systemctl edit ollama
[Service]
# GPU katman sayısı, -1 tüm katmanları GPU'ya yükler
Environment="OLLAMA_NUM_GPU=1"
# Paralel istek sayısı
Environment="OLLAMA_NUM_PARALLEL=2"
# Maksimum model sayısı (RAM/VRAM'a göre ayarlayın)
Environment="OLLAMA_MAX_LOADED_MODELS=2"
# Flash attention etkinleştir (daha hızlı çıkarım)
Environment="OLLAMA_FLASH_ATTENTION=1"
CPU’ya özel optimizasyon için thread sayısını ayarlayabilirsiniz. Modelfile oluştururken PARAMETER num_thread değerini CPU çekirdek sayınıza göre belirleyin.
Özel Model Oluşturma: Modelfile Kullanımı
Ollama’nın en güçlü özelliklerinden biri kendi özelleştirilmiş modellerinizi oluşturabilmeniz. Bir sistem yöneticisi asistanı oluşturalım:
cat > sysadmin-assistant.modelfile << 'EOF'
FROM llama3.2
SYSTEM """
Sen deneyimli bir Linux sistem yöneticisisin. Kullanıcılara teknik sorunları çözmede yardım ediyorsun.
- Her zaman güvenliği ön planda tut
- Komutları açıklamalı ver
- Production ortamında dikkatli olunması gereken adımları belirt
- Türkçe yanıt ver
"""
PARAMETER temperature 0.3
PARAMETER top_p 0.9
PARAMETER num_ctx 4096
MESSAGE user "Merhaba, nasıl yardımcı olabilirsin?"
MESSAGE assistant "Merhaba! Linux sistem yönetimi konusunda yardımcı olmak için buradayım. Sunucu sorunları, performans analizi, güvenlik yapılandırması veya otomasyon konularında sorularınızı yanıtlayabilirim."
EOF
Bu Modelfile’dan model oluşturun:
ollama create sysadmin-assistant -f sysadmin-assistant.modelfile
Artık bu modeli doğrudan çağırabilirsiniz:
ollama run sysadmin-assistant
temperature 0.3 gibi düşük bir değer, teknik konularda daha tutarlı ve öngörülebilir yanıtlar almanızı sağlar. Yaratıcı içerik için bu değeri 0.7-0.9 arasına çıkarabilirsiniz.
Gerçek Dünya Senaryosu: Log Analizi Otomasyonu
Ollama’yı shell script’lerinize entegre ettiğinizde gerçek güç ortaya çıkıyor. Örneğin log dosyalarını analiz eden bir script yazalım:
#!/bin/bash
LOG_FILE="/var/log/syslog"
RECENT_ERRORS=$(grep -i "error|critical|failed" "$LOG_FILE" | tail -50)
if [ -z "$RECENT_ERRORS" ]; then
echo "Son 50 satırda hata bulunamadı."
exit 0
fi
echo "Log dosyasındaki hatalar analiz ediliyor..."
ANALYSIS=$(curl -s http://localhost:11434/api/generate
-H "Content-Type: application/json"
-d "{
"model": "llama3.2",
"prompt": "Aşağıdaki Linux sistem log hatalarını analiz et ve Türkçe olarak: 1) Ne tür hatalar var? 2) Olası nedenleri neler? 3) Çözüm önerilerin neler?nnLog içeriği:n${RECENT_ERRORS}",
"stream": false
}" | python3 -c "import sys, json; print(json.load(sys.stdin)['response'])")
echo "===== ANALIZ SONUCU ====="
echo "$ANALYSIS"
echo "========================="
Bu script’i cron’a ekleyip günlük log özeti alabilirsiniz. Tamamen yerel çalıştığı için hassas log verilerini dışarıya göndermiyorsunuz. Bu özellikle compliance gereksinimleri olan ortamlar için büyük avantaj.
Model Yönetimi ve Temizlik
Zamanla birçok model birikiyor ve disk dolmaya başlıyor. Temel yönetim komutları:
# Tüm modelleri listele
ollama list
# Belirli bir modeli sil
ollama rm codellama
# Model hakkında detay
ollama show llama3.2
# Çalışan modelleri göster
ollama ps
Disk kullanımını takip etmek için:
du -sh /usr/share/ollama/.ollama/models/
Eğer model dizinini değiştirmek istiyorsanız OLLAMA_MODELS environment variable’ını kullanın:
# Service dosyasına ekleyin
Environment="OLLAMA_MODELS=/data/ollama/models"
Büyük bir storage volume’u modeller için ayırdıysanız bu değişkeni kullanmak iyi pratik.
Sorun Giderme
Kurulum sonrası karşılaşılan yaygın sorunlar ve çözümleri:
Servis başlamıyor: Önce logları kontrol edin.
journalctl -u ollama -n 50 --no-pager
GPU tanınmıyor: CUDA kütüphanelerinin yüklü olduğunu doğrulayın.
ldconfig -p | grep libcuda
ollama run llama3.2 --verbose
Yavaş yanıt süresi: ollama ps ile modelin nerede yüklendiğine bakın. 100% GPU görmelisiniz, 100% CPU görüyorsanız GPU katman sayısını artırın.
Out of memory hatası: Daha küçük bir model deneyin veya OLLAMA_NUM_PARALLEL değerini düşürün. Aynı anda birden fazla model yüklüyse OLLAMA_MAX_LOADED_MODELS=1 yapın.
Port zaten kullanımda: lsof -i :11434 ile hangi process’in kullandığını bulun ve duruma göre karar verin.
Monitoring ve Sağlık Kontrolü
Ollama’yı production’da kullanıyorsanız basit bir health check scripti işinize yarar:
#!/bin/bash
OLLAMA_URL="http://localhost:11434"
ALERT_EMAIL="[email protected]"
# Servis kontrolü
if ! curl -sf "${OLLAMA_URL}/api/tags" > /dev/null 2>&1; then
echo "Ollama servis yanıt vermiyor! Yeniden başlatılıyor..."
sudo systemctl restart ollama
sleep 10
if ! curl -sf "${OLLAMA_URL}/api/tags" > /dev/null 2>&1; then
echo "Ollama yeniden başlatma başarısız!" | mail -s "ALERT: Ollama Down" "$ALERT_EMAIL"
fi
fi
# Yüklü model sayısı
MODEL_COUNT=$(curl -sf "${OLLAMA_URL}/api/tags" | python3 -c "import sys,json; data=json.load(sys.stdin); print(len(data.get('models', [])))")
echo "Yüklü model sayısı: ${MODEL_COUNT}"
# GPU bellek kullanımı (NVIDIA)
if command -v nvidia-smi &> /dev/null; then
nvidia-smi --query-gpu=memory.used,memory.total --format=csv,noheader
fi
Bu scripti 5 dakikada bir cron ile çalıştırın.
Güvenlik Notları
Ollama’yı multi-user ortamda veya ağa açık şekilde kullanıyorsanız birkaç önemli nokta:
- Ollama API’sinde varsayılan authentication yok. Nginx veya Traefik ile reverse proxy ve basic auth ekleyin.
- Model çalıştırma yetkisini kısıtlamak istiyorsanız
ollamakullanıcı grubunu yönetin. - Model indirme işlemleri için internet erişimine ihtiyaç var, offline ortamda önceden indirip kopyalama yapabilirsiniz.
- Hassas verilerle model test edecekseniz audit log tutmayı düşünün.
Sonuç
Ollama, yerel LLM kurulumunu gerçekten demokratikleştirdi. Birkaç yıl önce bu işleri yapmak için derin ML bilgisi, saatlerce süren ortam kurulumu ve pahalı bulut faturalarıyla uğraşmak gerekiyordu. Şimdi tek bir curl komutuyla kuruyorsunuz, birkaç dakikada model indiriyorsunuz ve çalışmaya başlıyorsunuz.
Sysadmin perspektifinden bakıldığında en değerli özellik veri gizliliği. Log analizi, config incelemesi, güvenlik değerlendirmesi gibi hassas işleri artık hiçbir verini dışarı göndermeden yapabiliyorsunuz. Otomasyon scriptlerinize LLM entegre etmek de artık gerçekçi bir seçenek haline geldi.
Küçük modelleri test ederek başlayın, donanımınızın sınırlarını tanıyın ve ihtiyacınıza göre büyüyün. 7B modeller bir sysadmin asistanı için gayet yeterli. Daha kompleks görevler için 13B veya 34B modellere geçebilirsiniz ama bunlar için ciddi VRAM gereksinimi olduğunu unutmayın. Pratik yaklaşım her zaman önce küçük başlayıp gerektiğinde ölçeklendirmek.
