tag model-optimizasyon

Bu sayfada model-optimizasyon etiketi ile işaretlenmiş 2 yapay zeka kavramını bulabilirsiniz.

Float16 (FP16 veya yarı duyarlıklı kayan nokta), IEEE 754 standardında tanımlanan ve 16 bit (1 işaret + 5 üs + 10 mantis) kullanarak gerçek sayıları temsil eden sayı biçimidir. Standart Float32'ye (32 bit, tekli duyarlık) kıyasla bellek kullanımını yarıya indirir ve modern GPU'ların tensör çekirdeği (tensor core) donanımıyla çok daha yüksek hesaplama verimi sağlar. Derin öğrenmede Float16'nın önemi büyüktür. GPU belleği (VRAM) model eğitimindeki en sık karşılaşılan darboğazlardan biridir; modelin ağırlıklarını ve aktivasyonlarını FP16'da tutmak aynı GPU'da iki kat daha büyük modeller ya da iki kat daha büyük batch boyutları çalıştırmayı mümkün kılar. NVIDIA'nın 2018'de tanıttığı Tensor Core teknolojisi, FP16 matris çarpımlarını FP32 karşısında 4-8× hızlandırmaktadır. Ancak FP16'nın sayı aralığı (yaklaşık ±65504) ve duyarlığı FP32'den çok daha kısıtlıdır. Bu nedenle eğitimde "karma duyarlık" (mixed precision) yaklaşımı tercih edilir: ileri geçiş (forward pass) ve geri yayılım (backward pass) FP16'da, ağırlık güncellemeleri ve kayıp ölçekleme (loss scaling) ise FP32'de tutulur. PyTorch'ta torch.cuda.amp.autocast() ve TensorFlow'da tf.keras.mixed_precision API'si bu işlemi otomatik yönetir. BF16 (Brain Float16), Google tarafından geliştirilen alternatif bir 16-bit formattır: 8 üs biti kullanarak FP32 ile aynı sayı aralığını korur ancak mantis duyarlığı FP16'dan düşüktür. TPU ve NVIDIA Ampere/Hopper GPU'lar BF16'yı doğal olarak destekler; büyük dil modeli eğitiminde BF16, FP16'nın yerini giderek almaktadır. INT8 ve INT4 niceleme, model çıkarım aşamasında daha da küçük bit genişlikleri kullanarak VRAM tasarrufunu daha da ileri götürür. GPTQ, AWQ ve bitsandbytes kütüphaneleri tüketici GPU'larında büyük dil modellerini çalıştırmak için INT4 nicelemeyi yaygınlaştırmıştır. Niceleme miktarı arttıkça modelin doğruluğu düşebilir; bu ödünleşimi ölçmek için perplexity metriği kullanılır. Türkiye'de LLM araştırmacıları ve açık kaynak topluluk üyeleri, sınırlı VRAM'e sahip tüketici GPU'larında Llama ve Mistral modellerini çalıştırmak için bu tekniklere sıklıkla başvurmaktadır.

memory

Float16 / BFloat16 (Float16 / BFloat16)

