How big are our embeddings now and why?
Как сейчас выросли эмбеддинги и почему
Эмбеддинги — это плотные числовые векторы, которые заменяют тексты, картинки, звук для поиска, рекомендаций, RAG, классификации.
Раньше 200–300 измерений считались потолком: Word2Vec, GloVe, PCA — всё укладывалось в сотню мегабайт и давало приемлемое качество.
Что изменилось
- BERT (2018) — 768 dim.
- GPT-подобные — 768–1600 dim.
- OpenAI text-embedding-ada-002 — 1536 dim.
- text-embedding-3-large — 3072 dim (можно урезать до 256–1024 без потери, но по умолчанию большой).
- Anthropic, Cohere, Jina, voyage — 1024–4096 dim.
- Multimodal (CLIP, SigLIP) — 512–1024 на патч/токен, но стекуются до 8192+.
- ColBERT, late-interaction — хранят вектор на каждый токен: 128×N токенов → десятки тысяч dim на документ.
Зачем столько
- Больше параметров модели → лучше передаёт тонкие семантические различия.
- GPU/TPU стали дешевле — обучить 4k-дим пачку на паре A100 проще, чем 5 лет назад 300-дим на CPU.
- Аппроксимация и сжатие (PQ, OPQ, HNSW, int8) позволяют хранить и искать в 4–16× экономнее, поэтому «жирный» вектор не болит.
- RAG-рейсы — продавцы API конкурируют качеством, а не объёмом: лучше отдать 3k dim, чем терять клиента.
- Масштабируемость векторных БД — Pinecone, Weaviate, Qdrant, PGvector умеют индексировать сотни миллионов 1k–4k векторов на одном ноде.
Итого
300 дим остались в учебниках. Пром-норма — 768–1536, новые модели — 2k–4k, а при late-interaction счёт идёт на сотни тысяч «виртуальных» измерений. Рост цены хранения компенсируется сжатием и железом; качество растёт быстрее, чем стоимость, поэтому векторы продолжат толстеть, пока не упрёмся в новый физический или экономический потолок.