Ana içeriğe atla

vLLM: CPU için vLLM’i Yerelde ve Google Cloud’da Kurma

vLLM’yi (Virtual Large Language Model) Docker ile yerelde ve Google Cloud ile bulutta nasıl kurup çalıştıracağınızı öğrenin.
Güncel 3 Eki 2026  · 12 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

vLLM (Virtual Large Language Model), büyük dil modellerini (LLM’ler) barındırmak için tasarlanmış bir kütüphanedir. Büyük ölçekli dil işleme görevlerini yürütmek için optimize edilmiş bir ortam sunar.

Kendi LLM’imizi barındırmak istememizin birkaç nedeni vardır. Bir modeli yerelde veya bir bulut platformunda barındırmak, veri gizliliği üzerinde kontrol sağlar, modeli özel ihtiyaçlarımıza daha iyi uyacak şekilde özelleştirme imkânı tanır ve uygulamaya bağlı olarak daha ucuz olabilir.

Ayrıca vLLM, OpenAI API ile uyumludur. Bu uyumluluk, OpenAI altyapısıyla çalışan mevcut kodumuz varsa, kod tabanını değiştirmeden bunu vLLM ile kendi barındırdığımız LLM ile değiştirebileceğimiz anlamına gelir.

Bu yazıda, vLLM’yi kurma adımlarında size rehberlik edeceğim. Önce Docker kullanarak bilgisayarımızda nasıl çalıştırabileceğimizi göstereceğiz; bu, uygulamaları farklı ortamlarda tutarlı şekilde çalıştırmayı kolaylaştıran popüler bir konteynerleştirme aracıdır. Ardından, daha büyük görevleri veya daha yüksek trafik hacimlerini karşılamaya hazır olmalarını sağlayarak bu modelleri barındırmak için ölçeklenebilir bir çözüm sağlayan Google Cloud üzerinde vLLM’yi nasıl dağıtacağımızı öğreneceğiz.

Docker ile CPU için vLLM’yi Yerelde Kurma

vLLM, genellikle hızlandırma için NVIDIA GPU’ların kullanıldığı bir CUDA platformu için optimize edilmiş, verimli bir kurulumla LLM’leri çalıştırmayı kolaylaştırır. Ancak modeli CPU’da çalıştırmayı hedefliyorsak, vLLM’nin özellikle CPU kullanımı için sağladığı Docker imajını kullanabiliriz. Bu esneklik, CUDA etkin bir ortama erişimimiz olmasa bile modelleri barındırmamıza olanak tanır. vLLM’yi bir CUDA platformunda barındırmak için hızlı başlangıç kılavuzlarına bakın.

Çoğumuzun üst düzey GPU’lara erişimi olmadığı için odağımızı vLLM’yi CPU üzerinde çalışacak şekilde kurmaya vereceğiz. Böylece elimizdeki kaynaklarla da LLM’lerle deney yapabiliriz.

Süreci basitleştirmek için uygulamaları ve bağımlılıklarını konteynerlere paketlememizi sağlayan popüler bir araç olan Docker’ı kullanacağız. Bir konteyneri, belirli bir yazılımı çalıştırmak için gereken her şeyi içeren hafif ve taşınabilir bir birim olarak düşünebilirsiniz. Docker sayesinde vLLM’yi elle kurma veya sistemimizde olası uyumluluk sorunlarıyla uğraşma derdimiz olmaz.

vLLM, özellikle CPU yürütümü için tasarlanmış, kullanıma hazır bir Docker imajı sunar. Bu imaj, vLLM’yi çalıştırmak için gereken tüm bileşenleri içerir; böylece kurulumdaki karmaşıklıklar yerine modeli kullanmaya odaklanabiliriz. Bu da LLM’lerimizi CPU üzerinde hızlı ve verimli bir şekilde çalıştırmaya başlayabileceğimiz anlamına gelir.

Adım 1: Docker imajını oluşturma

