TR/EN
Blog

VPS'te Ollama ile Yerel LLM Çalıştırma: Kurulumdan Yayına Adım Adım

Yayın tarihi: · 13 dk okuma

Kendi verilerinizi üçüncü bir şirkete göndermeden çalışan bir yapay zeka asistanı istiyorsanız en pratik yollardan biri, açık kaynak bir modeli kendi sanal sunucunuzda çalıştırmak. Bu yazıda VPS'te Ollama ile yerel LLM çalıştırma sürecini baştan sona anlatıyoruz: kurulum, model seçimi, sunucu ayarları, özel asistan oluşturma, API kullanımı, tarayıcı arayüzü ve güvenli şekilde yayına alma. Model boyutu, RAM ihtiyacı ve CPU/GPU farkı gibi temel konuları yapay zeka sanal sunucuda nasıl çalışır yazımızda anlattığımız için burada doğrudan uygulamaya geçiyoruz.

Neden Kendi Sunucunda Yerel LLM?

  • Gizlilik: Sorular, dokümanlar ve cevaplar sunucunuzdan dışarı çıkmıyor.
  • Sabit maliyet: Token başına ödeme yok; sunucunun aylık ücreti belli.
  • Bağımsızlık: Bir sağlayıcının fiyat, kota veya politika değişikliğinden etkilenmiyorsunuz.
  • Özelleştirme: Modeli kendi sistem talimatlarınızla, kendi uygulamanıza göre ayarlayabiliyorsunuz.
Gerçekçi beklenti: GPU'suz bir sanal sunucuda küçük ve orta boy (1B–8B) modeller iç asistan, özetleme, sınıflandırma ve doküman arama gibi işler için gayet iyi çalışır; ama büyük modelleri yüksek hızda ve çok sayıda kullanıcıya sunmak için GPU gerekir. Detaylar için yapay zeka için ekran kartı gerekli mi yazımıza bakabilirsiniz.

Ön Koşullar

Ubuntu 24.04 çalışan bir sanal sunucu, root yetkisi ve seçeceğiniz modele yetecek RAM. 7B–8B bir model için en az 16 GB RAM öneriyoruz; model dosyaları birkaç GB olduğu için NVMe disk de yükleme süresini ciddi şekilde kısaltıyor.

1. Ollama'yı Kurun

Resmi kurulum betiği Ollama'yı kurup otomatik başlayan bir systemd servisi olarak ayarlıyor:

curl -fsSL https://ollama.com/install.sh | sh
systemctl status ollama      # servis çalışıyor mu?
ollama --version

2. Doğru Modeli Seçin

Ollama'nın model kütüphanesinde yüzlerce model var. Aşağıdaki tablo başlangıç için örnek seçenekler; model aileleri hızla yenilendiği için güncel listeyi ve sürümleri ollama.com/library adresinden kontrol edin.

İhtiyaçÖrnek model etiketiYaklaşık RAM (Q4)Not
Hafif sohbet, sınıflandırmallama3.2:3b~3 GBKüçük paketlerde bile hızlı
Genel amaçlı asistanqwen2.5:7b, mistral:7b~5–6 GBKalite/hız dengesi iyi, çok dilli
Daha tutarlı cevaplargemma2:9b~6–7 GBBiraz daha yavaş, daha başarılı
Kod yardımıqwen2.5-coder:7b~5 GBKod tamamlama ve açıklama
Doküman arama (embedding)nomic-embed-text<1 GBRAG için metni vektöre çevirir, CPU'da hızlı

Quantization Etiketleri Ne Demek?

Model adının sonundaki etiketler sıkıştırma seviyesini gösteriyor. Etiket belirtmezseniz Ollama genelde 4-bit bir sürüm indiriyor.

