TGViewer
Pragmatic ML Pragmatic ML @pragmaticml · 393 subscribers
Post #5 532
Копаясь в различных реализациях RAG пайплайнов, задался вопросом: А почему в векторных базах данных считается нормой передавать вектора эмбеддингов (некоторый набор чисел с плавающей точкой) через HTTP JSON API?
Я, конечно, понимаю, что очень просто сбоку прикрутить FastAPI/Tornado/Flask/etc, но как же потеря точности при сериализации/десериализации объектов?
Каюсь, раньше и сам так делал, храня сериализованный json как значение в Redis, типичная особенность MVP.
Как это можно обойти — уйти от REST с тасканием туда-обратно строк в сторону бинарных форматов. Лучше всех здесь смотрится GRPC, причем вы из коробки получите более надежное и быстрое взаимодействие с сервисом. Еще можно посмотреть FlatBuffers, но могут возникнуть сложности.
Что еще вы получаете от GRPC — типизацию из коробки (Pydantic не нужен), меньший объем данных за счет бинарного формата, отсутствие потерь точности. А также зафиксированный контракт обмена данными с вашим сервисом.
Прошерстив документацию 10 самых популярных vector database (растут как на дрожжах), пришел к неутешительному выводу — половина этих баз либо не имеют GRPC API, либо такой функционал только в бете.
Отдельно хочется отметить две базы:
1) Qdrant — написанная на Rust с нуля, очень приятно смотрится в бенчмарках(1000+ rps, в 3 раза больше weaviate или milvus, wow).
2) LanceDB — опять же Rust, к тому же можно делать serverless(наподобие RocksDB, SQLite). Ребята написали свой собственный формат хранения и выложили в опенсорс, что не может не радовать.
Немножко пояснил за protobuf-ы отдельно:
https://telegra.ph/Proto-Explanation-12-10
Telegraph Proto Explanation Каждый раз, когда разговор заходит про бинарные форматы в разработке и аналитике (но и не только), я сразу же рекомендую прочитать Designing Data Intensive Applications ("Высоконагруженные приложения. Программирование, масштабирование, поддержка" на русском).…
  • ❤ 4
  • 🔥 2
More from @pragmaticml
  1. Feb 13, 2024Cloudflare — пример того, как нужно решать вопросики. Даже за вычетом их крутых продуктов,…
  2. Feb 3, 2024В одной из первых домашек курса Efficient Deep Learning Systems предлагается порешать мале…
  3. Feb 2, 2024На фоне того, что Цукерберг скупает сотни H100 для обучения новых версий LLama, все осталь…
  4. Jan 31, 2024Наверное, стоит отдельно рассказать про топ 1 решение Kaggle соревы из поста выше. Не буду…
  5. Jan 31, 2024Про аугментации. Я довольно давно не копался в CV. Последнее, что я помнил — albumentation…
  6. Jan 30, 2024Про бенчмарки загрузки png картинок. Ужасно сгорел, перебирая разные способы загрузки png…
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 →