Sobes.tech
Middle — Senior

Kontekstual embeddings nima? Modellardan misollar keltiring.

sobes.tech AI

AIdan javob

Kontekstual embeddinglar — bu so'zlar yoki tokenlarning kontekstga bog'liq vektorli taqdimotlari bo'lib, ular foydalanilayotgan kontekstga bog'liq. Statik embeddinglardan (masalan, Word2Vec yoki GloVe) farqli o'laroq, har bir so'z uchun doimiy ta'rifga ega bo'lgan joyda, kontekstual embeddinglar atrofdagi matnga qarab o'zgaradi, bu ko'p ma'nolilik va sintaktik xususiyatlarni yaxshiroq hisobga olish imkonini beradi.

Kontekstual embeddinglarni ishlab chiqaradigan modellarga misollar:

  • ELMo (Embeddings from Language Models) — kontekstga bog'liq embeddinglarni yaratish uchun ikki yo'nalishli LSTMlardan foydalanadi.
  • BERT (Bidirectional Encoder Representations from Transformers) — maskalangan til vazifasida o'qitilgan va chap va o'ng kontekstni hisobga olgan embeddinglarni ishlab chiqaradigan transformator.
  • GPT (Generative Pre-trained Transformer) — oldingi kontekstni hisobga olgan holda embeddinglarni ishlab chiqaradigan avto-regressiv model.

BERT yordamida kontekstda so'zning embeddingini olish misoli:

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 har bir token uchun kontekstni hisobga olgan embeddinglarni o'z ichiga oladi
embeddings = outputs.last_hidden_state