Yapay zeka modelleri ve platformlarÄą

BÞyÞk Dil Modeli Parametreleri ve Bellek Gereksinimleri: Derin Bir İnceleme

mm
Unite.AI sitesini Google'daki tercih ettiğiniz kaynaklara ekleyin

BÞyÞk Dil Modelleri (LLM’ler) son yÄąllarda Ãķnemli ilerlemeler kaydetmiştir. GPT-4, Google’ın Gemini ve Claude 3 gibi modeller yeni standartlar belirliyor. Bu modeller yalnÄązca metin oluşturma ve çeviriyi geliştirmekle kalmaz, aynÄą zamanda çoklu modlu işleme, metin, resim, ses ve video girişlerini birleştirerek daha kapsamlÄą AI çÃķzÞmleri sunar.

Örneğin, OpenAI’nin GPT-4’Þ insan benzeri metin anlama ve oluşturma konusunda Ãķnemli gelişmeler gÃķstermiştir. Google’ın Gemini modelleri ise çeşitli veri tÞrlerini, metin, resim ve sesleri işleyerek daha sorunsuz ve bağlamsal olarak ilgili etkileşimler sağlar. Benzer şekilde, Anthropic’in Claude 3 modelleri çok dilli yetenekleri ve AI gÃķrevlerindeki gelişmiş performansÄąyla dikkat çeker.

BÞyÞk Dil Modellerinin geliştirilmesi devam ettikçe, bu modellerin, Ãķzellikle parametreleri ve bellek gereksinimlerinin anlaÅŸÄąlmasÄą kritik hale gelir. Bu rehber, bu konularÄą aÃ§ÄąklamayÄą amaçlar ve kolay anlaÅŸÄąlÄąr bir aÃ§Äąklama sunar.

BÞyÞk Dil Modellerinin Temelleri

BÞyÞk Dil Modelleri Nedir?

BÞyÞk Dil Modelleri, insan dilini anlamak ve Þretmek için bÞyÞk veri kÞmeleri Þzerinde eğitilen sinir ağlarÄądÄąr. Transformers gibi mimarilere dayanarak, self-attention gibi mekanizmalarÄą kullanarak metin işler ve Þretir.

LLM’lerde Parametrelerin Önemi

Parametreler, bu modellerin temel bileşenleridir. AğırlÄąklar ve yanlÄąlÄąklarÄą içerir ve model, eğitim sÄąrasÄąnda hatalarÄą en aza indirmek için bunlarÄą ayarlar. Parametre sayÄąsÄą genellikle modelin kapasitesi ve performansÄąyla ilişkili olmakla birlikte, hesaplama ve bellek gereksinimlerini de etkiler.

Transformer Mimarisi Anlama

Transformers Mimarisi

Transformers Mimarisi

Genel BakÄąÅŸ

Transformer mimarisi, Vaswani et al. (2017) tarafÄąndan “Attention Is All You Need” adlÄą makalede tanÄątÄąlmÄąÅŸtÄąr ve birçok LLM’nin temelini oluşturur. Bir kodlayÄącÄą ve bir dekoderden oluşur, her biri birkaç aynÄą katmandan oluşur.

KodlayÄącÄą ve Dekoder Bileşenleri

  • KodlayÄącÄą: Giriş dizisini işler ve bağlamsal bir temsil oluşturur.
  • Dekoder: KodlayÄącı’nÄąn temsilini ve daha Ãķnce Þretilen tokenleri kullanarak Ã§ÄąkÄąÅŸ dizisini Þretir.

Ana Bileşenler

  1. Çoklu BaşlÄąklÄą Dikkat: Modelin, aynÄą anda girişin farklÄą kÄąsÄąmlarÄąna odaklanmasÄąnÄą sağlar.
  2. Besleme İleri Sinir AğlarÄą: Modelde doğrusallÄąk ve karmaÅŸÄąklÄąk ekler.
  3. Katman Normalizasyonu: Eğitim sÄąrasÄąnda ara Ã§ÄąktÄąlarÄą normalize ederek stabilize eder ve hÄązlandÄąrÄąr.

