Bizimle iletişime geçin

Yapay Zeka

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

mm

Yayınlanan

 on

Trafo Tabanlı LLM'lerde Parametrelerin Hesaplanması

Büyük Dil Modelleri (LLM'ler) son yıllarda dikkate değer ilerlemeler kaydetti. GPT-4, Google Gemini ve Claude 3 gibi modeller, yetenekler ve uygulamalarda yeni standartlar belirliyor. Bu modeller yalnızca metin oluşturmayı ve çeviriyi geliştirmekle kalmıyor, aynı zamanda daha kapsamlı yapay zeka çözümleri sağlamak için metin, görüntü, ses ve video girişlerini birleştirerek çok modlu işlemede yeni çığır açıyor.

Örneğin, OpenAI'nin GPT-4'ü insan benzeri metinlerin anlaşılması ve üretilmesinde önemli gelişmeler gösterirken, Google'ın Gemini modelleri metin, görseller ve ses dahil olmak üzere çeşitli veri türlerini işlemede üstün başarı göstererek daha kusursuz ve bağlamsal olarak anlamlı 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. Parametrelerin sayısı genellikle modelin kapasitesi ve performansıyla ilişkilidir ancak aynı zamanda hesaplama ve bellek gereksinimlerini de etkiler.

Transformatör Mimarisini Anlamak

Transformers mimarisi

Transformatör Mimarisi

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 önceden oluşturulmuş belirteçleri kullanarak çıktı dizisini oluşturur.

Anahtar Yapı Taşları

  1. Çok Kafalı Dikkat: Modelin giriş sırasının farklı bölümlerine aynı anda odaklanmasını sağlar.
  2. İleri Beslemeli Sinir Ağları: Modele doğrusal olmama ve karmaşıklık katar.
  3. Katman Normalleştirme: Ara çıktıları normalleştirerek eğitimi stabilize eder ve hızlandırır.

Parametre Sayısının Hesaplanması

Trafo Eğitimi

Verimli Trafo Eğitimi İçin Önceden Eğitimli Modeller

Trafo Tabanlı LLM'lerde Parametrelerin Hesaplanması

Transformer tabanlı bir LLM'nin her bir bileşeni için parametre hesaplamasını inceleyelim. Orijinal makaledeki notasyonu kullanacağız, burada d_model modelin gizli durumlarının boyutunu temsil eder.

  1. Gömme Katmanı:
    • Parametreler = vocab_size * d_model
  2. Çok Kafalı Dikkat:
    • İçin h kafalar, ile d_k = d_v = d_model / h:
    • Parametreler = 4 * d_model^2 (Q, K, V ve çıktı projeksiyonları için)
  3. İleri Beslemeli Ağ:
    • Parametreler = 2 * d_model * d_ff + d_model + d_ff
    • Nerede d_ff genellikle 4 * d_model
  4. Katman Normalleştirme:
    • Parametreler = 2 * d_model (ölçek ve önyargı için)

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 model düşünelim:

  • d_model = 768
  • h (dikkat kafalarının sayısı) = 12
  • N (katman sayısı) = 12
  • vocab_size = 50,000
  1. Gömme Katmanı:
    • 50,000 * 768 = 38,400,000
  2. Çok Kafalı Dikkat:
    • 4 * 768^2 = 2,359,296
  3. İleri Beslemeli Ağ:
    • 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4,719,616
  4. 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:

  1. Model Belleği: Model parametrelerini saklamak için gereken bellek.
  2. 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 mimarisini temel alan büyük dil modellerini eğitirken, bellek kullanımını anlamak verimli kaynak tahsisi için çok önemlidir. Bellek gereksinimlerini iki ana kategoriye ayıralım: kararlı 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:

  1. Model Ağırlıkları: Model parametrelerinin FP32 kopyaları; 4N bayt gerektirir; burada N, parametre sayısıdır.
  2. Optimize Edici Durumları: Adam optimizer için bu, 8N bayt gerektirir (parametre başına 2 durum).
  3. Renk Geçişleri: 32N bayt gerektiren degradelerin FP4 kopyaları.
  4. 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:

  1. 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).
  2. Dikkat Bloğu:
    • QKV hesaplaması: 2E bayt
    • Dikkat matrisi: 4BSS bayt (S: dizi uzunluğu)
    • Dikkat çıkışı: 2E bayt
  3. İleri Besleme Bloğu:
    • İlk doğrusal katman: 2E bayt
    • GELU aktivasyonu: 8E bayt
    • İkinci doğrusal katman: 2E bayt
  4. Ç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 = 12288
  • d_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:

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.