Transformer-Modelle für die Textverarbeitung

Deep Learning für Text mit PyTorch

Shubham Jain

Instructor

Warum verwendet man Transformer für die Textverarbeitung?

"Transformers-Logo

  • Geschwindigkeit
  • Versteht die Beziehung zwischen Wörtern, unabhängig von deren Entfernung
  • Menschliche Reaktion {{3}}"
Deep Learning für Text mit PyTorch

Komponenten eines Transformers

"- Encoder: Verarbeitet Eingabedaten

  • Decoder: Rekonstruiert die Ausgabe
  • Feed-forward Neural Networks: Verfeinern das Verständnis
  • Positional Encoding: Stellt sicher, dass die Reihenfolge zählt
  • Multi-Head Attention: Erfasst mehrere Eingaben oder Stimmungen {{5}}"
Deep Learning für Text mit PyTorch

"Vorbereitung unserer Daten: Trainings-Test-Aufteilung"

sentences = ["Ich liebe dieses Produkt", "Das ist schrecklich", 
             "Könnte besser sein", "Das ist das Beste"]
labels = [1, 0, 0, 1]

train_sentences = sentences[:3] train_labels = labels[:3] test_sentences = sentences[3:] test_labels = labels[3:]
Deep Learning für Text mit PyTorch

Aufbau des Transformer-Modells

"`python class TransformerEncoder(nn.Module):


----CODE_GLUE----
```python
    def __init__(self, embed_size, heads, num_layers, dropout):
        super(TransformerEncoder, self).__init__()

self.encoder = nn.TransformerEncoder( nn.TransformerEncoderLayer(d_model=embed_size, nhead=heads), num_layers=num_layers)
self.fc = nn.Linear(embed_size, 2)
def forward(self, x):
x = self.encoder(x)
x = x.mean(dim=1)
return self.fc(x)
model = TransformerEncoder(embed_size=512, heads=8, num_layers=3, dropout=0.5)

----CODE_GLUE---- python optimizer = optim.Adam(model.parameters(), lr=0.001) criterion = nn.CrossEntropyLoss(){{10}}"

Deep Learning für Text mit PyTorch

Das Training der Transformer

"python for epoch in range(5):

----CODE_GLUE---- python for sentence, label in zip(train_sentences, train_labels): tokens = sentence.split()

Deep Learning für Text mit PyTorch

Die Vorhersage der Transformer

"`python def predict(sentence): model.eval()


----CODE_GLUE----
```python
    with torch.no_grad():

tokens = sentence.split() data = torch.stack([token_embeddings.get(token, torch.rand((1, 512))) for token in tokens], dim=1)
output = model(data)
predicted = torch.argmax(output, dim=1)

----CODE_GLUE---- python return \"Positive\" if predicted.item() == 1 else \"Negative\"{{6}}"

Deep Learning für Text mit PyTorch

Vorhersagen für neue Texte

sample_sentence = "Dieses Produkt könnte besser sein"
print(f"'{sample_sentence}' ist {predict(sample_sentence)}")
'Dieses Produkt könnte besser sein' ist Negativ
Deep Learning für Text mit PyTorch

Nun kannst du wieder etwas üben!

Deep Learning für Text mit PyTorch

Preparing Video For Download...