Hacker News Digest

Тег: #vector-search

Постов: 7

Scaling HNSWs (antirez.com)

by cyndunlop • 11 ноября 2025 г. в 14:11 • 193 points

ОригиналHN

#hnsw#diskann#redis#product-quantization#vector-search#similarity-search

Комментарии (42)

  • HNSW критикуется за сложность балансировки, неэффективность кэширования и слабую поддержку фильтрации результатов поиска.
  • Продвинутое квантование (особенно product quantization) значительно эффективнее простого (int8/binary) и является ключом к ускорению индексов; DiskANN часто предпочтительнее HNSW в продакшене.
  • Иерархичность HNSW может быть избыточной; плоские структуры или модифицированные функции выбора уровней могут дать сопоставимую производительность.
  • Важна прозрачность систем: предоставление программистам доступа к структуре данных и понимание компромиссов позволяет создавать более гибкие решения.
  • В Redis векторы нормализуются для быстрого вычисления скалярного произведения вместо косинусного сходства; запись на диск выполняется точечно (RDB/AOF), а не непрерывно.

Ultra efficient vector extension for SQLite (marcobambini.substack.com)

by marcobambini • 23 сентября 2025 г. в 14:33 • 136 points

ОригиналHN

#sqlite#vector-search#hnsw#simd#turso#sqlite-vec#machine-learning#text-processing#image-processing

Комментарии (47)

  • Обсуждение лицензирования: проект использует Elastic License 2.0, что вызывает споры о его статусе как открытого или исходного кода, несмотря на бесплатное использование в open-source проектах.
  • Технические аспекты поиска: обсуждается эффективность brute-force подхода с оптимизацией через SIMD, сравнение с индексированными методами (например, HNSW) и вопросы производительности при больших объемах данных.
  • Использование товарных знаков: критикуется использование домена sqlite.ai и бренда SQLite без явной связи с авторами SQLite, что может вводить в заблуждение.
  • Практические применения: векторные базы данных полезны для поиска схожих элементов (например, через эмбеддинги) в машинном обучении, обработке текстов и изображений.
  • Альтернативы и сравнения: упоминаются другие решения, такие как sqlite-vec (с открытой лицензией) и Turso, а также обсуждаются их преимущества и недостатки.

Vector database that can index 1B vectors in 48M (vectroid.com)

Зачем и как мы сделали Vectroid

Почти все векторные БД заставляют выбирать: скорость, точность или цена. Мы решили, что жертвы не нужны, и собрали serverless-решение, где всё хорошо одновременно.

Ключевая идея:

  • нагрузка скачет ⇒ ресурсы выделяем динамически;
  • алгоритм HNSW жрёт память, но его можно «сплющить» квантованием и развернуть обратно при необходимости.

Что умеет Vectroid

  • Поиск по HNSW: 90 % recall при 10 QPS и P99 = 34 мс (MS Marco, 138 M векторов).
  • Индексация 1 M векторов в минуту, 1 B — за 48 мин.
  • Записи становятся видны почти сразу после вставки.
  • Масштаб до миллиардов векторов в одном пространстве.
  • Пишущая и читающая части масштабируются отдельно, данные живут в GCS/S3, индексы подгружаются лениво и выгружаются при простое.

Архитектура
Два независимых микросервиса: ingest и query. Все слои (вставка, индекс, поиск) масштабируются отдельно, память экономится квантованием и покадровой выгрузкой.

Попробовать бесплатно — 100 ГБ индексов навсегда.

by mathewpregasen • 12 сентября 2025 г. в 16:56 • 80 points

ОригиналHN

#hnsw#vector-databases#serverless#gcs#s3#clickhouse#vector-search#quantization

Комментарии (41)

  • Предложена идея «векторного движка» как лёгкой встраиваемой библиотеки для быстрого построения и поиска эмбеддингов, без переизобретения велосипеда в каждом продукте.
  • Участники спорят о масштабируемости: 1 млрд 4096-мерных векторов теоретически невозможно держать в одной VRAM-карте (4 Т скаляров), но можно разбить на кластеры или сжать квантованием.
  • Ключевой вызов — не алгоритм (HNSW/IVF), а распределённая архитектура: отдельное масштабирование записи и чтения, баланс цена-точность-латентность.
  • Уже есть похожие open-source решения (USearch в ClickHouse, TurboPuffer), но новые SaaS-продукты (Vectroid и др.) обещают серверлесс, объектное хранилище и «редисо-подобный» кэш.
  • Часть аудитории критикует закрытость кода и риск вендор-локина; стартапы отвечают, что opensource пока замедляет релизы, а вектора легко экспортировать.

