эмбеддинг
Плотный вектор фиксированной размерности, представляющий токен, слово или целый текст в пространстве значений.
Что такое эмбеддинг
Эмбеддинг (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-сервер