Okuma 24.4 dkKategoriler: AI CLUSTER, AI, Openzeka

Bu eğitimde, GLM-5.2 büyük dil modelini 4 adet DGX Spark üzerinde paylaştırarak çalıştıracağız. Bunun için sparkrun kullanacağız.

Spark, monitör ve klavye bağlayarak doğrudan bilgisayar olarak kullanılabileceği gibi, başka bir bilgisayarla uzaktan bağlanılan bir sunucu olarak da kullanılabilir. Biz bu eğitimde Spark’a uzaktan bağlanacağız ve gerekli yazılımları kurup modeli çalıştıracağız.

Dil modeli olarak GLM-5.2 (744 milyar parametreli bir Mixture-of-Experts modeli, ~40 milyar parametre aktif, int4/int8 kuantizasyonu), çıkarım motoru olarak vLLM, ve yönetim aracı olarak sparkrun kullanacağız. vLLM, modelin eğitilmiş ağırlıklarını GPU belleğine yükleyip çalıştıracak ve dışarıdan istek kabul eden bir API sunacak. sparkrun ise komut satırı üzerinden Docker konteynerlerini ve Spark’lar arasında model dağıtımını yönetecek. Bu sayede imaj senkronizasyonu, model aktarımı ve cluster yapılandırması gibi işlemleri otomatik olacak. İkisi de ana Spark üzerinde, Docker konteynerleri içinde çalışacak.

Bu eğitim üç bölümden oluşur:

  • Kurulum: Docker imajı indirme ve recipe hazırlama
  • Çalıştırma: Modeli 4 Spark üzerinde başlatma, izleme, test etme ve kapatma
  • Benchmark: Farklı eşzamanlılık seviyelerinde performans ölçümü

Eğitim boyunca ana cihaza Main Spark, diğer cihazlara ise Worker Spark denileceğini unutmayın.

Kurulum

Önceki eğitimlerde Spark’a bağlanma, ve sparkrun kurulumu ve çoklu Spark küme yapılandırma süreçleri adım adım anlatıldı. Bu eğitimde tüm bu adımların yapılmış ve kurulumunuzun hazır olduğunu varsayıyoruz.

Bu eğitim 4 DGX Spark gerektirir. Ana cihaza main-spark-ip, diğer üç cihaza ise worker-spark-ip-1, worker-spark-ip-2 ve worker-spark-ip-3 diyeceğiz. Her cihazın IP adresini önceden not edin.

1. Docker İmajını İndirme

GLM-5.2’nin DeepSeek Sparse Attention (DSA) mimarisi, GB10 (SM 12.1) için derlenmiş çekirdeklere ihtiyaç duyar. Standart vLLM imajları bu çekirdekleri içermez. Bu yüzden, gereken yamaları içeren özel bir Docker imajı kullanacağız.

OpenZeka tarafından hazırlanmış docker imajını indirmek için şu komutu çalıştırın:

Copy to Clipboard

İmajı doğrulayın:

Copy to Clipboard
Copy to Clipboard

2. Recipe Hazırlama

Recipe, sparkrun’ın modeli nasıl çalıştıracağını tanımlayan bir YAML dosyasıdır. Model, Docker imajı, vLLM bayrakları ve bellek ayarları tek dosyada toplanır. GLM-5.2 için bu recipe, 4 düğümde tensor parallelism (model ağırlık matrisleri paylaşımı) ve decode context parallelism (KV önbelleği ve attention hesaplaması paylaşımı) kullanır.

Aşağıdaki komutu kullanarak recipe dosyasını kaydedin.

Copy to Clipboard

Dosyayı doğrulayın:

Copy to Clipboard

Çalıştırma

1. Önbelleği Temizleme

vLLM’i başlatmadan önce her Spark’ta dosya sistemi önbelleğini boşaltın. Bunu yapmamızın temel sebebi DGX Spark’ın birleşik bellek mimarisi (UMA) olmasıdır: İşletim sistemi, diskten okuduğu model dosyalarını RAM’de önbelleğe alır. vLLM, buradaki model ağırlıklarını GPU belleğine yükler. Yükleme bittikten sonra önbellekte kalan veri bir daha kullanılmayacak olsa da hemen temizlenmez. Ayrı bellek kullanan sistemlerde bu önemli değildir. Çıkarım GPU belleğinde çalıştığından RAM’in doluluğu performansı etkilemez. Spark’ta ise CPU ve GPU aynı RAM’i paylaştığından, önbellek GPU’nun kullanabileceği alanı daraltır. Komut, bu önbelleği boşaltarak vLLM için maksimum bellek sağlar.

Main Spark’ta önbelleği temizleyin:

Copy to Clipboard

Main Spark’tan SSH ile Worker Spark’larda da aynı temizliği uygulayın:

Copy to Clipboard

2. Başlatma Öncesi Kontroller

sparkrun’ın recipe’yi doğru ayrıştırdığını ve bellek bütçesinin uygun olduğunu doğrulayın:

Copy to Clipboard

sparkrun, recipe’yi doğru ayrıştırdı, vllm-distributed’ı seçti ve ‘DGX Spark fit: YES’ onayını verdi. Bilinmeyen dtype uyarılarını görmezden gelebilirsiniz — bunlar b12x/DCP’ye özel tiplerdir ve sparkrun tanıyamaz.

Şimdi başlatma planını önizleyin:

Copy to Clipboard

Dry run başarılı. Recipe geçerli, ‘Mode: cluster (4 nodes)’ görüldü ve serve command tüm bayrakları içeriyor. Model Spark’ta kurulu değilse, sparkrun ilk başlatmada modeli Hugging Face’ten otomatik indirecektir. Dry run bu indirmeyi tetiklemez, indirme yalnızca gerçek başlatmada olur.

