SSD Nodes Learn Hosting plans →
Rehberler Matt ConnorYazan Matt Connor · Güncellendi 2026-11-04

VPS uzerinde Ollama ve llama.cpp arasindaki farklar

VPS uzerinde CPU ile calisirken Ollama ve llama.cpp arasindaki teknik farklari ogrenin. RAM kullanimi, GGUF quantisation secimi ve kaynak yonetimi hakkinda detaylar.

Ollama ve llama.cpp: hangi katmanda çalışmak istiyorsunuz?

Ollama ve llama.cpp, soruda ima edildiği gibi birbirinin rakibi değildir. llama.cpp bir çıkarım motorudur: bir model dosyasını yükler ve istemi (prompt) token'lara dönüştürür. Ollama ise bu motorun üzerinde çalışan bir model yöneticisi, arka plan servisi (daemon) ve HTTP API'sidir. Ollama'nın README dosyası, 27 Ekim 2026 itibarıyla llama.cpp'yi hala çıkarım altyapısı olarak listelemektedir. Dolayısıyla asıl soru hangisinin daha hızlı olduğu değil, VPS üzerinde hangi katmanda işlem yapmak istediğinizdir.

Modelleri ismine göre getiren ve müdahale gerektirmeden çalışmaya devam eden bir servis istiyorsanız Ollama'yı çalıştırın. Sunucunuz küçükse ve tam model dosyasını, tam bağlam (context) boyutunu ve tam iş parçacığı (thread) sayısını kendiniz belirlemeniz gerekiyorsa llama.cpp'yi doğrudan çalıştırın; çünkü küçük bir VPS üzerinde bu ayarların her biri, sahip olmadığınız bellekten harcar.

Her bir projenin gerçekte ne olduğu

llama.cpp, ggml kütüphanesi üzerine inşa edilmiş, transformer çıkarımı yapan bir C ve C++ uygulamasıdır. GGUF dosyalarını okur. GGUF (GGML universal file format), modelin çalışması için gereken ağırlıkları, belirteçleyiciyi (tokeniser) ve meta verileri barındıran tek dosyalık bir kapsayıcıdır. Proje, farklı işler için ayrı ikili dosyalar sunar. llama-server bir HTTP sunucusudur, llama-cli etkileşimli bir komut satırı arayüzüdür ve llama-bench iş hacmini ölçer. Proje artık anlamsal sürümlendirme (MAJOR.MINOR.PATCH) kullanmaktadır ve 15 Ekim 2026 tarihinde yayınlanan v0.7.0, 27 Ekim 2026 itibarıyla en güncel sürümdür. Derleme numaralı nightly etiketleri bunların yanında yayınlanmaya devam etmektedir; günde birkaç tane yayınlanır ve 27 Ekim 2026 itibarıyla en yenisi b11913'tür.

Ollama bir Go programıdır. ollama serve ile başlatılan bir arka plan servisi (daemon), modelleri yükler ve HTTP isteklerini yanıtlar; bir komut satırı istemcisi ise bu servis ile iletişim kurar. Her ikisinin arkasında, önceden paketlenmiş modelleri barındıran ollama.com adresindeki bir kayıt defteri bulunur. Ollama anlamsal sürümleri kullanır. v0.32.5 sürümü 27 Temmuz 2026'da yayınlanmış, v0.40.12 sürümü ise 27 Ekim 2026 saat 00:07 UTC'de kullanıma sunulmuştur. ollama pull, bir GGUF dosyasını istem şablonu ve varsayılan parametre setiyle birlikte getirir, ardından Linux üzerinde /usr/share/ollama/.ollama/models dizininde saklar. Bu dosyalar kök diskte tutulur ve her biri birkaç gigabayt boyutuna ulaşabilir; bu nedenle 25 GB kök alana sahip bir VPS üzerinde, üçüncü indirme işlemi diski doldurmadan önce pull işleminin neleri geride bıraktığını ve model dizininin başka bir yere nasıl taşınacağını bilmek faydalıdır.

