Tek Komutla Hugging Face'de vLLM Sunucusu Çalıştırma
Hugging Face Jobs, tek bir komutla vLLM sunucusu başlatmayı sağlıyor. Bu rehberde, model testleri, değerlendirmeler ve batch üretim için hızlıca bir sunucu kurmayı, OpenAI API uyumlu endpoint'e erişmeyi ve Gradio ile sohbet arayüzü oluşturmayı adım adım öğrenin.
Hızlı Başlangıç: Tek Komutla vLLM Sunucusu
Hugging Face Jobs, yapay zeka modellerini barındırmak için 'docker run' benzeri bir deneyim sunar. Tek bir komutla, bir vLLM sunucusu başlatabilir ve modelinizi testler, değerlendirmeler veya batch üretim için hemen kullanıma açabilirsiniz. Bunun için ihtiyacınız olanlar: bir ödeme yöntemi veya pozitif bakiye (Jobs, donanım kullanımına göre dakika başına ücretlendirilir), `huggingface_hub >= 1.20.0` kütüphanesi ve yerel olarak giriş yapılmış bir Hugging Face hesabı (`hf auth login`).
Örnek komut:
```bash hf jobs run --flavor a10g-large --expose 8000 --timeout 2h \ vllm/vllm-openai:latest \ vllm serve Qwen/Qwen3-4B --host 0.0.0.0 --port 8000 ```
Bu komut, `a10g-large` GPU ile bir iş başlatır, 8000 portunu dışa açar ve 2 saat zaman aşımı süresi belirler. İş başladığında, sunucuya erişim için bir URL alırsınız: `https://--8000.hf.jobs`. Bu URL, yalnızca işin namespace'ine okuma erişimi olan bir Hugging Face token'ı ile kullanılabilir.
OpenAI API ile Erişim ve Kimlik Doğrulama
vLLM sunucusu, OpenAI API formatını destekler. Her istekte, `Authorization` başlığına taşıyıcı token (bearer token) olarak Hugging Face token'ınızı eklemeniz gerekir. En hızlı test yöntemi `curl` kullanmaktır:
```bash curl https://--8000.hf.jobs/v1/chat/completions \ -H "Authorization: Bearer $(hf auth token)" \ -H "Content-Type: application/json" \ -d '{ "model": "Qwen/Qwen3-4B", "messages": [{"role": "user", "content": "Merhaba!"}], "chat_template_kwargs": {"enable_thinking": false} }' ```
Python'da ise OpenAI istemcisini kullanabilirsiniz:
```python from huggingface_hub import get_token from openai import OpenAI
client = OpenAI( base_url="https://--8000.hf.jobs/v1", api_key=get_token(), )
resp = client.chat.completions.create( model="Qwen/Qwen3-4B", messages=[{"role": "user", "content": "Merhaba!"}], extra_body={"chat_template_kwargs": {"enable_thinking": False}}, ) print(resp.choices[0].message.content) ```
Endpoint, herkese açık değildir; yalnızca yetkili token'larla erişilebilir. Bu nedenle URL'yi paylaşırken dikkatli olun.
Büyük Modeller ve Çoklu GPU Kullanımı
Aynı komut, daha büyük modeller için de geçerlidir. Daha güçlü bir `--flavor` seçin ve `--tensor-parallel-size` ile modeli GPU'lar arasında bölün. Örneğin, 122B parametreli Qwen3.5 modelini 2× H200 GPU'da çalıştırmak için:
```bash hf jobs run --flavor h200x2 --expose 8000 --timeout 2h \ vllm/vllm-openai:latest \ vllm serve Qwen/Qwen3.5-122B-A10B \ --host 0.0.0.0 --port 8000 --tensor-parallel-size 2 \ --max-model-len 32768 --max-num-seqs 256 ```
Burada `--tensor-parallel-size`, flavor'daki GPU sayısıyla eşleşmelidir. `--max-model-len` ve `--max-num-seqs` parametreleri, bellek yönetimi için önemlidir; özellikle büyük modellerde bellek taşması (out-of-memory) hatalarını önlemek için bu değerleri küçültmek gerekebilir.
Gradio ile Sohbet Arayüzü ve SSH ile Hata Ayıklama
Komut satırı yerine görsel bir sohbet arayüzü isterseniz, birkaç satır Gradio koduyla sunucuya bağlanabilirsiniz. Ayrıca, `--ssh` bayrağı ile işe SSH bağlantısı açabilir, `hf jobs ssh ` komutuyla konteyner içine girip `nvidia-smi` gibi araçlarla hata ayıklama yapabilirsiniz.
Neden Önemli?
Bu yöntem, Türkiye'deki yapay zeka geliştiricileri ve araştırmacıları için büyük bir kolaylık sunuyor. Özellikle sınırlı kaynaklarla çalışan ekipler, büyük modelleri test etmek veya değerlendirmek için pahalı altyapı kurulumları yapmak zorunda kalmıyor. Hugging Face Jobs sayesinde, dakikada ücretlendirme ile esnek ve hızlı bir şekilde sunucu ayağa kaldırmak mümkün. Bu, hem akademik çalışmalar hem de ticari uygulamalar için prototipleme sürecini hızlandırabilir. Ayrıca, OpenAI API uyumluluğu sayesinde mevcut araçlarla entegrasyon sorunsuz çalışıyor. Türk geliştiriciler, bu yöntemi kullanarak kendi modellerini barındırabilir ve yerelleştirilmiş yapay zeka çözümleri geliştirebilir.