
Sarılan Yüz modelinde ince ayar yapma daha küçük bir veri kümesiyle ek eğitim gerçekleştirerek önceden eğitilmiş modeli eldeki belirli göreve uyarlamayı içerir. Bu teknik, önceden eğitilmiş modellerin engin genel bilgisinden yararlanmamıza ve görevimizin özelliklerine daha fazla odaklanmamıza izin verdiği için faydalıdır.
İnce Ayar Süreci
Bir Hugging Face modelinde ince ayar yapmanın ilk adımı, göreve uygun, önceden eğitilmiş bir model seçmektir. Yaygın olarak kullanılan modeller arasında BERT, GPT-2 ve RoBERTa bulunur. Hugging Face's gibi gerekli kitaplıkları içe aktarmak çok önemlidir. Transformatörler kitaplığı, PyTorch veya TensorFlow.
import torch from transformers import AutoTokenizer, AutoModelForSequenceClassification
İçe aktardıktan sonra, önceden eğitilmiş bir model seçin ve doğru model kontrol noktası ve model türünü belirttiğinizden emin olarak belirteç oluşturucu ve modeli başlatın.
model_checkpoint = "distilbert-base-uncased-finetuned-sst-2-english" tokenizer = AutoTokenizer.from_pretrained(model_checkpoint) model = AutoModelForSequenceClassification.from_pretrained(model_checkpoint)
Ardından, veri kümenizi ince ayar için hazırlayın. Bu, belirteçleştirme, doldurma ve toplu oluşturmayı içerebilir. Giriş metnini simgeleştirmek için belirteç oluşturucunun "encode_plus" yöntemini kullanın ve veri toplu işleme için bir DataLoader oluşturun.
from torch.utils.data import DataLoader # Tokenize the dataset inputs = tokenizer(sentences, return_tensors="pt", padding=True, truncation=True) # Create a DataLoader dataloader = DataLoader(inputs, batch_size=16)
Artık veri seti hazır olduğuna göre, gerçek ince ayar sürecine başlayabilirsiniz. tanımla eğitim döngüsü AdamW gibi belirli bir optimize edici ve bir öğrenme oranı planlayıcısı ile. Kayıp fonksiyonunu en aza indirirken model ağırlıklarını yinelemeli olarak güncelleyin.
from transformers import AdamW, get_linear_schedule_with_warmup
optimizer = AdamW(model.parameters(), lr=5e-5)
scheduler = get_linear_schedule_with_warmup(optimizer, num_warmup_steps=100, num_training_steps=len(dataloader))
for batch in dataloader:
outputs = model(**batch)
loss = outputs.loss
loss.backward()
optimizer.step()
scheduler.step()
optimizer.zero_grad()
İnce ayardan sonra, modeli bir test setinde değerlendirin ve gerekirse daha sonra kullanmak üzere kaydedin.
Kitaplıklar ve İşlevler
İnce ayar sürecinde birkaç anahtar kitaplık ve işlev gereklidir:
- Transformers kitaplığı: Hugging Face tarafından geliştirilen bu kitaplık, çok çeşitli önceden eğitilmiş modeller sunar ve ince ayar için çok önemlidir. Hem PyTorch hem de TensorFlow çerçevelerini destekler.
- PyTorch/TensorFlow: Bu popüler derin öğrenme çerçeveleri, ince ayar sırasında ihtiyaç duyulan optimize ediciler ve öğrenme hızı programlayıcıları gibi model eğitimi için temel araçları sağlar.
- Adam W: Bu, popüler Adam iyileştiricinin yerleşik bir ağırlık düşüşüne sahip PyTorch uygulamasıdır. Transformatör modellerinde ince ayar yapmak için yaygın olarak kullanılır.
- get_linear_schedule_with_warmup: Transformers kitaplığı tarafından sağlanan bu öğrenme oranı planlayıcısı, ani değişiklikleri önlemek için eğitimin başında öğrenme oranını yavaşça artırır ve daha etkili bir şekilde ince ayar yapmak için eğitimin sonunda yumuşak bir şekilde azaltır.
Sonuç olarak, Hugging Face Transformer modellerinde ince ayar yapmak, belirli NLP görevlerinde yüksek performans elde etmek için gerekli bir tekniktir. Süreci, kodu ve ilgili kitaplıkları ve işlevleri anlayarak, çeşitli uygulamalarda öne çıkan özel yapım modeller oluşturabilirsiniz.