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

Ollama uzerine GGUF modeli nasil aktarilir?

Hugging Face veya yerel disk uzerindeki GGUF dosyalarini Ollama ile calistirin. Modelfile olusturarak yanlis chat template kaynakli anlamsiz yanit sorununu kesin olarak cozun.

Bir GGUF modelini Ollama'ya aktarmanın iki yolu

Bir GGUF modelini Ollama'ya aktarmanın iki yolu vardır ve doğru yöntem, dosyanın şu an nerede bulunduğuna bağlıdır. Model bir Hugging Face deposunda yer alıyorsa, tek bir ollama run komutu herhangi bir Modelfile gerektirmeden modeli çeker ve çalıştırır. Eğer .gguf dosyası halihazırda sunucunuzun diskindeyse, iki satırlık bir Modelfile oluşturup ollama create komutunu çalıştırmanız gerekir.

Her iki yöntem de aynı noktada sonuçlanır: yerel Ollama kütüphanenizde, ollama run ve Ollama API'sinin sunabileceği isimlendirilmiş bir model. Dosyayı başkası yayınladıysa ilk yöntemi kullanın. Modeli kendiniz kuantize ettiyseniz, dosya scp veya rsync üzerinden geldiyse ya da makine Hugging Face'e erişemiyorsa ikinci yöntemi tercih edin.

GGUF dosyası; ağırlıkları, tokenizer'ı ve model meta verilerini bir arada tutan tek bir ikili dosyadır. Bu, llama.cpp'nin okuduğu formattır ve Ollama, llama.cpp üzerine inşa edildiği için neredeyse her açık modelin topluluk tarafından oluşturulmuş bir GGUF dönüştürmesi mevcuttur. Ollama, .safetensors ağırlıklarından oluşan bir klasörü doğrudan yüklemez; bu nedenle dönüştürme adımı gereklidir.

Aşağıdaki her şey, Ollama'nın halihazırda kurulu olduğunu ve servisinin çalıştığını varsayar. Eğer kurulu değilse, Ollama'yı bir VPS üzerine kurma ile başlayın ve ardından buraya dönün. İlk olarak ollama list komutunu çalıştırın. Eğer bu komut bir bağlantı hatası yerine bir tablo (boş olsa dahi) döndürürse, sunucu çalışıyor demektir ve bu kılavuzun geri kalanı işleyecektir.

Birinci yöntem: Modelfile olmadan Hugging Face üzerinden GGUF çalıştırma

Ollama, GGUF dosyalarını doğrudan bir Hugging Face deposundan çekebilir. Komut, hf.co/ ön eki ile birlikte depo yoludur:

ollama run hf.co/{username}/{repository}

Hem hf.co hem de huggingface.co alan adı olarak çalışır. Hugging Face belgelerinden gerçek bir örnek:

ollama run hf.co/bartowski/Llama-3.2-3B-Instruct-GGUF

İlk çalıştırmada dosya indirilir, bu nedenle indirme tamamlanana kadar sohbet istemi görünmez. Sonrasında model yerel kütüphanenize kaydedilir ve hızlıca başlar. İkinci bir kabuk açın ve hangi isimle kaydedildiğini görmek için ollama list komutunu çalıştırın. Bu isim, etiketiyle birlikte tüm hf.co/... dizisidir ve her seferinde yazmak için uzundur. Ona kısa bir takma ad verin:

ollama cp hf.co/bartowski/Llama-3.2-3B-Instruct-GGUF my-llama
ollama run my-llama

Bu yöntem yalnızca GGUF dosyaları içeren depolarda çalışır. Yalnızca .safetensors ağırlıkları yayınlayan bir depo, Ollama'ya çekebileceği hiçbir şey sunmaz; bu durumda aşağıda açıklanan dönüştürme adımına ihtiyacınız olur.

Ollama hangi kuantizasyonu seçer?

