Uygulama rehberi · 11 dakikalık okuma

# Llama 3.3 70B'yi tek bir düğümde sunmak.

Beş dakika önce teslim edilen bir makineden, istekleri yanıtlayan OpenAI uyumlu bir uç noktaya — işlem hacminizi sessizce yarıya indiren iki bayrak ve sizi ele geçirilmeye açık bırakan bayrakla birlikte.

Kısa cevap

- **Gereken bellek:** 4-bit'te 43 GB, FP8'de 82 GB, BF16'da 164 GB — tümü 8k bağlamda
- **En basit makine:** Bir adet 80 GB'lık kart. Sharding yok, ara bağlantı yok, senkronizasyon yok
- **İlk tokene kadar geçen süre:** Teslimattan itibaren on beş dakikadan az, çoğu ağırlıkları indirmekle geçer
- **Tek hata:** 8000 portunu herkese açık bir adreste yayınlamak. Kimlik doğrulaması yoktur

## Gerekenler

70 milyar parametre. 4-bit'te bu, 35 GB ağırlık demektir; KV önbelleği tek bir istek için 8k bağlamda 2.5 GB daha ekler, çalışma zamanı ek yükü ise yaklaşık %15'tir. Geri kalan her şey bu üç sayıdan çıkar — [boyutlandırma rehberi](https://gpuserver.io/tr/guides/vram-sizing) bunların nereden geldiğini gösterir.

**Llama 3.3 70B için gereken bellek, hassasiyet ve bağlama göre**

| Hassasiyet | Ağırlıklar | 8k bağlamında toplam | 32k bağlamında toplam | 128k bağlamında toplam |
|---|---|---|---|---|
| BF16 / FP16 Referans kalitesi | 140 GB | 164 GB | 173 GB | 207 GB |
| FP8 Referansa yakın, Hopper ve Blackwell | 70 GB | 82 GB | 86 GB | 103 GB |
| 4-bit (AWQ, GPTQ) En küçük ağırlıklar, önbellek FP16 kalır | 35 GB | 43 GB | 52 GB | 86 GB |

128k'daki 4-bit satırına dikkat edin: ağırlıklar 35 GB'a küçülür ama önbellek hiç küçülmez, çünkü AWQ ve GPTQ yalnızca ağırlıkları nicemler. Aşağıdaki makine seçiminin çoğunu belirleyen tek gerçek budur.

## Düğüm seçimi

Katalogumuzdaki, bu modeli *tek* bir kartta barındıran en ucuz makineler — mümkünse tercih edeceğiniz yapılandırma budur: sharding olmayınca senkronizasyon da olmaz, hata ayıklanacak bir şey daha az olur.

**Llama 3.3 70B'yi tek kartta barındıran düğümler**

| Düğüm | Sığan hassasiyet | Kart belleği | Tahmini tok/s | Aylık |
|---|---|---|---|---|
| [NVIDIA RTX A6000](https://gpuserver.io/tr/gpu/rtx-a6000) PCIe 5.0 · 768 GB/s | 4-bit (AWQ, GPTQ) | 48 GB | ~10 | $286/ay |
| [2 × NVIDIA RTX A6000](https://gpuserver.io/tr/gpu/rtx-a6000) PCIe 5.0 ×16 · 768 GB/s | 4-bit (AWQ, GPTQ) | 48 GB | ~10 | $597/ay |
| [NVIDIA L40S](https://gpuserver.io/tr/gpu/l40s) PCIe 5.0 · 864 GB/s | 4-bit (AWQ, GPTQ) | 48 GB | ~11 | $714/ay |
| [NVIDIA A100 PCIe](https://gpuserver.io/tr/gpu/a100-80gb) PCIe 5.0 · 1,935 GB/s | 4-bit (AWQ, GPTQ) | 80 GB | ~25 | $1,091/ay |

İşlem hacmi, bellek bant genişliğiyle sınırlı tek akışlı üretimdir ve kasıtlı olarak muhafazakârdır. Sürekli batching ile eşzamanlı istekler genelinde *toplam* değer kat kat daha yüksektir — vLLM'in bütün amacı budur.

## On dakikalık kurulum

Burada adres dışında bize özgü hiçbir şey yoktur. Docker, NVIDIA container toolkit ve çalışan bir sürücü yığını makinede zaten hazırdır.

Makineyi onaylayın, ardından ağırlıklara barınacak bir yer verin

```
$ ssh root@203.0.113.42
$ nvidia-smi --query-gpu=name,memory.total --format=csv

# Weights on the fast local NVMe, not the system volume.
$ mkdir -p /scratch/models
$ df -h /scratch

# A gated model needs a token. Skip if yours is open.
$ export HF_TOKEN=hf_xxxxxxxxxxxxxxxxxxxx
```

## Sunucuyu başlatmak

Tek bir konteyner. İlk çalıştırma yaklaşık 40 GB nicemlenmiş ağırlık indirir; bu da 1 Gbit/s hızındaki bir portta birkaç dakika sürer; bundan sonraki her yeniden başlatma saniyeler içinde tamamlanır.

vLLM, tek kart, 4-bit

```
$ docker run -d --name vllm --restart unless-stopped \
    --gpus all --ipc=host \
    -v /scratch/models:/root/.cache/huggingface \
    -e HF_TOKEN="$HF_TOKEN" \
    -p 127.0.0.1:8000:8000 \
    vllm/vllm-openai:latest \
    --model casperhansen/llama-3.3-70b-instruct-awq \
    --quantization awq_marlin \
    --max-model-len 8192 \
    --gpu-memory-utilization 0.92

# Watch it load. "Application startup complete" is the signal.
$ docker logs -f vllm
```

İlk istek

```
$ curl -s http://127.0.0.1:8000/v1/models | head

$ curl -s http://127.0.0.1:8000/v1/chat/completions \
    -H 'Content-Type: application/json' \
    -d '{"model":"casperhansen/llama-3.3-70b-instruct-awq",
         "messages":[{"role":"user","content":"In one sentence: what is a KV cache?"}],
         "max_tokens":80}'
```

## Önemli olan bayraklar

--max-model-len Sunduğunuz bağlama ayarlayın vLLM, KV önbelleğini beyan edilen maksimum için ayırır. Siz 8192 sunarken 131072 beyan etmek, ihtiyacınız olan belleğin on altı katını çöpe atmak demektir ve bunun belirtisi bir hata değil, “yetersiz eşzamanlılık”tır.

--gpu-memory-utilization 0.90 ile 0.95 arası vLLM'in talep edebileceği kart oranı. Talep etmediği her şey boşa gider; adanmış bir makinede 0.90 varsayılanını bırakmak size gerçek eşzamanlılığa mal olur. 0.95'in üzerine çıkmayın.

--ipc=host Zorunlu, isteğe bağlı değil Bu olmadan konteynerin paylaşılan belleği 64 MB ile sınırlı kalır. Tek kartta bu sorun yaratmayabilir; sharding uygulanmış bir modelde ise NCCL, anlamlı bir hata vermeden takılır.

--tensor-parallel-size Yalnızca model sığmadığında Tek bir karta sığan bir modelde sharding yapmak onu *daha yavaş* hale getirir. [Ara bağlantı rehberine](https://gpuserver.io/tr/guides/nvlink-vs-pcie) bakın — pahalı bir düğümün ucuz bir düğümden daha kötü performans göstermesinin en yaygın tek yolu budur.

--kv-cache-dtype fp8 Önbelleğinizi yarıya indirir Hopper ve Blackwell'de. Tutabileceğiniz bağlamı veya eşzamanlılığı iki katına çıkarır, genellikle ölçülemeyen bir kalite maliyetiyle. Bu listedeki en kolay kazanç.

--max-num-seqs Gerçek eşzamanlılığınıza sınırlayın Sekiz kullanıcıya hizmet veren bir makinede bunu 256'da bırakmak, vLLM'in 256 için planlama yapması ve tutamayacağı istekleri kabul etmesi anlamına gelir; bu da reddetme değil, gecikme sıçramaları olarak ortaya çıkar.

## Onu dünyaya yayınlamamak

**OpenAI uyumlu API'nin varsayılan olarak kimlik doğrulaması yoktur.** Herkese açık bir adreste `0.0.0.0`'a bağlıysa, bu açık bir çıkarım sunucusudur ve tarayıcılar bunları saatler içinde bulur. Yukarıdaki komuttaki `-p 127.0.0.1:8000:8000` kısmına dikkat edin — baştaki bu adres, onu internetten uzak tutan şeydir ve başka bir yerden komut kopyalanırken en sık atlanan tek karakterdir.

Kendi makinenizden bir SSH tüneli üzerinden erişin — açılan port yok, yönetilecek sertifika yok, yanlış yapılandırılacak bir şey yok:

Dizüstü bilgisayarınızdan

```
$ ssh -N -L 8000:127.0.0.1:8000 root@203.0.113.42

# Now http://127.0.0.1:8000 on your laptop is the server.
```

Gerçekten herkese açık olması gerekiyorsa, önüne TLS ve bir API anahtarıyla bir ters proxy koyun ve güvenlik duvarında kaynak adreslerini de kısıtlayın. [Dokümantasyon](https://gpuserver.io/tr/docs#firewall)da minimal bir kural kümesi bulunur. Herkesin sorduğuna yanıt verecek bir uç nokta için doğru duruş, çifte önlemdir.

## İşlem hacmini artırmak

Denemeye değer sıraya göre. İlk ikisi ücretsizdir ve genellikle en büyük kazancı sağlar.

1. **`--max-model-len` değerini gerçek bağlamınıza düşürün.** Neredeyse her zaman tek başına en büyük kazanç budur ve kullanmadığınız hiçbir şeye mal olmaz.
2. **`--gpu-memory-utilization` değerini 0.95'e çıkarın.** Bu, adanmış bir makinedir; kartta yer ayrılacak başka bir şey yoktur.
3. **Kart destekliyorsa FP8 KV önbelleğini açın.** Tutabileceğiniz miktarı ikiye katlar.
4. **İstemci tarafında batch yapın.** Sürekli batching yalnızca istekler eşzamanlı geldiğinde işe yarar. Tek tek gelen istekler, ne yapılandırırsanız yapılandırın kartın çoğunu boşta bırakır.
5. **Ancak bundan sonra, daha hızlı bir kart düşünün.** Üretim hızı bellek bant genişliğiyle sınırlıdır, bu yüzden 4.800 GB/s'teki bir H200, aynı model için 2.000'deki bir H100 PCIe'nin kabaca 2,4× katıdır — gerçek bir kazanç, ve bu listedeki en pahalısı.

Önce ve sonra ölçün — tahmin etmeyin

```
$ docker exec vllm python -m vllm.entrypoints.openai.api_server --help | head -1
$ docker exec vllm vllm bench serve \
    --model casperhansen/llama-3.3-70b-instruct-awq \
    --num-prompts 200 --request-rate 8

# And watch the card while it runs: if utilisation sits below 90%,
# the bottleneck is your client, not the GPU.
$ nvidia-smi dmon -s um
```

## Çalışır durumda tutmak

İlk gün yapılmaya değer üç şey, çünkü üçünü de on dördüncü günde keşfetmek can sıkıcıdır.

### Yeniden başlatma politikası

`--restart unless-stopped` yukarıdaki komutta yer alır. Yeniden başlatmadan sonra konteyner geri döner ve ağırlıklar zaten `/scratch` üzerindedir, böylece bir dakikadan kısa sürede çalışır hale gelir.

### Süreci değil, kartı izleyin

Veri yolundan düşmüş bir GPU, sağlıklı görünen bir konteyner bırakır. Bir sağlık kontrolünde `nvidia-smi -q -d PERFORMANCE` bunu yakalar; bir port kontrolü yakalamaz.

### Ağırlıkların yedeği alınmaz

Bunlar yalnızca yerel NVMe'nizde bulunur, başka hiçbir yerde değil. Bu sorun değil — yeniden indirilebilirler. Fine-tuning yapılmış adaptörleriniz öyle değildir, bu yüzden onları makinenin dışında bir yere koyun.

Ve süre sona erdiğinde, diskler bir saat içinde, hiçbir ek süre tanınmadan silinir. `/scratch` üzerindeki her şey bununla birlikte gider. Bu kasıtlıdır — size verilen makinede başka kimsenin verisinin olmadığını garanti eden söz de aynı sözdür — ama bu, sürenin son gününün dosyaları kopyalamaya başlamak için uygun bir gün olmadığı anlamına gelir.

## Bu modeli kiraladığımız her düğüme karşı kontrol edin.

Yapılandırıcı, hangi yapılandırmaların modeli tek bir kartta barındırdığını, hangilerinin bölmek zorunda olduğunu ve her birinin maliyetini bildirir.

[Yapılandırıcıyı açın](https://gpuserver.io/tr/configure) [Rehberleri okuyun](https://gpuserver.io/tr/guides)

## Diğer rehberler

- [Uygulama · 10 dk Bir kartta 70B model fine-tuning Tek bir 48 GB GPU'da QLoRA: nelerin sığdığı, bir ay için maliyeti ve tam fine-tuningin neden bambaşka bir makine sınıfı gerektirdiği. Rehberi okuyun](https://gpuserver.io/tr/guides/lora-finetune)
- [Ödeme · 8 dk Sunucu için kripto ile ödeme yapmak Ödeme tıklaması ile root alma arasında gerçekte ne olduğu, hangi coinin seçileceği ve ilk ödemede para kaybettiren dört hata. Rehberi okuyun](https://gpuserver.io/tr/guides/pay-in-crypto)
- [Boyutlandırma · 9 dk Bir modelin gerçekte ihtiyaç duyduğu VRAM “Sığar mı” sorusunun arkasındaki hesap: ağırlıklar, KV önbelleği ve kestirme bir kuralın üç katı kadar yanıldığı iki nokta. Rehberi okuyun](https://gpuserver.io/tr/guides/vram-sizing)

---

Kaynak: https://gpuserver.io/tr/guides/serve-llama-70b/. Bu dosya, web sitesiyle aynı verilerden üretilir; buradaki bir rakam bir sayfadan farklıysa, o sayfa esas alınır ve bu dosya güncel değildir — asıl kaynak https://gpuserver.io/ adresidir.