EtiketBoyutKaliteNe zaman?
q4_K_MEn küçük (pratik)Çoğu iş için yeterliCPU'lu sunucular için varsayılan seçim
q5_K_MBiraz daha büyükDaha iyiRAM'iniz biraz fazlaysa
q8_0Yaklaşık iki katOrijinale çok yakınKalitenin kritik olduğu, RAM'in bol olduğu durumlar
fp16En büyükOrijinalGenelde GPU'lu sistemler için

Modelleri indirip deneyelim:

ollama pull qwen2.5:7b
ollama pull nomic-embed-text
ollama list                  # indirilen modeller
ollama run qwen2.5:7b "Merhaba, kendini kısaca tanıt."
ollama ps                    # bellekte yüklü modeller

3. Sunucu Ayarlarını Yapın

Ollama'nın davranışını ortam değişkenleriyle ayarlıyoruz. Servis dosyasını doğrudan değiştirmek yerine bir "override" dosyası kullanmak, güncellemelerde ayarlarınızın kaybolmamasını sağlar:

sudo systemctl edit ollama

# açılan dosyaya şunları ekleyip kaydedin:
[Service]
Environment="OLLAMA_HOST=127.0.0.1:11434"
Environment="OLLAMA_KEEP_ALIVE=30m"
Environment="OLLAMA_NUM_PARALLEL=2"
Environment="OLLAMA_MAX_LOADED_MODELS=1"

# sonra servisi yeniden başlatın:
sudo systemctl daemon-reload
sudo systemctl restart ollama
DeğişkenNe işe yarar?Öneri
OLLAMA_HOSTOllama'nın dinleyeceği adres ve port127.0.0.1:11434 bırakın; asla doğrudan internete açmayın
OLLAMA_KEEP_ALIVEKullanılmayan modelin bellekte ne kadar kalacağıSık kullanılıyorsa uzun tutun (ör. 30m), ilk yanıt gecikmesi azalır
OLLAMA_NUM_PARALLELAynı anda işlenecek istek sayısıCPU'da 1–2; arttırmak her isteği yavaşlatır
OLLAMA_MAX_LOADED_MODELSBellekte aynı anda tutulacak model sayısıRAM sınırlıysa 1
OLLAMA_MODELSModel dosyalarının saklanacağı dizinDisk ayrı bir bölümdeyse oraya yönlendirin

4. Modelfile ile Kendi Asistanınızı Oluşturun

Modelfile, bir modeli kendi sistem talimatınız ve ayarlarınızla paketlemenizi sağlıyor. Böylece her istekte aynı talimatı göndermenize gerek kalmıyor. Proje klasöründe Modelfile adında bir dosya oluşturun:

FROM qwen2.5:7b
PARAMETER temperature 0.3
PARAMETER num_ctx 4096
SYSTEM """
Sen bir şirketin destek asistanısın. Kısa, net ve Türkçe cevap ver. Bilmediğin konularda tahmin yürütme.
"""
ollama create destek-asistani -f Modelfile
ollama run destek-asistani

num_ctx modelin aynı anda "hatırlayabildiği" metin uzunluğunu belirler. Büyüttükçe daha uzun dokümanları işleyebilir ama RAM kullanımı ve yavaşlama da artar; CPU'lu sunucularda 4096 iyi bir başlangıç.

5. Uygulamanızdan API ile Kullanın

Ollama yerel bir HTTP API sunuyor. Kendi API'si ile:

curl http://127.0.0.1:11434/api/chat -d '{
  "model": "destek-asistani",
  "messages": [{"role": "user", "content": "NVMe disk nedir?"}],
  "stream": false
}'

Daha da pratik olanı: Ollama OpenAI uyumlu bir uç nokta da sunuyor. Yani OpenAI kütüphanesiyle yazılmış bir uygulamayı sadece adres değiştirerek kendi sunucunuza bağlayabiliyorsunuz:

pip install openai

from openai import OpenAI