Hugging Face'in 25 Ağustos 2026 tarihinde okunan Ollama belgeleri, varsayılan değer konusunda nettir: "Varsayılan olarak, model deposunda mevcut olduğunda Q4_K_M kuantizasyon şeması kullanılır. Eğer mevcut değilse, depodaki makul bir kuantizasyon türünü seçeriz." On farklı kuantizasyon yayınlayan bir depo size Q4_K_M verir; Q4_K_M içermeyen bir depo ise Ollama'nın sizin adınıza yaptığı bir seçimi sunar. Güvenmeden önce ilgili sayfayı tekrar okuyun, çünkü varsayılanlar değişebilir.

Etiket olarak ekleyerek belirli bir kuantizasyon isteyin:

ollama run hf.co/{username}/{repository}:{quantization}
ollama run hf.co/bartowski/Llama-3.2-3B-Instruct-GGUF:Q8_0
ollama run hf.co/bartowski/Llama-3.2-3B-Instruct-GGUF:iq3_m
ollama run hf.co/bartowski/Llama-3.2-3B-Instruct-GGUF:Llama-3.2-3B-Instruct-IQ3_M.gguf

Kuantizasyon ismi büyük/küçük harfe duyarlı değildir, bu nedenle :iq3_m ve :IQ3_M aynı anlama gelir. Ayrıca, depodaki kısa isimlerin belirsiz olduğu durumlarda güvenli yol olan tam dosya adını etiket olarak geçebilirsiniz. Etiket, o depoda var olan bir dosyayı adlandırmalıdır; bu nedenle yazmadan önce Files and versions sekmesini açın ve gerçek dosya adlarını okuyun. Hangi kuantizasyonu istediğiniz bir bellek ve kalite meselesidir; Q4, Q8 ve FP16 arasındaki fark bu takası doğru şekilde ele alır.

İkinci yol: kendi diskinizden bir .gguf dosyası içe aktarma

Dosya zaten sunucuda bulunuyorsa bir Modelfile dosyasına ihtiyacınız vardır. Bu dosya tek satırdan oluşabilir. Bir dizin oluşturun, Modelfile dosyasını içine yerleştirin ve FROM komutunu dosyaya yönlendirin:

mkdir -p ~/models/my-model
cd ~/models/my-model
FROM /home/you/models/my-model-Q4_K_M.gguf

Bunu Modelfile olarak kaydedin ve ardından modeli oluşturun:

ollama create my-model

ollama create, varsayılan olarak mevcut dizindeki Modelfile adlı bir dosyayı okur. Dosyanızın farklı bir adı varsa veya başka bir yerdeyse, ollama create my-model -f /home/you/models/my-model/Modelfile örneğinde olduğu gibi -f kullanın. Bayrağı ve derleme üzerindeki varsayılan değerini görmek için ollama create --help komutunu çalıştırın. FROM içindeki yol mutlak olabilir veya Modelfile dosyasına göre göreceli olabilir; bu nedenle her ikisi de aynı dizindeyse FROM ./my-model-Q4_K_M.gguf çalışacaktır. Mutlak bir yol kullanmak, bu belirsizliği tamamen ortadan kaldırır.

Güvenmeden önce sonucu kontrol edin:

ollama list
ollama show my-model
ollama run my-model "Reply with one short sentence."

ollama list artık my-model içermelidir. ollama show my-model, Ollama'nın dosyanın kendi meta verilerinden okuduğu mimariyi, parametre sayısını, bağlam uzunluğunu ve nicemleme (quantization) değerini yazdırır. Dosya adına güvenmek yerine bu değerleri okuyun, çünkü dosya adı birinin elle yazdığı bir metindir. Model, test isteminize normal bir dilde yanıt veriyor ve ardından duruyorsa içe aktarma işlemi başarılı olmuştur. Yanıt vermiyorsa aşağıdaki şablon bölümüne gidin, çünkü sorun neredeyse her zaman bundan kaynaklanır.

