Takip et

DeepScaleR-1.5B Modelini vLLM ile DigitalOcean Üzerinde Çalıştırma: Kapsamlı Bir Teknik Rehber

DeepScaleR-1.5B Modelini vLLM ile DigitalOcean Üzerinde Çalıştırma: Kapsamlı Bir Teknik Rehber Giriş: Büyük Dil Modellerinin Dağıtımı v

DeepScaleR-1.5B Modelini vLLM ile DigitalOcean Üzerinde Çalıştırma: Kapsamlı Bir Teknik Rehber

Giriş: Büyük Dil Modellerinin Dağıtımı ve Optimizasyonu

Büyük Dil Modelleri (LLM’ler), doğal dil işleme alanında devrim yaratarak metin üretimi, çeviri, özetleme ve karmaşık soruları yanıtlama gibi birçok görevi başarıyla yerine getirmektedir. Ancak, bu modellerin üretim ortamlarında dağıtımı ve yönetimi, yüksek hesaplama kaynakları gereksinimleri ve çıkarım (inference) sürecindeki gecikme süreleri nedeniyle önemli zorluklar barındırır. Özellikle, binlerce veya milyonlarca token üreten uzun bağlamlı sorgular, GPU belleği ve hesaplama gücü üzerinde ciddi bir yük oluşturur. Bu makale, DeepScaleR-1.5B gibi optimize edilmiş, daha küçük ölçekli bir LLM’i, yüksek performanslı vLLM çıkarım çerçevesi kullanarak DigitalOcean bulut platformunda nasıl dağıtacağımızı ve çalıştıracağımızı detaylı bir şekilde ele almaktadır. Amacımız, maliyet etkinliği ve performansı dengeleyerek, üretim ortamına hazır, ölçeklenebilir bir LLM hizmeti sunmaktır.

Büyük Dil Modelleri (LLM’ler) ve DeepScaleR-1.5B’nin Yeri

Büyük Dil Modelleri, trilyonlarca parametreye ulaşabilen ve milyarlarca token üzerinde eğitilmiş derin öğrenme modelleridir. Transformer mimarisine dayanan bu modeller, dikkat mekanizması sayesinde uzun mesafeli bağımlılıkları yakalayarak insan benzeri metinler üretebilirler. GPT-3, LLaMA, Falcon gibi modeller bu kategorinin önde gelen örnekleridir. Ancak, bu modellerin devasa boyutları, çıkarım sırasında önemli GPU belleği ve hesaplama gücü gerektirir. Bu durum, özellikle kısıtlı bütçeye sahip geliştiriciler ve küçük/orta ölçekli işletmeler için bir engel teşkil edebilir.

DeepScaleR-1.5B, bu zorlukları aşmak amacıyla geliştirilmiş, 1.5 milyar parametreye sahip, göreceli olarak daha küçük ve optimize edilmiş bir dil modelidir. Genellikle belirli görevler veya diller için ince ayar yapılmış (fine-tuned) versiyonları bulunan bu tür modeller, daha düşük maliyetli donanımlarda bile kabul edilebilir performans sunarak geniş bir kullanım alanı bulur. DeepScaleR-1.5B’nin temel avantajları şunlardır:

  • Daha Düşük Kaynak Tüketimi: Daha az parametre sayısı, daha az GPU belleği ve daha düşük hesaplama gücü gereksinimi anlamına gelir.
  • Hızlı Çıkarım: Daha küçük boyut, aynı donanımda daha yüksek token üretim hızı ve daha düşük gecikme süresi sağlar.
  • Maliyet Etkinliği: Daha uygun fiyatlı GPU’lar üzerinde çalışabilmesi, bulut hizmet maliyetlerini önemli ölçüde düşürür.
  • Özelleştirilebilirlik: Belirli bir alana veya göreve yönelik olarak ince ayar yapılması daha kolay ve hızlıdır.

DeepScaleR-1.5B’yi seçmemizin nedeni, yüksek kaliteli çıktılar sunarken aynı zamanda DigitalOcean gibi maliyet-performans dengesi iyi olan bir platformda ekonomik bir şekilde çalıştırılabilmesidir.

vLLM: Yüksek Performanslı LLM Çıkarım Çerçevesi