client = OpenAI(base_url="http://127.0.0.1:11434/v1", api_key="ollama")
yanit = client.chat.completions.create(
    model="destek-asistani",
    messages=[{"role": "user", "content": "Sanal sunucu nedir?"}],
)
print(yanit.choices[0].message.content)

API kavramına yabancıysanız API nedir yazımız iyi bir başlangıç olur.

6. Open WebUI ile Tarayıcıdan Kullanın

Ekipteki herkesin terminale girmesine gerek yok. Open WebUI, Ollama'ya bağlanan ve ChatGPT benzeri bir arayüz sunan açık kaynak bir uygulama. Docker ile tek komutla çalıştırabilirsiniz:

docker run -d --network=host \
  -e OLLAMA_BASE_URL=http://127.0.0.1:11434 \
  -v open-webui:/app/backend/data \
  --name open-webui --restart always \
  ghcr.io/open-webui/open-webui:main

--network=host sayesinde Open WebUI, sadece sunucunun içinden erişilebilen Ollama'ya (127.0.0.1) bağlanabiliyor ve 8080 portunda çalışıyor. İlk açılışta oluşturduğunuz hesap yönetici hesabı oluyor; diğer kullanıcıları buradan yönetebiliyorsunuz. Docker'a yeniyseniz Docker nedir yazımıza göz atın.

7. Güvenli Şekilde Yayına Alın

Open WebUI'yi alan adınızla, HTTPS üzerinden ve sadece gerekli portları açarak yayınlayalım. Önce /etc/nginx/sites-available/ai dosyasını oluşturup etkinleştirin:

server {
    listen 80;
    server_name ai.ornek.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 300s;
    }
}

Ardından ücretsiz SSL sertifikasını alıp güvenlik duvarını ayarlayın:

sudo apt install -y nginx certbot python3-certbot-nginx
sudo certbot --nginx -d ai.ornek.com

sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable              # 11434 ve 8080 portlarını açmıyoruz

Bu yapıda dışarıdan sadece 22, 80 ve 443 portları açık; Ollama (11434) ve Open WebUI (8080) yalnızca Nginx üzerinden, şifreli bağlantıyla erişilebilir oluyor.

Ollama API'sini başka bir sunucudaki uygulamanıza açmanız gerekiyorsa, en azından kullanıcı adı/şifre koruması ekleyin:

sudo apt install -y apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd apiuser

# Nginx server bloğunun içine:
location /ollama/ {
    auth_basic "Ollama API";
    auth_basic_user_file /etc/nginx/.htpasswd;
    proxy_pass http://127.0.0.1:11434/;
}
Önemli: Kimlik doğrulaması olmadan internete açılmış bir Ollama API'si, herhangibir kişinin sunucunuzu kendi ücretsiz yapay zekası gibi kullanması demek. Bu tür açık sunucular otomatik taramalarla çok hızlı bulunuyor.

CPU'da Ne Kadar Hız Beklemeli?

Model boyutu (Q4)Kabaca hız (token/sn)Hissiyat
1B–3B~8–20Akıcı, sohbet için rahat
7B–8B~3–10Okuma hızına yakın, iç asistan için yeterli
13B–14B~1–5Yavaş; kısa cevaplı işler için kullanılabilir

Değerler işlemciye, çekirdek sayısına, bağlam uzunluğuna ve aynı anda gelen istek sayısına göre değişir. Performans için birkaç ipucu:

  • İşe yetecek en küçük modeli seçin; sınıflandırma ve özetleme gibi işlerde 3B modeller çoğu zaman yeterli.
  • num_ctx'i abartmayın; uzun bağlam hem RAM'i hem hızı olumsuz etkiler.
  • Modeli bellekte tutun; OLLAMA_KEEP_ALIVE ile her istekte yeniden yükleme yapılmasını önleyin.
  • Swap'a düşmeyin; model RAM'e sığmayıp diske taşarsa hız dramatik şekilde düşer.