Bu paketleme yöntemi, iki proje arasındaki temel farktır. Ollama; nicemleme (quantisation), şablon ve bağlam uzunluğu gibi seçimleri sizin yerinize yapar ve hatırlamanız gereken tek bir isim sunar. llama.cpp ise bu seçenekleri bayraklar (flags) olarak sunar ve boş bıraktığınız ayarlar için otomatik varsayılan değerler kullanır.

Eksen 1: model ve nicemleme kontrolü

Nicemleme (quantisation), ağırlıkları orijinal modelin 16 veya 32 bitinden daha az bit ile saklar; yaygın GGUF derlemeleri ağırlık başına ortalama 4, 5 veya 8 bit kullanır. Hassasiyet dosya genelinde tekdüze değildir. llama.cpp nicemleyici kaynağında (27 Ekim 2026 tarihinde okundu), bir Q4_K_M derlemesi tensörlerin çoğunu 4-bit seviyesinde tutar ancak çıktı katmanına, dikkat değeri (attention value) ve ileri beslemeli (feed-forward) alt tensörlerin yaklaşık yarısına 6-bit Q6_K uygular; normlar gibi küçük tensörler ise hiç nicemlenmez. 8 milyar parametreli bir modelin sıradan bir VPS RAM'ine sığmasını sağlayan budur. GGUF isimlendirmesi, düzeni bildiğinizde okunabilir hale gelir: Q4_K_M, 4-bit K-nicemleme, orta boyut anlamına gelir. Daha yüksek bir sayı daha fazla hassasiyeti korur ve daha fazla bellek maliyeti getirir.

GrafikMeta-Llama-3.1-8B-Instruct GGUF file size by quantisation (GiB)
Bu grafiğin arkasındaki veriler
[
  {
    "label": "Q2_K",
    "file_size_gib": 2.96
  },
  {
    "label": "Q3_K_M",
    "file_size_gib": 3.74
  },
  {
    "label": "Q4_K_M",
    "file_size_gib": 4.58
  },
  {
    "label": "Q5_K_M",
    "file_size_gib": 5.34
  },
  {
    "label": "Q6_K",
    "file_size_gib": 6.14
  },
  {
    "label": "Q8_0",
    "file_size_gib": 7.95
  }
]

Bunlar, 2 Ağustos 2026 tarihinde okunan ve bayttan GiB'a dönüştürülen, Hugging Face üzerindeki bartowski/Meta-Llama-3.1-8B-Instruct-GGUF deposunda yayınlanmış dosya boyutlarıdır. Bir modelin 6 derlemesi mevcuttur ve en küçüğü 2.96 GiB iken en büyüğü 7.95 GiB'dır. Yaygın varsayılan olan Q4_K_M, 4.58 GiB'dır. 4 GiB'lık bir VPS üzerinde bu tek seçim, modelin yüklenip yüklenmeyeceğini belirler. Boyut, bu kararın yalnızca yarısıdır; çünkü karşılayabileceğiniz bir satır, otomatik olarak kullanmaya değer bir satır değildir ve Q4, Q8 ve fp16'nın yanıt kalitesinde size gerçek maliyeti, fazladan gigabaytların fark edebileceğiniz bir değer sunup sunmadığını belirleyen şeydir.

llama.cpp ile dosyayı siz adlandırırsınız, bu yüzden o satırı kendiniz seçersiniz.

llama-server -m ~/models/Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf \
  -c 4096 -t 4 --host 127.0.0.1 --port 8080

-c token cinsinden bağlam boyutudur, -t iş parçacığı sayısıdır ve -ngl kaç katmanın GPU'ya aktarılacağını belirler (sadece CPU olan bir sunucuda 0 olabilir). Ayarlanmamış ayarlar varsayılan değerlere sahiptir ve --fit, ayarlanmamış argümanları cihaz belleğine sığacak şekilde düzenlemek için varsayılan olarak açıktır.

Ollama ile nicemleme, çektiğiniz etiketle birlikte gelir ve ollama ls diskte gerçekte neye sahip olduğunuzu gösterir. Kayıt defteri istediğiniz derlemeyi içermediğinde, bir GGUF dosyasını kendiniz içe aktarın. Bir Modelfile yazın:

FROM ./Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf
PARAMETER num_ctx 4096

Ardından derleyin ve sonucu kontrol edin:

ollama create llama31-q4 -f ./Modelfile
ollama ls

Bağlam uzunluğu, kullanıcıları yanıltan ayardır. Ollama varsayılan değerini mevcut VRAM'den seçer ve GPU'su olmayan bir sunucu en küçük sınıfa düşer: 4096 token. Ona 20.000 tokenlik bir belge gönderirseniz, fazladan tokenler model onları görmeden önce atılır; bu nedenle yanıt, yalnızca yarısını okuduğu bir dosya hakkında kendinden emin bir şekilde yanlış olur. Bunu daemon üzerinde OLLAMA_CONTEXT_LENGTH ile veya bir Modelfile içinde PARAMETER num_ctx ile artırın. Eğer yalnızca bir iş daha büyük bir pencereye ihtiyaç duyuyorsa, num_ctx sunucu genelinde değil, istek başına ayarlanabilir, bu da fazladan önbelleğin daemon'dan istenen diğer her şeyden uzak tutulmasını sağlar. llama.cpp'nin de güvenmeye değer bir varsayılanı yoktur. -c değerini açıkça ayarlayın ve ne ayarladığınızı bilin.

Kimsenin göstermediği bellek hesabı

Model dosyası maliyetin tamamı değildir. KV cache (anahtar/değer önbelleği), bağlamın her bir belirteci (token) ve her katmanı için bir girdi tutar; bu önbellek, konuşma uzadıkça büyür.

Bunu Llama 3.1 8B için hesaplayalım. Model 32 katmana, 8 anahtar/değer başlığına ve 128'lik bir başlık boyutuna sahiptir. Her belirteç, f16 formatında 2 baytlık hem bir anahtar hem de bir değer saklar; yani katman başına 2 x 8 x 128 x 2 = 4096 bayt. 32 katman boyunca bu, belirteç başına 128 KiB eder. Dolayısıyla 4096 belirteçlik bir bağlam 512 MiB, 32,768 belirteçlik bir bağlam ise 4 GiB maliyet oluşturur.

Bu durumda, 4k bağlamlı bir Q4_K_M 8B modeli, ağırlıklar için yaklaşık 4.58 GiB, önbellek için yaklaşık 0.5 GiB ve çalışma zamanının kendisi için ek bellek gerektirir. Bu model 4 GiB RAM'e sığmaz. 8 GiB RAM'e ise çalışma payı bırakacak şekilde sığar. Aynı 8 GiB'lık sistemde bağlamı 32k'ya yükseltirseniz, sadece önbellek tüm boş alanı tüketir. Model yüklendiği sırada free -h ile durumu canlı izleyin ve bizzat ölçmediğiniz hiçbir tahmine güvenmeyin. Eğer 8B'den çok daha büyük bir model için boyutlandırma yapıyorsanız, sadece CPU kullanılan bir VPS üzerinde 27B model için yapılan aynı hesaplama, 8 GB'tan 64 GB'a kadar her kademenin gerçekte neyi barındırabileceğini gösterir.

Ollama bu durumu katlar. OLLAMA_NUM_PARALLEL varsayılan olarak 1 değerindedir ve bir modelin ihtiyaç duyduğu bellek, bu sayı ile bağlam uzunluğunun çarpımı oranında ölçeklenir. Her ikisini de aynı anda artırırsanız, daemon sessizce beklediğinizden birkaç kat daha fazla RAM talep eder. Aynı hesaplama, eşzamanlı kullanıcılar için üst sınırınızı belirler; çünkü her eşzamanlı istek kendi KV cache dilimini ister, bu da tek kişi için sorunsuz çalışan bir sunucunun neden beş kişide tıkandığının sebebidir.

Eksen 2: yönetmeniz gereken daemon

