20 puan yazan GN⁺ 2024-05-17 | 1 yorum | WhatsApp'ta paylaş
  • Llama 3 modelinin gerçekten çalışabilen bir uygulaması üzerinden yapısını doğru şekilde anlamak

Genel Bakış

  • Meta tarafından yayımlanan Llama 3 modeli dikkat çekiyor.
  • 24K GPU, 15T eğitim verisi, 10M komut verisi, 1.3M GPU saati gibi ezici ölçek ve performans sunuyor.
  • Model mimarisi büyük ölçüde değişmedi. Llama 3, GQA kullanıyor ancak bu, Llama 2 70B'de de daha önce uygulanmıştı.
  • Model mimarisini sezgisel olarak anlayabilmek için yalnızca NumPy kullanılarak uygulandı.
  • Andrej Karpathy'nin Llama 2 mimarisiyle eğittiği stories15M modeli, NumPy sıkıştırılmış formatına dönüştürülerek kullanıldı.

Yapı

  • Llama 3 model mimarisi, 42dot LLM ile aynıdır.
  • Model parametreleri:
    • dim: 288
    • n_layers: 6
    • n_heads: 6
    • vocab_size: 32000
    • max_seq_len: 256
    • max_new_tokens: 50

RoPE #1

  • RoPE embedding'i için cos ve sin değerleri önceden hesaplanır.
  • Bu değerler Q ve K için kullanılır.
  • Hesaplama sonucu np.outer ile çarpılır ve cos ile sin değerleri elde edilir.

RMSNorm

  • RMSNorm, geleneksel Mini Batch veya Layer istatistikleri yerine aktivasyonları Root Mean Square ile normalize eder.
  • Tutarlı aktivasyon ölçekleme sağlar.

QKV

  • QKV hesaplaması, GPT'deki gibi tek bir ağırlığa matmul uygulayıp sonra bölme yönteminden farklı olarak, Llama'da Q, K ve V'nin her biri için ayrı ağırlıklara sahiptir.
  • Multi-Head Attention için her değer yeniden şekillendirilir.

RoPE #2

  • RoPE, hem mutlak hem de göreli konum kodlama özelliklerine sahiptir.
  • Yalnızca Q ve K'ye uygulanır; girdi bölünür, cos ve sin ile çarpılır, ardından sonuçlar toplanıp çıkarılarak yeniden birleştirilir.

KV önbelleği

  • GPT tarzı üretim modelleri Masked Attention kullandığı için KV önbelleği mümkündür.
  • Önceki sonuçlar her zaman aynı olduğundan K ve V önbelleğe alınır, Q ise yalnızca son değer için hesaplanır.

GQA (Grouped-Query Attention)

  • GQA, Llama 2 ile tanıtılan ve bellek tasarrufu ile performans artışı sağlayan bir tekniktir.
  • Llama 3'te 8B ve üzerindeki tüm modellere GQA uygulanır.

Scaled Dot-Product Attention

  • Her bir attention işlemi Multi-Head Attention ile hesaplanır.
  • Sonuçlar softmax ve matmul ile elde edilir.

Feed Forward

  • Llama modelinin Feed Forward katmanı 3 doğrusal katman kullanır ve bias içermez.
  • swish değeri üretilir, x_V ile çarpılır ve ardından tekrar aşağı ölçeklenir.

SwiGLU

  • SwiGLU, çeşitli feed forward katmanlarının özgün bir birleşimi olarak model performansını artırır.

Linear

  • Son çıktı, hızı artırmak için yalnızca son logit üzerinde matmul hesaplanarak üretilir.

Üretim

  • Çıkarılan logit'ler kullanılarak token'lar tek tek üretilir.
  • Süreç Prefill Phase ve Decode Phase olarak ikiye ayrılır.
  • Prefill Phase'te tüm giriş verilir, Decode Phase'te ise yalnızca son token kimliği verilerek sonuç alınır.

Örnek

  • Aşağıdaki gibi çalıştırılabilir:
    $ python llama3.py "I have a dream"  
    

GitHub

Kaynakça

  1. Exploring and Building the Llama 3 Architecture
  2. Rotation Matrix
  3. Mastering LLM Techniques: Inference Optimization
  4. arXiv:2305.13245

GN⁺ Görüşü

  • Llama 3 modelinin yapısı ve performansı: Llama 3 modeli, mevcut Llama 2 modelinin mimarisini korurken performansı önemli ölçüde artırıyor. Bu, modelin hem ölçeklenebilirliğinin hem de verimliliğinin birlikte gözetilmesinin sonucu.
  • NumPy ile uygulanma nedeni: Modelin NumPy kullanılarak uygulanması, yapısının ve çalışma biçiminin daha sezgisel anlaşılmasını sağlıyor. Bu, öğrenenler ve araştırmacılar için büyük fayda sunuyor.
  • GQA'nın kullanıma alınması: GQA, aynı anda hem bellek tasarrufu hem de performans artışı sağlayan bir teknik. Llama 3'te tüm modellere uygulanması, model verimliliğini en üst düzeye çıkarıyor.
  • KV önbelleğinin önemi: KV önbelleği, GPT tarzı üretim modellerinde önemli bir rol oynar ve modelin hesaplama verimliliğini büyük ölçüde artırabilir.
  • Gerçek kullanım örneği: Örnek kod üzerinden model gerçekten çalıştırılabilir; bu da model performansını doğrudan görmek için iyi bir fırsat sunar.

1 yorum

 
xguru 2024-05-17

Hacker News'te paylaşılan içerik İngilizceydi, ancak bunu özgün yazar Likejazz'ın Korece olarak hazırladığı bağlantıyla değiştirdim.