Disk alanı hakkında bilinmesi gereken bir husus: ollama create, GGUF dosyasını bulunduğu yerden referans göstermek yerine Ollama'nın kendi model deposuna kopyalar. Orijinal dosyayı silene kadar ağırlıklar diskte iki kez yer kaplar. ollama run my-model çalıştığında kaynak dosyayı silin veya iki kez ödeme yapmadığınız bir yerde tutun. Ollama'nın modellerini diskte nerede tuttuğu bölümünde dizin yapısı ve taşıma işlemleri açıklanmıştır.

--quantize bayrağı ne zaman uygulanır, ne zaman uygulanmaz

ollama create bir --quantize bayrağına sahiptir ve bu bayrak tek bir durum için mevcuttur: tam hassasiyetli ağırlıklar anlamına gelen FP16 veya FP32 formatındaki bir kaynak model. Ollama içe aktarma belgeleri, hedef olarak q8_0 ile birlikte k-means varyantları olan q4_K_S ve q4_K_M değerlerini listeler.

ollama create --quantize q4_K_M my-model

Bu bayrağı zaten nicemlenmiş bir dosyaya karşı kullanmayın. Adında Q4_K_M veya Q5_K_S geçen bir .gguf, bu işlemden zaten geçmiştir ve bayrağın yapacak bir işi yoktur. Nicemleme, daha yüksek hassasiyetten daha düşük hassasiyete tek yönlü bir dönüştürme işlemidir; bu nedenle Q4'ten Q8'e geri dönüş yolu yoktur. Kaynağınız .safetensors dosyalarından oluşan bir Hugging Face deposu ise, önce Ollama belgelerinin işaret ettiği araç olan llama.cpp deposundaki convert_hf_to_gguf.py ile dönüştürün ve ardından bu betiğin yazdığı GGUF dosyasını içe aktarın. Ollama ve llama.cpp arasındaki ilişki bölümü, dönüştürme betiğinin neden diğer projeye ait olduğunu açıklar.

İçe aktarılan bir GGUF neden anlamsız yanıtlar veriyor veya neden durmuyor?

Bu, çoğu içe aktarma rehberinin atladığı ancak mutlaka karşılaşacağınız bir hata türüdür. Belirtiler bozuk bir model gibi görünür. Kontrol belirteçleri (tokens) yanıtta görünür metin olarak belirir; <|im_start|>assistant veya <|end|> gibi dizeler buna örnektir. Model yanıt verir, ardından yeni bir kullanıcı sorusu yazar ve onu da yanıtlar. Siz Ctrl+C tuşlarına basana kadar üretim devam eder.

Modelde bir sorun yoktur. Sorun, sohbet şablonunun (chat template) yanlış olmasıdır. Sohbet şablonu, mesajınızı modelin eğitildiği tam belirteç dizisine dönüştüren bir sarmalayıcıdır; sistem isteminin nerede bittiğini ve kullanıcı sırasının nerede başladığını belirten kendi işaretçilerine sahiptir. Ollama sizin için bir tane seçer: belgelerde, bir şablonun GGUF dosyası içinde saklanan yerleşik tokenizer.chat_template meta verilerine dayalı olarak "yaygın kullanılan şablonlar listesinden otomatik olarak seçileceği" belirtilir. Bu meta veri eksik olduğunda veya listedeki hiçbir şeyle eşleşmediğinde, genel bir sarmalayıcı elde edersiniz. Model, eğitiminde görmediği bir istem yapısıyla karşılaşır ve bu nedenle durması gerektiğini öğrendiği sıra sonu işaretçisini asla bulamaz.

Ollama'nın gerçekte neyi seçtiğini yazdırın:

ollama show --template my-model
ollama show --modelfile my-model

Boş veya bariz şekilde genel bir şablon bunu doğrular. Şablonu Modelfile içinde kendiniz yazın:

FROM /home/you/models/my-model-Q4_K_M.gguf

TEMPLATE """{{ if .System }}<|system|>
{{ .System }}<|end|>
{{ end }}{{ if .Prompt }}<|user|>
{{ .Prompt }}<|end|>
{{ end }}<|assistant|>
{{ .Response }}<|end|>"""

PARAMETER stop "<|end|>"

ollama create my-model ile yeniden oluşturun ve aynı test istemini tekrar gönderin. stop parametresi güvenlik ağınızdır: bu dize göründüğünde Ollama'ya üretimi kesmesini söyler; bu, siz şablonun kendisini ayarlarken bile "asla durmama" belirtisini sona erdirir. Yanıt, belirttiğiniz hiçbir işaretçi görünmediği için hala devam ediyorsa, bir num_predict üst sınırı şablonun ne ürettiğine bakılmaksızın üretimi sabit bir belirteç sayısında keser.

Şablon bir Jinja şablonu değil, bir Go şablonu olmalıdır. Hugging Face belgeleri bunu doğrudan belirtir ve bu önemlidir çünkü orijinal model deposundaki tokenizer.chat_template alanı Jinja içerir. Bunu değiştirmeden yapıştırmak çalışmaz. Ollama'nın sözdizimi üç değişken içerir: sistem istemi için {{ .System }}, kullanıcı mesajı için {{ .Prompt }} ve modelin yanıtı için {{ .Response }}. Modelin gerçek sıra işaretçilerini model kartında veya tokenizer_config.json dosyasında bulun, ardından bunları manuel olarak Go sözdizimine yeniden yazın.

Bir kısayol bu işin çoğunu kurtarır. Birçok model ortak bir istem biçimini paylaşır; bu nedenle kütüphanenizdeki başka bir model aynı biçimi kullanıyorsa, ona karşı ollama show --template komutunu çalıştırın ve yazdırdığı içeriği kopyalayın.

Hugging Face deposundaki template, system ve params dosyaları

Hugging Face rotası, Modelfile içindeki talimatlar yerine depodaki dosyalarla aynı kontrolleri sunar. Eğer deponun sahibiyseniz veya kendi kuantizasyonunuzu yayınlıyorsanız, bu dosyaları ekleyin; böylece her ollama run hf.co/... bunları otomatik olarak alır.

  • template adlı bir dosya Go şablonunu tutar. Kural aynıdır: Jinja değil, Go kullanılmalıdır.
  • system adlı bir dosya sistem istemini (system prompt) tutar.
  • params adlı bir dosya örnekleme parametrelerini tutar ve bu dosya JSON formatında olmalıdır.

Minimal bir params dosyası:

{
  "stop": ["<|end|>"],
  "temperature": 0.7
}

Deponun sahibi olmadığınız durumlarda bu dosyaları ekleyemezsiniz. Modeli bir kez çekin, size verilenleri dışa aktarmak için ollama show --modelfile hf.co/... komutunu çalıştırın ve bu çıktıyı bir Modelfile olarak kaydedin. Bunun FROM satırı, Ollama'nın halihazırda indirdiği bloba işaret eder; bu nedenle TEMPLATE ve PARAMETER satırlarını düzenleyip, hiçbir şeyi yeniden indirmeden sabit bir yerel kopya oluşturmak için ollama create komutunu çalıştırın. Bu yöntem, başkasına ait hatalı bir kuantizasyonun onarılması için standart yoldur.

Özel bir GGUF deposunu içe aktarma

Özel bir depo, Hugging Face hesabınızda Ollama'nın SSH anahtarının tanımlı olmasını gerektirir. Bu yöntem için belgelenen yol, API belirteci yerine bir SSH anahtarı kullanır; bu nedenle halihazırda sahip olduğunuz bir belirteç, depoya erişim sağlamayacaktır.

Genel anahtarı ekrana yazdırın. Ollama'nın resmi betik ile kurulduğu bir Linux sunucusunda servis, ollama kullanıcısı olarak çalışır; bu nedenle anahtar, ilgili kullanıcının ev dizininde bulunur:

sudo cat /usr/share/ollama/.ollama/id_ed25519.pub

Eğer ollama serve servisini kendi kullanıcınızla manuel olarak başlatıyorsanız, yol bunun yerine ~/.ollama/id_ed25519.pub olacaktır. Satırın tamamını kopyalayın, https://huggingface.co/settings/keys adresinden Hugging Face hesap ayarlarınızı açın ve anahtarı yeni bir SSH anahtarı olarak ekleyin. Ardından standart komut, özel depolarınız üzerinde çalışacaktır:

ollama run hf.co/{username}/{repository}

Anahtarı eklemenize rağmen çekme işlemi hala başarısız oluyorsa, muhtemelen yanlış dosyayı yazdırdınız. İndirme işlemini sunucu gerçekleştirir ve kendi anahtarını sunar; systemd tarafından başlatılan bir sunucu, kullanıcınızın ~/.ollama dosyasını asla okumaz. Bu nedenle, ev dizininizdeki anahtar, Hugging Face'in gördüğü anahtar değildir.

Model VPS'nize sığacak mı?

Bunu belirleyen sayı, disk üzerindeki dosya boyutu ile bağlam pencerenizin (context window) ihtiyaç duyduğu bellek miktarıdır. Ağırlıklar, dosyadaki boyutlarına yakın bir miktarda belleğe yüklenir; bağlam tahsisi ise bunun üzerine eklenir ve izin verdiğiniz token sayısıyla birlikte büyür. Ollama'nın model için kaydettiği boyutu okumak için ollama list komutunu çalıştırın, bunu sunucudaki free -h ile karşılaştırın ve işletim sistemi ile sunucuda çalışan diğer her şey için bir miktar boşluk bırakın. Bu hesaplamanın gerçek bir model üzerinde nasıl yapıldığını görmek isterseniz, Nemotron 3.5 Lightning'i bir VPS üzerinde çalıştırma rehberi, çekilecek tam etiketi, ihtiyaç duyulan RAM miktarını ve yalnızca CPU içeren bir sunucunun yeterli olup olmadığını belirtir.

Bağlam, insanların unuttuğu kısımdır. Varsayılan pencere boyutunda yüklenen bir model, num_ctx değerini artırdığınızda başarısız olabilir; çünkü bu tahsis, talep ettiğiniz pencere boyutuyla ölçeklenir. num_ctx ayarı ve bellek maliyeti bölümünde boyutlandırma bilgileri yer almaktadır. Toplam miktar çok büyükse, çözüm genellikle aynı modelin daha küçük bir kuantizasyonunu kullanmaktır; bu takas Q4 ve Q8 karşılaştırması bölümünde ele alınmıştır.

Hata belirgin bir şekilde gerçekleşir. Yalnızca CPU içeren bir VPS'de, çekirdeğin bellek yetersizliği sonlandırıcısı (OOM killer) süreci durdurur ve journalctl -u ollama -n 50 ile birlikte dmesg bu sonlandırmayı gösterir. GPU'lu bir sunucuda ise ollama ps, yüklenen modelin GPU belleğine mi, sistem belleğine mi yoksa her ikisine birden mi dağıtıldığını gösteren bir PROCESSOR sütunu yazdırır. Sistem belleğine taşan bir model yanıt vermeye devam eder ancak yavaş çalışır. Saniyedeki token sayısını ölçme bölümü, "yavaş" ifadesini kuantizasyonlar arasında karşılaştırabileceğiniz bir sayıya dönüştürür.

İçe aktardığınız verileri kontrol edin

Her içe aktarma işleminden sonra bu dört komutu sırasıyla çalıştırın:

ollama list
ollama show my-model
ollama show --modelfile my-model
ollama run my-model "Reply with one short sentence."

ollama list, modelin mevcut olduğunu kanıtlar ve Ollama tarafından kaydedilen boyutu gösterir. ollama show, Ollama'nın GGUF dosyasından ihtiyaç duyduğu meta verileri okuduğunu doğrular. ollama show --modelfile, modelin gerçekte hangi şablonu ve parametreleri kullanacağını gösterir; bu kontrol, kullanıcılarınızdan önce hatalı çıktı sorunlarını tespit etmenizi sağlar. Test istemi (prompt), tüm zinciri çalıştırır çünkü şablonu bozuk bir model, en kısa istekte bile başarısız olur. İstemden temiz bir yanıt aldığınızda, modele verdiğiniz isim, kendi sunucunuza yönlendirilmiş bir kodlama aracı dahil olmak üzere Ollama API'si ile iletişim kuran diğer her yerde kullanacağınız isimle aynıdır. Hatalı bir içe aktarmayı ollama rm my-model ile kaldırın ve yeniden oluşturun. Bu komut, Ollama'nın kopyasını siler ve kaynak dosyanızı .gguf olduğu gibi bırakır.

