Yapay Zeka
Büyük Dil Modeli Parametrelerini ve Bellek Gereksinimlerini Anlamak: Derinlemesine Bir İnceleme
Yayınlanan
6 gün önceon
Içindekiler
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
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ı
- Ç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ı
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.
- Gömme Katmanı:
- Parametreler =
vocab_size
*d_model
- Parametreler =
- Çok Kafalı Dikkat:
- İçin
h
kafalar, iled_k = d_v = d_model / h
: - Parametreler = 4 *
d_model
^2 (Q, K, V ve çıktı projeksiyonları için)
- İçin
- İleri Beslemeli Ağ:
- Parametreler = 2 *
d_model
*d_ff
+d_model
+d_ff
- Nerede
d_ff
genellikle 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 model düşünelim:
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 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:
- 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 = 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:
- 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
MARKLLM: Yüksek Lisans Filigranlaması için Açık Kaynak Araç Takımı
Kubernetes'te Büyük Dil Modellerini Dağıtma: Kapsamlı Bir Kılavuz
Seyrek Otomatik Kodlayıcıları Anlamak, GPT-4 ve Claude 3: Derinlemesine Bir Teknik Araştırma
Qwen2 – Alibaba'nın En Yeni Çok Dilli Dil Modeli, Llama 3 gibi SOTA'ya meydan okuyor
LLaVA-UHD: Her En Boy Oranını ve Yüksek Çözünürlüklü Görüntüleri Algılayan bir LMM
Çok Belirteçli Tahminle Büyük Dil Modellerini Güçlendirme
Son Yazılar
- Llama 3.1: Meta'nın En Gelişmiş Açık Kaynak Yapay Zeka Modeli – Bilmeniz Gereken Her Şey
- Cihaz Deneyiminizde Devrim Yaratıyor: Apple'ın Yapay Zekası Teknolojiyi Nasıl Yeniden Tanımlıyor?
- Başarılı Yapay Zeka Çözümlerinin Anahtarı? Davranış Verileri
- Siber Güvenliğin Artırılmasında GAN'ların Rolü
- En İyi 10 Yapay Zeka Saç Stili Uygulaması (Temmuz 2024)