Ollama kurulum betiği bir systemd birimi yazar, bir ollama sistem kullanıcısı oluşturur ve servisi etkinleştirir. Bunların hiçbirini yazmak zorunda kalmadan yaşam döngüsü yönetimine sahip olursunuz. Yapılandırma systemd üzerinden gerçekleştirilir:

sudo systemctl edit ollama
[Service]
Environment="OLLAMA_CONTEXT_LENGTH=8192"
Environment="OLLAMA_KEEP_ALIVE=30m"
sudo systemctl daemon-reload
sudo systemctl restart ollama
journalctl -e -u ollama

OLLAMA_KEEP_ALIVE, CPU tabanlı bir VPS üzerinde diğer her yerden daha fazla önem taşır. Modeller varsayılan olarak 5 dakika boyunca bellekte tutulur ve ardından bellekten boşaltılır. Bir sonraki istek, yanıt verebilmek için tüm dosyayı yeniden yüklemek zorundadır. Çekirdek dosyayı hala sayfa önbelleğinde (page cache) tutuyorsa bu işlem hızlıdır, ancak dosyayı orada yalnızca boş RAM tutar; diğer işlemler dosyayı önbellekten attığında ise dosya diskten geri gelir. Bu durumda 4.58 GiB boyutundaki bir yeniden yükleme, yavaş depolama birimlerinde iki saniyelik bir yanıtı otuz saniyeye çıkarır. Uzun bir keep-alive süresi gecikmeyi düzeltir ve RAM'i kalıcı olarak kullanır. Her ikisi de gerçek maliyetlerdir. Hangisinin daha az zarar vereceğine karar verin. Modelin bellekte kalması gerektiğine karar verirseniz, keep_alive ayarını boşta kalma sürelerini ve yeniden başlatmaları kapsayacak şekilde yapılandırmak birkaç satır sürer ve sunucu her yeniden başladığında modeli manuel olarak ısıtma zahmetinden sizi kurtarır.

llama.cpp size bir daemon veya servis kullanıcısı sunmaz, bu yüzden her ikisini de kendiniz kurarsınız. Derleme yaptığınız llama.cpp dizininden, binary dosyasını ve kütüphanelerini /usr/local içine yükleyin, bir llama kullanıcısı oluşturun ve modele bir kopya verin:

sudo cmake --install build
sudo ldconfig
sudo useradd --system --no-create-home --shell /usr/sbin/nologin llama
sudo install -d -o llama -g llama /srv/models
sudo install -o llama -g llama -m 644 ~/models/Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf /srv/models/model-Q4_K_M.gguf

Derleme yerine release arşivini kullandıysanız, ExecStart yolunu arşiv içindeki llama-server dizinine yönlendirin; çünkü arşiv, kütüphanelerini binary dosyasının yanında tutar. Ardından birimi /etc/systemd/system/llama-server.service olarak yazın:

[Unit]
Description=llama.cpp server
After=network-online.target

[Service]
ExecStart=/usr/local/bin/llama-server -m /srv/models/model-Q4_K_M.gguf -c 4096 -t 4 --host 127.0.0.1 --port 8080
Restart=always
RestartSec=3
User=llama

[Install]
WantedBy=multi-user.target

sudo systemctl enable --now llama-server ile etkinleştirin. Süreç, modelini tüm yaşam döngüsü boyunca bellekte tutar. Varsayılan olarak boşta kalma durumunda hiçbir şey bellekten boşaltılmaz, ancak --sleep-idle-seconds eklemek, servisi durdurmadan otomatik boşaltma ve yeniden yüklemeyi etkinleştirir. Birim yazmak sizin için yeniyse, bu işlem kendi servislerinizi bir VPS üzerinde systemd ile çalıştırmak ile aynı kalıptadır.

Eksen 3: uygulamanızın iletişim kuracağı API

Bu eksen oldukça daraldı. Her iki proje de artık OpenAI sohbet formatını desteklediğinden, çoğu istemci kütüphanesi yalnızca temel URL değişikliği ile her iki projeyle de çalışabilmektedir.

