1 puan yazan GN⁺ 2024-01-23 | 1 yorum | WhatsApp'ta paylaş

LoRA tekniğiyle LLM'leri verimli şekilde fine-tune etme

  • LoRA (Low-Rank Adaptation), LLM'leri (Large Language Models) daha verimli şekilde fine-tune etmek için kullanılan bir tekniktir.
  • Tüm sinir ağı parametrelerini ayarlamak yerine LoRA, yalnızca az sayıdaki düşük dereceli matrisi günceller.

Kod örneğini adım adım takip etme

  • Yazıda geçen tüm kodlar, eşlik eden Studio içinde bulunabilir.
  • Run seçeneğine tıklayarak kod ortamının tam bir kopyasını alabilir ve kod dosyalarını çalıştırmaya hazır hale gelebilirsiniz.

LoRA'yı anlamak

  • Önceden eğitilmiş LLM'ler, farklı görevlerdeki çok yönlülükleri nedeniyle temel model olarak adlandırılır.
  • Önceden eğitilmiş bir LLM'yi belirli bir veri kümesine veya göreve uyarlamak, fine-tuning yoluyla yapılır.
  • LoRA, eğitim sırasında katman ağırlıklarındaki değişimleri düşük dereceli bir biçimde yaklaşıklaştırarak daha verimli bir alternatif sunar.

LoRA'yı sıfırdan kodlamak

  • LoRA katmanı PyTorch'ta aşağıdaki gibi uygulanabilir.
class LoRALayer(torch.nn.Module):
  def __init__(self, in_dim, out_dim, rank, alpha):
    super().__init__()
    self.A = torch.nn.Parameter(...)
    self.B = torch.nn.Parameter(...)
    self.alpha = alpha

  def forward(self, x):
    return self.alpha * (x @ self.A @ self.B)
  • LoRA, esas olarak sinir ağlarındaki doğrusal (feedforward) katmanlara uygulanır.

LoRA ile fine-tuning -- uygulamalı örnek

  • LoRA, yalnızca GPT veya görüntü üretim modellerinde değil, çeşitli sinir ağı türlerinde de uygulanabilir.
  • Metin sınıflandırma görevi için küçük bir BERT modeli üzerinde uygulamalı bir örnek sunulur.

Geleneksel fine-tuning ile karşılaştırma

  • Varsayılan LoRA ayarlarıyla %89,44 test doğruluğu elde edilir.
  • Geleneksel fine-tuning ile karşılaştırıldığında LoRA, daha az parametreyle daha iyi performans gösterir.

LoRA ayarlarını optimize etme

  • LoRA'nın hiperparametre ayarları değiştirilerek performans iyileştirilebilir.
  • Farklı hiperparametre kombinasyonları denenerek en iyi ayarlar bulunabilir.

Sonuç

  • LoRA'yı sıfırdan kodlayarak öğrenir ve DistilBERT modelini sınıflandırma görevinde fine-tune ederek, LoRA'nın yalnızca modelin son katmanını fine-tune etmekten daha iyi performans gösterdiğini doğrular.

GN⁺ görüşü

  • LoRA, büyük dil modellerini verimli şekilde fine-tune etmede önemli bir teknik olup, model boyutu büyüdükçe hesaplama maliyetini azaltma potansiyeline sahiptir.
  • Gerçek örnekler üzerinden LoRA'nın nasıl uygulanacağını anlamak, bunu gerçek problemlere uygulayabilme becerisini geliştirebilir.
  • LoRA'nın hiperparametrelerini ayarlayarak performansı optimize etme süreci, makine öğrenimi modellerini ayarlamada genel bir yaklaşımı gösterir.

1 yorum

 
GN⁺ 2024-01-23
Hacker News yorumları
  • Maxime Labonne’un LLMs 101’i üzerinden bu teknolojiyi takip ediyorum. Bilgisayar bilimlerinde hâlâ “hiperparametrelerin sonucu tam olarak nasıl etkilediğini bilmiyoruz, o yüzden çeşitli değerler deneyip en iyisini bulun” denmesi bana tuhaf geliyor.
  • LoRA ve LoRa farklı şeyler; aynı kısaltmanın kullanılması kafa karıştırıyor ve bundan şikayet edenler var.
  • Ne zaman fine-tuning yapılması gerektiği hâlâ net değil. Eskiden bunun model davranışını değiştirmek için olduğunu düşünürdüm, ama son zamanlarda bazı şirketlerin bilgi eklemek için fine-tuning kullandığı görülüyor.
  • Fine-tuning’in başlıca kullanım alanlarının ne olduğu soruluyor.
  • LoRA hakkında iyi bir yazı. Bu alanın uzmanı değilim ama orijinal makalede LoRA’nın yalnızca son dense katmana uygulandığını anladım. QLoRA’da bu yöntemin kullanıldığına ve ilginç etkileri varmış gibi göründüğüne dikkat çekmekte fayda var.
  • LoRA’nın neden çalıştığını tam olarak anlamıyorum. Son katmana uygulanmasını anlıyorum ama bunu her linear katmanda tekrarlamanın mantığını kavrayamıyorum. Bunu sezgisel olarak açıklayabilecek biri var mı diye soruluyor.
  • Kablosuz LoRa protokolünün açık kaynak olmasını dileyenler var.
  • Bunun software-defined radio ile ilgili olacağını ummuştum ama yine de ilginç.
  • LoRA forward pass’ini sıfırdan uygulama alıştırmasını ekledim. LoRA’nın fikri zarif ve uygulaması da oldukça basit.
  • Fine-tuning için en popüler kütüphanenin hangisi olduğu soruluyor.
  • Sıfırdan başlamaktansa Axolotl’un yapılandırma tabanlı yaklaşımını tercih ediyorum. Axolotl; mistral, llama-2’yi destekliyor ve birçok güncel tekniği de destekliyor.
  • Veri odaklı fine-tuning’e odaklanıyor, LoRA’yı sıfırdan öğrenmek yerine fine-tuning verisini toplamaya ve kürasyonuna yoğunlaşıyorum.