LLM’lerin verimli bir şekilde sunulması, sadece modelin boyutuyla ilgili değildir; aynı zamanda çıkarım çerçevesinin optimizasyon yetenekleriyle de yakından ilişkilidir. Geleneksel çıkarım yöntemleri, özellikle birden fazla eşzamanlı istek geldiğinde veya uzun metinler üretildiğinde performans darboğazları yaşayabilir. İşte bu noktada vLLM devreye girer.

vLLM, LLM çıkarımını hızlandırmak ve optimize etmek için tasarlanmış açık kaynaklı bir kütüphanedir. Temel amacı, GPU kullanımını maksimize ederek token üretim hızını (throughput) artırmak ve gecikme süresini (latency) azaltmaktır. vLLM’in sunduğu temel optimizasyonlar şunlardır:

  • PagedAttention: Bu, vLLM’in en önemli yeniliklerinden biridir. Transformer modellerinde attention mekanizması için gerekli olan key ve value (KV) önbelleklerini (cache) etkin bir şekilde yönetir. Geleneksel yaklaşımlar, her sorgu için ayrılan KV önbelleğinin tamamını kullanmasa bile bellekte tutar. PagedAttention ise sanal bellek sistemlerindeki sayfalama (paging) mekanizmasına benzer şekilde, KV önbelleğini küçük bloklara ayırır ve yalnızca gerçekten kullanılan blokları bellekte tutar. Bu sayede, GPU belleği çok daha verimli kullanılır ve aynı anda daha fazla eşzamanlı istek işlenebilir.
  • Sürekli Gruplama (Continuous Batching): Geleneksel gruplama yöntemlerinde, bir grup tamamlanana kadar yeni istekler bekletilir. vLLM, sürekli gruplama sayesinde, bir grubun içindeki istekler tamamlanırken bile yeni istekleri dinamik olarak gruba ekleyebilir. Bu, GPU’nun boşta kalma süresini azaltır ve genel verimi artırır.
  • Özelleştirilmiş CUDA Çekirdekleri: vLLM, LLM operasyonları için özel olarak optimize edilmiş CUDA çekirdekleri kullanır. Bu çekirdekler, modelin hesaplama yoğun kısımlarını daha hızlı çalıştırarak genel performansı artırır.
  • Çoklu GPU Desteği: Büyük modellerin birden fazla GPU’ya yayılmasına olanak tanır, bu da daha büyük modellerin veya daha yüksek yüklerin işlenmesini sağlar.

Bu optimizasyonlar sayesinde vLLM, Hugging Face Transformers kütüphanesinin standart çıkarım boru hatlarına göre 24 kata kadar daha yüksek verim sağlayabilir. Bu, DeepScaleR-1.5B gibi modelleri DigitalOcean’da maliyet etkin bir şekilde barındırmak için vLLM’i ideal bir seçim haline getirir.

DigitalOcean: Bulut Ortamı Seçimi

DigitalOcean, geliştiricilere ve küçük/orta ölçekli işletmelere yönelik basit, uygun maliyetli ve ölçeklenebilir bulut hizmetleri sunan popüler bir platformdur. LLM dağıtımları için DigitalOcean’ı tercih etmemizin başlıca nedenleri şunlardır:

  • Kullanım Kolaylığı: DigitalOcean’ın kullanıcı dostu arayüzü ve basit API’leri, altyapı kurulumunu ve yönetimini kolaylaştırır.
  • Maliyet Etkinliği: Diğer büyük bulut sağlayıcılarına kıyasla rekabetçi fiyatlandırma sunar, özellikle GPU kaynakları için daha ulaşılabilir seçenekler sunabilir.
  • GPU Droplet’ler: LLM’lerin çalışması için vazgeçilmez olan NVIDIA GPU’lara sahip “Droplet” (sanal makine) seçenekleri mevcuttur. Bu droplet’ler genellikle NVIDIA A100 veya A6000 gibi yüksek performanslı GPU’ları barındırır, bu da DeepScaleR-1.5B gibi modeller için yeterli hesaplama gücü sağlar.
  • Ölçeklenebilirlik: İhtiyaç halinde daha fazla kaynak eklemek veya farklı bölgelerde dağıtım yapmak mümkündür.
  • Geliştirici Dostu: Sağladığı araçlar ve dokümantasyon, geliştiricilerin hızlı bir şekilde başlamasına olanak tanır.