Ollama 127.0.0.1:11434 üzerinde dinleme yapar. OpenAI uyumlu uç noktası http://localhost:11434/v1/chat/completions adresindedir; bunun yanında /api/chat adresinde yerel bir API de sunar. Anthropic uyumlu bir uç nokta da belgelenmiştir. Bu uç noktaların hiçbiri modelin kendi başına bilgi aramasına olanak tanımaz. Uygulamanın modelin eğitim verilerinden daha yeni bilgilere dayalı yanıtlar vermesi gerekiyorsa Ollama API'si, Open WebUI veya kısa bir araç döngüsü üzerinden web aramasını bağlamaya yönelik plan yapılmalıdır.

curl -X POST http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model": "llama31-q4", "messages": [{"role": "user", "content": "Say this is a test"}]}'

Yukarıdaki bayraklarla başlatıldığında, llama-server, 127.0.0.1:8080 üzerinde dinleme yapar. Kendi haline bırakıldığında varsayılan olarak 9931 numaralı portu kullanır (27 Ekim 2026 tarihinde kontrol edilmiştir), bu nedenle uygulamanız 8080 portunu bekliyorsa komut satırında --port bayrağını koruyun. Servis; /v1/chat/completions, /v1/completions ve /v1/embeddings uç noktalarının yanı sıra kendi /completion uç noktasını ve yerleşik bir web arayüzünü sunar. Ayrıca Ollama'da bulunmayan operasyonel rotaları da dışa açar: hazır olma durumu (readiness probe) için /health, yüklenen modelin ayarları için /props, her bir istek yuvasının ne yaptığına dair /slots ve --metrics bayrağını eklediğinizde Prometheus formatında /metrics; çünkü bu uç nokta varsayılan olarak kapalıdır. Bu servisi izlemeyi planlıyorsanız, kararınızı muhtemelen bu fark belirleyecektir.

Her iki sunucu da sizin yerinize kimlik doğrulamasını açmaz. Her ikisi de güvenlik gerekçesiyle varsayılan olarak loopback adresini kullanır. Bu servislere bir SSH tüneli üzerinden veya bir reverse proxy arkasından erişin; 11434 veya 8080 numaralı portları asla internete açmayın.

Sadece CPU içeren bir VPS'in gerçek kapasitesi

Sadece CPU içeren bir VPS, küçük modelleri yavaş çalıştırır. Dürüst özet budur; işinize yarayacak kısım ise sınırın nerede olduğunu bilmektir. Bir tasarım yapmadan önce ölçüm yapın:

llama-bench -m ~/models/Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf -p 512 -n 128

pp sütunu istem işleme hızını, tg sütunu ise token üretim hızını gösterir; her ikisi de saniyedeki token cinsindendir. Paylaşımlı bir vCPU planında, Q4_K_M formatındaki 8B bir model genellikle tg için düşük tek haneli değerler verir. İstem işleme kısmı en çok zorlayan bölümdür: tüm istem, ilk çıktı token'ı görünmeden önce işlenir; bu nedenle uzun bir sistem istemi, her istekte bekleme süresini artırır. Yanıt uzunluğu, kontrol edebileceğiniz maliyetin yarısıdır; çünkü saniyede üç token hızında, 600 token üreten bir model sunucuyu 200 saniye boyunca meşgul eder. Sadece üretim süresi üç dakikayı geçer, bu yüzden num_predict ile çıktı sınırlandırması yapmak, uzun bir yanıtın zaman aşımına uğramasını engellemenin en ucuz yoludur.

CPU üzerinde kullanılabilir olanlar: sınıflandırma, veri çıkarma, kısa özetler veya yönlendirme yapan 1B ile 4B arası modellerdir. Yanıtlar saniyeler içinde gelir ve bellek miktarı standart bir plana sığar. Belirli bir boyut aralığı yerine somut bir örnek için, bir VPS üzerinde çekilip ölçülen Nemotron 3.5 Lightning çalışması; tam etiketi, ihtiyaç duyulan RAM miktarını ve GPU olmadan ulaşılan hızı gösterir. CPU üzerinde kullanılamayacak olanlar: okuma hızında interaktif sohbet, kodlama asistanları, uzun doküman işlemleri veya arka arkaya birçok çağrı yapan bir ajan döngüsü içeren işlemlerdir. Her biri dört saniye süren on iki çağrılık bir döngü, herhangi bir sonuç üretmeden önce bir dakika bekletir. Eğer planınız bir kodlama asistanı ise, bir ajanı kendi barındırdığınız bir modele yönlendirmek, küçük yerel modellerin hangi işlerde başarılı olduğunu ve hangilerinin barındırılan bir API üzerinde kalması gerektiğini belirler.

Rakamlar beklentiyi karşılamadığında iki çıkış yolu vardır. Sorun eşzamanlılık ise, yani birçok kullanıcı aynı anda tek bir modele erişiyorsa, motor tercihi değişir ve eşzamanlı sunum için Ollama ile vLLM karşılaştırması bu konuyu ele alır. Sorun ham hız ise, çözüm GPU içeren bir VPS kullanmaktır; burada -ngl bir anlam ifade etmeye başlar. Her iki durumdan önce donanım için bir temel performans ölçümü yapın; çünkü disk ve bellek bant genişliği, yükleme süresini en az CPU kadar etkiler. Tekrarlanabilir bir VPS benchmark testi ayıracağınız bir saate değer.

llama.cpp kurulumu ve belirli bir sürüme sabitleme

Her iki proje de haftalık olarak güncellendiği için dağıtımını yaptığınız sürümü not edin. Yukarı akış (upstream) tek satırlık komutu mevcut sürümü kurar:

curl -LsSf https://llama.app/install.sh | sh
llama serve -hf ggml-org/Qwen3.5-0.8B-GGUF

Belirli bir sürümü sabitlemek için, yayınlar sayfasından önceden derlenmiş tarball dosyasını alın. Proje artık anlamsal sürümlü (semantic-versioned) yayınlar da sunmaktadır: 27 Ekim 2026 itibarıyla en güncel sürüm v0.7.0 idi ve yayın sayfası ikili dosyalar için b11669 numaralı nightly sürümüne işaret ediyordu. 28 Ekim 2026 tarihinde v0.8.0 yayınlandı ve yayın sayfası ikili dosyalar için b11960 numaralı nightly sürümüne işaret ediyordu. Aşağıdaki komutlar 2 Ağustos 2026 tarihindeki güncel etiket olan b10224 sürümünü kullanmaktadır; test ettiğiniz etiketle değiştirin:

curl -LO https://github.com/ggml-org/llama.cpp/releases/download/b10224/llama-b10224-bin-ubuntu-x64.tar.gz
tar xf llama-b10224-bin-ubuntu-x64.tar.gz
find . -type f -name 'llama-server'

Veya aynı etiketi kaynak kodundan derleyin:

sudo apt update && sudo apt install -y build-essential cmake git libssl-dev
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
git checkout b10224
cmake -B build
cmake --build build --config Release -j $(nproc)

libssl-dev, HTTPS özellikleri için belgelenmiş bağımlılıktır. Derleme işlemi birkaç dakika sürer ve en küçük planların sunduğundan daha fazla RAM gerektirir; bu nedenle küçük sunucunuzda bellek yetersiz kalırsa daha büyük bir makinede derleyip ikili dosyaları kopyalayın.

Ollama kurulumu ve belirli bir sürüme sabitleme

curl -fsSL https://ollama.com/install.sh | OLLAMA_VERSION=0.32.5 sh
ollama -v

Betik OLLAMA_VERSION dosyasını okur; bu sayede bugün yayınlanan sürümü almak yerine, bilinen ve sorunsuz çalışan bir sürümü sabitleyebilirsiniz. v0.32.5 sürümü 27 Temmuz 2026 tarihinde yayınlanmıştır. Bir betiği doğrudan shell ortamına yönlendirmek istemiyorsanız manuel kurulum yolu da mevcuttur:

