Sobes.tech
Middle — Senior

Cosa sono gli embedding contestuali? Fornite esempi di modelli.

sobes.tech AI

Risposta dell'AI

Gli embedding contestuali sono rappresentazioni vettoriali di parole o token che dipendono dal contesto in cui queste parole vengono utilizzate. A differenza degli embedding statici (ad esempio, Word2Vec o GloVe), in cui ogni parola ha una rappresentazione fissa, gli embedding contestuali cambiano a seconda del testo circostante, consentendo di catturare meglio la polisemia e le caratteristiche sintattiche.

Esempi di modelli che generano embedding contestuali:

  • ELMo (Embeddings from Language Models) — utilizza LSTM bidirezionali per creare embedding dipendenti dal contesto.
  • BERT (Bidirectional Encoder Representations from Transformers) — un trasformatore addestrato su compiti di linguaggio mascherato che genera embedding considerando il contesto a sinistra e a destra.
  • GPT (Generative Pre-trained Transformer) — un modello autoregressivo che genera embedding tenendo conto del contesto precedente.

Esempio di utilizzo di BERT per ottenere embedding di una parola in un contesto:

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 contiene gli embedding per ogni token considerando il contesto
embeddings = outputs.last_hidden_state