Öncelikle bilgisayarımızda vLLM’yi çalıştırmamıza imkân verecek bir Docker imajı oluşturmamız gerekiyor. vLLM deposu, vLLM’yi CPU üzerinde çalıştırabilecek bir imajı oluşturmaya yönelik gerekli tüm talimatları içeren Dockerfile’lar sağlar.

  • Dockerfile.cpu standart CPU’lar için.
  • Dockerfile.arm modern Mac’lerdeki gibi ARM CPU’lar için.

Bende M2 işlemcili bir Mac olduğu için .arm dosyasını kullanacağım. İmajı oluşturmak için önce depoyu klonlayıp (veya indirip) içinde şu komutu çalıştırıyoruz:

docker build -f Dockerfile.arm -t vllm-cpu --shm-size=4g .

Bu komutun ne yaptığına hızlıca bakalım:

  • docker build: Bir Dockerfile’dan Docker imajı oluşturur.
  • -f Dockerfile.arm: Kullanılacak Dockerfile’ı belirtir.
  • -t vllm-cpu: İmajı kolay referans için vllm-cpu etiketiyle işaretler (başka bir ad da olabilirdi).
  • --shm-size=4g: Performansı artırmaya yardımcı olacak şekilde 4 GB paylaşımlı bellek ayırır.

Adım 2: Hugging Face’i ayarlama

vLLM, modellerin yönetimini kolaylaştıran bir platform olan Hugging Face’i kullanarak model barındırma sürecini kolaylaştırır. Başlamak için şunları yapalım:

  1. Hugging Face hesabı oluşturun: Hugging Face web sitesini ziyaret edin ve henüz yapmadıysanız bir hesap açın.
  2. Bir modele erişim isteyin: Oturum açtıktan sonra kullanmak istediğimiz modeli arayın. Bu gösterim için başlangıç testlerine uygun daha küçük bir model olduğu için meta-llama/Llama-3.2-1B-Instruct modelini öneriyorum. Model sayfasında erişim isteği seçeneği olabilir. Erişim almak için sağlanan talimatları izleyin.
  3. Bir belirteç (token) oluşturun: Hugging Face’teki API token sayfasına gidin. "Create New Token"a tıklayarak bir token oluşturun. Modelleri indirmek ve erişmek için bu token gereklidir.

Adım 3: Docker konteynerini çalıştırma

Docker imajımız hazır ve Hugging Face token’ımız elinizde olduğuna göre, vLLM modelini şu komutla çalıştırabiliriz:

docker run -it --rm -p 8000:8000 \
--env "HUGGING_FACE_HUB_TOKEN=<replace_with_hf_token>" \
vllm-cpu --model meta-llama/Llama-3.2-1B-Instruct \
--dtype float16

Bu komutu açalım:

  • docker run: Belirtilen Docker imajına dayalı bir konteyneri çalıştırır.
  • -it: Konteyneri etkileşimli ve terminal erişimiyle çalıştırır.
  • --rm: Konteyner durduğunda otomatik olarak siler.
  • -p 8000:8000: Konteynerin 8000 portunu makinemizdeki 8000 portuna eşler; hizmeti yerelde erişilebilir kılar.
  • --env "HUGGING_FACE_HUB_TOKEN=<replace_with_hf_token>": Hugging Face token’ını ortam değişkeni olarak ayarlar; vLLM’nin Hugging Face API’sine bağlanmasını sağlar. <replace_with_hf_token> kısmını oluşturduğumuz gerçek token ile değiştirin.
  • vllm-cpu: Önceden oluşturduğumuz Docker imajının adını belirtir.
  • --model meta-llama/Llama-3.2-1B-Instruct: Çalıştırılacak modeli belirtir.
  • --dtype float16: Model CPU’da çalışırken bunu gerektirdiği için float16 veri türünü kullanır.

Bu komutu çalıştırdığımızda, sunucu LLM’yi indirmesi gerektiğinden hazır hâle gelmesi biraz sürebilir. Terminalde şuna benzer bir çıktı gördüğümüzde hazır demektir:

INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)

LLM ile etkileşim

vLLM’nin en güzel özelliklerinden biri OpenAI API ile uyumluluğudur. Bu da OpenAI altyapısıyla etkileşim kurmak üzere yazılmış mevcut kodumuz varsa, aynı kodu vLLM üzerinden barındırılan bir modelle iletişim kurmak için kolayca kullanabileceğimiz anlamına gelir.

