TGViewer
Машиннное обучение | Наука о данных Библиотека Машиннное обучение | Наука о данных Библиотека @machinelearning_books · 16.9K subscribers
Post #1023 2.44K
🔢 PGVector: векторный поиск прямо в PostgreSQL — гайд

Если ты работаешь с embedding'ами (OpenAI, HuggingFace, LLMs) и хочешь делать семантический поиск в SQL — тебе нужен pgvector. Это расширение позволяет сохранять и сравнивать векторы прямо внутри PostgreSQL.

📦 Установка PGVector (Linux)


git clone --branch v0.8.0 https://github.com/pgvector/pgvector.git
cd pgvector
make
sudo make install


Или просто:
• macOS: brew install pgvector
• Docker: pgvector/pgvector:pg17
• PostgreSQL 13+ (через APT/YUM)

🔌 Подключение расширения в базе


CREATE EXTENSION vector;


После этого ты можешь использовать новый тип данных vector.

🧱 Пример использования

Создаём таблицу:


CREATE TABLE items (
id bigserial PRIMARY KEY,
embedding vector(3)
);


Добавляем данные:


INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[4,5,6]');


Поиск ближайшего вектора:


SELECT * FROM items
ORDER BY embedding <-> '[3,1,2]'
LIMIT 5;


🧠 Операторы сравнения

PGVector поддерживает несколько видов расстояний между векторами:

- <-> — L2 (евклидово расстояние)
- <#> — скалярное произведение
- <=> — косинусное расстояние
- <+> — Manhattan (L1)
- <~> — Хэммингово расстояние (для битовых векторов)
- <%> — Жаккар (для битовых векторов)

Также можно усреднять вектора:


SELECT AVG(embedding) FROM items;


🚀 Индексация для быстрого поиска

HNSW (лучшее качество):


CREATE INDEX ON items USING hnsw (embedding vector_l2_ops);


Параметры можно настраивать:


SET hnsw.ef_search = 40;


#### IVFFlat (быстрее создаётся, но чуть менее точный):


CREATE INDEX ON items USING ivfflat (embedding vector_l2_ops) WITH (lists = 100);
SET ivfflat.probes = 10;


🔍 Проверка версии и обновление


SELECT extversion FROM pg_extension WHERE extname='vector';
ALTER EXTENSION vector UPDATE;


📌 Особенности

- Работает с PostgreSQL 13+
- Поддержка до 2000 измерений
- Расширяемый синтаксис
- Можно использовать DISTINCT, JOIN, GROUP BY, ORDER BY и агрегации
- Подходит для RAG-пайплайнов, NLP и встраивания LLM-поиска в обычные SQL-приложения

🔗 Подробнее

💡 Храни embedding'и прямо в PostgreSQL — и делай семантический поиск без внешних векторных БД.
  • 🔥 6
  • ❤ 3
  • 👍 2
More from @machinelearning_books
  1. Oct 5, 2026🧠 Есть ли у Claude сознание? Автор диссертации на эту тему сомневается На фоне обсуждений…
  2. Oct 4, 2026⚡️ Петля Карпати: как заставить ИИ работать, пока вы спите Как устроен цикл Карпати из реп…
  3. Oct 1, 2026📚 Бесплатная 309-страничная книга по Machine Learning: _Patterns, Predictions, and Action…
  4. Sep 29, 202611 бесплатных книг по AI и Machine Learning, которые можно читать онлайн или скачать 📚 По…
  5. Sep 29, 2026Как сегодня строят рекомендательные системы — и что будет с ними завтра? 30 сентября собир…
  6. Sep 28, 2026💼 ИИ всегда поддерживает подростка. А помогает ли это ему взрослеть? В статье на arXiv ис…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →