Yapay Zeka
Büyük Dil Modeli Parametrelerini ve Bellek Gereksinimlerini Anlamak: Derinlemesine Bir İnceleme

By
Aayush Mittal Mittal
Büyük Dil Modelleri (LLM) programları son yıllarda kayda değer ilerlemeler kaydetti. GPT-4, Google Gemini ve Claude 3 gibi modeller, yetenekler ve uygulamalar açısından yeni standartlar belirliyor. Bu modeller yalnızca metin oluşturma ve çeviriyi geliştirmekle kalmıyor, aynı zamanda metin, görüntü, ses ve video girişlerini birleştirerek daha kapsamlı yapay zeka çözümleri sunarak çok modlu işlemede de çığır açıyor.
Örneğin, OpenAI'nin GPT-4 modeli, insan benzeri metinleri anlama ve oluşturmada önemli gelişmeler gösterirken, Google'ın Gemini modelleri, metin, resim ve ses gibi çeşitli veri türlerini işlemede mükemmel performans göstererek daha sorunsuz ve bağlamsal olarak daha alakalı etkileşimler sağlıyor. Benzer şekilde, Anthropic'in Claude 3 modelleri, çok dilli yetenekleri ve yapay zeka görevlerindeki gelişmiş performanslarıyla dikkat çekiyor.
Yüksek Lisans'ların gelişimi hızlanmaya devam ettikçe, bu modellerin karmaşıklıklarını, özellikle de parametrelerini ve bellek gereksinimlerini anlamak çok önemli hale geliyor. Bu kılavuz, ayrıntılı ve anlaşılması kolay bir açıklama sunarak bu hususları açığa çıkarmayı amaçlamaktadır.
Büyük Dil Modellerinin Temelleri
Büyük Dil Modelleri Nedir?
Büyük Dil Modelleri, insan dilini anlamak ve oluşturmak için devasa veri kümeleri üzerinde eğitilmiş sinir ağlarıdır. Metni işlemek ve üretmek için öz-dikkat gibi mekanizmaları kullanan Transformers gibi mimarilere güveniyorlar.
Yüksek Lisansta Parametrelerin Önemi
Parametreler, bu modellerin temel bileşenleridir. Bunlar, tahminlerdeki hataları en aza indirmek için modelin eğitim sırasında ayarladığı ağırlıkları ve sapmaları içerir. Parametre sayısı genellikle modelin kapasitesi ve performansıyla ilişkilidir, ancak aynı zamanda hesaplama ve bellek gereksinimlerini de etkiler.
Transformatör Mimarisini Anlamak
Genel Bakış
Vaswani ve arkadaşlarının "İhtiyacınız Olan Tek Şey Dikkat" makalesinde tanıtılan Transformer mimarisi. (2017), birçok Yüksek Lisans'ın temeli haline geldi. Her biri birkaç özdeş katmandan oluşan bir kodlayıcı ve kod çözücüden oluşur.
Kodlayıcı ve Kod Çözücü Bileşenleri
- Encoder: Giriş sırasını işler ve bağlama duyarlı bir gösterim oluşturur.
- şifre çözücü: Kodlayıcının gösterimini ve daha önce oluşturulan belirteçleri kullanarak çıktı dizisini oluşturur.
Anahtar Yapı Taşları
- Çok Kafalı Dikkat: Modelin giriş sırasının farklı bölümlerine aynı anda odaklanmasını sağlar.
- İleri Beslemeli Sinir Ağları: Modele doğrusal olmama ve karmaşıklık katar.
- Katman Normalleştirme: Ara çıktıları normalleştirerek eğitimi stabilize eder ve hızlandırır.
Parametre Sayısının Hesaplanması
Trafo Tabanlı LLM'lerde Parametrelerin Hesaplanması
Transformatör tabanlı bir LLM'nin her bir bileşeni için parametre hesaplamasını inceleyelim. Orijinal makaledeki notasyonu kullanacağız. d_model modelin gizli durumlarının boyutunu temsil eder.
- Gömme Katmanı:
- Parametreler =
vocab_size*d_model
- Parametreler =
- Çok Kafalı Dikkat:
- Her Ticaretçi İçin Mükemmellik
hkafalar, iled_k = d_v = d_model / h: - Parametreler = 4 *
d_model^2 (Q, K, V ve çıktı projeksiyonları için)
- Her Ticaretçi İçin Mükemmellik
- İleri Beslemeli Ağ:
- Parametreler = 2 *
d_model*d_ff+d_model+d_ff - Nerede
d_ffgenellikle 4 *d_model
- Parametreler = 2 *
- Katman Normalleştirme:
- Parametreler = 2 *
d_model(ölçek ve önyargı için)
- Parametreler = 2 *
Bir Transformer katmanı için toplam parametreler:
Parameters_layer=Parameters_attention+Parameters_ffn+ 2 *Parameters_layernorm
olan bir model için N katmanlar:
- Toplam Parametreler =
N*Parameters_layer+Parameters_embedding+Parameters_output
Örnek Hesaplama
Aşağıdaki özelliklere sahip bir modeli ele alalım:
d_model= 768h(dikkat kafalarının sayısı) = 12N(katman sayısı) = 12vocab_size= 50,000
- Gömme Katmanı:
- 50,000 * 768 = 38,400,000
- Çok Kafalı Dikkat:
- 4 * 768^2 = 2,359,296
- İleri Beslemeli Ağ:
- 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4,719,616
- Katman Normalleştirme:
- 2 * 768 = 1,536
Katman başına toplam parametreler:
- 2,359,296 + 4,719,616 + (2 * 1,536) = 7,081,984
12 katman için toplam parametreler:
- 12 * 7,081,984 = 84,983,808
Toplam model parametreleri:
- 84,983,808 + 38,400,000 = 123,383,808
Bu model yaklaşık 123 milyon parametreye sahip olacaktır.
Bellek Kullanımı Türleri
Yüksek Lisans'larla çalışırken iki ana bellek kullanımı türünü dikkate almamız gerekir:
- Model Belleği: Model parametrelerini saklamak için gereken bellek.
- Bellek Çalışma: Ara aktivasyonları, degradeleri ve optimize edici durumlarını depolamak için çıkarım veya eğitim sırasında ihtiyaç duyulan bellek.
Model Belleğinin Hesaplanması
Model hafızası doğrudan parametre sayısıyla ilgilidir. Her parametre tipik olarak 32 bit kayan noktalı sayı olarak depolanır, ancak bazı modeller 16 bit kayan noktalı karma duyarlıklı eğitim kullanır.
Model Belleği (bayt) = Parametre sayısı * Parametre başına bayt
123 milyon parametreli örnek modelimiz için:
- Model Belleği (32 bit) = 123,383,808 * 4 bayt = 493,535,232 bayt ≈ 494 MB
- Model Belleği (16 bit) = 123,383,808 * 2 bayt = 246,767,616 bayt ≈ 247 MB
Çalışma Belleğinin Tahmin Edilmesi
Çalışma belleği gereksinimleri, belirli göreve, toplu iş boyutuna ve sıra uzunluğuna bağlı olarak önemli ölçüde değişiklik gösterebilir. Çıkarım sırasında çalışma belleğinin kaba bir tahmini şöyledir:
Çalışma Belleği ≈ 2 * Model Bellek
Bu, hem model parametrelerinin hem de ara aktivasyonların saklanmasını sağlar. Eğitim sırasında, degradeleri ve optimize edici durumlarını saklama ihtiyacı nedeniyle bellek gereksinimleri daha da yüksek olabilir:
Egzersiz Belleği ≈ 4 * Model Belleği
Örnek modelimiz için:
- Çıkarım Çalışma Belleği ≈ 2 * 494 MB = 988 MB ≈ 1 GB
- Eğitim Belleği ≈ 4 * 494 MB = 1,976 MB ≈ 2 GB
Sabit Durum Bellek Kullanımı ve En Yüksek Bellek Kullanımı
Transformer mimarisine dayalı büyük dil modellerini eğitirken, verimli kaynak tahsisi için bellek kullanımını anlamak çok önemlidir. Bellek gereksinimlerini iki ana kategoriye ayıralım: sabit durum bellek kullanımı ve en yüksek bellek kullanımı.
Kararlı Durum Bellek Kullanımı
Kararlı durum bellek kullanımı aşağıdaki bileşenlerden oluşur:
- Model Ağırlıkları: Model parametrelerinin FP32 kopyaları; 4N bayt gerektirir; burada N, parametre sayısıdır.
- Optimize Edici Durumları: Adam optimizer için bu, 8N bayt gerektirir (parametre başına 2 durum).
- Renk Geçişleri: 32N bayt gerektiren degradelerin FP4 kopyaları.
- Giriş Verileri: İnt64 girişlerini varsayarsak, bu 8BD bayt gerektirir; burada B toplu iş boyutu ve D giriş boyutudur.
Toplam kararlı durum bellek kullanımı şu şekilde tahmin edilebilir:
- M_steady = 16N + 8BD bayt
En Yüksek Bellek Kullanımı
En yüksek bellek kullanımı, aktivasyonların gradyan hesaplaması için saklandığı geri geçiş sırasında meydana gelir. En yüksek belleğe katkıda bulunan başlıca faktörler şunlardır:
- Katman Normalleştirme: Katman normu başına 4E bayt gerektirir; burada E = BSH (B: toplu iş boyutu, S: sıra uzunluğu, H: gizli boyut).
- Dikkat Bloğu:
- QKV hesaplaması: 2E bayt
- Dikkat matrisi: 4BSS bayt (S: dizi uzunluğu)
- Dikkat çıkışı: 2E bayt
- İleri Besleme Bloğu:
- İlk doğrusal katman: 2E bayt
- GELU aktivasyonu: 8E bayt
- İkinci doğrusal katman: 2E bayt
- Çapraz Entropi Kaybı:
- Logitler: 6BSV bayt (V: sözcük boyutu)
Toplam aktivasyon hafızası şu şekilde tahmin edilebilir:
- M_act = L * (14E + 4BSS) + 6BSV bayt
L, transformatör katmanlarının sayısıdır.
Toplam En Yüksek Bellek Kullanımı
Eğitim sırasındaki en yüksek bellek kullanımı, kararlı durum belleği ve etkinleştirme belleği birleştirilerek yaklaşık olarak hesaplanabilir:
- M_peak = M_steady + M_act + 4BSV bayt
Ek 4BSV terimi, geri geçişin başlangıcında ekstra bir tahsis anlamına gelir.
Bu bileşenleri anlayarak, eğitim ve çıkarım sırasında bellek kullanımını optimize edebilir, verimli kaynak tahsisi ve büyük dil modellerinin performansının iyileştirilmesini sağlayabiliriz.
Ölçekleme Yasaları ve Verimlilik Hususları
LLM'ler için Ölçeklendirme Yasaları
Araştırma, parametre sayısı arttıkça LLM'lerin performansının belirli ölçeklendirme yasalarına uyma eğiliminde olduğunu göstermiştir. Kaplan ve ark. (2020), model performansının parametre sayısı, işlem bütçesi ve veri kümesi boyutunun güç yasası olarak iyileştiğini gözlemledi.
Model performansı ile parametre sayısı arasındaki ilişki şu şekilde tahmin edilebilir:
Performans ∝ N^α
Burada N, parametre sayısıdır ve α, dil modelleme görevleri için genellikle 0.07 civarında bir ölçeklendirme üssüdür.
Bu, performansta %10'luk bir iyileşme elde etmek için parametre sayısını 10^(1/α) ≈ 3.7 faktörü kadar artırmamız gerektiği anlamına gelir.
Verimlilik Teknikleri
Yüksek Lisans'lar büyümeye devam ettikçe, araştırmacılar ve uygulayıcılar verimliliği artırmak için çeşitli teknikler geliştirdiler:
a) Karma Hassasiyet Eğitimi: Bellek kullanımını ve hesaplama gereksinimlerini azaltmak amacıyla belirli işlemler için 16 bit ve hatta 8 bit kayan noktalı sayıların kullanılması.
b) Model Paralelliği: Tek bir cihaza sığamayacak kadar büyük modelleri yönetmek için modeli birden fazla GPU'ya veya TPU'ya dağıtma.
c) Gradyan Kontrol Noktalaması: Geri geçiş sırasındaki belirli aktivasyonları depolamak yerine yeniden hesaplayarak hafıza için hesaplama ticareti.
d) Budama ve Niceleme: Daha küçük, daha verimli modeller oluşturmak için daha az önemli ağırlıkları kaldırmak veya eğitim sonrası hassasiyetlerini azaltmak.
e) Damıtma: Daha büyük modellerin davranışını taklit edecek şekilde daha küçük modelleri eğitmek, potansiyel olarak daha az parametreyle performansın çoğunu korumak.
Pratik Örnek ve Hesaplamalar
En büyük dil modellerinden biri olan GPT-3'ün 175 milyar parametresi vardır. Transformer mimarisinin kod çözücü kısmını kullanır. Ölçeğini anlamak için parametre sayısını varsayımsal değerlere ayıralım:
d_model = 12288d_ff = 4 * 12288 = 49152- Katman sayısı = 96
Bir kod çözücü katmanı için:
Toplam Parametreler = 8 * 12288^2 + 8 * 12288 * 49152 + 2 * 12288 ≈ 1.1 milyar
96 katman için toplam:
1.1 milyar * 96 = 105.6 milyar
Geri kalan parametreler gömme ve diğer bileşenlerden gelir.
Sonuç
Büyük dil modellerinin parametrelerini ve bellek gereksinimlerini anlamak, bu güçlü araçları etkili bir şekilde tasarlamak, eğitmek ve dağıtmak için çok önemlidir. Transformer mimarisinin bileşenlerini parçalara ayırarak ve GPT gibi pratik örnekleri inceleyerek bu modellerin karmaşıklığı ve ölçeği hakkında daha derin bir fikir ediniyoruz.
Büyük dil modelleri ve bunların uygulamalarındaki en son gelişmeleri daha iyi anlamak için şu kapsamlı kılavuzlara göz atın:
- Gemma 2'nin Tam Kılavuzunu Keşfedin: Google'ın Yeni Açık Büyük Dil Modeli Gelişmiş performansı ve yenilikçi özellikleri hakkında bilgi almak için.
- Scratch ve Beyond'dan RAG için LLM Temsilcileri Oluşturma hakkında bilgi edinin: Kapsamlı Bir Kılavuz geri almayla artırılmış nesildeki zorlukları ve çözümleri tartışıyor.
- İnceliklerini keşfedin NVIDIA GPU'lar ve CUDA ile LLM'lerin Eğitimi, İnce Ayarı ve Çıkarımının Ayarlanması AI sistemlerini optimize etmek için.
Son beş yılımı, Makine Öğrenimi ve Derin Öğrenmenin büyüleyici dünyasına dalarak geçirdim. Tutkum ve uzmanlığım, özellikle AI/ML'ye odaklanarak 50'den fazla farklı yazılım mühendisliği projesine katkıda bulunmamı sağladı. Devam eden merakım, beni daha fazla keşfetmeye hevesli olduğum bir alan olan Doğal Dil İşleme'ye de çekti.
Beğenebilirsin
-


Absürt Bilimsel Makaleler Yapay Zeka İncelemecilerinin Gözünden Nasıl Sızdırılır?
-


Yapay Zeka Modelleri, Yapay Zeka Tarafından Üretilen Yazıya Göre İnsan Yazısını Tercih Ediyor
-


MoE Devrimi: Gelişmiş Yönlendirme ve Uzmanlaşma LLM'leri Nasıl Dönüştürüyor?
-


Ölçeklendirme Çağının Sonu: Algoritmik Atılımların Model Boyutundan Daha Önemli Olmasının Nedeni
-


Yapay Zeka Neden Cevabı Bilmediğini Kabul Edemiyor?
-


Nörosembolik Değişim: Saf Hukuk Yüksek Lisansı (LL.M.) Neden Bir Duvara Çarpıyor?

