Skip to content

Instantly share code, notes, and snippets.

@buraxta
Last active April 7, 2025 13:28
Show Gist options
  • Save buraxta/e0df790a5d2235d64cd9772cc30c3d7e to your computer and use it in GitHub Desktop.
Save buraxta/e0df790a5d2235d64cd9772cc30c3d7e to your computer and use it in GitHub Desktop.
fintune.md

LLaMA'yı fine-tune etmek için genel adımlar aşağıda verilmiştir:

  1. Gerekli kütüphaneleri kurun: Hugging Face tarafından geliştirilen transformers kütüphanesini kurun. Bu kütüphane, LLaMA ve diğer transformer tabanlı modellere basit bir arayüz sağlar. pip install transformers komutunu kullanarak kurabilirsiniz.
  2. Önceden eğitilmiş LLaMA modelini yükleyin: transformers kütüphanesini kullanarak önceden eğitilmiş LLaMA modelini yükleyin. Bunu, LlamaForCausalLM sınıfını içe aktararak ve from_pretrained metodunu kullanarak yapabilirsiniz.
  3. Veri setinizi hazırlayın: LLaMA'yı fine-tune etmek istediğiniz görevle ilgili bir veri seti hazırlayın. Veri seti, transformers kütüphanesinin kullanabileceği bir formatta olmalıdır, örneğin pandas DataFrame veya datasets kütüphanesinden bir veri seti nesnesi.
  4. Özel bir veri seti sınıfı oluşturun: Veri setinizi yükleyen ve LLaMA tarafından kullanılabilecek bir formatta önceden işleyen özel bir veri seti sınıfı oluşturun. __getitem__ ve __len__ metotlarını uygulamanız gerekir.
  5. Modeli fine-tune edin: transformers kütüphanesinden bir Trainer nesnesi oluşturun ve önceden eğitilmiş LLaMA modelini, özel veri seti sınıfınızı ve eğitim argümanlarını geçirin. Ardından, modeli fine-tune etmek için train metodunu çağırın.
  6. Modeli değerlendirin: Fine-tune edilmiş modeli bir doğrulama setinde değerlendirerek performansını ölçün.

Aşağıda, işe başlamanıza yardımcı olacak örnek bir kod verilmiştir:

import pandas as pd
import torch
from transformers import LlamaForCausalLM, LlamaTokenizer
from sklearn.model_selection import train_test_split

# Önceden eğitilmiş LLaMA modelini ve tokenizer'ı yükleyin
model_name = "meta-llama/llama-7b-hf"
tokenizer = LlamaTokenizer.from_pretrained(model_name)
model = LlamaForCausalLM.from_pretrained(model_name)

# Veri setinizi yükleyin
df = pd.read_csv("verileriniz.csv")

# Verileri eğitim ve doğrulama setlerine ayırın
train_text, val_text, train_labels, val_labels = train_test_split(df["metin"], df["etiket"], test_size=0.2, random_state=42)

# Özel bir veri seti sınıfı oluşturun
class VeriSeti(torch.utils.data.Dataset):
    def __init__(self, metin, etiket, tokenizer):
        self.metin = metin
        self.etiket = etiket
        self.tokenizer = tokenizer

    def __getitem__(self, idx):
        metin = self.metin.iloc[idx]
        etiket = self.etiket.iloc[idx]

        encoding = self.tokenizer.encode_plus(
            metin,
            max_length=512,
            padding="max_length",
            truncation=True,
            return_attention_mask=True,
            return_tensors="pt",
        )

        return {
            "input_ids": encoding["input_ids"].flatten(),
            "attention_mask": encoding["attention_mask"].flatten(),
            "etiket": torch.tensor(etiket),
        }

    def __len__(self):
        return len(self.metin)

# Veri seti nesneleri oluşturun
train_dataset = VeriSeti(train_text, train_labels, tokenizer)
val_dataset = VeriSeti(val_text, val_labels, tokenizer)

# Bir Trainer nesnesi oluşturun
from transformers import Trainer, TrainingArguments

training_args = TrainingArguments(
    output_dir="./sonuçlar",
    num_train_epochs=3,
    per_device_train_batch_size=16,
    per_device_eval_batch_size=64,
    warmup_steps=500,
    weight_decay=0.01,
    logging_dir="./loglar",
)

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset,
    eval_dataset=val_dataset,
)

# Modeli fine-tune edin
trainer.train()

Bu kod, sadece bir başlangıç noktasıdır ve özel kullanım durumunuza göre değiştirmeniz gerekecektir. Ayrıca, en iyi sonuçları elde etmek için hiperparametreleri ve eğitim yapılandırmasını ayarlamanız gerekecektir.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment