gaogaoGao Kaptan Docsv0.90.x
Örnekler

Unsloth Studio (MIG)

Bir MIG dilimi üzerinde CUDA pod'u açın, Unsloth Studio'yu kurun ve tarayıcıdan kod yazmadan model eğitin.

Bir MIG dilimi alıp üzerinde Unsloth Studio'yu çalıştıran ve tarayıcıdan, tek satır kod yazmadan bir modeli eğiten uçtan uca örnek. Sayfada ayrıca portu sonradan açma akışı da var: pod'u dış erişim olmadan başlatıyor, uygulama ayağa kalktıktan sonra portu açıyoruz — pod yeniden başlatılmadan.

Aşağıdaki bütün çıktılar, ekran görüntüleri ve süreler gerçek bir çalıştırmadan alınmıştır.

İnternet erişimi açık olmalı — kurulum PyTorch'u, eğitim ise model ağırlıklarını ve veri setini indirir. İnternet izni firma seviyesindedir.

CUDA pod'unu MIG diliminde aç

Pod Dağıtımı sayfasından:

  • İmaj: nvidia/cuda:12.4.1-devel-ubuntu22.04 — devel sürümü derleyici içerir; base sürümünde nvcc yoktur
  • Komut: sleep infinity
  • GPU: MIG, profil 1g.18gb, adet 1
  • Kaynak: en az 4 vCPU / 24 GB RAM — dilim 16 GB VRAM verir, ama model indirme ve veri hazırlama sistem RAM'ini kullanır
  • Port: 8888
  • Dış erişim: şimdilik kapalı (portu sonradan açacağız)

API'yi doğrudan kullanıyorsanız kaynak alanları cpu_limit / memory_limit adlarını taşır ve string'dir ("4", "24Gi"). Tanınmayan bir alan adı (örneğin memory_gb) sessizce yok sayılır ve varsayılan 1Gi uygulanır — sonuç, kurulum sırasında sebebi görünmeyen bir OOM olur.

GPU'yu doğrula

Terminal'den bağlanın:

nvidia-smi -L
GPU 0: NVIDIA H200 NVL (UUID: GPU-6220f096-...)
  MIG 1g.18gb     Device  0: (UUID: MIG-665253e5-...)

Dilim göründüyse hazırsınız.

Unsloth Studio'yu kur

apt-get update -qq
apt-get install -y -qq curl ca-certificates
curl -fsSL https://unsloth.ai/install.sh | sh

Kurulum GPU'yu kendisi algılar ve uygun PyTorch'u indirir:

