ML Fundamentals

эмбеддинг

Плотный вектор фиксированной размерности, представляющий токен, слово или целый текст в пространстве значений.

Что такое эмбеддинг

Эмбеддинг (embedding, вложение) — отображение дискретного объекта (токена, слова, документа) в непрерывное векторное пространство. Близкие по смыслу объекты оказываются близко в этом пространстве; это позволяет нейросети работать с «смыслом», а не просто с идентификаторами.

Например, эмбеддинги слов «кошка» и «кот» будут близки по косинусному расстоянию, а «кошка» и «автомобиль» — далеки.

Token embeddings в LLM

Каждый токен словаря имеет соответствующую строку в embedding matrix (матрица вложений) размерностью vocab_size × d_model. Это первый шаг обработки: token_id → embedding vector.

# Упрощённо: embedding layer — это просто таблица поиска
embedding_matrix = nn.Embedding(vocab_size=32000, embedding_dim=4096)
token_ids = torch.tensor([1, 2, 3])
embeddings = embedding_matrix(token_ids)  # (3, 4096)

Sentence embeddings

Для задач semantic search, RAG, кластеризации нужен один вектор для целого текста. Получают, передав текст через encoder-модель (BERT, E5, BGE) и усреднив hidden states или взяв [CLS]-токен.

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("intfloat/multilingual-e5-large")
embeddings = model.encode([
    "Что такое вычислительный кластер?",
    "GPU cluster для ML-задач"
])
# cosine_similarity(embeddings[0], embeddings[1]) ≈ 0.87 (очень похожи)

Размерность эмбеддингов

Модель d_model (token emb.)
GPT-2 small 768
Llama 3 8B 4 096
Llama 3 70B 8 192
Llama 3 405B 16 384

Sentence embedding модели: 384–4 096 измерений (больше = лучше качество и дороже).

Связанные термины

  • токен — что представляет token embedding
  • hidden state — token embedding эволюционирует в hidden state
  • трансформер — архитектура, использующая embeddings
  • RAG — использует sentence embeddings для поиска

Готовы запустить GPU-задачу?

Запустить GPU-сервер