Yapay Zeka ve Makine Öğrenimi için GPU Droplet Ortamı Kurulumu: Jupyter Labs ile Kodlamaya Başlangıç
Yapay zeka (AI) ve makine öğrenimi (ML) alanları, günümüzün en hızlı gelişen ve dönüştürücü teknolojileri arasında yer almaktadır. Bu alanlarda yapılan çalışmalar, büyük veri kümelerinin işlenmesini ve karmaşık algoritmaların eğitilmesini gerektirir. Geleneksel merkezi işlem birimleri (CPU’lar) bu tür yoğun hesaplama görevleri için yeterli performansı sağlayamazken, grafik işlem birimleri (GPU’lar) paralel işleme yetenekleri sayesinde AI/ML modellerinin eğitim süresini dramatik bir şekilde kısaltmaktadır. Bu nedenle, AI/ML geliştiricileri için güçlü bir GPU ortamına sahip olmak vazgeçilmezdir.
Yerel donanım yatırımı yapmak, özellikle başlangıç seviyesindeki geliştiriciler veya bütçe kısıtlaması olanlar için maliyetli ve karmaşık olabilir. İşte bu noktada bulut tabanlı GPU hizmetleri devreye girer. DigitalOcean gibi bulut sağlayıcıları, geliştiricilere hızlı, esnek ve uygun maliyetli GPU kaynakları sunarak bu engeli ortadan kaldırır. Bu makalede, DigitalOcean GPU Droplet üzerinde eksiksiz bir AI/ML geliştirme ortamı kurmayı, NVIDIA sürücülerini ve CUDA Toolkit’i yapılandırmayı, Python ortamını hazırlamayı ve son olarak Jupyter Labs’ı kurup güvenli bir şekilde erişmeyi adım adım inceleyeceğiz. Bu rehber sayesinde, AI/ML projelerinizi bulutun gücüyle hayata geçirmeye hazır, tam donanımlı bir ortama sahip olacaksınız.
Neden DigitalOcean GPU Droplet’leri AI/ML İçin İdealdir?
AI/ML geliştirme süreçlerinde, model eğitimi ve veri analizi gibi yoğun hesaplama gerektiren görevler için GPU’lar kritik öneme sahiptir. Büyük bulut sağlayıcıları (AWS, Google Cloud, Azure) geniş GPU seçenekleri sunsa da, genellikle karmaşık arayüzleri, fiyatlandırma modelleri ve öğrenme eğrileri başlangıç seviyesindeki kullanıcılar için yıldırıcı olabilir. DigitalOcean ise, kullanıcı dostu arayüzü, şeffaf ve öngörülebilir fiyatlandırması ve basit droplet (sanal sunucu) oluşturma süreci ile öne çıkar.
DigitalOcean’ın GPU Droplet’leri, özellikle hızlı prototipleme, küçük ve orta ölçekli projeler veya bireysel geliştiriciler için idealdir. Aşağıda DigitalOcean’ın sunduğu bazı avantajlar listelenmiştir:
* Basitlik ve Kullanım Kolaylığı: DigitalOcean’ın paneli, droplet oluşturma ve yönetme süreçlerini oldukça basitleştirir. Karmaşık ağ veya güvenlik yapılandırmalarıyla uğraşmak zorunda kalmadan dakikalar içinde bir GPU sunucusu başlatabilirsiniz.
* Öngörülebilir Fiyatlandırma: Diğer bulut sağlayıcılarının aksine, DigitalOcean’ın fiyatlandırması genellikle daha şeffaf ve sabittir. Bu, bütçenizi daha kolay yönetmenizi ve beklenmedik maliyetlerle karşılaşmamanızı sağlar.
* Hızlı Dağıtım: Birkaç tıklama ile saniyeler içinde yeni bir GPU droplet’i oluşturup SSH üzerinden erişime hazır hale getirebilirsiniz.
* Geliştirici Dostu: DigitalOcean, geliştiricilerin ihtiyaçlarını ön planda tutan bir platformdur. Kapsamlı dokümantasyonları ve topluluk desteği, karşılaşılabilecek sorunların çözümünde yardımcı olur.
* Esneklik: İhtiyaçlarınıza göre farklı GPU türleri ve CPU/RAM kombinasyonları sunulur. Projenizin gereksinimleri değiştikçe droplet’inizi kolayca yükseltebilir veya küçültebilirsiniz.
Bu avantajlar, DigitalOcean GPU Droplet’lerini AI/ML projelerinize hızlı ve verimli bir başlangıç yapmak için cazip bir seçenek haline getirmektedir.
DigitalOcean GPU Droplet Oluşturma Adımları
AI/ML geliştirme ortamımızın temelini oluşturacak GPU Droplet’imizi DigitalOcean üzerinde adım adım oluşturalım.
DigitalOcean Hesabına Giriş ve Droplet Oluşturma
1. DigitalOcean Hesabı Oluşturma/Giriş Yapma: Eğer bir DigitalOcean hesabınız yoksa, öncelikle digitalocean.com adresinden bir hesap oluşturmanız gerekmektedir. Mevcut bir hesabınız varsa, giriş yapın.
2. Droplet Oluşturma: Kontrol panelinde sağ üst köşede bulunan “Create” butonuna tıklayın ve açılan menüden “Droplets” seçeneğini seçin.
Bölge ve GPU Planı Seçimi
1. Bölge Seçimi: GPU Droplet’lerinin kullanılabilir olduğu belirli bölgeler vardır (örneğin, Amsterdam, Frankfurt, New York, San Francisco). Size coğrafi olarak en yakın veya GPU kaynaklarının bol olduğu bir bölgeyi seçin. Bölge seçimi, gecikmeyi (latency) etkileyebilir.
2. Droplet Tipi Seçimi: “Choose a Droplet type” bölümünde “GPU Optimized” seçeneğini işaretleyin. Bu, sistemin size GPU destekli planları göstermesini sağlayacaktır.
3. GPU Planı Seçimi: DigitalOcean, farklı GPU donanımları (örneğin, NVIDIA A100, NVIDIA L4) ile çeşitli planlar sunar. Projenizin ihtiyaçlarına ve bütçenize uygun olanı seçin. Daha büyük modeller eğitmek veya daha hızlı hesaplama yapmak için daha fazla VRAM’e (GPU belleği) ve çekirdek sayısına sahip planları tercih edebilirsiniz. İlk başlayanlar için orta seviye bir plan genellikle yeterli olacaktır.
İşletim Sistemi ve Kimlik Doğrulama
1. İşletim Sistemi Seçimi: “Choose an image” bölümünde, AI/ML geliştirme için en yaygın ve iyi desteklenen işletim sistemi olan Ubuntu’nun uzun dönem destek (LTS) sürümünü seçin (örneğin, Ubuntu 22.04 LTS veya 20.04 LTS). Bazı durumlarda DigitalOcean, NVIDIA sürücüleri ve CUDA Toolkit önceden yüklenmiş özel görüntüler sunabilir; ancak bu makalede manuel kurulumu ele alacağız.
2. Kimlik Doğrulama (SSH Keys): “Authentication” bölümünde “SSH keys” seçeneğini işaretlemeniz şiddetle tavsiye edilir. Güvenlik ve kullanım kolaylığı açısından SSH anahtarları parola tabanlı erişimden çok daha iyidir.
* Yeni SSH Anahtarı Oluşturma: Eğer daha önce bir SSH anahtarınız yoksa, terminalinizde (Linux/macOS) veya Git Bash (Windows) üzerinde ssh-keygen -t rsa -b 4096 komutunu kullanarak bir anahtar oluşturabilirsiniz. Oluşturulan anahtarın genel (public) kısmını (~/.ssh/id_rsa.pub dosyasının içeriği) kopyalayıp DigitalOcean’a ekleyin.
* Mevcut Anahtarı Seçme: Daha önce eklediğiniz bir SSH anahtarınız varsa, listeden onu seçin.
Önemli:* SSH anahtarınızın özel (private) kısmını (id_rsa) kimseyle paylaşmayın ve güvenli bir yerde saklayın.
Ek Ayarlar ve Droplet Oluşturma
1. Depolama (Block Storage): “Add block storage” bölümünde, büyük veri setleri veya model checkpoint’leri için ek depolama alanı ekleyebilirsiniz. Bu isteğe bağlıdır ancak büyük projeler için önerilir.
2. Hostname ve Etiketler: Droplet’inize kolayca tanınabilir bir isim verin (örneğin, ai-gpu-droplet). İsteğe bağlı olarak etiketler (tags) ekleyerek droplet’lerinizi düzenleyebilirsiniz.
3. Proje Seçimi: Droplet’i hangi projenize bağlayacağınızı seçin.
4. Oluşturma: Tüm ayarları gözden geçirdikten sonra “Create Droplet” butonuna tıklayın. Droplet’iniz birkaç saniye içinde oluşturulacak ve size genel IP adresi atanacaktır. Bu IP adresini bir yere not alın, çünkü sunucunuza bağlanmak için kullanacaksınız.
Artık GPU Droplet’iniz hazır. Bir sonraki adım, bu droplet’e SSH üzerinden bağlanmak ve temel sunucu yapılandırmalarını gerçekleştirmektir.
İlk Sunucu Yapılandırması ve Güvenlik
Droplet’imiz hazır olduğuna göre, SSH üzerinden bağlanarak temel sistem güncellemelerini yapalım ve güvenlik ayarlarını yapılandıralım.
SSH ile Droplet’e Bağlanma
Terminalinizi (veya Git Bash’i) açın ve aşağıdaki komutu kullanarak droplet’inize bağlanın:
ssh root@your_droplet_ip_address
your_droplet_ip_address yerine DigitalOcean panelinizde gördüğünüz droplet’inizin IP adresini yazın. Eğer ilk kez bağlanıyorsanız, sunucunun parmak izini onaylamanız istenebilir; yes yazıp Enter tuşuna basın.
Sistem Güncelleme
Bağlandıktan sonra, işletim sisteminin paket listesini güncelleyin ve yüklü paketleri en son sürümlerine yükseltin:
sudo apt update
sudo apt upgrade -y
Bu işlem, sistemin kararlılığını ve güvenliğini sağlamak için önemlidir.
Yeni Bir Kullanıcı Oluşturma ve Sudo Yetkisi Verme
root kullanıcısı ile doğrudan çalışmak güvenlik açısından önerilmez. Yeni bir kullanıcı oluşturalım ve ona sudo yetkisi verelim:
sudo adduser yourusername
yourusername yerine kullanmak istediğiniz kullanıcı adını yazın. Parola belirlemeniz ve diğer bilgileri girmeniz istenecektir (çoğu durumda diğer bilgileri boş bırakabilirsiniz).
Yeni kullanıcıya sudo yetkisi vermek için onu sudo grubuna ekleyin:
sudo usermod -aG sudo yourusername
Artık yourusername ile giriş yapabilir ve sudo komutunu kullanarak yönetici ayrıcalıklarıyla komutları çalıştırabilirsiniz. Güvenlik için, mevcut SSH oturumunuzu kapatıp yeni kullanıcı ile bağlanmanız önerilir:
exit # root oturumundan çıkış
ssh yourusername@your_droplet_ip_address
Eğer yeni kullanıcıya da SSH anahtarınızla bağlanmak istiyorsanız, root kullanıcısı olarak bağlanıp SSH anahtarınızı yeni kullanıcının .ssh/authorized_keys dosyasına kopyalamanız gerekebilir. Ancak DigitalOcean’da genellikle anahtar, oluşturulan tüm kullanıcılar için otomatik olarak ayarlanır. Eğer sorun yaşarsanız, root olarak bağlanıp sudo rsync --archive --chown=yourusername:yourusername ~/.ssh /home/yourusername komutuyla anahtarları kopyalayabilirsiniz.
Temel Güvenlik Duvarı (UFW) Yapılandırması
Güvenlik duvarı (firewall), sunucunuza yetkisiz erişimi engellemek için kritik bir bileşendir. Ubuntu’da UFW (Uncomplicated Firewall) kullanımı oldukça kolaydır.
1. Varsayılan Kuralları Ayarlama: Gelen tüm bağlantıları reddedip giden tüm bağlantılara izin verin:
sudo ufw default deny incoming
sudo ufw default allow outgoing
2. SSH Bağlantısına İzin Verme: Kendi SSH bağlantınızı kesmemek için SSH portuna (varsayılan 22) izin verin:
sudo ufw allow ssh
3. Güvenlik Duvarını Etkinleştirme: Kuralları uygulayın ve güvenlik duvarını etkinleştirin:
sudo ufw enable
Etkinleştirme sırasında bir uyarı mesajı alabilirsiniz; y yazıp Enter tuşuna basarak onaylayın.
4. Durumu Kontrol Etme: Güvenlik duvarının durumunu kontrol edin:
sudo ufw status
Çıktıda Status: active ve SSH için bir kural görmelisiniz.
Bu adımlarla sunucunuzun temel yapılandırmasını ve güvenlik önlemlerini tamamladınız. Artık GPU’yu AI/ML görevleri için hazır hale getirme zamanı.
NVIDIA Sürücüleri ve CUDA Toolkit Kurulumu
AI/ML kütüphanelerinin GPU’nuzu kullanabilmesi için NVIDIA sürücülerinin ve CUDA Toolkit’in doğru bir şekilde kurulması şarttır.
NVIDIA Sürücülerinin Kurulumu
1. Mevcut Sürücüleri Kontrol Etme: Droplet’inizde zaten NVIDIA sürücüleri kurulu olup olmadığını kontrol etmek için aşağıdaki komutu çalıştırın:
nvidia-smi
Eğer komut bulunamazsa veya bir hata mesajı alırsanız, sürücülerin kurulu olmadığını anlarsınız. Eğer kurulu ise, GPU modelinizi ve sürücü sürümünü gösteren bir tablo göreceksiniz. Bu durumda 2. adımı atlayabilirsiniz.
2. NVIDIA Sürücülerini Kurma (Kurulu Değilse):
* NVIDIA Depolarını Ekleme: Ubuntu sisteminize NVIDIA’nın resmi depolarını ekleyerek en güncel sürücülere erişebilirsiniz.
sudo apt update
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:graphics-drivers/ppa -y
sudo apt update
* Önerilen Sürücüyü Yükleme: ubuntu-drivers aracı, sisteminiz için önerilen sürücüyü bulmanıza yardımcı olabilir.
ubuntu-drivers devices
Bu komut, sisteminizdeki GPU’lar için önerilen sürücüleri listeleyecektir (örneğin, nvidia-driver-535). Önerilen sürücüyü yüklemek için:
sudo apt install nvidia-driver-535 -y # Örnek olarak 535, sizin için farklı olabilir
Veya doğrudan önerilen sürücüyü yüklemek için:
sudo ubuntu-drivers install
* Sistemi Yeniden Başlatma: Sürücülerin düzgün bir şekilde etkinleşmesi için sunucuyu yeniden başlatmanız gerekmektedir:
sudo reboot
* Kurulumu Doğrulama: Yeniden başlatmanın ardından SSH ile tekrar bağlanın ve nvidia-smi komutunu tekrar çalıştırın. Artık GPU’nuzun bilgilerini ve yüklü sürücü sürümünü görmelisiniz.
CUDA Toolkit Kurulumu
CUDA Toolkit, NVIDIA GPU’larında paralel hesaplama yapmayı sağlayan bir geliştirme ortamıdır. AI/ML kütüphaneleri (PyTorch, TensorFlow) GPU’yu kullanmak için CUDA’ya ihtiyaç duyar.
1. CUDA Sürümünü Belirleme: nvidia-smi çıktısında “CUDA Version” bölümünde görünen sürüm, yüklü sürücünüzün desteklediği en yüksek CUDA sürümünü gösterir (Runtime CUDA). Yükleyeceğiniz CUDA Toolkit sürümü, bu sürümle uyumlu olmalıdır. Örneğin, nvidia-smi çıktısında CUDA 12.2 yazıyorsa, CUDA Toolkit 12.2 veya daha düşük bir sürüm yükleyebilirsiniz.
2. NVIDIA Developer Sitesinden CUDA Toolkit İndirme:
* Tarayıcınızda developer.nvidia.com/cuda-downloads adresine gidin.
* İşletim sisteminizi (Linux), mimarinizi (x86_64), dağıtımınızı (Ubuntu) ve sürümünüzü (22.04 veya 20.04) seçin.
* “Installer Type” olarak genellikle deb (network) veya deb (local) seçeneği tercih edilir. deb (local) daha büyük bir dosya indirir ancak kurulum sırasında internet bağlantısı gerektirmez. Bu makalede deb (local) üzerinden ilerleyeceğiz.
* Size verilen komutları kopyalayın ve droplet’inizde çalıştırın. Örnek komutlar (CUDA 12.2 için):
wget https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda-repo-ubuntu2204-12-2-local_12.2.2-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-2-local_12.2.2-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-2-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt update
sudo apt install cuda -y
Not: Yukarıdaki komutlar CUDA 12.2 için bir örnektir. NVIDIA web sitesindeki en güncel komutları kullanmanız önemlidir.
3. Ortam Değişkenlerini Ayarlama: CUDA’nın sisteminiz tarafından tanınması için ortam değişkenlerini ayarlamanız gerekir. .bashrc dosyanızı düzenleyerek bu değişkenleri kalıcı hale getirin:
nano ~/.bashrc
Dosyanın sonuna aşağıdaki satırları ekleyin (CUDA sürümünüze göre yolu güncelleyin, örneğin cuda-12.2):
export PATH=/usr/local/cuda-12.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
Ctrl+X, Y, Enter tuşlarına basarak kaydedin ve çıkın. Ardından .bashrc dosyasını etkinleştirin:
source ~/.bashrc
4. Kurulumu Doğrulama: CUDA Toolkit’in doğru bir şekilde kurulup kurulmadığını kontrol edin:
nvcc --version
Bu komut, nvcc (CUDA C++ derleyicisi) sürümünü göstermelidir. Eğer çıktıda CUDA Toolkit sürümünü görüyorsanız, kurulum başarılı demektir.
Tebrikler! GPU’nuz artık AI/ML kütüphaneleri tarafından kullanılmaya hazır. Şimdi Python ortamımızı hazırlayabiliriz.
Python Ortamının Hazırlanması (Miniconda)
AI/ML projelerinde farklı kütüphane sürümleri ve bağımlılıkları sıkça kullanılır. Bu karmaşayı yönetmek ve projelerinizi izole tutmak için Anaconda veya Miniconda gibi ortam yöneticileri vazgeçilmezdir. Miniconda, Anaconda’nın hafif bir sürümüdür ve sadece conda paket yöneticisini ve Python’ı içerir.
Miniconda Kurulumu
1. Miniconda İndirme: Terminalinizde aşağıdaki komutla en güncel Miniconda yükleyicisini indirin:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
2. Miniconda Kurulumu: İndirilen betiği çalıştırın:
bash Miniconda3-latest-Linux-x86_64.sh
Kurulum sırasında lisans sözleşmesini onaylamanız (Enter tuşuna basarak okuyun, ardından yes yazın), kurulum dizinini onaylamanız (varsayılanı kabul etmek için Enter) ve conda init komutunu çalıştırmayı kabul etmeniz istenecektir (yes yazın).
3. Ortam Değişikliklerini Etkinleştirme: Kurulum tamamlandıktan sonra, terminal oturumunuzu yeniden başlatmanız veya .bashrc dosyasını tekrar kaynaklamanız gerekir:
source ~/.bashrc
Artık terminalinizde (base) ön eki görmelisiniz, bu da base conda ortamının etkin olduğunu gösterir.
Yeni Bir Conda Ortamı Oluşturma
Projeniz için izole bir ortam oluşturalım:
conda create -n ai_env python=3.9 -y
Bu komut, ai_env adında, Python 3.9 sürümünü içeren yeni bir conda ortamı oluşturacaktır. -y bayrağı, onay sorularını otomatik olarak yes olarak yanıtlar.
Conda Ortamını Etkinleştirme
Oluşturduğunuz ortamı etkinleştirin:
conda activate ai_env
Artık terminalinizde (ai_env) ön ekini görmelisiniz. Bu, tüm yükleyeceğiniz kütüphanelerin bu ortama kurulacağı anlamına gelir.
AI/ML Kütüphanelerinin Kurulumu
Şimdi, etkinleştirdiğimiz ai_env ortamına popüler AI/ML kütüphanelerini kuralım. GPU’yu kullanabilen sürümleri yüklemeye dikkat edin.
PyTorch Kurulumu
PyTorch, esnekliği ve kolay kullanımı nedeniyle AI/ML geliştiricileri arasında oldukça popülerdir.
1. PyTorch Resmi Sitesine Gitme: pytorch.org adresine gidin ve “Install PyTorch” bölümüne tıklayın.
2. Sürüm Seçimi: İşletim sistemi (Linux), paket yöneticisi (pip), Python sürümü (3.x) ve en önemlisi CUDA sürümünüzü seçin. Örneğin, CUDA 12.1 veya 12.2 için cu121 veya cu12x seçeneğini tercih edin. Seçimlerinize göre size özel bir pip install komutu oluşturulacaktır.
3. Kurulum Komutunu Çalıştırma (örnek):
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
Not: Yukarıdaki komut örnek bir CUDA sürümü içermektedir. Kendi CUDA Toolkit sürümünüze uygun olanı PyTorch web sitesinden kopyaladığınızdan emin olun.
TensorFlow Kurulumu
TensorFlow, Google tarafından geliştirilen bir başka popüler AI/ML kütüphanesidir.
1. TensorFlow Kurulumu: TensorFlow’un GPU destekli sürümünü kurmak için (TensorFlow 2.x ve sonrası için genellikle CUDA ve cuDNN bağımlılıklarını otomatik olarak çözer):
pip install tensorflow[and-cuda] # TensorFlow 2.10 ve sonrası için
# Veya belirli bir sürüm için:
# pip install tensorflow==2.15.0
Not: TensorFlow’un GPU desteği için CUDA Toolkit ve cuDNN’in doğru bir şekilde kurulmuş olması gerekir. tensorflow[and-cuda] paketi çoğu bağımlılığı otomatik olarak yükler, ancak bazen manuel müdahale gerekebilir.
Diğer Temel Kütüphaneler
AI/ML projeleri için vazgeçilmez olan diğer bazı kütüphaneleri de kuralım:
pip install numpy pandas scikit-learn matplotlib seaborn tqdm
GPU Algılamasını Doğrulama
Kütüphanelerin GPU’nuzu başarıyla kullanıp kullanamadığını kontrol edelim:
1. Python Kabuğuna Girme:
python
2. PyTorch için Doğrulama:
import torch
print(torch.cuda.is_available())
print(torch.cuda.device_count())
print(torch.cuda.get_device_name(0))
True çıktısı ve GPU adınızı görmelisiniz.
3. TensorFlow için Doğrulama:
import tensorflow as tf
print(tf.config.list_physical_devices('GPU'))
Çıktıda fiziksel GPU cihazınızın listelendiğini görmelisiniz.
Eğer bu kontroller başarılı olursa, AI/ML kütüphaneleriniz GPU’nuzu kullanmaya hazırdır.
Jupyter Labs Kurulumu ve Yapılandırması
Jupyter Labs, AI/ML geliştiricileri için etkileşimli kodlama, veri analizi ve görselleştirme için vazgeçilmez bir web tabanlı geliştirme ortamıdır. Droplet’imiz üzerinde Jupyter Labs’ı kurup güvenli bir şekilde erişilebilir hale getirelim.
Jupyter Labs Kurulumu
ai_env conda ortamınız etkin durumdayken Jupyter Labs’ı kurun:
pip install jupyterlab
Jupyter Labs Yapılandırması
Jupyter Labs’ı bir sunucu üzerinde çalıştırmak için bazı yapılandırmalar yapmamız gerekiyor:
1. Yapılandırma Dosyası Oluşturma:
jupyter lab --generate-config
Bu komut, ~/.jupyter/jupyter_lab_config.py yolunda bir yapılandırma dosyası oluşturacaktır.
2. Jupyter Labs İçin Parola Belirleme: Web arayüzüne erişim için bir parola belirlemek güvenlik açısından kritik öneme sahiptir.
jupyter lab password
Bu komut, parolayı şifreleyip yapılandırma dosyasına kaydedecektir.
3. Yapılandırma Dosyasını Düzenleme: ~/.jupyter/jupyter_lab_config.py dosyasını bir metin düzenleyici ile açın:
nano ~/.jupyter/jupyter_lab_config.py
Aşağıdaki satırları bulun (veya ekleyin) ve değerlerini ayarlayın. Satırların başındaki # işaretini kaldırarak yorum satırı olmaktan çıkarın:
c.ServerApp.ip = '0.0.0.0' # Tüm ağ arayüzlerinden erişime izin verir
c.ServerApp.open_browser = False # Sunucu başlatıldığında otomatik tarayıcı açmayı engeller
c.ServerApp.port = 8888 # Jupyter Labs'ın dinleyeceği port (varsayılan)
Ctrl+X, Y, Enter tuşlarına basarak kaydedin ve çıkın.
Jupyter Labs’ı Arka Planda Çalıştırma (Systemd Servisi ile)
Jupyter Labs’ı bir systemd servisi olarak çalıştırmak, oturumunuzu kapattığınızda bile arka planda çalışmaya devam etmesini sağlar ve sunucunun yeniden başlatılması durumunda otomatik olarak başlamasına olanak tanır.
1. Systemd Servis Dosyası Oluşturma:
sudo nano /etc/systemd/system/jupyter.service
Dosyanın içine aşağıdaki içeriği yapıştırın. yourusername ve ai_env kısımlarını kendi kullanıcı adınız ve conda ortam adınızla değiştirin. ExecStart satırında jupyter lab komutunun tam yolunu belirtmek önemlidir; bunu which jupyter-lab komutuyla bulabilirsiniz (örneğin /home/yourusername/miniconda3/envs/ai_env/bin/jupyter-lab).
[Unit]
Description=Jupyter Lab
After=network.target
[Service]
User=yourusername
Group=yourusername
WorkingDirectory=/home/yourusername/
Environment="PATH=/home/yourusername/miniconda3/envs/ai_env/bin:$PATH"
ExecStart=/home/yourusername/miniconda3/envs/ai_env/bin/jupyter-lab --config=/home/yourusername/.jupyter/jupyter_lab_config.py
Restart=always
[Install]
WantedBy=multi-user.target
Not: WorkingDirectory olarak /home/yourusername/ belirledik. Bu, Jupyter Labs’ın ana dizini olacaktır. Projelerinizi bu dizin altında tutabilirsiniz.
Kaydedin ve çıkın.
2. Systemd Servisini Etkinleştirme ve Başlatma:
sudo systemctl daemon-reload # Yeni servis dosyasını yükle
sudo systemctl enable jupyter # Servisi başlangıçta otomatik çalışacak şekilde ayarla
sudo systemctl start jupyter # Servisi başlat
3. Servis Durumunu Kontrol Etme:
sudo systemctl status jupyter
active (running) ibaresini görmelisiniz. Herhangi bir hata varsa, journalctl -u jupyter komutuyla günlükleri kontrol edebilirsiniz.
Jupyter Labs’a Erişim
Jupyter Labs servisi arka planda çalıştığına göre, şimdi web tarayıcınız üzerinden erişebiliriz.
1. Güvenlik Duvarı Kuralı Ekleme: Jupyter Labs’ın dinlediği porta (varsayılan 8888) güvenlik duvarından izin vermemiz gerekiyor:
sudo ufw allow 8888/tcp
2. Web Tarayıcısından Erişim: Web tarayıcınızı açın ve aşağıdaki adrese gidin:
http://your_droplet_ip_address:8888
your_droplet_ip_address yerine droplet’inizin genel IP adresini yazın.
Jupyter Labs’ın parola ekranı ile karşılaşacaksınız. Daha önce belirlediğiniz parolayı girerek giriş yapın. Artık AI/ML kodlarınızı çalıştırabileceğiniz tam işlevsel bir Jupyter Labs ortamına sahipsiniz!
En İyi Uygulamalar ve Ek Hususlar
GPU Droplet’inizde AI/ML ortamınızı kurdunuz. Şimdi bu ortamı daha verimli, güvenli ve maliyet etkin kullanmak için bazı en iyi uygulamalara ve ek hususlara değinelim.
SSH Tünelleme (Daha Güvenli Erişim)
Jupyter Labs’a doğrudan IP adresi ve port üzerinden erişmek yerine, SSH tünelleme kullanarak daha güvenli bir bağlantı kurabilirsiniz. Bu yöntem, Jupyter Labs portunu dışarıya açmadan, yerel makinenizdeki bir portu droplet’inizdeki Jupyter Labs portuna yönlendirir.
Terminalinizde (yerel makinenizde) aşağıdaki komutu çalıştırın:
ssh -L 8888:localhost:8888 yourusername@your_droplet_ip_address
Bu komut, yerel makinenizin 8888 portunu droplet’inizin 8888 portuna tüneller. Bu durumda, droplet’inizde sudo ufw allow 8888/tcp komutunu çalıştırmanıza gerek kalmaz. Tarayıcınızda http://localhost:8888 adresine giderek Jupyter Labs’a erişebilirsiniz. SSH oturumu açık kaldığı sürece tünel de açık kalır.
Snapshot’lar ve Yedeklemeler
Çalışma ortamınızı ve verilerinizi yedeklemek kritik öneme sahiptir. DigitalOcean, droplet’lerinizin anlık görüntülerini (snapshots) almanızı sağlar. Bu snapshot’lar, droplet’inizin o anki durumunun bir kopyasıdır ve gelecekte yeni bir droplet oluşturmak veya mevcut droplet’inizi önceki bir duruma geri döndürmek için kullanılabilir.
* Ne Zaman Kullanılır: Önemli bir yapılandırma değişikliği yapmadan önce, büyük bir proje üzerinde çalışmaya başlamadan önce veya ortamınızı başka bir droplet’e taşımak istediğinizde.
* Nasıl Yapılır: DigitalOcean kontrol panelinde droplet’inizin sayfasına gidin, “Snapshots” sekmesine tıklayın ve “Take Snapshot” butonuna basın.
Maliyet Yönetimi
GPU Droplet’leri, CPU tabanlı droplet’lerden daha pahalıdır. Maliyetleri kontrol altında tutmak için:
* Kullanılmadığında Kapatma: Eğer uzun süre kullanmayacaksanız, droplet’inizi kapatabilirsiniz. Ancak, DigitalOcean’ın GPU Droplet’leri genellikle kapalıyken bile GPU kaynakları için ücretlendirilmeye devam eder. Bu nedenle, uzun süreli aralar için droplet’i tamamen silip snapshot’tan geri yüklemeyi düşünebilirsiniz. Fiyatlandırma detaylarını DigitalOcean’ın resmi sayfasından kontrol edin.
* İhtiyaca Göre Ölçeklendirme: Projenizin gereksinimleri değiştikçe droplet planınızı yükseltip alçaltmayı düşünün.
* Kullanım Takibi: DigitalOcean’ın izleme (monitoring) araçlarını kullanarak GPU ve CPU kullanımınızı takip edin.
Veri Aktarımı
Yerel makineniz ile droplet’iniz arasında veri aktarmak için scp veya rsync gibi araçları kullanabilirsiniz:
* SCP (Secure Copy Protocol): Dosyaları kopyalamak için basittir.
* Yerelden Droplet’e: scp /path/to/local/file.txt yourusername@your_droplet_ip_address:/path/to/remote/directory/
* Droplet’ten Yerele: scp yourusername@your_droplet_ip_address:/path/to/remote/file.txt /path/to/local/directory/
* Rsync: Büyük dosyalar veya dizinler için daha verimlidir, sadece değişen kısımları kopyalar.
* Yerelden Droplet’e: rsync -avz /path/to/local/folder/ yourusername@your_droplet_ip_address:/path/to/remote/folder/
Versiyon Kontrolü (Git)
Kodlarınızı ve projelerinizi yönetmek için Git kullanmak vazgeçilmezdir. Droplet’inizde Git’i kurarak GitHub, GitLab veya Bitbucket gibi platformlarla entegre olabilirsiniz:
sudo apt install git -y
Ardından, projenizi klonlayabilir veya yeni bir Git deposu başlatabilirsiniz.
Ortam İzleme
DigitalOcean, droplet’lerinizin CPU, bellek, disk ve ağ kullanımını izlemek için yerleşik araçlar sunar. Bu metrikleri kontrol panelinizden takip ederek performans darboğazlarını veya aşırı kaynak kullanımını tespit edebilirsiniz. Ayrıca htop (CPU ve bellek), iotop (disk I/O) ve nmon (genel sistem izleme) gibi terminal tabanlı araçları da yükleyerek sistem performansınızı daha detaylı izleyebilirsiniz.
sudo apt install htop iotop nmon -y
Bu en iyi uygulamalar ve ek hususlar, AI/ML geliştirme ortamınızı daha güvenli, verimli ve sürdürülebilir hale getirmenize yardımcı olacaktır.
Sonuç
Bu kapsamlı rehberde, yapay zeka ve makine öğrenimi projeleriniz için DigitalOcean GPU Droplet üzerinde güçlü ve esnek bir geliştirme ortamını adım adım kurmayı öğrendiniz. Başlangıçta bir GPU Droplet’in nasıl oluşturulacağından, temel sunucu güvenliği ve yapılandırmasına; NVIDIA sürücüleri ve CUDA Toolkit’in kritik kurulumundan, Python ortamının Miniconda ile izole edilmesine; popüler AI/ML kütüphanelerinin (PyTorch, TensorFlow) yüklenmesinden, Jupyter Labs’ın kurulup güvenli bir şekilde erişilebilir hale getirilmesine kadar tüm süreci detaylı bir şekilde ele aldık.
Artık, yerel donanım sınırlamalarının ötesine geçerek, bulutun gücünü kullanarak AI/ML modellerinizi eğitebilir, büyük veri setlerini analiz edebilir ve interaktif bir ortamda kod geliştirebilirsiniz. Bu kurulum, hem yeni başlayanlar hem de deneyimli geliştiriciler için hızlı prototipleme ve proje geliştirme imkanları sunar. Ayrıca, SSH tünelleme, snapshot’lar, maliyet yönetimi ve veri aktarımı gibi en iyi uygulamalarla ortamınızı daha güvenli, verimli ve sürdürülebilir hale getirme konusunda da bilgi edindiniz.
Bu ortam, AI/ML yolculuğunuzda size sağlam bir temel sağlayacaktır. Artık GPU hızlandırmalı hesaplama yetenekleriyle donatılmış bir geliştirme ortamına sahipsiniz. Jupyter Labs’ta not defterleri oluşturarak, veri bilimi ve makine öğrenimi projelerinizi hayata geçirmeye başlayabilirsiniz. Unutmayın, öğrenme ve keşfetme süreci devamlıdır. Bu ortamı kendi özel ihtiyaçlarınıza göre daha da optimize etmek ve farklı araçları entegre etmek için deneyler yapmaktan çekinmeyin. Başarılar dileriz!