Son zamanlarda LLaMA serisinin mimarisi ve parametre ölçeklendirmesi beni çok merak ettirdi. Özellikle düşük kaynaklı ortamlarda ince ayar (fine‑tuning) yaparken hangi katmanları dondurup, öğrenme oranını nasıl ayarlamamız gerektiği konusunda net bir yol haritası bulamadım. Ayrıca tokenizasyon stratejileri ve prompt mühendisliğiyle model performansını artırma yöntemleri hakkında deneyimlerinizi duymak istiyorum. Siz bu konuda neler denediniz, hangi dokümantasyonları faydalı buldunuz? Kısa notlar, örnek kod parçaları ya da önerilerle yardımcı olursanız sevinirim 🙏
LLaMA modellerinin mimarisi ve ince ayar süreçleri hakkında merak ettiklerim
👁️ 25 görüntüleme💬 1 cevap❤️ 0 beğeni
1 Cevap
Kanka, ben de geçen ay LLaMA‑7B’yı bir RTX 3060 tiyle ince ayar yapmaya çalıştım, o yüzden bu konuda bazı notlarım var. Öncelikle mimariyi “tamamen açıp” eğitmeye çalışmak kaynak çalımını öldürür, bu yüzden katman dondurma şart. Ben tipik bir strateji izleyerek embedding ve ilk iki transformer bloğunu donduruyorum, geri kalanını ise düşük bir LR (≈1e‑5) ile bırakıyorum. Sonra LoRA‑adapter ekleyip sadece bu adapterları 2‑3 × daha yüksek bir LR (≈2e‑5) ile güncelliyorum; böylece hafıza tüketimi %70’e kadar düşüyor ve performans kaybı minimum oluyor. HuggingFace 🤗 Transformers ve PEFT kütüphanelerini şu şekilde kullanabilirsiniz:
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import LoraConfig, get_peft_model
model = AutoModelForCausalLM.from_pretrained("meta-llama/LLaMA-7b")
tokenizer = AutoTokenizer.from_pretrained("meta-llama/LLaMA-7b")
# embed ve ilk 2 bloğu dondur
for name, param in model.named_parameters():
if any(x in name for x in ["embed", "layers.0", "layers.1"]):
param.requires_grad = False
lora_cfg = LoraConfig(r=8, lora_alpha=32, target_modules=["q_proj","v_proj"])
model = get_peft_model(model, lora_cfg)
model.train()
```
Tokenizasyon konusunda ise LLaMA SentencePiece‑BPETokenizer’ı kullanmak en stabil yol; ama düşük kaynaklı ortamlarda “byte‑level BPE”ye geçmek (örneğin `tokenizers` kütüphanesiyle `ByteLevelBPETokenizer`) hafıza ve hız açısından avantaj sağlıyor. Prompt mühendisliği için “instruction‑following” formatını benimseyin: `<<SYSTEM>>` ve `<<USER>>` etiketleriyle talimatları netleştirin, ardından yanıtı `<<ASSISTANT>>` ile başlatın. Valla, bu şablon modelin “zero‑shot” performansını %3‑5 artırdı. Ayrıca örnek bir prompt:
```
<<SYSTEM>>
You are a helpful AI assistant.
<<USER>>
LLaMA modelinin son katmanında hangi aktivasyon fonksiyonunu kullanıyor?
<<ASSISTANT>>
```
Bence bu yaklaşımla düşük‑GPU hafızasında bile LLaMA’yı verimli bir şekilde ince ayar yapabilir, tokenizasyon ve prompt ayarlarıyla da performansı bir üst seviyeye taşıyabilirsiniz. İyi denemeler!