Claude’s memory architecture is the opposite of ChatGPT’s (shloked.com) 🔥 Горячее 💬 Длинная дискуссия

Как устроена память Claude

Claude начинает каждый диалог с чистого листа. Память активируется только по явному запросу: «что мы говорили о…», «вспомни наш разговор…». Система ищет не сжатые профили, а реальные прошлые чаты.

Два инструмента:

  • conversation_search — поиск по ключевым словам (до 10 результатов).
  • recent_chats — хронологический доступ (до 20 чатов, можно по датам).

Пример: «Расскажи о Чандни-Чоук» → Claude находит 9 чатов, объединяет их в краткий рассказ.
Многотемный запрос («Микеланджело, Chainflip, Solana») → три последовательных поиска, 22 чата, итоговая сводка со ссылками.

Философия противоположна ChatGPT

ChatGPT: постоянное автосохранение, обобщённые заметки, «помнит всё».
Claude: ничего не хранит без спроса, полный текст диалога, «помнит по требованию».

Почему:

  • ChatGPT ориентирован на бытовую автоматизацию (подарки, дедлайны).
  • Claude — на исследовательские и редакторские сессии, где важна точность контекста и отсутствие «загрязнения» профиля.

Итог
Две крайности одного спектра: proactive-суммаризация vs reactive-архив. Выбор между ними = выбор между удобством и контролем.

by shloked • 11 сентября 2025 г. в 18:55 • 401 points

ОригиналHN

#llm#claude#memory-architecture#conversational-ai#vector-search#embeddings#natural-language-processing#ai-models

Комментарии (212)

  • ChatGPT строит «профиль пользователя» (суммаризация + эмбеддинги) и, по мнению многих, готовится к показу персонализированной рекламы; Claude пока просто ищет по истории чатов без генерации сводок.
  • Половина участников отключили память: боятся «заражения» старыми галлюцинациями, слитием несвязанных тем и потери контроля над контекстом.
  • Поддержка памяти в ChatGPT делится на явную (видимую в UI и вшитую в системный промпт) и скрытую (runtime-выборка из эмбеддингов всей истории).
  • У Claude memory=vector-search: без построения профиля, но зато часто промахивается, если запрос не дословно совпадает с прошлым чатом.
  • Технические пользователи просят внешние хранилища (MCP/API), чтобы сами решать, что и когда подтягивать; провайдеры, похоже, RL-обучают модели «прилипать» к родным механизмам памяти.

Show HN: Semantic grep for Claude Code (local embeddings) (github.com)

GitHub-репозиторий BeaconBay/ck
Публичный проект без описания.
Кнопки: «Code», «Issues», «Pull requests», «Actions», «Projects», «Wiki», «Security», «Insights».
Последний коммит: 2 года назад.
Язык: C.
Лицензия: отсутствует.

by Runonthespot • 07 сентября 2025 г. в 11:20 • 147 points

ОригиналHN

#rust#tree-sitter#embeddings#vector-search#semantic-search#code-search#baai-bge-small-en-v1.5#gemma#github

Комментарии (60)

  • Утилита ck — это «семантический grep» на Rust: строет локальный векторный индекс файлов и ищет по смыслу, а не только по ключевым словам.
  • Работает через embeddings (BAAI/bge-small-en-v1.5, планируется Gemma), повторное индексирование запускается автоматически при изменении файлов.
  • Поддерживает почти все языки, но для точного семантического чанкинга требуется донастройка tree-sitter; grep-режим остаётся дефолтом.
  • Пользователи жалуются на медленный поиск в больших проектах, отсутствие TypeScript-LSP и «разрезание» эмодзи; README считают «AI-флаффным».
  • Альтернативы: Codanna, Serena, Roo с Qdrant, SemTools; автор приглашает тестеров и PR для доведения до зрелости.

The Theoretical Limitations of Embedding-Based Retrieval (arxiv.org)