Bu makalede, DeepScaleR-1.5B modelini vLLM ile DigitalOcean’ın GPU destekli bir Droplet’i üzerinde çalıştıracağız.

Kurulum Öncesi Hazırlıklar

Dağıtım sürecine başlamadan önce bazı temel hazırlıkları yapmamız gerekmektedir.

DigitalOcean Hesabı ve GPU Droplet Oluşturma

  1. DigitalOcean Hesabı: Eğer bir hesabınız yoksa, DigitalOcean web sitesi üzerinden bir hesap oluşturun.
  2. GPU Droplet Seçimi: DigitalOcean kontrol panelinden “Create Droplet” seçeneğini tıklayın.
    • Bölge (Region): GPU Droplet’lerinin bulunduğu bir bölge seçin. Genellikle ABD (New York, San Francisco) veya Avrupa (Frankfurt) bölgelerinde GPU seçenekleri daha yaygındır.
    • İşletim Sistemi (OS): Ubuntu Server (tercihen en son LTS sürümü, örn. 22.04 LTS) seçin.
    • Droplet Tipi: “Premium CPU-Optimized” veya “General Purpose” altında GPU seçeneklerini arayın. NVIDIA A100 veya A6000 gibi GPU’lara sahip bir Droplet seçin. Modelin boyutu ve beklenen yük göz önüne alındığında, en az 1x A100 (80GB VRAM) veya 1x A6000 (48GB VRAM) gibi bir GPU yeterli olacaktır. Daha düşük kapasiteli GPU’lar da DeepScaleR-1.5B için uygun olabilir, ancak performans beklentilerinizi buna göre ayarlamalısınız.
    • CPU ve RAM: GPU’lu Droplet’ler genellikle yeterli CPU ve RAM ile gelir. Ancak, en az 8 vCPU ve 32 GB RAM önerilir.
    • Depolama (Storage): Model ağırlıklarının boyutu ve loglar için yeterli disk alanı seçin. En az 100-200 GB SSD önerilir.
    • SSH Anahtarları: SSH ile güvenli bağlantı için bir SSH anahtarı ekleyin veya oluşturun. Bu, Droplet’e şifre yerine anahtar ile erişmenizi sağlar.
    • Güvenlik Duvarı (Firewall): Bir güvenlik duvarı oluşturarak SSH (port 22) ve vLLM API’sinin çalışacağı portu (varsayılan 8000) açın.
  3. Droplet’i oluşturduktan sonra, genel IP adresini not alın.

SSH ile Bağlantı ve Temel Sistem Güncellemeleri

Droplet’in genel IP adresi ve SSH anahtarınızla sunucuya bağlanın:

ssh -i /yol/to/anahtar.pem root@

Bağlandıktan sonra sistemi güncelleyin ve temel paketleri kurun:

sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential git python3-pip python3-venv

NVIDIA Sürücüleri ve CUDA Toolkit Kurulumu