sudo rm -rf /usr/lib/ollama
curl -fsSL https://ollama.com/download/ollama-linux-amd64.tar.zst | sudo tar x -C /usr
ollama -v

Manuel kurulum yöntemi systemd birimini veya servis kullanıcısını oluşturmaz; bu işlemleri kendiniz yapmanız gerekir. VPS üzerinde tam Ollama kurulumu rehberi, bu servis kurulumu adımını detaylıca açıklamaktadır.

Hata modları ve karşılaşacağınız dizgeler

Ollama modeli yüklemeyi reddediyor. Eski Ollama sürümleri, yükleme öncesinde boyutu kontrol eder ve ollama run ile şu biçimde bir satır döndürürdü:

Error: model requires more system memory (5.6 GiB) than is available (3.2 GiB)

Güncel Ollama kaynak kodu artık bu iletiyi içermemektedir (27 Ekim 2026 tarihinde kontrol edilmiştir). Ollama artık yükleme işlemini llama-server bileşenine devrettiği için, sığmayan bir model bunun yerine bir çalıştırıcı hatası olarak görünür ve şu şekilde başlayan hata mesajları üretir:

llama-server reported out-of-memory during startup
llama-server process has terminated

Her iki durumda da çözüm aynıdır. Bir alt kuantizasyon satırına geçin, bağlam uzunluğunu (context length) düşürün veya daha küçük bir model seçin.

llama.cpp hata vermiyor, ancak çok yavaş çalışıyor. llama.cpp, GGUF dosyasını varsayılan olarak belleğe eşler (memory-map), bu nedenle RAM'den daha büyük bir dosya yine de çalışmaya başlar. Çekirdek, her token için ağırlıkları diskten belleğe alıp çıkarır ve üretim hızı, disk kullanımı yüzde 100'e sabitlenmiş haldeyken token başına saniyelere düşer. Bellek eşlemeyi devre dışı bırakmak için --load-mode none parametresini kullanın. Bu seçenek, sabitlenmiş b10224 sürümünde kullanımdan kaldırıldığı belirtilen ve güncel sürümlerde artık yer almayan --no-mmap seçeneğinin yerini almıştır (29 Ekim 2026 tarihinde kontrol edilmiştir). Çekirdek müdahale ettiğinde, dmesg nedenini şu şekilde gösterir:

Out of memory: Killed process 1234 (llama-server)

Model dosyası hiç yüklenmiyor. Motorunuzdan daha yeni bir model ailesi için oluşturulmuş bir GGUF dosyası, dosyanın meta verilerinde saklanan <arch> mimari adını tanımadığına dair bir hata verir:

llama_model_load: error loading model: unknown model architecture: '<arch>'

Çözüm, farklı bir dosya değil, motor yükseltmesidir. Bu, sürüm sabitlemenin bedelidir ve yapı numarasını not etmenizin nedeni budur. Hangi sürümden yükseltme yaptığınızı bilmeniz gerekir.

API yerel olarak yanıt veriyor ancak uygulamanızdan yanıt alamıyorsunuz. Ollama varsayılan olarak 127.0.0.1:11434 adresine bağlanır, bu nedenle başka bir ana bilgisayar bağlantı reddi hatası alır. OLLAMA_HOST=0.0.0.0:11434 değişkenini systemctl edit ollama olarak yalnızca port bir güvenlik duvarı veya özel ağ arkasında bulunuyorsa ayarlayın; çünkü API'nin önünde herhangi bir kimlik doğrulama mekanizması yoktur.

Bir duraklamadan sonraki ilk yanıt çok yavaş. 5 dakikalık boşta kalma süresi sonunda model bellekten atılmıştır ve sayfa önbelleğinde tutulmadıysa diskten tekrar yüklenmektedir. İstekten hemen önce çalıştırılan ollama ps komutu hiçbir şeyin yüklü olmadığını gösterir ve bu durumu doğrular. OLLAMA_KEEP_ALIVE değerini yükseltin.

Peki hangisini çalıştırmalısınız?

