BERT ile Metin Sınıflandırma
HuggingFace dönüştürücüleri, AutoTokenizer, AutoModelForSequenceClassification, ince ayar.
BERT ile Metin Sınıflandırma, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.
Statik Gömme Vektörlerinin Sınırları
Word2Vec ve GloVe, her kelimeye tek bir sabit vektör verir. Ancak "bank" kelimesi "nehir kıyısı" ve "tasarruf bankası" ifadelerinde farklı anlamlara gelir. BERT gibi bağlama duyarlı modeller bu sorunu çözer.
BERT Nedir
BERT, bir cümlenin tamamını tek seferde okuyan ve bağlamı dikkate alan gömmeler üreten bir dönüştürücü modelidir. Büyük miktarda metin üzerinde önceden eğitildiği için sınıflandırma gibi görevler için ince ayarlanabilir.
Hugging Face transformers Kitaplığı
transformers kitaplığı, BERT'e ve binlerce önceden eğitilmiş modele kolay erişim sağlar; belirteçleyiciler ve modeller için tutarlı sınıflar sunar.
from transformers import AutoTokenizer, AutoModelForSequenceClassification
name = "distilbert-base-uncased-finetuned-sst-2-english"
tokenizer = AutoTokenizer.from_pretrained(name)
model = AutoModelForSequenceClassification.from_pretrained(name)AutoTokenizer
AutoTokenizer, bir model için doğru belirteçleyiciyi yükler. Metni alt kelime belirteçlerine ayırır ve bunları modelin beklediği kimliklere eşler.
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
print(tokenizer.tokenize("unbelievable"))
# subwords like ["un", "##bel", "##ievable"]AutoModelForSequenceClassification
AutoModelForSequenceClassification, üstünde bir sınıflandırma katmanı bulunan BERT'i yükler ve dizinin tamamı için sınıf başına bir puan üretir.
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained(
"distilbert-base-uncased-finetuned-sst-2-english"
)Girdiyi Belirteçlere Ayırma
Modelin kullanabileceği tensörleri elde etmek için belirteçleyiciyi metniniz üzerinde truncation, padding ve return_tensors ile çağırın. Kısaltma uzun girdileri sınırlar; doldurma, toplu işlem uzunluklarını hizalar.
inputs = tokenizer(
"This movie was fantastic!",
truncation=True,
padding=True,
return_tensors="pt",
)
print(inputs["input_ids"].shape)Özel Belirteçler
BERT özel belirteçleri otomatik olarak ekler: başlangıçta [CLS] (gizli durumu diziyi özetler) ve cümlelerin arasında/sonunda [SEP]. Sınıflandırıcı, [CLS] gösteriminden okuma yapar.
Modeli Çalıştırma
Ham, normalleştirilmemiş sınıf puanları olan logitleri elde etmek için belirteçlerine ayrılmış girdileri modele aktarın.
import torch
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
print(logits)Logitlerden Tahminlere
Olasılıkları elde etmek için logitlere softmax uygulayın, ardından tahmin edilen sınıf dizinini bulmak için argmax kullanın. Bu dizini bir etikete eşleyin.
import torch
probs = torch.softmax(logits, dim=-1)
pred = torch.argmax(probs, dim=-1).item()
print(model.config.id2label[pred])Göreviniz için İnce Ayar
Özel bir veri kümesi için BERT'i, sınıflandırma katmanını (isteğe bağlı olarak modelin tamamını) etiketli örnekleriniz üzerinde eğiterek ince ayarlayın. Trainer API'si eğitim döngüsünü yönetir.
from transformers import Trainer, TrainingArguments
args = TrainingArguments(output_dir="out", num_train_epochs=3)
trainer = Trainer(model=model, args=args, train_dataset=train_ds)
trainer.train()İşlem Hattı Kısayolu
Hızlı çıkarım için pipeline yardımcı işlevi, belirteçlere ayırma, çalıştırma ve kod çözme işlemlerini tek bir çağrıda birleştirir; bu da onu prototip oluşturma için ideal kılar.
from transformers import pipeline
clf = pipeline("sentiment-analysis")
print(clf("I love this product!"))
# [{"label": "POSITIVE", "score": 0.99...}]Hızlı Kontrol
BERT bilginizi sınayın.
Özet
Özet: BERT, dönüştürücüler aracılığıyla bağlamı dikkate alan gömmeler üretir. AutoTokenizer ile truncation/padding/return_tensors kullanarak belirteçlere ayırın ve AutoModelForSequenceClassification ile logitleri elde edin. Logitleri önce softmax, ardından argmax ile dönüştürün. Trainer ile ince ayar yapın veya pipeline ile hızlıca prototip oluşturun.
Sıkça Sorulan Sorular
“BERT ile Metin Sınıflandırma” dersi ücretsiz mi?
Evet — “BERT ile Metin Sınıflandırma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.
“BERT ile Metin Sınıflandırma” dersinde ne öğreneceğim?
HuggingFace dönüştürücüleri, AutoTokenizer, AutoModelForSequenceClassification, ince ayar. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“BERT ile Metin Sınıflandırma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Word2Vec: Skip-gram ve CBOW
- GloVe ve FastText Gömme Vektörleri
- BERT ile Metin Sınıflandırma
- Anlamsal Benzerlik ve Cümle Gömme Vektörleri