Parametre SayÄąsÄąnÄą Hesaplama

Transformer Eğitim

Önceden Eğitimli Modeller için Verimli Transformer Eğitim

Transformer Tabanlı LLM’lerde Parametreleri Hesaplama

Transformer tabanlÄą bir LLM’nin her bir bileşeninin parametre hesabÄąnÄą ayrÄąntÄąlÄą olarak inceleyelim. Orijinal makaledeki gÃķsterimi kullanacağız, burada d_model modelin gizli durumlarÄąnÄąn boyutunu temsil eder.

  1. Katmanlaşma KatmanÄą:
    • Parametreler = vocab_size * d_model
  2. Çoklu BaşlÄąklÄą Dikkat:
    • h başlÄąklarÄą için, d_k = d_v = d_model / h ile:
    • Parametreler = 4 * d_model^2 (Q, K, V ve Ã§ÄąkÄąÅŸ projeksiyonlarÄą için)
  3. Besleme İleri Sinir Ağı:
    • Parametreler = 2 * d_model * d_ff + d_model + d_ff
    • d_ff genellikle 4 * d_model olarak alÄąnÄąr
  4. Katman Normalizasyonu:
    • Parametreler = 2 * d_model (Ãķlçek ve yanlÄąlÄąk için)

Tek bir Transformer katmanÄąnÄąn toplam parametreleri:

  • Parametreler_katman = Parametreler_dikkat + Parametreler_ffn + 2 * Parametreler_katman_norm

N katmanlÄą bir model için:

  • Toplam Parametreler = N * Parametreler_katman + Parametreler_katmanlaşma + Parametreler_Ã§ÄąkÄąÅŸ

Örnek Hesaplama

Aşağıdaki Ãķzelliklere sahip bir model dÞşÞnÞn:

  • d_model = 768
  • h (dikkat başlÄąklarÄąnÄąn sayÄąsÄą) = 12
  • N (katman sayÄąsÄą) = 12
  • vocab_size = 50,000
  1. Katmanlaşma KatmanÄą:
    • 50,000 * 768 = 38,400,000
  2. Çoklu BaşlÄąklÄą Dikkat:
    • 4 * 768^2 = 2,359,296
  3. Besleme İleri Sinir Ağı:
    • 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4,719,616
  4. Katman Normalizasyonu:
    • 2 * 768 = 1,536

Tek bir katman için 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

Modelin toplam parametreleri:

  • 84,983,808 + 38,400,000 = 123,383,808

Bu model yaklaÅŸÄąk 123 milyon parametreye sahiptir.

Bellek KullanÄąm Tipleri

LLM’lerle çalÄąÅŸÄąrken iki ana bellek kullanÄąm tipini dikkate almalÄąyÄąz:

  1. Model Belleği: Model parametrelerini depolamak için gereken bellek.
  2. ÇalÄąÅŸma Belleği: AracÄąlÄąk ve optimizer durumlarÄąnÄą depolamak için gereken bellek.

Model Belleğini Hesaplama

Model belleği, parametre sayısına doğrudan bağlıdır. Her parametre genellikle 32-bit kayan nokta sayısı olarak depolanır, bazı modeller ise 16-bit floating-point sayılar kullanır.

Model Belleği (bayt) = Parametre SayÄąsÄą * Bayt BaÅŸÄąna Parametre

Örneğimizdeki 123 milyon parametreli model 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ğini Tahmin Etme

ÇalÄąÅŸma belleği gereksinimleri, gÃķrev, toplu iş boyutu ve dizi uzunluğuna bağlÄą olarak Ãķnemli ÃķlçÞde değişebilir. Tahmini çalÄąÅŸma belleği:

ÇalÄąÅŸma Belleği ≈ 2 * Model Belleği