Modellerin sizin yerinize yönetilmesini ve herhangi bir ek çaba harcamadan OpenAI uyumlu bir uç nokta (endpoint) kullanmak istiyorsanız Ollama çalıştırın. İlk dağıtım ve model seçiminin sürekli değişeceği durumlar için en uygun varsayılan budur.

Bellek kısıtlı olduğu için kuantizasyon (quantisation) satırını kendiniz seçmeniz gerektiğinde, izleme için /health, /slots ve /metrics özelliklerine ihtiyaç duyduğunuzda veya Ollama tarafından sunulmayan bir bayrağı (flag) kullanmanız gerektiğinde doğrudan llama.cpp çalıştırın. Modelin zar zor sığdığı bir VPS üzerinde en dürüst seçenek budur; çünkü modelin sığmasını sağlayan ayarlar, Ollama'nın sizin adınıza seçtiği ayarların aynısıdır.

Her ikisini de çalıştırmak normaldir. Denemeler için Ollama, üretime aldığınız ve bir daha değiştirmek istemediğiniz tek bir model için ise llama.cpp kullanın.

FAQ

Ollama sadece llama.cpp etrafında bir sarmalayıcı (wrapper) mıdır?

Yakın, ancak bu sarmalayıcı gerçek işlevler sunar. Ollama'nın README dosyası, 27 Ekim 2026 itibarıyla llama.cpp'yi çıkarım (inference) altyapısı olarak listeler. Ollama bunun üzerine bir model kayıt defteri, sohbet mesajlarını bir isteme (prompt) dönüştüren şablonlar, varsayılan örnekleme parametreleri, boşta kaldığında bellekten boşaltma yapan bir daemon ve bir HTTP API ekler. Aynı ayarlarda saniye başına üretilen token sayısını karşılaştırdığınızda, aslında aynı motoru kendisiyle kıyaslıyorsunuz demektir. Seçim yapmanız gereken nokta yönetim katmanıdır.

Sadece CPU içeren bir VPS üzerinde hangisi daha hızlıdır?

Aynı motoru kullandıkları için; aynı model dosyası, kuantizasyon, bağlam (context) boyutu ve iş parçacığı (thread) sayısında birbirlerine yakın sonuçlar verirler. Kullanıcıların bildirdiği farklar genellikle motorun kendisinden değil, çoğunlukla bağlam uzunluğu ve iş parçacığı sayısı gibi farklı varsayılan ayarlardan kaynaklanır. Yayınlanan herhangi bir veriye inanmadan önce llama-bench -m <file> -p 512 -n 128 ile ölçüm yapın ve kendi sunucunuzdaki tg sütununu karşılaştırın.

Kendi GGUF dosyamı Ollama ile kullanabilir miyim?

Evet. Dosyayı sunucuya yükleyin, ilk satırı FROM ./your-model.gguf olan bir Modelfile oluşturun, num_ctx gibi ihtiyacınız olan PARAMETER satırlarını ekleyin ve ardından ollama create your-name -f ./Modelfile komutunu çalıştırın. ollama ls, bu modeli kayıt defterinden çektiklerinizin yanında listeleyecektir. Kayıt defterinde bulunmayan bir kuantizasyonu bu şekilde kullanabilirsiniz.

8B bir model için ne kadar RAM gerekir?

Dosya boyutunu, KV önbelleğini ve çalışma zamanı gereksinimlerini hesaba katın. Llama 3.1 8B modelinin Q4_K_M sürümü diskte yaklaşık 4.58 GiB yer kaplar ve 4096 token'lık bir bağlam yaklaşık 512 MiB önbellek ekler; bu nedenle 8 GiB RAM rahat bir kullanım sağlar, 4 GiB ise yeterli değildir. Önbellek, bağlam boyutuyla birlikte ölçeklenir: aynı model 32,768 token'lık bir bağlamda tek başına yaklaşık 4 GiB önbelleğe ihtiyaç duyar. Ollama kullanırken, gereksinimin OLLAMA_NUM_PARALLEL ile de ölçeklendiğini unutmayın.

Bu yazı işinize yaradı mı?