Bu adım, LLM’lerin GPU üzerinde çalışması için kritik öneme sahiptir.

  1. NVIDIA Sürücüleri: DigitalOcean’ın GPU Droplet’leri genellikle önceden yüklenmiş NVIDIA sürücüleriyle gelir. Ancak, en güncel ve uyumlu sürücüleri kurmak her zaman iyi bir uygulamadır. NVIDIA’nın resmi web sitesinden veya Ubuntu’nun apt deposundan sürücüleri kurabilirsiniz.
    # Mevcut sürücüleri kontrol et
            nvidia-smi
    
            # Eğer sürücüler kurulu değilse veya güncel değilse
            sudo apt install -y nvidia-driver-535 # Veya en güncel kararlı sürüm
            sudo reboot # Sürücü kurulumundan sonra yeniden başlatma gerekebilir

    Yeniden başlattıktan sonra nvidia-smi komutunu tekrar çalıştırarak sürücülerin doğru bir şekilde yüklendiğini doğrulayın.

  2. CUDA Toolkit: vLLM ve PyTorch gibi kütüphaneler için CUDA Toolkit gereklidir. NVIDIA’nın geliştirici web sitesinden uygun sürümü indirin ve kurun. Genellikle PyTorch’un desteklediği en son kararlı CUDA sürümünü (örn. CUDA 11.8 veya 12.1) tercih edin.
    # Örnek olarak CUDA 11.8 kurulumu (resmi NVIDIA talimatlarına göre değişebilir)
            wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
            sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
            wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-repo-ubuntu2204-11-8-local_11.8.0-1_amd64.deb
            sudo dpkg -i cuda-repo-ubuntu2204-11-8-local_11.8.0-1_amd64.deb
            sudo cp /var/cuda-repo-ubuntu2204-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
            sudo apt update
            sudo apt install -y cuda-toolkit-11-8
    
            # Ortam değişkenlerini ayarlayın
            echo 'export PATH=/usr/local/cuda-11.8/bin:$PATH' >> ~/.bashrc
            echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
            source ~/.bashrc

    nvcc --version komutu ile CUDA kurulumunu doğrulayın.

DeepScaleR-1.5B Modelini Hazırlama

DeepScaleR-1.5B model ağırlıklarını sunucuya indirmemiz gerekmektedir. Bu modelin Hugging Face Hub üzerinde DeepScaleAI/DeepScaleR-1.5B adıyla bulunduğunu varsayalım.

Python Sanal Ortamı Oluşturma ve Kütüphaneleri Kurma

Model ve vLLM için izole bir Python ortamı oluşturalım:

python3 -m venv vllm_env
source vllm_env/bin/activate

Şimdi gerekli Python kütüphanelerini kuralım. Özellikle PyTorch’u CUDA desteğiyle kurmak önemlidir. CUDA sürümünüzle uyumlu PyTorch sürümünü seçin (örneğin, CUDA 11.8 için cu118).

pip install --upgrade pip
pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --index-url https://download.pytorch.org/whl/cu118
pip install transformers==4.35.2 accelerate==0.24.1

Bu komutlar, PyTorch’un CUDA 11.8 ile uyumlu sürümünü ve Transformers kütüphanesinin belirtilen sürümlerini kurar.

Model Ağırlıklarını İndirme

Hugging Face Hub’dan DeepScaleR-1.5B model ağırlıklarını indirmek için transformers kütüphanesini kullanabiliriz veya direkt huggingface-cli aracını kullanabiliriz.

# Model ağırlıklarını depolamak için bir dizin oluşturun
mkdir -p models/DeepScaleR-1.5B
cd models/DeepScaleR-1.5B

Model ağırlıklarını indirin (bu biraz zaman alabilir)

transformers kütüphanesi ile:

python -c "from transformers import AutoTokenizer, AutoModelForCausalLM; AutoTokenizer.from_pretrained('DeepScaleAI/DeepScaleR-1.5B'); AutoModelForCausalLM.from_pretrained('DeepScaleAI/DeepScaleR-1.5B')"

Alternatif olarak, huggingface-cli ile:

pip install huggingface_hub

huggingface-cli download DeepScaleAI/DeepScaleR-1.5B --local-dir . --local-dir-use-symlinks False

Bu işlem, modelin tüm ağırlıklarını ve konfigürasyon dosyalarını models/DeepScaleR-1.5B dizinine indirecektir.

vLLM Kurulumu ve Yapılandırması

Model ağırlıkları hazır olduğuna göre, vLLM’i kurabilir ve DeepScaleR-1.5B ile bir çıkarım sunucusu başlatabiliriz.

vLLM Kurulumu

Aktif Python sanal ortamınızda vLLM’i kurun:

pip install vllm==0.2.7 # En son kararlı sürümü kontrol edin ve kurun

vLLM, gerekli CUDA uzantılarını derleyeceği için bu işlem biraz zaman alabilir.

vLLM Sunucusunu Başlatma

Şimdi DeepScaleR-1.5B modelini vLLM ile çalıştırmak için bir sunucu başlatabiliriz. Model dizininin doğru olduğundan emin olun.