Sık Karşılaşılan Sorunlar

BelirtiOlası sebepÇözüm
Cevaplar çok yavaşModel veya quant seviyesi sunucuya göre büyükDaha küçük model ya da q4_K_M deneyin
Model yüklenmiyor, bellek hatasıRAM yetersizDaha küçük model, OLLAMA_MAX_LOADED_MODELS=1, yada daha büyük paket
connection refusedServis çalışmıyor veya farklı adreste dinliyorsystemctl status ollama ve OLLAMA_HOST ayarını kontrol edin
Open WebUI model listesini göremiyorOllama adresi yanlışOLLAMA_BASE_URL ve --network=host ayarını kontrol edin
İlk cevap çok geç geliyorModel her seferinde yeniden yükleniyorOLLAMA_KEEP_ALIVE süresini artırın

Hangi VECDC Paketi?

3B modeller ve embedding için VPS-2, 7B–8B modellerle rahat çalışmak için VPS-3 (16 GB) veya VPS-4 (24 GB), birden fazla modeli birlikte kullanacaksanız VPS-5 (32 GB) iyi bir başlangıç. VECDC sanal sunucuları NVMe disk ve adanmış CPU ile aylık $6'dan başlıyor, otomatik kurulumla yaklaşık 5 dakikada hazır oluyor. Open WebUI için Docker kurulu gelen Developer VDS işinizi kolaylaştırır. Yerel modelinizi CRM, destek sistemi gibi mevcut uygulamalarınıza entegre etmek isterseniz AI servisimiz ile destek veriyoruz.

Sık Sorulan Sorular

Ollama GPU olmadan çalışır mı?

Evet. Ollama, GPU yoksa modeli işlemci (CPU) üzerinde çalıştırır. 1B–8B arası sıkıştırılmış modeller CPU'lu bir sanal sunucuda iç asistan, özetleme ve doküman arama gibi işler için yeterli hızda çalışır; büyük modeller ve çok kullanıcılı senaryolar için GPU gerekir.

VPS'te hangi modeli kullanmalıyım?

İşe yetecek en küçük modelle başlayın. Basit sohbet ve sınıflandırma için 3B, genel amaçlı bir asistan için 7B–8B modeller iyi bir denge sunar; doküman araması için ayrıca küçük bir embedding modeli kullanılır. Model aileleri hızla yenilendiği için güncel listeyi Ollama kütüphanesinden kontrol edin.

Yerel LLM kullanınca verilerim dışarı çıkar mı?

Model kendi sunucunuzda çalıştığı için sorular, dokümanlar ve cevaplar üçüncü bir sağlayıcıya gönderilmez. Bunun için Ollama'nın API portunu internete açmamak ve arayüzü HTTPS ile, kimlik doğrulamalı şekilde yayınlamak gerekir.

Aynı anda kaç kişi kullanabilir?

CPU'lu bir sunucuda birkaç kişilik bir ekip için yeterlidir, ancak istekler arttıkça cevaplar yavaşlar. OLLAMA_NUM_PARALLEL değeriyle eşzamanlı istek sayısını ayarlayabilirsiniz; çok sayıda kullanıcı için GPU'lu bir altyapı önerilir.

Kısacası

Ollama ile bir VPS'te yerel LLM çalıştırmak birkaç komutluk iş: kur, model indir, ayarları yap, Modelfile ile kendi asistanını oluştur, Open WebUI ile arayüz ekle ve Nginx + SSL ile güvenle yayına al. Doğru model boyutunu seçtiğinizde GPU'suz bir sunucuda bile verileriniz dışarı çıkmadan çalışan, işe yarar bir asistanınız oluyor. Kurulumda takıldığınız birşey olursa bize yazın.

Sanal Sunucunuz 5 Dakikada Hazır

Adanmış kaynaklı NVMe sanal sunucu paketleri aylık $6'dan başlıyor.

Paketleri İncele →