Bu, hem model parametrelerini hem de ara aktivasyonlarÄą depolamayÄą hesaba katar. Eğitim sÄąrasÄąnda, bellek gereksinimleri daha da yÞksek olabilir, çÞnkÞ gradyanlar ve optimizer durumlarÄą depolanmalÄądÄąr:

Eğitim Belleği ≈ 4 * Model Belleği

Örneğimizdeki model için:

  • Ç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 Zirve Bellek KullanÄąmÄą

Transformer mimarisine dayalÄą bÞyÞk dil modellerini eğittiğinizde, bellek kullanÄąmÄąnÄą anlamak, verimli kaynak tahsisi için kritik Ãķnem taÅŸÄąr. Bellek gereksinimlerini iki ana kategoriye ayÄąrabiliriz: sabit durum bellek kullanÄąmÄą ve zirve bellek kullanÄąmÄą.

Sabit Durum Bellek KullanÄąmÄą

Sabit durum bellek kullanÄąmÄą aşağıdaki bileşenleri içerir:

  1. Model Ağırlıkları: FP32 kopyaları model parametreleri, 4N bayt gerektirir, burada N parametre sayısıdır.
  2. Optimizer DurumlarÄą: Adam optimizer için, bu 8N bayt (her parametre için 2 durum) gerektirir.
  3. Gradyanlar: FP32 kopyalarÄą gradyanlar, 4N bayt gerektirir.
  4. Giriş Verileri:VarsayÄąlan int64 girişleri, bu 8BD bayt gerektirir, burada B toplu iş boyutu ve D giriş boyutudur.

Toplam sabit durum bellek kullanÄąmÄą yaklaÅŸÄąk olarak:

  • M_sabit = 16N + 8BD bayt

Zirve Bellek KullanÄąmÄą

Zirve bellek kullanÄąmÄą, geriye doğru geçiş sÄąrasÄąnda aktivasyonlarÄąn gradyan hesaplamasÄą için depolandığında oluşur. Ana katkÄąda bulunanlar:

  1. Katman Normalizasyonu: Her bir katman norm için 4E bayt gerektirir, burada E = BSH (B: toplu iş boyutu, S: dizi uzunluğu, H: gizli boyut).
  2. Dikkat Bloğu:
    • QKV hesaplama: 2E bayt
    • Dikkat matrisi: 4BSS bayt (S: dizi uzunluğu)
    • Dikkat Ã§ÄąkÄąÅŸÄą: 2E bayt
  3. Besleme İleri Bloğu:
    • İlk doğrusal katman: 2E bayt
    • GELU aktivasyonu: 8E bayt
    • İkinci doğrusal katman: 2E bayt
  4. Çoklu Seçim KaybÄą:
    • Logit: 6BSV bayt (V: sÃķzlÞk boyutu)

Toplam aktivasyon belleği yaklaÅŸÄąk olarak:

  • M_aktivasyon = L * (14E + 4BSS) + 6BSV bayt

Burada L, Transformer katmanlarÄąnÄąn sayÄąsÄądÄąr.

Toplam Zirve Bellek KullanÄąmÄą

Eğitim sÄąrasÄąnda zirve bellek kullanÄąmÄą, sabit durum belleği ve aktivasyon belleğinin birleşimiyle yaklaÅŸÄąk olarak:

  • M_zirve = M_sabit + M_aktivasyon + 4BSV bayt

Ek 4BSV terimi, geriye doğru geçişin başlangÄącÄąnda yapÄąlan ek bir tahsisatÄą hesaba katar.

Bu bileşenleri anlayarak, eğitim ve Ã§ÄąkarÄąm sÄąrasÄąnda bellek kullanÄąmÄąnÄą optimize edebilir ve bÞyÞk dil modellerinin performansÄąnÄą iyileştirebiliriz.

Ölçekleme YasalarÄą ve Verimlilik KonularÄą

 LLM’ler için Ölçekleme YasalarÄą

