Okuma 13.8 dkKategoriler: LOKAL LLM'LER, AI, Openzeka

Bu eğitimde, tek bir DGX Spark üzerinde bir büyük dil modelini Unsloth kullanarak ince ayar (fine-tuning) yapacaksını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 modelin ince ayarını yapacağız.

Model olarak GPT-OSS 20B (21 milyar parametreli bir Mixture-of-Experts modeli), ince ayar framework’ü olarak Unsloth, ve eğitim yöntemi olarak Pekiştirmeli Öğrenme (Reinforcement Learning — RL) kullanacağız. Unsloth, modeli 4-bit kuantizasyonla (QLoRA) yükleyip sadece küçük LoRA adaptörlerini eğiterek %70’e varan bellek tasarrufu sağlayacak. Eğitim, dil modelinin “2048” adlı oyununu oynamayı öğrenmesini sağlayacak.

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

  • Kurulum: Docker imajı derleme ve konteyner başlatma
  • Eğitim: Notebook’u çalıştırma, model yükleme ve GRPO eğitimi
  • Sonuç: Eğitilmiş modeli test etme ve kapatma

Bu eğitim tek Spark üzerindendir; ince ayar çoklu Spark gerektirmez.

Kurulum

1. Spark’a Bağlanma

Spark’a ilk kez uzaktan bağlanıyorsanız IP adresini bulmanız gerekir. Spark’a bir monitör ve klavye bağlayıp 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 spark-ip yerine bu adresi kullanacaksınız. Alternatif olarak, NVIDIA Sync uygulamasını kontrol ederek de IP adresini bulabilirsiniz.

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. Eğitim boyunca karşınıza çıkan tüm komutları bilgisayarınızın bu terminaline gireceksiniz.

2. Docker İmajını Derleme

Unsloth, GB10 Grace Blackwell Superchip için özel olarak derlenmiş triton ve xformers çekirdeklerine ihtiyaç duyar. Bu çekirdekler standart Docker imajlarında bulunmaz; bu yüzden Unsloth’un DGX Spark için hazırladığı Dockerfile’ı kullanarak kendi docker imajımızı derleyeceğiz.

Önce Dockerfile’ı indirin:

Copy to Clipboard
Copy to Clipboard

Bu Dockerfile şunları içerir:

  • nvcr.io/nvidia/pytorch:25.11-py3 — NGC PyTorch 25.11. Temel imaj (PyTorch 2.10, CUDA 13.0).
  • triton (kaynaktan derleme) — Sürüm 3.4.0. Blackwell (SM 12.1) desteği için attention çekirdekleri.
  • xformers (kaynaktan derleme) — Sürüm 0.0.33. Blackwell (SM 12.1) desteği için bellek verimli attention.
  • unsloth — Sürüm 2026.7.5. İnce ayar optimizasyonu (2x hız, %70 az VRAM).
  • unsloth_zoo — Sürüm 2026.7.6. Unsloth yardımcı araçları.
  • bitsandbytes — Sürüm 0.50.0. 4-bit kuantizasyon (NF4).
  • transformers — Sürüm 4.56.2. Model yükleme ve tokenizasyon.
  • trl — Sürüm 0.22.2. GRPO eğitim döngüsü.

Şimdi imajı derleyin. Bu işlem yaklaşık 25-30 dakika sürecektir:

Copy to Clipboard

Derleme sırasında şu aşamaları göreceksiniz:

Copy to Clipboard

Derleme tamamlandığında şu çıktıyı göreceksiniz:

Copy to Clipboard

Önemli: UndefinedVar uyarıları zararsızdır, görmezden gelebilirsiniz.

İmajı kontrol edelim:

Copy to Clipboard
Copy to Clipboard

3. Konteyneri Başlatma

Eğitimin yapılacağı Docker konteynerini, GPU erişimi ve depolama birimi bağlama (volume mount) parametreleriyle başlatın:

Copy to Clipboard
Copy to Clipboard

Eğitim

4. Notebook’u İndirme

Unsloth’un GPT-OSS 20B modeline 2048 oynamayı öğreten RL notebook’unu indirin:

Copy to Clipboard
Copy to Clipboard

Bu Jupyter Notebook’u 60 hücreden (cell) oluşur ve şu adımları içerir:

  • Modeli 4-bit QLoRA ile yükleme
  • LoRA adaptörleri ekleme
  • Oyun ortamını kurma
  • Ödül fonksiyonları tanımlama
  • GRPO (Grup Göreli Politika Optimizasyonu—Group Relative Policy Optimization) ile 1000 adımlı eğitim
  • Eğitilmiş modeli kaydetme

5. Jupyter’ı Başlatma ve Notebook’u Çalıştırma

Konteyner içinde Jupyter Notebook sunucusunu başlatın:

Copy to Clipboard
Copy to Clipboard

Bu sunucu, Spark’taki .ipynb uzantılı dosyaları düzenlemenize ve çalıştırmanıza imkan veren bir web arayüzü sağlar. Arayüze erişmek için bilgisayarınızın tarayıcısından şu adrese gidin:

Copy to Clipboard

token kısmını terminalde gördüğünüz token (örn. 0388154bcd8cca584336b88ea9b84d09dbc302068f1e9a49) ile değiştirin. Dosya tarayıcısından gpt_oss_20B_RL_2048_Game.ipynb dosyasına tıklayarak notebook’u açın.