FAQ

Bir GGUF dosyasını Modelfile yazmadan Ollama'ya aktarabilir miyim?

Evet, dosya bir Hugging Face deposunda bulunuyorsa aktarabilirsiniz. ollama run hf.co/{username}/{repository} komutu dosyayı doğrudan çeker ve çalıştırır, ollama run hf.co/{username}/{repository}:{quantization} ise belirli bir kuantizasyon seviyesini seçmenizi sağlar. Modelfile yalnızca kendi diskinizde bulunan bir .gguf için gereklidir; bu durumda da sadece FROM /path/to/file.gguf satırını ve ardından ollama create my-model ifadesini yazmanız yeterlidir.

Belirtmediğimde Ollama hangi kuantizasyonu indirir?

25 Ağustos 2026 tarihinde incelenen Hugging Face belgelerine göre, ilgili kuantizasyon depoda mevcutsa Q4_K_M kullanılır; aksi takdirde Ollama, depoda bulunan makul bir kuantizasyon türünü seçer. Kontrolü sağlamak için :Q8_0 gibi bir etiket ekleyin. Dosyanın isminden ziyade meta verilerindeki kuantizasyon bilgisini yazdıran ollama show <model> komutu ile gerçekte neyin indirildiğini doğrulayın.

İçe aktardığım model neden kendini tekrar ediyor veya üretimi durdurmuyor?

Sohbet şablonu (chat template) model ile uyumlu değildir. Ollama, GGUF içindeki tokenizer.chat_template meta verilerinden otomatik olarak bir şablon seçer. Bu meta veri eksik veya tanınmıyor ise genel bir sarmalayıcı kullanılır; bu nedenle model, eğitildiği sıra sonu işaretçisini (end-of-turn marker) göremez. Mevcut şablonu ollama show --template <model> ile yazdırın, ardından Modelfile içerisine bir TEMPLATE bloğu ve PARAMETER stop satırı ekleyerek ollama create komutunu tekrar çalıştırın. Şablonu Go template formatında yazın. Orijinal depodaki Jinja şablonu çalışmayacaktır.

İndirdiğim bir GGUF üzerinde --quantize kullanmalı mıyım?

Hayır. --quantize, ollama create işlemi sırasında bir FP16 veya FP32 kaynağını dönüştürür; ismi halihazırda Q4_K_M gibi bir kuantizasyon ifadesi taşıyan dosyalar zaten dönüştürülmüştür. Hassasiyet tekrar kuantize edilerek geri kazanılamaz ve daha yüksek bir hassasiyete dönüş yolu yoktur. Bu bayrağı yalnızca safetensors dosyalarını tam hassasiyetli bir GGUF'ye kendiniz dönüştürdüyseniz ve daha küçük bir dosya elde etmek istiyorsanız kullanın.

Özel (private) bir GGUF deposunu nasıl çekerim?

Ollama'nın SSH genel anahtarını Hugging Face hesabınıza ekleyin. Standart bir Linux kurulumunda anahtarı sudo cat /usr/share/ollama/.ollama/id_ed25519.pub ile, sunucuyu kendi kullanıcınızla çalıştırıyorsanız ~/.ollama/id_ed25519.pub üzerinden yazdırın ve ardından hesabınızın SSH anahtarları ayarları sayfasına ekleyin. Bu işlemden sonra ollama run hf.co/{username}/{repository} komutu, kendi özel depolarınızda ve üyesi olduğunuz organizasyonlara ait depolarda çalışacaktır.

#ollama#gguf#local-llm#hugging-face#modelfile