AraştÄąrmalar, LLM’lerin performansÄąnÄąn, parametre sayÄąsÄąnÄąn artmasÄąyla belirli Ãķlçekleme yasalarÄąna uyduğunu gÃķstermiştir. Kaplan et al. (2020), model performansÄąnÄąn, parametre sayÄąsÄą, hesaplama bÞtçesi ve veri kÞmesi boyutunun gÞç yasasÄą olarak verbessiğini gÃķzlemledi.

Model performansÄąnÄąn parametre sayÄąsÄąyla ilişkisi yaklaÅŸÄąk olarak:

Performans ∝ N^α

Burada N parametre sayÄąsÄą ve Îą genellikle dil modelleme gÃķrevleri için 0.07 olan Ãķlçekleme ÞssÞdÞr.

Bu, %10’luk bir performans iyileşmesi için parametre sayÄąsÄąnÄąn 10^(1/Îą) ≈ 3.7 kat artmasÄą gerektiğini ima eder.

Verimlilik Teknikleri

LLM’ler bÞyÞdÞkçe, araştÄąrmacÄąlar ve uygulayÄącÄąlar verimliliği artÄąrmak için çeşitli teknikler geliştirdiler:

a) KarÄąÅŸÄąklÄąkli Eğitim: BazÄą işlemler için 16-bit veya 8-bit kayan nokta sayÄąlarÄąnÄą kullanarak bellek kullanÄąmÄąnÄą ve hesaplama gereksinimlerini azaltma.

b) Model Paralelliği: Modeli birden fazla GPU veya TPU’ya dağıtarak, tek bir cihazda sığamayan daha bÞyÞk modelleri işleme.

c) Gradyan Kontrol NoktasÄą: HesaplamayÄą bellek için takas ederek, bazÄą aktivasyonlarÄą geriye doğru geçiş sÄąrasÄąnda yeniden hesaplamak.

d) Seçim ve Kuantizasyon: Eğitimden sonra daha az Ãķnemli ağırlÄąklarÄą kaldÄąrarak veya onlarÄąn kesinliğini azaltarak daha kÞçÞk, daha verimli modeller oluşturma.

e) DamÄątma: KÞçÞk modelleri, daha bÞyÞk modellerin davranÄąÅŸÄąnÄą taklit etmesi için eğitmek, bÃķylece daha az parametreyle benzer performansÄą koruma.

Pratik Örnek ve Hesaplamalar

GPT-3, en bÞyÞk dil modellerinden biri, 175 milyar parametreye sahiptir. Transformer mimarisinin dekoder kÄąsmÄąnÄą kullanÄąr. BÞyÞklÞğÞnÞ anlamak için, parametre sayÄąsÄąnÄą aşağıdaki değerlerle hesaplayalÄąm:

  • d_model = 12288
  • d_ff = 4 * 12288 = 49152
  • Katman sayÄąsÄą = 96

Tek bir dekoder 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

Kalan parametreler, katmanlaşma 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 kritik Ãķnem taÅŸÄąr. Transformer mimarisini ve pratik Ãķrnekleri inceleyerek, bu modellerin karmaÅŸÄąklığı ve Ãķlçeğini daha iyi anlarÄąz.

BÞyÞk dil modellerindeki son gelişmeleri ve uygulamalarÄąnÄą daha derinlemesine incelemek için aşağıdaki rehberlere bakÄąn:

Son beş yÄąldÄąr Makine Öğrenimi ve Derin Öğrenme dÞnyasÄąna kendimi adamÄąÅŸ bulunuyorum. Tutkum ve uzmanlığım, Ãķzellikle AI/ML'ye odaklanarak 50'den fazla çeşitli yazÄąlÄąm mÞhendisliği projesine katkÄąda bulunmama yol açtÄą. SÞregelen meraklÄąlığım da beni Doğal Dil İşleme alanÄąna yÃķneltti, bu alana daha da derinlemesine girmeye hevesliyim.