Sobes.tech
Middle — Senior

Kas yra kontekstiniai įdėjimai? Pateikite modelių pavyzdžių.

sobes.tech AI

Atsakymas iš AI

Kontekstiniai įdėjimai yra vektorinės reprezentacijos žodžių ar žymenų, kurios priklauso nuo konteksto, kuriame šie žodžiai naudojami. Skirtingai nuo statinių įdėjimų (pavyzdžiui, Word2Vec ar GloVe), kur kiekvienas žodis turi fiksuotą reprezentaciją, kontekstiniai įdėjimai keičiasi priklausomai nuo aplinkinio teksto, leidžiant geriau atsižvelgti į daugiaprasmiškumą ir sintaktines ypatybes.

Pavyzdžiai modelių, kurie generuoja kontekstinius įdėjimus:

  • ELMo (Embeddings from Language Models) — naudoja dvipusį LSTM, kad sukurtų kontekstui priklausomas įdėjimus.
  • BERT (Bidirectional Encoder Representations from Transformers) — transformatorius, mokytas užmaskuoto kalbos užduočiai, kuris generuoja įdėjimus, atsižvelgiant į kairįjį ir dešinįjį kontekstą.
  • GPT (Generative Pre-trained Transformer) — autoregresinis modelis, kuris generuoja įdėjimus, atsižvelgiant į ankstesnį kontekstą.

Pavyzdys, kaip naudoti BERT, norint gauti žodžio įdėjimus kontekste:

from transformers import BertTokenizer, BertModel
import torch

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

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

# outputs.last_hidden_state turi įdėjimus kiekvienam žodžiui, atsižvelgiant į kontekstą
embeddings = outputs.last_hidden_state