gpu            NVIDIA GPU detected
               installing PyTorch (https://download.pytorch.org/whl/cu130)...
installing unsloth (this may take a few minutes)...
installing prebuilt llama.cpp...

Yaklaşık 10 dakika sürer.

Uzun kurulumları kalıcı diske yapın. Konteyner yeniden başlarsa (OOM, bellek değişikliği, düğüm bakımı) yazılabilir katman imajdan yeniden kurulur ve konteyner içine kurduğunuz her şey kaybolur. Kalıcı olması gerekiyorsa pod'a bir volume bağlayıp kurulumu oraya yapın.

Ayrıca: belleği (RAM) değiştirmek konteyneri yeniden başlatır — CPU değiştirmek başlatmaz. Belleği baştan yeterli verin.

Studio'yu başlat

0.0.0.0 adresine bağlayın ki pod dışından erişilebilsin:

export PATH=$PATH:/root/.local/bin:/home/kaptan/.local/bin
nohup unsloth studio -p 8888 --host 0.0.0.0 --password <parolanız> > studio.log 2>&1 &

Pod içinden doğrulayın:

curl -s -o /dev/null -w "%{http_code}\n" localhost:8888
200

--password vermezseniz Studio rastgele bir yönetici parolası üretir (~/.unsloth/studio/auth/.bootstrap_password) ve varsayılan parola değiştirilmezse 1 saat sonra kendini kapatır. Başlatırken parolayı vermek en kolayı.

Unsloth Studio ilk açılış

Portu SONRADAN aç

Pod'u dış erişim olmadan başlatmıştık. Uygulama ayağa kalktığına göre şimdi açıyoruz: pod detay → Networking → dış erişimi aç, port 8888.

Bu işlem çalışan pod'a Service + Ingress ekler — pod yeniden başlatılmaz, içindeki kurulum ve çalışan süreç olduğu gibi kalır. Ardından "Üret ve Tarayıcıda Aç" ile erişim token'ı üretip Studio'yu açın.

Modeli seç

Sol menüden Train → Configure. MODEL alanındaki seçiciyi açın. İki sekme var: On Device (pod'da önbelleğe alınmış modeller) ve Hugging Face (arama).

Model seçici

Arama kutusuna yazdığınız metin listenin ilk satırında "Use as local path" olarak da görünür. Onu seçerseniz model adı düz metin olarak kaydedilir ve eğitim başlarken Hugging Face üzerinde bulunamaz. Depo kimliğini taşıyan satırı seçin — örneğin unsloth/qwen2.5-1.5b-instruct-unsloth-bnb-4bit.

Bu örnekte unsloth/qwen2.5-1.5b-instruct-unsloth-bnb-4bit kullanıyoruz: 1,5B parametreli, 4-bit hazır paketlenmiş bir model. 1g.18gb diliminin 16 GB belleğine rahat sığar.

Veri setini seç

DATASET seçicisinden Hugging Face üzerinde arayın; bu örnekte yahma/alpaca-cleaned. Seçtikten sonra Studio formatı kendisi tanır (alpaca) ve Subset ile Train Split alanlarını doldurur.

Veri seti seçici

"Checking dataset..." yazısında takılırsa sebebi veri setinin önbellekte yarım olmasıdır; başlat düğmesi o yazıda kalır ve hiç etkinleşmez. Veri setini bir kez tam indirin — pod içinden:

curl -s -X POST localhost:8888/api/hub/datasets/download \
  -H "Authorization: Bearer <studio-token>" -H 'Content-Type: application/json' \
  -d '{"repo_id":"yahma/alpaca-cleaned"}'

İndirme bitince Run preview anında Ready olur. Testimizde takılan formu çalışır hale getiren tek fark buydu.

Parametreleri ver ve başlat

Parameters kartında Simple sekmesi günlük kullanım için yeterli: proje adı, Max Steps, bağlam uzunluğu ve öğrenme oranı. Daha fazlası Advanced sekmesinde.

Sağdaki Run preview paneli her değişiklikte güncellenir ve donanımı da gösterir:

Yapılandırma tamam, Run preview hazır

Method    LoRA · 16-bit        Context   4.096
Length    20 steps             LR        1e-5
Batch     1 × 64 = 64          Hardware  NVIDIA H200 NVL MIG 1g.18gb · 16 GB

Panel Ready olduğunda Start Training düğmesi etkinleşir.

Eğitimi izle

Studio Current Run sekmesine geçer: ilerleme çubuğu, anlık kayıp, öğrenme oranı, gradyan normu, geçen süre, tahmini bitiş, saniyedeki adım ve işlenen token sayısı; altında canlı grafikler.

Eğitim sürerken

MIG diliminde GPU Monitor panelinin iki kutusu boş kalır. Ekran görüntüsündeki gibi Utilization ve VRAM iki tire gösterir; sıcaklık ve güç okunur (51 °C, 136/600 W). Sebep Gao Kaptan değil: nvidia-smi --query-gpu=... bir MIG diliminde bu alanlar için [N/A] ve [Insufficient Permissions] döndürür.

Ama düz nvidia-smi çıktısındaki MIG tablosu dilimin belleğini verir (ör. 30241MiB / 71424MiB). Yani “MIG'de bellek görünmez” demek eksik olur — sorgu biçimi görmez, tablo görür. Görünen sıcaklık ve güç ise sizin kendi GPU örneğinize aittir — kartın geneline değil. (İki dilimden aynı anda ölçtük: boştaki konteyner 129 W okurken çalışan 401 W okuyordu.) Kartın toplam yükünü görmek için host üzerinde nvidia-smi gerekir.

Sonuç

Bitince Studio çıktı yolunu yazar ve iki kısayol sunar: Compare in Chat (temel model ile eğitilmiş modeli yan yana denemek) ve Export Model / Export to GGUF (llama.cpp, Ollama, vLLM için dışa aktarma).

Eğitim tamamlandı

Step 20 / 20 · %100        Loss 1.1340
Elapsed 3m 25s             Tokens 248.380
Model saved to /home/kaptan/.unsloth/studio/outputs/...__project-kaptan-ui-demo_1787267344

Geçmiş koşular History sekmesinde kalır; kayıp, gradyan normu ve öğrenme oranı eğrileriyle birlikte tekrar açılabilir.

Geçmiş koşu

Eğittiğin modeli dene

Sonuç kartındaki Compare in Chat sizi sohbet ekranına götürür. Model seçicide On Device sekmesine geçin: eğittiğiniz çıktı FINE-TUNED başlığı altında listelenir.

UNSLOTH      qwen2.5-1.5b-instruct-unsloth-bnb-4bit            1.5B  1.5GB
FINE-TUNED   ..._project-kaptan-ui-demo                        1.5B

Modelin yüklenmesi bu dilimde yaklaşık 3 dakika sürer, sonrası normal sohbet.

Eğitilmiş modelle sohbet

Veri setinin alanından bir soru sorduk — "Give three tips for staying healthy." — ve aynı soruyu temel modele de sorduk:

CevapHız
EğitilmişEat a balanced diet… Exercise regularly… Get enough sleep: Aim for 7-9 hours…52,4 tok/sn
TemelMaintain a balanced diet… Get regular exercise… Get enough sleep…58,4 tok/sn

Temel model, aynı soru

Hangi modelin cevapladığını üstteki rozetten görürsünüz: eğitilmiş modelde proje adı ve LoRA, temel modelde Base yazıyor.

İkisi arasında kayda değer bir fark yok — ve bu beklenen sonuç. Temel model zaten talimat ayarlı bir Qwen2.5-Instruct; alpaca veri seti de tam olarak onun hâlihazırda yaptığı işi öğretiyor. 20 adımlık bir LoRA, modelin zaten bildiği bir davranışı görünür şekilde değiştirmez.

İnce ayarın işe yaradığını görmek istiyorsanız, temel modelin bilmediği bir şey seçin: kendi alanınıza ait terminoloji, kurum içi bir yazım biçimi, sabit bir çıktı şeması ya da başka bir dil. Bir de adım sayısını gerçekçi tutun — birkaç yüz ila birkaç bin adım. Yukarıdaki 20 adım, akışın çalıştığını doğrulamak içindir, model kalitesini değiştirmek için değil.

Eğitilmiş modelin biraz daha yavaş olması (52,4'e karşı 58,4 tok/sn) normaldir: LoRA adaptörü her katmanda ek çarpım getirir.

İşiniz bitince pod'u silin

GPU pod'ları saatlik ücretlendirilir ve dilim siz silene kadar başkasına açılmaz. Pod'larım → Sil. Eğittiğiniz adaptörü önce dışa aktarıp indirin — pod'un dosya sistemi kalıcı değildir.

Ölçülen süreler

Aynı pod üzerinde iki koşu; ikisi de 1g.18gb diliminde, Qwen2.5-1.5B-Instruct ve yahma/alpaca-cleaned ile.

60 adım · batch 2×4 · bağlam 204820 adım · batch 1×64 · bağlam 4096
Eğitim döngüsü56,9 sn3 dk 25 sn
Model ve veri hazırlığı~175 sn (ilk indirme dahil)~15 sn (önbellekten)
Kayıp (ilk → son)1,653 → 1,1541,258 → 1,134
İşlenen token93.779248.380
Üretilen LoRA adaptörü73,9 MB73,9 MB

İkinci koşu daha az adım attığı halde uzun sürüyor: belirleyici olan adım sayısı değil, adım başına işlenen veri (batch × gradyan biriktirme × bağlam).

Diğer süreler: nvidia/cuda:12.4.1-devel imajının düğüme ilk inişi ~8 dk, Unsloth kurulumu ~10 dk, Studio ilk açılışı (torch ısınması dahil) ~30 sn.

Sık karşılaşılan hatalar

BelirtiSebep
Başlat düğmesi "Checking dataset..." yazısında kalıyorVeri seti önbellekte yarım; bir kez tam indirin
Eğitim başlarken model bulunamıyorSeçicide "Use as local path" satırı seçilmiş; depo kimliğini taşıyan satırı seçin
GPU Monitor panelinde kullanım ve VRAM boşMIG dilimi bu sayaçları raporlayamaz — normaldir
Kurulum sırasında pod yeniden başlıyorSistem belleği yetersiz; dilimin VRAM değeri ayrıdır
Kurulum bitti ama dosyalar yokKonteyner yeniden başladı; yazılabilir katman imajdan kuruldu
Studio 1 saat sonra kapandıVarsayılan parola değiştirilmemiş; --password ile başlatın
Tarayıcıda açılıyor ama boşStudio yalnızca 127.0.0.1 adresine bağlanmış; --host 0.0.0.0 gerekiyor
Bu sayfa yardımcı oldu mu?

On this page