python -m vllm.entrypoints.api_server \
    --model /root/models/DeepScaleR-1.5B \
    --host 0.0.0.0 \
    --port 8000 \
    --tensor-parallel-size 1 \
    --gpu-memory-utilization 0.9 \
    --dtype bfloat16 \
    --max-model-len 2048 \
    --enforce-eager

Bu komutun parametreleri şunlardır:

  • --model /root/models/DeepScaleR-1.5B: DeepScaleR-1.5B modelinin yerel yolu.
  • --host 0.0.0.0: API’nin tüm ağ arayüzlerinden erişilebilir olmasını sağlar.
  • --port 8000: API’nin dinleyeceği port numarası. DigitalOcean güvenlik duvarınızda bu portu açtığınızdan emin olun.
  • --tensor-parallel-size 1: Modelin kaç GPU’ya yayılacağını belirtir. Tek GPU’lu bir Droplet kullandığımız için 1 olarak ayarlanmıştır. Birden fazla GPU’nuz varsa ve model çok büyükse bu değeri artırabilirsiniz.
  • --gpu-memory-utilization 0.9: GPU belleğinin yüzde kaçının KV önbelleği için kullanılacağını belirler. Kalan kısım model ağırlıkları ve diğer operasyonlar için ayrılır. %90, genellikle iyi bir başlangıç noktasıdır.
  • --dtype bfloat16: Modelin çıkarım için kullanacağı veri tipini belirtir. bfloat16 veya float16 (FP16) genellikle daha hızlı ve daha az bellek tüketirken, float32 (FP32) daha yüksek doğruluk sunar ancak daha yavaştır ve daha fazla bellek kullanır. Çoğu modern GPU bfloat16‘yı destekler ve LLM’ler için iyi bir denge sunar.
  • --max-model-len 2048: Modelin işleyebileceği maksimum bağlam uzunluğu (input token + output token). Modelin orijinal bağlam uzunluğuna göre ayarlayın.
  • --enforce-eager: PyTorch’un eager modunu kullanmaya zorlar. Bazı durumlarda hata ayıklamayı kolaylaştırabilir. Performans için kaldırılabilir.

Komutu çalıştırdığınızda, vLLM model ağırlıklarını GPU belleğine yükleyecek ve API sunucusunu başlatacaktır. Konsolda “Uvicorn running on http://0.0.0.0:8000” gibi bir mesaj görmelisiniz.

Arka Planda Sürekli Çalıştırma (Opsiyonel)

SSH oturumunuzu kapattığınızda sunucunun durmasını engellemek için nohup kullanarak veya bir systemd servisi olarak çalıştırabilirsiniz.

nohup ile:

nohup python -m vllm.entrypoints.api_server \
    --model /root/models/DeepScaleR-1.5B \
    --host 0.0.0.0 \
    --port 8000 \
    --tensor-parallel-size 1 \
    --gpu-memory-utilization 0.9 \
    --dtype bfloat16 \
    --max-model-len 2048 \
    --enforce-eager > vllm_server.log 2>&1 &

Bu komut, sunucuyu arka planda çalıştırır ve tüm çıktıları vllm_server.log dosyasına yönlendirir.

systemd Servisi Olarak:
Daha sağlam bir çözüm için bir systemd servisi oluşturabilirsiniz.

sudo nano /etc/systemd/system/vllm.service

Dosyanın içine aşağıdaki içeriği yapıştırın (yolları ve parametreleri kendi kurulumunuza göre ayarlayın):

[Unit]
Description=vLLM API Server for DeepScaleR-1.5B
After=network.target

[Service]
User=root # veya kendi kullanıcı adınız
WorkingDirectory=/root
ExecStart=/root/vllm_env/bin/python -m vllm.entrypoints.api_server \
    --model /root/models/DeepScaleR-1.5B \
    --host 0.0.0.0 \
    --port 8000 \
    --tensor-parallel-size 1 \
    --gpu-memory-utilization 0.9 \
    --dtype bfloat16 \
    --max-model-len 2048 \
    --enforce-eager
Restart=always
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

Kaydedip kapatın, ardından servisi etkinleştirin ve başlatın:

sudo systemctl daemon-reload
sudo systemctl enable vllm.service
sudo systemctl start vllm.service
sudo systemctl status vllm.service

Servisin durumunu kontrol etmek için sudo systemctl status vllm.service komutunu kullanabilirsiniz. Logları görmek için journalctl -u vllm.service komutu işe yarar.

API Testi ve Kullanım

vLLM sunucusu çalışır duruma geldiğinde, Droplet’inizin genel IP adresi ve 8000 numaralı port üzerinden API’ye erişebilirsiniz.

curl ile API Testi

Yerel makinenizden veya başka bir sunucudan aşağıdaki curl komutunu kullanarak bir istek gönderebilirsiniz:

curl http://:8000/generate \
    -H "Content-Type: application/json" \
    -d '{
        "prompt": "Büyük dil modellerinin geleceği nedir?",
        "max_tokens": 100,
        "temperature": 0.7,
        "top_p": 0.9,
        "n": 1,
        "stream": false
    }'

Bu komut, DeepScaleR-1.5B modelinden “Büyük dil modellerinin geleceği nedir?” sorusuna 100 token’a kadar bir yanıt üretmesini ister. Yanıt JSON formatında gelecektir.

Python ile İstemci Oluşturma

Bir Python istemcisi kullanarak vLLM API’sine programatik olarak erişmek daha yaygın bir yaklaşımdır:

import requests
import json

api_url = "http://:8000/generate"
headers = {"Content-Type": "application/json"}

data = {
    "prompt": "DeepScaleR-1.5B modelinin DigitalOcean üzerindeki avantajlarını açıkla.",
    "max_tokens": 150,
    "temperature": 0.7,
    "top_p": 0.9,
    "n": 1,
    "stream": False # True yaparsanız akışlı yanıt alırsınız
}

try:
    response = requests.post(api_url, headers=headers, data=json.dumps(data))
    response.raise_for_status() # HTTP hatalarını kontrol et
    result = response.json()
    
    if "text" in result["choices"][0]:
        print("Model Yanıtı:", result["choices"][0]["text"])
    else:
        print("Yanıt formatı beklenenden farklı:", result)

except requests.exceptions.RequestException as e:
    print(f"API isteği sırasında hata oluştu: {e}")
except json.JSONDecodeError:
    print("API'den geçersiz JSON yanıtı alındı.")

Bu örnek kod, Python requests kütüphanesini kullanarak vLLM sunucusuna bir POST isteği gönderir ve modelin yanıtını yazdırır. stream=True olarak ayarlarsanız, yanıtları parça parça işlemek için akışlı okuma yapmanız gerekir.

Performans İzleme ve Optimizasyon

LLM hizmetinizin performansı ve maliyet etkinliği için izleme ve optimizasyon önemlidir.

Performans İzleme Araçları

  • nvidia-smi: Droplet üzerinde nvidia-smi komutunu çalıştırarak GPU kullanımını (bellek, GPU çekirdek kullanımı, sıcaklık) anlık olarak izleyebilirsiniz.
  • vLLM Logları: vLLM sunucusunun çıktısını yönlendirdiğiniz vllm_server.log dosyasını (tail -f vllm_server.log) veya journalctl -u vllm.service komutunu izleyerek gelen istekleri, çıkarım sürelerini ve olası hataları görebilirsiniz.
  • DigitalOcean Metrikleri: DigitalOcean kontrol panelindeki Droplet metrikleri (CPU kullanımı, RAM kullanımı, ağ trafiği) sunucunuzun genel durumunu anlamanıza yardımcı olur.