Model Kaydetme: Eğitim sırasında her 100 adımda bir kontrol noktası (checkpoint,) LoRA adaptör ağırlıklarıyla birlikte outputs/ dizinine otomatik kaydedilir. Fakat bu adaptör ağırlıklarının orijinal modelle birleştirilmiş (merge) halini kaydetme seçeneği devre dışıdır. Eğer eğitim sonrası modeli vLLM ile çıkarım için kullanmak üzere kaydetmek isterseniz, notebook’u çalıştırmadan önce bu seçeneği devreye almalısınız. Bunun için notebook’un son hücresine (Cell 58) gidin, bu hücredeki if False: satırlarını if True: olarak değiştirin. MXFP4 (OpenAI’nin 4-bit formatı) veya 16-bit formatından birini seçebilirsiniz:

model.save_pretrained_merged(“finetuned_model”, tokenizer, save_method = “mxfp4”)

Menü çubuğundan Cell → Run All’ı seçerek tüm hücreleri tek seferde sırayla çalıştırın. Her hücre çalışırken sol tarafında In [*]: göreceksiniz; tamamlandığında In [1]:, In [2]: şeklinde numaralanır. Eğitim sürecinin kalanını Jupyter kendisi halledecek. Dilerseniz notebook’un ilerleme sürecini web arayüzünden izleyebilirsiniz.

Önemli: Eğitim yaklaşık 4 saat sürecektir. Model indirme (~2 dk), model yükleme (~2 dk) ve 1000 adım eğitim (~3-4 saat) dahildir.

Aşağıda eğitim sonrası notebook’un web arayüzünden bazı ekran görüntüleri bulunmaktadır. Burada çeşitli kod hücrelerini ve açıklamaları görebilirsiniz:

Notebook hücreleri çalıştıkça, sırayla aşağıdaki adımlar gerçekleşecektir.

6. Model Yükleme

İlk kod hücresi (Cell 5) modeli 4-bit kuantizasyonla yükler. Bu adım modeli Hugging Face‘ten indirir (~12 GB) ve GPU belleğine yükler:

Copy to Clipboard

Ardından LoRA adaptörleri eklenir (Cell 7):

Copy to Clipboard

Bu noktada model hazırdır.

7. GRPO Eğitimi

Eğitim, trainer.train() hücresi çalıştığında başlar. GRPO (Group Relative Policy Optimization — Grup Göreli Politika Optimizasyonu) algoritması şu döngüyü 1000 kez tekrarlar:

  1. Modele “2048 için bir strateji fonksiyonu yaz” promptu gönderilir.
  2. Model 2 aday fonksiyon üretir.
  3. Her fonksiyon çalıştırılır:
    • Geçerli Python mu? (function_works ödülü)
    • Hile yapıyor mu? (no_cheating ödülü)
    • 2048 oyununu kazanıyor mu? (strategy_succeeds ödülü)
  4. Ödüller hesaplanır ve LoRA ağırlıkları güncellenir.

Eğitim başladığında şu çıktıyı göreceksiniz:

Copy to Clipboard

İlk adımlarda model çoğunlukla zaman aşımına uğrayan veya hata veren stratejiler üretir. Yaklaşık 150-200 adımdan sonra model geçerli stratejiler üretmeye başlar ve oyunları kazanmaya başlar. 1000 adım ve yaklaşık 4 saatlik eğitimden sonra model, orijinalinden çok daha iyi 2048 oynar.

Eğitim sırasında her adım için ödül değerlerini göreceksiniz:

Copy to Clipboard

State = success gördüğünüzde model bir strateji üretmiş ve 2048’e ulaşmıştır. Eğitim tamamlandığında şu çıktıyı göreceksiniz:

Copy to Clipboard

Sonuç

8. Eğitilmiş Modelin Değerlendirilmesi

Eğitim sonrası notebook, modelin yeni bir strateji (Python fonksiyonu olarak) üretmesini test eder. Eğitilmiş model, oyun tahtasını analiz eden, boş hücreleri sayan ve olası birleştirmeleri tespit eden sofistike stratejiler üretir:

Copy to Clipboard

Bu strateji, her hamlede boş hücre sayısını ve olası birleştirme fırsatlarını puanlar ve en yüksek puanlı hamleyi seçer. Bu, 2048 oyununda yaygın kullanılan bir sezgisel (heuristic) yaklaşımdır.

9. Kapatma

İşiniz bittiğinde konteynerden exit ile çıkın. Jupyter sunucusunu önce Ctrl+C ile durdurun. Konteyner durur ama Docker imajı, model önbelleği ve eğitim çıktıları diskte kalır. Tekrar eğitime devam etmek için 3. adımdaki docker run komutunu tekrar çalıştırmanız yeterlidir.

Eğitim sırasında kullanılan birleşik bellek (unified memory) kullanımı şu şekildedir:

  • Boş Spark: ~4 GB
  • Model yüklü (4-bit QLoRA): ~17 GB GPU + ~1 GB embedding offload
  • Eğitim aktif: ~30 GB sistem toplam
  • Boş bellek: ~90 GB

Aynı eğitim adımları GPT-OSS 120B modeli için uygulanırsa yaklaşık 68 GB birleşik bellek kullanılır — bu da DGX Spark‘ın 128 GB birleşik belleği içinde rahatça sığar.

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