Metin sınıflandırma için transfer öğrenimi

PyTorch ile Metin için Deep Learning

Shubham Jain

Instructor

Transfer öğrenimi nedir?

 

Transfer Learning

  • Bir görevdeki bilgiyi ilişkili başka bir göreve kullanma

 

  • Zaman kazandırır
  • Uzmanlığı aktarır
  • Büyük veri gereksinimini azaltır

 

  • İngilizce öğretmeni Tarih öğretmeye başlar
PyTorch ile Metin için Deep Learning

Transfer öğreniminin işleyişi

Transfer Learning I

PyTorch ile Metin için Deep Learning

Transfer öğreniminin işleyişi

Transfer Learning II

PyTorch ile Metin için Deep Learning

Transfer öğreniminin işleyişi

Transfer Learning II

PyTorch ile Metin için Deep Learning

Transfer öğreniminin işleyişi

Transfer Learning III

PyTorch ile Metin için Deep Learning

Önceden eğitilmiş model: BERT

  • Transformer tabanlı Çift yönlü Kodlayıcı Temsilleri

Bert Sentiment Analysis

  • Dil modelleme için eğitildi
  • Birden çok transformer katmanı
  • Büyük metinlerde önceden eğitildi
PyTorch ile Metin için Deep Learning

Uygulama: BERT’in kurulumu

texts = ["I love this!", 
         "This is terrible.", 
         "Amazing experience!", 
         "Not my cup of tea."]
labels = [1, 0, 1, 0]

import torch from transformers import BertTokenizer, BertForSequenceClassification
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertForSequenceClassification.from_pretrained('bert-base-uncased', num_labels=2)
inputs = tokenizer(texts, padding=True, truncation=True, return_tensors="pt", max_length=32) inputs["labels"] = torch.tensor(labels)
PyTorch ile Metin için Deep Learning

BERT’i ince ayarlama (fine-tuning)

optimizer = torch.optim.AdamW(model.parameters(), lr=0.00001)
model.train()

for epoch in range(1): outputs = model(**inputs)
loss = outputs.loss loss.backward()
optimizer.step() optimizer.zero_grad()
print(f"Epoch: {epoch+1}, Loss: {loss.item()}")
Epoch: 1, Loss: 0.7061821222305298
PyTorch ile Metin için Deep Learning

Yeni metinde değerlendirme

text = "I had an awesome day!"
input_eval = tokenizer(text, return_tensors="pt", truncation=True, 
                       padding=True, max_length=128)

outputs_eval = model(**input_eval)
predictions = torch.nn.functional.softmax(outputs_eval.logits, dim=-1)
predicted_label = 'positive' if torch.argmax(predictions) > 0 else 'negative' print(f"Text: {text}\nSentiment: {predicted_label}")
Text: I had an awesome day!
Sentiment: positive
PyTorch ile Metin için Deep Learning

Haydi pratik yapalım!

PyTorch ile Metin için Deep Learning

Preparing Video For Download...