Optimizasyon İpuçları

  • --gpu-memory-utilization: Bu parametreyi dikkatli ayarlayın. Çok yüksek bir değer, model ağırlıkları için yeterli bellek bırakmayabilir ve “out of memory” hatalarına yol açabilir. Çok düşük bir değer ise KV önbellek alanını kısıtlayarak verimi düşürebilir. Deneyerek en uygun değeri bulun.
  • --dtype: bfloat16 veya float16 (FP16) kullanmak, bellek tüketimini ve hesaplama süresini önemli ölçüde azaltır. Çoğu LLM için bfloat16 yeterli doğruluk sağlar.
  • --max-model-len: Modelin desteklediği maksimum bağlam uzunluğunu aşmayın. Bu değeri ihtiyacınıza göre ayarlayın. Çok yüksek bir değer, daha fazla KV önbellek alanı ayırarak diğer istekler için alanı kısıtlar.
  • Gruplama (Batching): vLLM’in sürekli gruplama özelliği sayesinde, istemci tarafında özel bir gruplama yapmanıza gerek kalmaz. Ancak, eşzamanlı istek sayısını artırarak vLLM’in verimini artırabilirsiniz.
  • Model Kuantizasyonu: Eğer DeepScaleR-1.5B’nin kuantize edilmiş (örn. 8-bit, 4-bit) versiyonları mevcutsa, bunları kullanarak bellek tüketimini daha da düşürebilir ve performansı artırabilirsiniz. vLLM, bu tür kuantize edilmiş modelleri de destekler.
  • Maliyet Yönetimi: Kullanmadığınız zamanlarda Droplet’i kapatarak (power off) maliyetlerden tasarruf edebilirsiniz. Ancak, model ağırlıkları bellekte kalmayacağından tekrar başlatma süresi uzayacaktır. Otomatik ölçeklendirme veya DigitalOcean App Platform gibi hizmetleri kullanarak daha dinamik çözümler düşünebilirsiniz.

Güvenlik ve Bakım

Üretim ortamındaki bir LLM hizmetinin güvenliği ve düzenli bakımı hayati önem taşır.

  • SSH Anahtarı Güvenliği: SSH anahtarınızı asla paylaşmayın ve güvenli bir yerde saklayın.
  • Güvenlik Duvarı Kuralları: Sadece gerekli portları (SSH için 22, vLLM API için 8000) açın. Diğer tüm portları kapatın. İstemci IP’lerini kısıtlayarak erişimi daha da daraltabilirsiniz.
  • Sistem ve Yazılım Güncellemeleri: İşletim sisteminizi ve tüm yüklü kütüphaneleri (PyTorch, Transformers, vLLM) düzenli olarak güncelleyin. Bu, güvenlik açıklarını kapatır ve performans iyileştirmelerinden faydalanmanızı sağlar.
  • Yedekleme: Model ağırlıklarınızın ve önemli konfigürasyon dosyalarınızın yedeklerini alın. DigitalOcean’ın Snapshot veya Volume hizmetlerini kullanarak Droplet’inizin veya verilerinizin yedeklerini düzenli olarak oluşturabilirsiniz.
  • Erişim Kontrolü: API’nizi internete açıyorsanız, bir API Gateway veya ters proxy (örn. Nginx) kullanarak kimlik doğrulama, hız sınırlama ve SSL/TLS şifrelemesi eklemeyi düşünebilirsiniz. Bu, doğrudan vLLM sunucusuna erişimi engelleyerek ek bir güvenlik katmanı sağlar.

Sonuç

Bu makalede, DeepScaleR-1.5B gibi optimize edilmiş bir Büyük Dil Modelini, vLLM çıkarım çerçevesinin sunduğu üstün performans optimizasyonlarıyla DigitalOcean bulut platformunda nasıl dağıtacağımızı ve çalıştıracağımızı adım adım inceledik. DigitalOcean’ın erişilebilir GPU Droplet’leri ve vLLM’in PagedAttention gibi yenilikçi teknikleri sayesinde, maliyet etkin ve yüksek verimli bir LLM çıkarım hizmeti kurmak mümkündür.

Bu kurulum, geliştiricilere ve işletmelere, LLM’lerin gücünden faydalanırken aynı zamanda altyapı maliyetlerini ve operasyonel karmaşıklığı yönetme esnekliği sunar. DeepScaleR-1.5B gibi modeller, belirli kullanım durumları için büyük modellere kıyasla daha pratik ve sürdürülebilir bir çözüm sunar. Gelecekte, daha da optimize edilmiş modeller, gelişmiş çıkarım çerçeveleri ve bulut sağlayıcılarının sunduğu yeni GPU seçenekleri ile LLM dağıtımları daha da kolaylaşacak ve daha geniş kitlelere ulaşacaktır. Bu rehber, kendi LLM projelerinizi bulutta hayata geçirmek için sağlam bir temel oluşturmaktadır.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Mobil sürümden çık