Bu uyumluluk, mevcut kod tabanımızı değiştirmeden sorunsuz bir geçiş sağlar. Dolayısıyla vLLM’yi kurduğumuzda, LLM ile etkileşim kurmak için alışık olduğumuz araç ve komutları kullanmaya devam etmek kolaylaşır; entegrasyon süreci verimli ve kullanıcı dostu olur.

Docker üzerinde çalışan yerel sunucumuza bir mesaj göndermeye şöyle bir örnek:

from openai import OpenAI
openai_api_key = "EMPTY"
openai_api_base = "http://localhost:8000/v1"
client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)
models = client.models.list()
model = models.data[0].id
completion = client.chat.completions.create(
    model=model,
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello"},
    ]
)
print(completion.choices[0].message.content)

Yukarıda "EMPTY" API anahtarını kullandığımıza dikkat edin. Bu varsayılan anahtardır. --api-key parametresiyle belirterek modele erişim için bir anahtar gerektirebiliriz. Örneğin:

docker run -it --rm -p 8000:8000 \
--env "HUGGING_FACE_HUB_TOKEN=<replace_with_hf_token>" \
vllm-cpu --model meta-llama/Llama-3.2-1B-Instruct \
--dtype float16 --api-key supersecretkey

Bu durumda, kodun başındaki anahtarı şu şekilde değiştirmemiz gerekir:

openai_api_key = "supersecretkey"

Google Cloud’da CPU için vLLM’yi Barındırma

vLLM kullanarak bir LLM’yi Google Cloud üzerinde barındırmak, LLM’leri dağıtmak için bir çözüm sunar. Belirtilen adımları daha anlaşılır hâle getirecek şekilde ele alalım.

Adım 1: Google Cloud Console’a erişin

Önce Google Cloud Console’a erişmemiz gerekiyor. Bunu web tarayıcımızda Google Cloud Console’a giderek yapabiliriz. Henüz bir Google hesabımız yoksa Google Cloud hizmetlerini kullanmak için bir hesap oluşturmamız gerekir.

Adım 2: Proje oluşturun

Google Cloud Console’da ekranın üst kısmındaki proje açılır menüsünü bulun ve "New Project"i seçin. 

Create new google cloud project

Proje adı olarak vllm-demo girin; böylece daha sonra tanımlaması kolay olur.

Project setup options

Zaten bir Google Cloud hesabımız varsa deneme faturalandırma hesabı kullanılamayabilir. Bu durumda yeni bir faturalandırma hesabı oluşturmamız gerekir. Bunu yapmak için "Billing" bölümüne gidin ve mevcut bir faturalandırma hesabını seçmek veya yeni bir hesap oluşturmak için adımları izleyin.

Adım 3: Artifact Registry hizmetini etkinleştirin

Artifact Registry, konteyner imajlarını depolamamıza ve yönetmemize olanak tanır. vLLM’yi çalıştırmak için kullanacağımız Docker imajını burada saklayacağız. 

Cloud Console’da "artifact" araması yaparak Artifact Registry’yi açın.

Open the artifact registry

Ardından projemiz için etkinleştirin. Bu adım, vLLM kurulumumuzun Docker imajını depolamak için gereklidir.

Enabling the artifact registry.

Adım 4: Bir artifact deposu oluşturun

Şimdi konteyner imajlarımızı saklamak için bir artifact deposu oluşturmamız gerekiyor. Artifact Registry’ye gidin ve "Create Repository"ye tıklayın. 

Creating a new repository.

Depoya vllm-cpu adını verin ve biçim olarak "Docker"ı seçin. Konumu, dağıtım gereksinimlerimize göre performansı iyileştirmek için us-central1 olarak belirtin. Geri kalan yapılandırmaları varsayılan değerlerde bırakabilirsiniz.

Repository configuration.

Adım 5: Docker imajını oluşturun ve gönderin (push)