Float16 (FP16 veya yarı duyarlıklı kayan nokta), IEEE 754 standardında tanımlanan ve 16 bit (1 işaret + 5 üs + 10 mantis) kullanarak gerçek sayıları temsil eden sayı biçimidir. Standart Float32'ye (32 bit, tekli duyarlık) kıyasla bellek kullanımını yarıya indirir ve modern GPU'ların tensör çekirdeği (tensor core) donanımıyla çok daha yüksek hesaplama verimi sağlar. Derin öğrenmede Float16'nın önemi büyüktür. GPU belleği (VRAM) model eğitimindeki en sık karşılaşılan darboğazlardan biridir; modelin ağırlıklarını ve aktivasyonlarını FP16'da tutmak aynı GPU'da iki kat daha büyük modeller ya da iki kat daha büyük batch boyutları çalıştırmayı mümkün kılar. NVIDIA'nın 2018'de tanıttığı Tensor Core teknolojisi, FP16 matris çarpımlarını FP32 karşısında 4-8× hızlandırmaktadır. Ancak FP16'nın sayı aralığı (yaklaşık ±65504) ve duyarlığı FP32'den çok daha kısıtlıdır. Bu nedenle eğitimde "karma duyarlık" (mixed precision) yaklaşımı tercih edilir: ileri geçiş (forward pass) ve geri yayılım (backward pass) FP16'da, ağırlık güncellemeleri ve kayıp ölçekleme (loss scaling) ise FP32'de tutulur. PyTorch'ta torch.cuda.amp.autocast() ve TensorFlow'da tf.keras.mixed_precision API'si bu işlemi otomatik yönetir. BF16 (Brain Float16), Google tarafından geliştirilen alternatif bir 16-bit formattır: 8 üs biti kullanarak FP32 ile aynı sayı aralığını korur ancak mantis duyarlığı FP16'dan düşüktür. TPU ve NVIDIA Ampere/Hopper GPU'lar BF16'yı doğal olarak destekler; büyük dil modeli eğitiminde BF16, FP16'nın yerini giderek almaktadır. INT8 ve INT4 niceleme, model çıkarım aşamasında daha da küçük bit genişlikleri kullanarak VRAM tasarrufunu daha da ileri götürür. GPTQ, AWQ ve bitsandbytes kütüphaneleri tüketici GPU'larında büyük dil modellerini çalıştırmak için INT4 nicelemeyi yaygınlaştırmıştır. Niceleme miktarı arttıkça modelin doğruluğu düşebilir; bu ödünleşimi ölçmek için perplexity metriği kullanılır. Türkiye'de LLM araştırmacıları ve açık kaynak topluluk üyeleri, sınırlı VRAM'e sahip tüketici GPU'larında Llama ve Mistral modellerini çalıştırmak için bu tekniklere sıklıkla başvurmaktadır.

arrow_forward
code_blocks

Model Pruning Nedir? Sinir Ağlarında Budama (Model Budama)

Model budama (model pruning), milyarlarca parametreye sahip büyük sinir ağlarında performansı en az etkileyen ağırlıkları veya yapısal bileşenleri belirleyip kaldıran bir model optimizasyon yöntemidir. Temel fikir basittir: iyi eğitilmiş bir ağda parametrelerin önemli bir bölümü tahmin kalitesine minimum katkı sağlar ve bu parametreler olmadan model neredeyse aynı doğrulukla çalışmaya devam edebilir. **Budama Türleri** Yapısal budama (structured pruning), nöron, filtre veya katman gibi tüm yapısal birimleri kaldırır. Bu yaklaşım, standart CPU/GPU donanımında doğrudan bellek ve hız kazanımı sağlar; karmaşık özel donanım gerekmez. Buna karşın yapısal olmayan budama (unstructured pruning), bireysel ağırlıkları sıfırlayarak seyrek (sparse) bir matris üretir. Sıkıştırma oranı çok yüksek olabilir ancak bu seyrekliği işlemek için özel seyrek matris donanımı ya da yazılım desteği gerekir. **Büyüklük Tabanlı Budama** En yaygın yöntem büyüklük tabanlı (magnitude-based) budamadır: mutlak değerleri eşik değerin altındaki ağırlıklar sıfırlanır. Uygulaması kolaydır ve pek çok durumda yeterli sonuç verir. Daha gelişmiş gradyan tabanlı yaklaşımlar ise ağırlığın kayıp fonksiyonuna katkısını (saliency) hesaplayarak gerçekten önemsiz olanları seçer. **Yinelemeli Budama ve Lottery Ticket Hipotezi** Tek adımda agresif budama doğruluğu düşürebilir. Bu nedenle pratikte "budama, ince ayar (fine-tune) ve tekrar budama" döngüsü tercih edilir. 2019'da Frankle ve Carlin tarafından öne sürülen Lottery Ticket Hipotezi, büyük sinir ağlarında küçük ama etkili alt ağlar (winning tickets) gizlendiğini; bu alt ağların sıfırdan aynı doğrulukla eğitilebildiğini ileri sürer. Bu hipotez, budamanın neden bu kadar iyi çalıştığını teorik olarak açıklar. **Pratik Kullanım Alanları** Model budama özellikle kenar cihazlarda (akıllı telefon, IoT sensörü, gömülü sistem) büyük modelleri çalıştırmak için kritik önem taşır. GPT, LLaMA gibi büyük dil modellerini mobil uygulamalarda kullanılabilir hale getiren yöntemlerin başında gelir. Niceleme (quantization) ve bilgi damıtma (knowledge distillation) ile birlikte kullanıldığında model boyutu ve çıkarım gecikme süresi dramatik biçimde azaltılabilir.

arrow_forward