Okuma 15.6 dkKategoriler: AI

Bu eğitimde, DGX Spark üzerinde bir büyük dil modelini lokal olarak çalıştırıp, başka bir bilgisayarınızın tarayıcısından modelle konuşabileceksiniz.

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 Qwen3.6-35B-A3B-FP8 (35 milyar parametreli bir Mixture-of-Experts modeli, 3 milyar parametre aktif, FP8 kuantizasyonu), çıkarım motoru olarak vLLM, web arayüzü olaraksa Open WebUI 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. Open WebUI ise bu API’ye bağlanıp tarayıcıda bir sohbet ekranı gösterecek. İkisi de Spark üzerinde, Docker konteynerleri içinde çalışacak.

Bu eğitimde FP8 kuantizasyonlu model kullanılmıştır; aynı kurulum NVFP4 (4-bit) kuantizasyonuyla da yapılabilir. İki format arasındaki farklar için 8. bölüme bakın.

Ön Hazırlık: Spark’ın IP Adresini Bulma
Spark’a ilk kez uzaktan bağlanıyorsanız IP adresini bulmanız gerekir. Spark’a bir monitör ve klavye bağlayın, giriş yapın ve terminalden şu komutu çalıştırın:

Copy to Clipboard

 

Komut, Spark’ın varsayılan ağ arayüzünün IP adresini verir:

Copy to Clipboard

 

Bu adresi not edin; eğitim boyunca yerine bu adresi kullanacaksınız. Alternatif olarak, NVIDIA Sync uygulamasını kontrol ederek de IP adresini bulabilirsiniz.

1. Spark’a Bağlanma

Bilgisayarınızın Spark’la aynı ağa bağlı olduğundan emin olun. Ardından, bilgisayarınızdan bir terminal açın ve Spark’a ssh ile bağlanın:

Copy to Clipboard

 

İlk bağlantıda bir fingerprint uyarısı göreceksiniz. yes yazıp Enter’a basın. Ardından parola sorulduğunda Spark’ın parolasını girin:

Copy to Clipboard

 

Bağlandığınızda Spark, bu terminalden gönderdiğiniz komutları kabul etmeye başlayacak.

2. Önbelleği Temizleme

vLLM’i başlatmadan önce dosya sistemi önbelleğini boşaltın:

Copy to Clipboard

 

Bunu yapmamızın temel sebebi DGX Spark’ın birleşik bellek mimarisidir: İş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.

Parola sorulduğunda Spark parolasını girin. Komut çıktı vermez, sessizce tamamlanır:

Copy to Clipboard

3. vLLM Sunucusunu Kurma

vLLM’i Docker imajı olarak indirin:

Copy to Clipboard

 

İndirme sırasında katmanlar sırayla yüklenecek ve ekranda ilerleme yüzdesi göreceksiniz. İmaj zaten diskte varsa Docker indirmeyi atlar. İndirme yapılıp tamamlandığında şu çıktıyı göreceksiniz:

Copy to Clipboard

 

Bu imaj, vLLM’in çalışması için gereken her şeyi içerir — PyTorch, CUDA çekirdekleri, Python kütüphaneleri…

Şimdi, vLLM sunucusunu başlatalım:

Copy to Clipboard

 

Bu komut, indirdiğiniz imajı bir konteyner olarak başlatır. Model Spark’ta kurulu değilse Hugging Face’ten otomatik olarak indirilir. Model indirme ilerledikçe ilerleme çubukları görünür ve indirme tamamlandığında dosyalar ~/.cache/huggingface/hub/ dizinine yerleşir. Model Spark’ta önceden indirilmişse (bu eğitimi daha önce uyguladıysanız) vLLM bu model indirme adımını atlar ve indirilmiş ağırlıkları doğrudan GPU belleğine yükler.

Komutun çalışması tamamlandığında bir konteyner ID göreceksiniz; bu, sunucunun arka planda başladığını ve modelin 8000 portundan sunulmaya başlandığını gösterir:

Copy to Clipboard

 

Aynı isimde (önceki denemelerinizden kalan) bir konteyner zaten varsa komut şu hatayı verecektir:

Copy to Clipboard

 

Bu durumda konteyner listesini kontrol edin, vllm-qwen36-35b-fp8 listede olmalı:

Copy to Clipboard

 

Konteynerin status sütununda “Up” yazıyorsa konteyner zaten çalışıyor ve kullanıma hazır demektir, sonraki adıma geçebilirsiniz:

Copy to Clipboard

 

Eğer status sütununda “Exited” yazıyorsa, durmuş demektir:

Copy to Clipboard

 

Durmuş konteyneri yeniden başlattıp sonraki adıma geçebilirsiniz:

Copy to Clipboard

4. vLLM 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. Süreci 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.

5. vLLM Sunucusunu Test Etme

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

Copy to Clipboard

 

Hiçbir hata almamanız sunucunun sağlıklı olduğunu gösterir:

Copy to Clipboard

 

Şimdi modeli test edin:

Copy to Clipboard

 

Yanıtın basitleştirilmiş hali aşağıdaki gibidir. content alanında (modelin verdiği yanıt) 204 sayısını göreceksiniz. Buradan, modelin çarpma 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. Görüldüğü kadarıyla model, cevaba ulaşmadan önce hesaplamayı iki ayrı yöntemle yapıp çözümü doğrulamış:

Copy to Clipboard

 

vLLM şu an çalışıyor ve Qwen3.6’ya soru sorup cevap alabiliyoruz. Ama her soruyu yukarıdaki gibi bir terminal komutuyla göndermek pratik değil. Tarayıcıdan sohbet edebilmek için bir arayüze ihtiyacımız var.

6. Open WebUI’yi Kurma

Open WebUI, vLLM’e bağlanan ve tarayıcınızdan kullanabileceğiniz bir arayüzdür. Dil modelinizle sohbet edebilir, görsel yükleyip hakkında sorular sorabilirsiniz. Yanıtlar, henüz üretilirken ekranda belirmeye başlar; okumaya başlamak için tümünün bitmesini beklemeniz gerekmez. Her sohbet için temperature, top_p ve max_tokens gibi ayarları değiştirebilirsiniz. İlk kurulumda küçük bir embedding modeli indirerek gelir. Bu sayede belge yükleyebilir ve hakkında soru sorabilirsiniz (RAG — Retrieval-Augmented Generation). Sohbet geçmişiniz, ayarlar ve hesap bilgileriniz Spark’ın diskinde saklanır; cihazı veya konteyneri kapansanız bile verileriniz kaybolmaz ve tekrar açtığınızda kaldığınız yerden devam edebilirsiniz.

Öncelikle, Spark’a Open WebUI Docker imajını indirin:

Copy to Clipboard

 

İmaj zaten diskte varsa Docker indirmeyi atlar. İndirme tamamlandığında şu çıktıyı göreceksiniz:

Copy to Clipboard

 

İndirme tamamlandığında konteyneri başlatın:

Copy to Clipboard

 

İlgili konteynerin status sütununda “Up” yazıyorsa konteyner zaten çalışıyor ve kullanıma hazır demektir, sonraki adıma geçebilirsiniz:

Copy to Clipboard

7. Open WebUI Başlangıç Sürecini İzleme

Günlükleri izlemek için:

Copy to Clipboard

 

Günlüklerde şuna benzer bir çıktı göreceksiniz:

Copy to Clipboard

 

Günlüklerde Scheduler worker started satırını gördükten sonra birkaç saniye bekleyin. Ctrl+C ile log izlemeden çıkın.

8. Tarayıcıdan Erişim

Spark ile aynı ağda olan bilgisayarınızın tarayıcısında şu adrese gidin:

Copy to Clipboard

 

İlk açılışta bir giriş ekranı gelecek. “Sign up” bağlantısına tıklayarak ad, e-posta ve parola girin. İlk oluşturulan hesap otomatik olarak yönetici hesabı olur. Hesap açmanın amacı sohbet geçmişini ve ayarları saklamaktır. Bu bilgiler Spark’ta tutulur.

Model, Open WebUI tarafından otomatik olarak algılanarak model seçim menüsünde listelenir. Menüde Qwen/Qwen3.6-35B-A3B-FP8 modelini göreceksiniz. Modeli seçin. Aynı anda birden çok model çalıştırıyorsanız, buradan modeller arasında anında geçiş yapabilirsiniz. Ayrıca sol taraftaki sohbet geçmişi sekmesi sayesinde birden fazla sohbet oturumu oluşturulabilir ve oturumlar arasında geçiş yapabilirsiniz.

 

Mesaj kutusuna bir soru yazın ve Enter’a basın. Model yanıt verirken üstte daraltılabilir bir düşünce süreci bölümü, altta ise yanıt belirecek.

Aşağıda, modelin ve web arayüzünün neler yapabildiğini göstermek için yaptığımız birkaç deneme var:

İlk olarak, modelin Türkçe anlama becerilerini görmek amacıyla modelden Türkiye’nin en büyük üç şehrini sıralayarak her biri hakkında kısa bilgi vermesini istedik.

 

Takiben, modele yapay zekânın sağlık sektöründeki faydalarını istenen şekilde üç paragraf hâlinde açıklattık.

 

Sonrasında, modelin programlama becerilerini deneyimlemek için, bir metnin palindrom olup olmadığını kontrol eden Python fonksiyonu oluşturmasını istedik.

 

Mesaj alanındaki dosya ekleme düğmesini kullanarak modele bir doğa görseli gönderdik. Model, yüklenen görseldeki çiçek, yapraklar, su damlaları ve arka plan gibi unsurları betimledi.

 

Aynı dosya ekleme kısmından, bu kez modele DGX Spark’ın datasheet’ini verip analiz etmesini istedik.

 

Spark’la lokal LLM kurulumunuz hazır! Aynı ağ üzerindeki tüm cihazlarınızdan, Qwen3.6’yla konuşabilirsiniz.

Özellik FP8 NVFP4
Bit genişliği 8 bit / parametre 4 bit / parametre
Bellek kullanımı Orta FP8’in yaklaşık yarısı
Hassasiyet Daha yüksek Daha düşük, ancak pratik kullanımda yeterli
Donanım desteği Blackwell GPU’larda hızlandırılmış Blackwell 5. nesil Tensor Çekirdekleri
Kullanım senaryosu Kalite öncelikli çıkarım Daha büyük model veya daha uzun bağlam

Spark’ın 128 GB birleşik belleğiyle her iki format da sorunsuz çalışır. FP8 daha yüksek kalite sunarken, NVFP4 aynı modeli daha az bellekle çalıştırmanıza veya bellekte kalan alanı KV cache için kullanmanıza imkân verir.

NVFP4 ile çalıştırmak için, 3. adımda kullandığınız docker run komutunda şu değişiklikleri yapmanız yeterlidir: model adını nvidia/Qwen3.6-35B-A3B-NVFP4 olarak değiştirin, –gpu-memory-utilization 0.4 (NVFP4 daha az bellek kullanır) ve –max-model-len 262144 (daha uzun bağlam) kullanın. Ayrıca –attention-backend flashinfer ve –moe-backend marlin parametrelerini ekleyin.

9. Kapatma

İşiniz bittiğinde her iki konteyneri de durdurmak için:

Copy to Clipboard

 

Durdurulan konteyner çalışmayı bıraksa da verileri ve yapılandırması diskte saklanır. Konteyneri kaldığı yerden tekrar başlatmak için:

Copy to Clipboard

 

Konteynerleri tamamen kaldırmak içinse:

Copy to Clipboard

 

Konteynerleri kaldırsanız bile Docker imajları ve model dosyaları diskte kalır. Bu nedenle tekrar başlatmak için yeniden indirme yapmanız gerekmez. 3. ve 6. adımlardaki docker run komutlarını tekrar çalıştırmanız yeterli. Sohbet geçmişi ve hesap bilgileri open-webui-data volume’unda saklanır; konteyner kaldırılsa bile bu veriler Spark’ta korunur. Bu verileri de silmek isterseniz docker volume rm open-webui-data komutunu kullanabilirsiniz.

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