Yerel makinemizde yaptığımız gibi Docker imajını oluşturmamız ve ardından vllm-cpu Google Cloud depomuza yüklememiz (push) gerekiyor. Bunu sağ üst köşedeki cloud shell’i kullanarak yapacağız.

Opening the Google cloud console..

O terminalde, gerekli dosyaları almak için vLLM GitHub deposunu şu komutla klonlayın:

git clone https://github.com/vllm-project/vllm.git

Terminali kullanarak klonlanan vLLM dizinine gidin.

cd vllm

CPU kullanımı için yapılandırılmış sağlanan Dockerfile’ı kullanan belirli komutla Docker imajını oluşturun:

docker build \
-t us-central1-docker.pkg.dev/vllm-demo/vllm-cpu/vllm-openai:latest \
-f Dockerfile.cpu .

Docker imajı oluşturulduktan sonra, onu Artifact Repository’ye gönderin. Bu adım, imajın daha sonra Google Cloud hizmetleri tarafından kullanılabilmesi için yüklenmesini sağlar:

docker push us-central1-docker.pkg.dev/vllm-demo/vllm-cpu/vllm-openai:latest

Adım 6: Cloud Run üzerinde hizmeti kurun

Google Cloud Run, konteynerleştirilmiş uygulamaları dağıtmaya olanak tanır. Az önce oluşturduğumuz imajı dağıtmak için bu hizmeti kullanacağız. 

Arama çubuğuna "cloud run" yazın ve “Cloud Run” hizmetini açın.

Opening Cloud Run

Buradan "Create Service" düğmesine tıklayın:

Creating a new service on google cloud

Ardından şu adımları izleyin:

  1. Konteyner imajını seçin: Az önce gönderdiğimiz konteyner imajını seçin.
  2. Portu yapılandırın: vLLM’nin kullandığı 8000 varsayılan portunu ayarlayın.
  3. Hugging Face token’ını ekleyin: "Variables & Secrets" bölümünde HUGGING_FACE_HUB_TOKEN adında yeni bir değişken ekleyin ve token’ımızı buraya yapıştırın. Bu token, vLLM’nin Hugging Face’ten modellere erişmesini sağlar.
  4. Konteyner argümanları: Komut bölümünde istenen modeli belirtmek için --model=meta-llama/Llama-3.2-1B argümanını ekleyin.
  5. Kaynak ayırın: Belleği 16 GiB, CPU sayısını 4 olarak ayarlayın; böylece konteynerin verimli işlem için yeterli kaynağı olur.
  6. Örnek (instance) ayarları: Soğuk başlatma sürelerini azaltmak için en az bir örneği canlı tutun. Bu, maliyeti artırabilir; ancak model indirme ve başlatma süresini azaltarak performansı iyileştirir.

Tüm yapılandırmalar tamamlandığında (diğer seçenekler varsayılan kalabilir), sayfanın altındaki “Create” düğmesine tıklayın. Hizmet hazır olana kadar bekleyin ve hizmet sayfasına gidin. Burada LLM ile iletişim kurmak için kullanabileceğimiz hizmet URL’si yer alır. 

Şuna benzer görünmelidir:

https://vllm-llama-577126904161.us-central1.run.app

LLM ile etkileşim

Modeli yerelde çalıştırırken yaptığımız gibi Python kullanarak LLM ile etkileşebiliriz. Yalnızca betikteki URL’yi değiştirmemiz yeterli:

# Replace with your service URL
openai_api_base = "https://vllm-llama-577126904161.us-central1.run.app/v1"

Önemli maliyet hususları

Uyarı: Bu adımları izlerken artifact registry’yi açık tutmanın size para kazandıracağını unutmayın. Lütfen bu kılavuzu uyguladıktan sonra faturalandırma hesabını bağlantısını kaldırmayı unutmayın; aksi hâlde kimse kullanmasa bile ücretlendirileceksiniz.

Google Cloud GPU Kurulumu

