Sobes.tech
Middle — Senior

Mi az a kontextuális beágyazás? Adjon példákat modellekre.

sobes.tech MI

Válasz az MI-től

A kontextuális beágyazások olyan vektoralakú reprezentációk, amelyek a szavak vagy tokenek olyan vektoros megjelenítései, amelyek a használatuk kontextusától függenek. A statikus beágyazásoktól (például Word2Vec vagy GloVe) eltérően, ahol minden szó fix reprezentációval rendelkezik, a kontextuális beágyazások a környező szöveg függvényében változnak, így jobban kezelik a többértelműséget és a szintaktikai jellemzőket.

Példák modellekre, amelyek kontextuális beágyazásokat generálnak:

  • ELMo (Embeddings from Language Models) — kétirányú LSTM-ket használ a kontextusfüggő beágyazások létrehozásához.
  • BERT (Bidirectional Encoder Representations from Transformers) — egy transformer, amely maszkos nyelvi feladaton tanul, és olyan beágyazásokat generál, amelyek figyelembe veszik a bal és jobb kontextust.
  • GPT (Generative Pre-trained Transformer) — egy autoregresszív modell, amely a korábbi kontextust figyelembe véve generál beágyazásokat.

Példa a BERT használatára egy szó kontextusban való beágyazásának megszerzéséhez:

from transformers import BertTokenizer, BertModel
import torch

tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertModel.from_pretrained('bert-base-uncased')

sentence = "The bank will not approve the loan."
inputs = tokenizer(sentence, return_tensors='pt')
outputs = model(**inputs)

# outputs.last_hidden_state tartalmazza az összes token beágyazását a kontextus figyelembevételével
embeddings = outputs.last_hidden_state