Transfer Learning für Textklassifikation

Deep Learning für Text mit PyTorch

Shubham Jain

Instructor

Was ist Transferlernen?

Transfer Learning

"- Verwenden Sie vorhandenes Wissen aus einer Aufgabe für eine verwandte Aufgabe

  • Spart Zeit
  • Teilt Fachwissen
  • Verringert den Bedarf an großen Datenmengen
  • Ein Englischlehrer beginnt, Geschichte zu unterrichten {{5}}"
Deep Learning für Text mit PyTorch

Mechanik des Transferlernens

"Transfer Learning I"

Deep Learning für Text mit PyTorch

Mechanik des Transferlernens

"Transfer Learning II"

Deep Learning für Text mit PyTorch

Mechanik des Transferlernens

"Transfer Learning II"

Deep Learning für Text mit PyTorch

Mechanik des Transferlernens

"Transfer Learning III"

Deep Learning für Text mit PyTorch

"Vorangelerntes Modell : BERT"

"- Bidirektionale Encoder-Repäsentationen von Transformern

Bert Sentiment-Analyse

  • Für Sprachmodellierung trainiert
  • Mehrere Schichten von Transformern
  • Vortrainiert auf großen Textmengen {{4}}"
Deep Learning für Text mit PyTorch

"Praxisnah: Implementierung von BERT"

texts = ["Ich liebe das!", 
         "Das ist schrecklich.", 
         "Erstaunliche Erfahrung!", 
         "Nicht mein Fall."]
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)
Deep Learning für Text mit PyTorch

Fine-Tuning von BERT

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


----CODE_GLUE----
```python
for epoch in range(1):
    outputs = model(**inputs)

loss = outputs.loss loss.backward()
optimizer.step() optimizer.zero_grad()
print(f\"Epoche: {epoch+1}, Verlust: {loss.item()}\")

out Epoche: 1, Verlust: 0.7061821222305298{{5}}"

Deep Learning für Text mit PyTorch

Auswertung mit neuem Text

"`python text = \"Ich hatte einen großartigen Tag!\" input_eval = tokenizer(text, return_tensors=\"pt\", truncation=True, padding=True, max_length=128)


----CODE_GLUE----
```python
outputs_eval = model(**input_eval)

predictions = torch.nn.functional.softmax(outputs_eval.logits, dim=-1)
predicted_label = 'positiv' if torch.argmax(predictions) > 0 else 'negativ' print(f\"Text: {text}\nSentiment: {predicted_label}\")

out Text: Ich hatte einen großartigen Tag! Stimmung: positiv{{5}}"

Deep Learning für Text mit PyTorch

Nun kannst du wieder etwas üben!

Deep Learning für Text mit PyTorch

Preparing Video For Download...