Bu eğitim yazılırken, Google Cloud Run için GPU desteği isteğe bağlı olarak sunulmaktadır. Bu, bu özelliğe özel olarak erişim talep etmemiz gerektiği anlamına gelir. Erişim verildikten sonra vLLM’yi GPU ile çalıştırmak, CPU kullanımına kıyasla performansı önemli ölçüde artıracaktır. Bu, paralel görevleri daha verimli işlemek üzere tasarlandıkları için özellikle büyük dil modellerini çalıştırırken faydalıdır.

GPU desteğine erişim sağlarsak iş akışımızı daha da sadeleştirebiliriz. Bu senaryoda kendi Docker imajımızı oluşturma sürecinden geçmemiz gerekmez. Bunun yerine doğrudan vllm/vllm-openai:latest adlı hazır imajı kullanarak bir hizmet oluşturabiliriz. Bu imaj GPU ile çalışacak şekilde optimize edilmiştir; böylece CPU yapılandırmaları için gerekli ek kurulum adımlarına gerek kalmadan modelleri hızlı ve etkili bir şekilde dağıtabiliriz.

GPU erişimi onaylandıktan ve sağlanan imajla hizmeti kurduktan sonra, vLLM dağıtımımız GPU’ların sunduğu güç ve hızdan tam olarak yararlanabilir; bu da gerçek zamanlı uygulamalar ve yoğun dil işleme görevleri için son derece uygundur.

RunPod: Alternatif Barındırma

Alternatif barındırma seçenekleri arayanlar için RunPod gibi platformlar, büyük dil modellerini barındırmak için sadeleştirilmiş hizmetler sunar. Örneğin RunPod, dağıtım sürecini basitleştiren bir sunucusuz kurulum sağlar.

Hosting with RunPod.

Bu seçenek kullanıcı dostu ve hızlı olsa da, kolaylığın çoğu zaman daha yüksek bir maliyetle geldiğini akılda tutmak gerekir. Bütçe kısıtları söz konusuysa, kullanım kolaylığını bu tür hizmetlere ilişkin maliyetlerle karşılaştırmak isteyebilirsiniz.

Sonuç

Bu eğitimde vLLM’yi hem yerelde hem de Google Cloud üzerinde kurup barındırma sürecini inceledik.

Yüksek seviye GPU kaynakları olmadan da erişilebilirlik sağlayacak şekilde özellikle CPU’lar için uyarlanmış Docker imajlarını nasıl oluşturup çalıştıracağımızı öğrendik. Ayrıca daha büyük görevleri ele almak için ölçeklenebilir bir çözüm sunan Google Cloud üzerinde vLLM’yi dağıtmayı gördük.


François Aubry's photo
Author
François Aubry
LinkedIn
CheapGPT’te full-stack mühendisi ve kurucuyum. Öğretmek her zaman tutkum oldu. Öğrencilik yıllarımdan itibaren diğer öğrencilere ders verme ve yardımcı olma fırsatlarını hevesle aradım. Bu tutku beni doktora yapmaya yönlendirdi; bu süreçte akademik çalışmalarımı desteklemek için araştırma görevlisi olarak da görev aldım. O yıllarda, geleneksel sınıf ortamında bağlar kurmaktan ve öğrenmeyi kolaylaştırmaktan büyük bir tatmin duydum. Ancak çevrim içi öğrenme platformlarının ortaya çıkmasıyla birlikte dijital eğitimin dönüştürücü potansiyelini fark ettim. Nitekim üniversitemizde bu tür bir platformun geliştirilmesinde aktif rol aldım. Geleneksel öğretim ilkelerini yenilikçi dijital yöntemlerle bütünleştirmeye derinden bağlıyım. Tutkum, yalnızca ilgi çekici ve bilgilendirici olmakla kalmayan, aynı zamanda bu dijital çağdaki öğrenenler için erişilebilir kurslar tasarlamaktır.
Konular
Yapay Zeka
Büyük Dil Modelleri

Bu kurslarla yapay zekâyı öğrenin!

Kurs

LangChain ile LLM Uygulamaları Geliştirme

3 sa
52K
LangChain'de LLM'leri, istemleri, zincirleri ve aracıları kullanarak yapay zeka destekli uygulamaları nasıl oluşturacağınızı keşfedin.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Devamını GörDevamını Gör