3. Modeli Başlatma

Şimdi modeli başlatalım:

Copy to Clipboard

–no-follow bayrağı, sparkrun’ın konteynerleri başlattıktan sonra komut satırına dönmesini sağlar. sparkrun otomatik olarak imajı Worker’lara senkronize eder (aynı ID ise atlar), modeli head node’a indirir ve Worker’lara dağıtır (zaten varsa atlar), NCCL yapılandırmasını CX-7 arayüzleri için ayarlar ve her Spark’ta konteyner başlatır.

Copy to Clipboard

sparkrun 6 adımı başarıyla tamamladı. ‘Mode: cluster (4 nodes)’ görüldü. sparkrun, imajı 3 Worker’a CX-7 ağı üzerinden senkronize etti ve modeli Hugging Face’ten indirip 4 düğüme dağıttı. Serve command içinde tüm bayraklar doğru çözüldü.

4. Başlangıç Sürecini İzleme

Model indirme tamamlandıktan sonra vLLM’in servise hazır hale gelmesi birkaç dakika alabilir. Bu süreçte vLLM model ağırlıklarını GPU belleğine yükler, GPU çekirdeklerini derler ve çıkarım için bellek ayırır.

vLLM loglarını izlemek için:

Copy to Clipboard

Loglarda şunları göreceksiniz:

Copy to Clipboard

Application startup complete. satırını gördüyseniz model sunucusu hazır demektir. Ctrl+C tuşlarına basarak log izlemeyi durdurun. Sunucu arka planda çalışmaya devam edecektir.

Başlangıç süreci yaklaşık 10 dakika sürer. Bu süreçte:

  • Mimari GlmMoeDsaForCausalLM olarak çözümlenir (DeepSeek Sparse Attention + MoE)
  • MTP draft modeli (DeepSeekMTPModel) başlatılır — speculative decoding aktif (k=4)
  • B12X_MLA_SPARSE attention backend’i seçilir — DeepGEMM atlanır
  • 128 safetensors shard yüklenir (~5 dakika, düğüm başına 96.71 GiB)
  • Draft modeli 4 shard olarak yüklenir (~8 saniye)
  • torch.compile ~38 saniye (backbone) + ~6 saniye (eagle head) sürer
  • CUDA graph capture FULL + PIECEWISE modlarda başarıyla yakalanır (14 saniye)
  • KV cache: 8.38 GiB, 657,664 token, 131K token için 5.02x eşzamanlılık

5. Modeli Test Etme

Öncelikle sunucunun çalıştığını doğrulayın:

Copy to Clipboard

‘HTTP 200’ yanıtı sunucunun sağlıklı olduğunu gösterir. Şimdi sparkrun konteyner durumunu kontrol edin:

Copy to Clipboard

Dört konteyner de çalışıyor.

Kayıtlı modelleri listeleyin:

Copy to Clipboard
Copy to Clipboard

Model glm-5.2 olarak kayıtlı.

Şimdi modeli, tek cümlelik “2+2 kaç eder?” promptuyla test edin:

Copy to Clipboard

Yanıtın basitleştirilmiş hali aşağıdaki gibi olacaktır. content alanında (modelin verdiği yanıt) “2+2, 4 eder.” ifadesini göreceksiniz. Buradan, modelin toplama işlemini doğru yaptığını anlayabilirsiniz. Ayrıca yanıtın bir de reasoning alanı var. Bu alan, modelin düşünce sürecini içerir:

Copy to Clipboard

LLM şu an çalışıyor ve Main Spark’ın 8210 portundan servis sağlıyor. GLM-5.2’ye soru sorup cevap alabiliyoruz. Dilerseniz, modeli bir web arayüzü (ör. Open WebUI) veya ajan mimarisiyle (ör. OpenCode) kullanabilirsiniz.

6. Kapatma

İşiniz bittiğinde modeli durdurun:

Copy to Clipboard

Bu komutla konteyner durdurulur ve bellek alanı boşalır. Ama konteyner, Docker imajı ve model dosyaları diskte kalır. Böylelikle tekrar başlatmak için yeniden indirme yapmanız gerekmez. 3. adımdaki sparkrun run komutunu tekrar çalıştırmanız yeterli.

Benchmark

GLM-5.2 modelini farklı eşzamanlılık (concurrency) seviyelerinde test ettik. Ölçümlerde ortalama TTFT (Time to First Token — ilk token’ın üretime başlama süresi) ve TPS (Tokens Per Second — saniye başına üretilen token sayısı) değerleri kaydedilmiştir. Görüldüğü üzere, saniyede 27 token değerinin üzerine çıkılmıştır.

Eşzamanlılık TTFT Ort. (ms) TPS ort. (tok/s)
1 490 27.4
2 717 20.0
4 955 14.3
8 6560 8.5

Ölçümler, CordatusAI LLM Benchmark Tool kullanılarak alınmıştır. Bu araç, CordatusAI tarafından geliştirilen ve OpenAI uyumlu API’lere sahip LLM sunucularını test eden bir benchmarking uygulamasıdır. Aşağıda, benchmark aracımızın web arayüzünü ve ürettiği çeşitli grafikleri görebilirsiniz:

OPENZEKA HABERLERİ

Abone olmak ister misiniz?

Hemen ilgilendiğiniz alanları seçerek bültenimizden haberdar olabilirsiniz.

Kategoriler

OPENZEKA HABERLERİ

Abone olmak ister misiniz?

Hemen ilgilendiğiniz alanları seçerek bültenimizden haberdar olabilirsiniz.

Kategoriler

Hesaplarınızda paylaşmak ister misiniz?

İlgili Yazılar