Yapay Zekâ Araçları 101
NVIDIA GPU’leri ve CUDA ile LLM’lerin Eğitimi, İyileştirilmesi ve Tahmin Edilmesi
Yapay zeka (AI) alanı, son yıllarda önemli ilerlemeler kaydetmiştir ve bunun temelinde güçlü bir şekilde birleştirilen grafik işleme birimleri (GPU’lar) ve paralel işlem platformu bulunmaktadır.
GPT, BERT ve daha最近 Llama, Mistral gibi modeller, insan gibi metin anlayabilme ve üretme yeteneğine sahip olmakla birlikte, bu modelleri eğitmek için büyük miktarda veri ve hesaplama kaynağı gerektirmektedir. Bu nedenle, GPU’lar ve CUDA, bu alanda vazgeçilmez araçlar haline gelmiştir.
Bu kapsamlı rehber, Ubuntu’da NVIDIA GPU’su kurma sürecini adım adım anlatmaktadır. NVIDIA sürücüsü, CUDA Toolkit, cuDNN, PyTorch ve diğer gerekli yazılımların kurulumu hakkında bilgi verilmektedir.
CUDA Hızlandırılmış AI Çerçevelerinin Yükselişi
GPU hızlandırılmış derin öğrenme, CUDA için verimli hesaplamayı sağlayan popüler AI çerçevelerinin geliştirilmesiyle teşvik edilmiştir. TensorFlow, PyTorch ve MXNet gibi çerçeveler, CUDA desteği sunarak, GPU hızlandırmasının derin öğrenme管道larına sorunsuz entegrasyonunu sağlamaktadır.
NVIDIA Data Center Deep Learning Product Performance Study’ye göre, CUDA hızlandırılmış derin öğrenme modelleri, CPU tabanlı uygulamalara kıyasla 100 kat daha hızlı performans sağlayabilmektedir.
NVIDIA’nın Multi-Instance GPU (MIG) teknolojisi, Ampere mimarisiyle birlikte sunulmuştur ve tek bir GPU’nun birden fazla güvenli örneğe bölünmesine olanak tanır. Her bir örnek, kendi ayrılmış kaynaklarına sahiptir. Bu özellik, GPU kaynaklarının birden fazla kullanıcı veya iş yükü arasında verimli bir şekilde paylaşılmasını sağlar ve genel maliyeti azaltır.
NVIDIA TensorRT ile LLM Tahminini Hızlandırma
GPU’lar, LLM’lerin eğitimi için önemli olsa da, üretim ortamlarında bu modellerin verimli tahmin edilmesi de eşit derecede önemlidir. NVIDIA TensorRT, bir yüksek performanslı derin öğrenme tahmini optimizasyon aracı ve çalışma zamanı olarak, CUDA destekli GPU’larda LLM tahminini hızlandırma konusunda önemli bir rol oynamaktadır.
NVIDIA’nın benchmark’lerine göre, TensorRT, büyük dil modelleri için CPU tabanlı tahmine kıyasla 8 kata kadar daha hızlı tahmini performans ve 5 kata kadar daha düşük toplam sahip olma maliyeti sağlayabilmektedir.
NVIDIA, açık kaynak girişimlerine olan bağlılığı, CUDA’nın AI araştırma topluluğu tarafından geniş çapta benimsenmesinde önemli bir faktör olmuştur. cuDNN, cuBLAS ve NCCL gibi projeler, açık kaynak kütüphaneler olarak mevcuttur ve araştırmacılara ve geliştiricilere, derin öğrenme için CUDA’nın tam potansiyelinden yararlanmalarını sağlar.
Kurulum
AI geliştirme sürecinde, her zaman en son sürücüler ve kütüphaneleri kullanmak en iyi seçim olmayabilir. Örneğin, en son NVIDIA sürücüsü (545.xx) CUDA 12.3’ü destekler, ancak PyTorch ve diğer kütüphaneler bu sürümü henüz desteklemeyebilir. Bu nedenle, sürücü sürümü 535.146.02 ve CUDA 12.2’yi kullanacağız.
Kurulum Adımları
1. NVIDIA Sürücüsünü Kurma
İlk adım, GPU modelinizi belirlemektir. Bu rehber için NVIDIA GPU’sunu kullanacağız. NVIDIA Sürücü İndirme sayfasını ziyaret edin, GPU’nuz için uygun sürücüyü seçin ve sürücü sürümünü not alın.
Ubuntu’da Önceden Derlenmiş GPU Paketlerini Kontrol Etme:
[kod dil=”BASH”]
sudo ubuntu-drivers list –gpgpu
[/kod]
Bilgisayarınızı Yeniden Başlatın ve Kurulumu Doğrulayın:
[kod dil=”BASH”]
nvidia-smi
[/kod]
2. CUDA Toolkit’i Kurma
CUDA Toolkit, GPU hızlandırılmış uygulamalar oluşturmak için gereken geliştirme ortamını sağlar.
Non-LLM/deep learning kurulum için:
[kod dil=”BASH”]
sudo apt install nvidia-cuda-toolkit
[/kod]
Ancak, BitsAndBytes ile uyumluluğu sağlamak için aşağıdaki adımları takip edeceğiz:
[kod dil=”BASH”]
git clone https://github.com/TimDettmers/bitsandbytes.git
cd bitsandbytes/
bash install_cuda.sh 122 ~/local 1
[/kod]
Kurulumu Doğrulayın:
[kod dil=”BASH”]
~/local/cuda-12.2/bin/nvcc –version
[/kod]
Çevre Değişkenlerini Ayarlayın:
[kod dil=”BASH”]
export CUDA_HOME=/home/roguser/local/cuda-12.2/
export LD_LIBRARY_PATH=/home/roguser/local/cuda-12.2/lib64
export BNB_CUDA_VERSION=122
export CUDA_VERSION=122
[/kod]
3. cuDNN’i Kurma
cuDNN paketini NVIDIA Geliştirici web sitesinden indirin ve aşağıdaki komutla kurun:
[kod dil=”BASH”]
sudo apt install ./cudnn-local-repo-ubuntu2204-8.9.7.29_1.0-1_amd64.deb
[/kod]
Anahtarı Ekleyin:
[kod dil=”BASH”]
sudo cp /var/cudnn-local-repo-ubuntu2204-8.9.7.29/cudnn-local-08A7D361-keyring.gpg /usr/share/keyrings/
[/kod]
cuDNN Kütüphanelerini Kurun:
[kod dil=”BASH”]
sudo apt update
sudo apt install libcudnn8 libcudnn8-dev libcudnn8-samples
[/kod]
4. Python Sanal Ortamını Ayarlayın
Ubuntu 22.04, Python 3.10 ile birlikte gelir. venv’yi kurun:
[kod dil=”BASH”]
sudo apt-get install python3-pip
sudo apt install python3.10-venv
[/kod]
Sanal Ortamı Oluşturun ve Aktif Edin:
[kod dil=”BASH”]
cd
mkdir test-gpu
cd test-gpu
python3 -m venv venv
source venv/bin/activate
[/kod]
5. BitsAndBytes’i Kaynak Kodundan Kurma
BitsAndBytes dizinine gidin ve kaynak kodundan derleyin:
[kod dil=”BASH”]
cd ~/bitsandbytes
CUDA_HOME=/home/roguser/local/cuda-12.2/ \
LD_LIBRARY_PATH=/home/roguser/local/cuda-12.2/lib64 \
BNB_CUDA_VERSION=122 \
CUDA_VERSION=122 \
make cuda12x
CUDA_HOME=/home/roguser/local/cuda-12.2/ \
LD_LIBRARY_PATH=/home/roguser/local/cuda-12.2/lib64 \
BNB_CUDA_VERSION=122 \
CUDA_VERSION=122 \
python setup.py install
[/kod]
6. PyTorch’u Kurma
PyTorch’u aşağıdaki komutla kurun:
[kod dil=”BASH”]
pip install torch torchvision torchaudio –index-url https://download.pytorch.org/whl/cu121
[/kod]
7. Hugging ve Transformers’ı Kurma
Transformers ve hızlandırma kütüphanelerini kurun:
[kod dil=”BASH”]
pip install transformers
pip install accelerate
[/kod]
Paralel İşlemenin Gücü
GPU’lar, temelde yüksek derecede paralel işlem yapabilen işlemciler olarak tasarlanmıştır. Bu mimari, derin öğrenme modellerinin eğitimi gibi hesaplama yoğun görevler için idealdir. NVIDIA’nın CUDA platformu, geliştiricilerin bu GPU’ların paralel işlem kapasitelerinden yararlanmalarını sağlayan bir yazılım ortamı sağlar.
LLM eğitimi, büyük miktarda metin verisi işleme ve çok sayıda matris işlemi gerektirir. GPU’lar, binlerce çekirdeğe ve yüksek bellek bant genişliğine sahip olduklarından, bu görevler için idealdir. CUDA’yı kullanarak, geliştiriciler kodlarını GPU’ların paralel işlem kapasitelerinden yararlanacak şekilde optimize edebilirler, böylece LLM’lerin eğitimi önemli ölçüde hızlanabilir.
CUDA Hızlandırılmış Kütüphaneler için Derin Öğrenme
CUDA platformunun yanı sıra, NVIDIA ve açık kaynak topluluğu, derin öğrenme modellerinin verimli uygulanmasını sağlayan bir dizi CUDA hızlandırılmış kütüphane geliştirmiştir. Bu kütüphaneler, matris çarpımı, konvolüsyon ve aktivasyon fonksiyonları gibi ortak işlemlerin optimize edilmiş uygulamalarını sağlar, böylece geliştiriciler model mimarisine ve eğitim sürecine odaklanabilirler.
cuDNN (CUDA Deep Neural Network kütüphanesi) gibi bir kütüphane, derin sinir ağlarında kullanılan standard rutinlerin yüksek derecede optimize edilmiş uygulamalarını sağlar. cuDNN’yi kullanarak, geliştiriciler modellerinin eğitimi ve tahminini önemli ölçüde hızlandırabilirler, CPU tabanlı uygulamalara kıyasla birkaç kat daha iyi performans elde edebilirler.
Çoklu GPU ve Dağıtılmış Eğitim için Ölçeklenebilirlik
LLM’ler ve derin öğrenme modelleri büyüdükçe ve karmaşıklığı arttıkça, bunların eğitimi için gereken hesaplama kaynakları da artmaktadır. Bu zorluğu aşmak için araştırmacılar ve geliştiriciler, çoklu GPU ve dağıtılmış eğitim tekniklerine yönelmişlerdir. Bu teknikler, birden fazla GPU’nun bir araya gelerek daha büyük ve daha karmaşık modelleri eğitmelerini sağlar.
CUDA ve ilişkili kütüphaneler, NCCL (NVIDIA Collective Communications Library) gibi, çoklu GPU arasında verimli iletişim ve senkronizasyonu sağlayan araçlar sağlar. Bu, büyük ölçekli dağıtılmış eğitim için आवशtır ve araştırmacıların ve geliştiricilerin daha büyük ve daha karmaşık modelleri makul bir sürede eğitmelerini sağlar.
CUDA ile Derin Öğrenme Modellerini Dağıtma
GPU’lar ve CUDA, derin öğrenme modellerinin eğitimi için önemli olsa da, bu modellerin üretim ortamlarında verimli bir şekilde dağıtılması da eşit derecede önemlidir. NVIDIA’nın TensorRT, bir yüksek performanslı derin öğrenme tahmini optimizasyon aracı ve çalışma zamanı olarak, CUDA destekli GPU’larda derin öğrenme modellerinin tahminini hızlandırma konusunda önemli bir rol oynamaktadır.
TensorRT, TensorFlow, PyTorch ve MXNet gibi çerçevelerde eğitilen modelleri optimize edebilir ve hızlandırabilir, böylece çeşitli platformlarda, gömülü sistemlerden veri merkezlerine kadar, verimli bir şekilde dağıtabilir.
SONUÇ
GPU’lar ve CUDA, büyük dil modelleri, bilgisayar görüşü, konuşma tanıma ve diğer birçok derin öğrenme alanında yapılan ilerlemelerde önemli bir rol oynamıştır. GPU’ların paralel işlem kapasitelerinden ve CUDA tarafından sağlanan optimize edilmiş kütüphanelerden yararlanarak, araştırmacılar ve geliştiriciler, giderek daha karmaşık modelleri verimli bir şekilde eğitebilir ve dağıtabilirler.
AI alanı devam ettiği sürece, GPU’lar ve CUDA’nın önemi daha da artacaktır. Daha güçlü donanımlar ve yazılım optimizasyonlarıyla, AI sistemlerinin geliştirilmesi ve dağıtılması konusunda daha da önemli ilerlemeler bekleyebiliriz.