Ключевая идея:
Методы ретривала на основе эмбеддингов (EBR) не могут точно воспроизвести полный ранжир по BM25 из-за фундаментальных ограничений геометрии евклидовых пространств.

Проблема:
EBR приближает BM25 через косинусное сходство векторов запроса и документа. Однако BM25 зависит от частоты терминов (TF) и обратной частоты документов (IDF), что нельзя точно закодировать в фиксированном векторе.

Результаты:

  1. Нижняя граница ошибки: Для коллекции из n документов минимальная ошибка приближения BM25 через EBR составляет Ω(1/n).
  2. Практический эксперимент: На MS MARCO даже идеальные эмбеддинги (обученные для имитации BM25) показывают значительное падение качества (nDCG@10 ↓ на 15–25%).

Вывод:
EBR полезен как компрессия, но не заменяет точные методы. Гибридные системы (EBR + BM25) остаются необходимыми для высокой точности.

by fzliu • 29 августа 2025 г. в 20:25 • 136 points

ОригиналHN

#embedding-based-retrieval#bm25#vector-search#ms-marco#ndcg#information-retrieval#sparse-retrieval#dense-retrieval#colbert#splade

Комментарии (34)

  • Все сжатия информации (включая эмбеддинги) потерянны, и «обед безплатен» не работает, потому что лучший способ зависит от задачи.
  • Теоретические оценки, экстраполирующие полином на тысячи измерений, вызывают сомнение: рост может быть экспоненциальным.
  • Плотные векторы ограничены размерностью 4 k, поэтому идеал — «разреженная семантическая» модель вроде SPLADE или гибридные схемы.
  • На практике работают многовекторные и late-interaction подходы (ColBERT), но они всё ещё уступают BM25 по ранжированию.
  • Реальные системы идут по пути параллельных каналов: плотные, разреженные, BM25 → объединение, дедупликация, переранжирование LLM.

Show HN: Chroma Cloud – serverless search database for AI (trychroma.com)

Chroma Cloud — серверлес-база поиска с открытым исходным кодом: быстро, дёшево, масштабируемо, надёжно.

Возможности

  • Векторный, полнотекстовый и мета-поиск
  • Форк коллекций
  • Скоро: автоматическая синхронизация данных

Производительность

  • Низкая латентность, высокий QPS
  • Линейное масштабирование данных
  • Хранение в объектном хранилище

DevEx

  • Оплата по факту использования
  • Веб-дашборд, CLI, локальная разработка
  • Интеграция в CI/CD

Как начать

pip install chromadb
import chromadb
client = chromadb.CloudClient()
collection = client.get_or_create_collection("my_docs")
collection.add(
    documents=["Hello, world!", "Chroma is cool"],
    metadatas=[{"src": "demo"}, {"src": "demo"}],
    ids=["d1", "d2"]
)
print(collection.query(query_texts=["hello"], n_results=1))

Документация | Бесплатный старт

by jeffchuber • 18 августа 2025 г. в 19:20 • 86 points

ОригиналHN

#chroma#chromadb#vector-search#full-text-search#llm#python#serverless#cloud#rag#apache-2.0

Комментарии (27)

  • Пользователи спрашивают, почему «open-source» просит деньги: ответ — сам Chroma под Apache 2.0 и бесплатен при самостоятельном развёртывании, а платная версия — это управляемый Chroma Cloud.
  • Chroma поддерживает комбинированный поиск: фильтрацию по метаданным (category=X AND value>Y) + векторное сходство.
  • Некоторые считают, что продукт и калькулятор цен слишком похожи на Turbopuffer; команда Chroma отвечает, что архитектуру обсуждали публично два года и уважают конкурентов.
  • Для нетехнических пользователей Chroma решает задачу «R» в RAG: позволяет LLM «на лету» подтягивать нужные данные без дообучения модели.
  • Стартапам предлагают помощь: совместное планирование, Slack-канал и персональная поддержка.
  • Отличия от pgvector/Redis: собственные индексы (SPANN, SPFresh), шардирование, масштабирование, встроенный regex и trigram-поиск без нагрузки на основную БД.
  • По сравнению с Qdrant Chroma позиционируется как «0 конфигураций и 0 операционной боли».