ЁЯПм рдзрдбрд╛ 08 тАФ Landscape: рдкреНрд░рддреНрдпрдХреНрд╖ рд╡рд╛рдкрд░рд╛рд╕рд╛рдареА vector database рдирд┐рд╡рдбрдгреЗ
ЁЯУН рддреБрдореНрд╣реА рдЗрдереЗ рдЖрд╣рд╛рдд: 8 рдкреИрдХреА рдзрдбрд╛ 08 тАФ рд╢реЗрд╡рдЯрдЪрд╛ рдзрдбрд╛!
ЁЯУж рдпрд╛ рдмреНрд░рдБрдЪрдордзреНрдпреЗ рдХрд╛рдп рдЖрд╣реЗ
рд╕рдВрдкреВрд░реНрдг course, рдЖрдгрд┐ рдкреНрд░рддреНрдпрдХреНрд╖ products рдЪрд╛ рдирдХрд╛рд╢рд╛ рдЖрдгрд┐ рдирд┐рд╡рдбреАрдЪреЗ рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рдорд╛рд░реНрдЧрджрд░реНрд╢рди тАФ рддреБрд▓рдирд╛рддреНрдордХ cards рд╕рд╣ рд╡рд┐рд╕реНрддрд╛рд░рд╛рдиреЗ ЁЯМР landscape рдкрд╛рдирд╛рд╡рд░.
ЁЯзТ рдХреБрдЯреБрдВрдмреЗ, рд╢рд╛рд│реЗрдЪреНрдпрд╛ рднрд╛рд╖реЗрдд
- ЁЯРШ "рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдЖрдзреАрдЪ рдЕрд╕рд▓реЗрд▓реЗ рдЧреНрд░рдВрдерд╛рд▓рдп" тАФ pgvector (PostgreSQL рдЪреНрдпрд╛ рдЖрддрд▓реЗ extension): рддреБрдордЪрд╛ data, рддреБрдордЪреЗ vectors, рдПрдХ database, рдПрдХ backup, similarity search рдЪреНрдпрд╛ рд╢реЗрдЬрд╛рд░реА SQL JOINs. рдЖрдзреАрдЪ Postgres рд╡рд╛рдкрд░рдгрд╛рд▒реНрдпрд╛ teams рд╕рд╛рдареА рдХрдВрдЯрд╛рд│рд╡рд╛рдгрд╛ рдкрдг рдЙрддреНрдХреГрд╖реНрдЯ default тАФ рд▓рд╛рдЦреЛ vectors рдкрд░реНрдпрдВрдд.
- тШБя╕П "рднрд╛рдбреНрдпрд╛рдЪрд╛ hall" тАФ Pinecone рдЖрдгрд┐ managed рдордВрдбрд│реА: рдкреВрд░реНрдгрдкрдгреЗ hosted, рддреБрдореНрд╣рд╛рд▓рд╛ рдЪрд╛рд▓рд╡рд╛рдпрдЪреЗ рдЕрд╕реЗрд▓ рддреНрдпрд╛рдкрд▓реАрдХрдбреЗ scale рд╣реЛрддреЗ, filtered-ANN рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓реЗрд▓реЗ тАФ AWS-course рдордзрд▓рд╛ build-vs-rent рдкреНрд░рд╢реНрди (EC2 L08!), рдЙрддреНрддрд░ "рднрд╛рдбреНрдпрд╛рдиреЗ", рддреНрдпрд╛рдЪ рддрдбрдЬреЛрдбреАрдВрд╕рд╣ (рдкреНрд░рддреНрдпреЗрдХ query рдЪрд╛ рдЦрд░реНрдЪ, data рдШрд░рд╛рдмрд╛рд╣реЗрд░ рдЬрд╛рддреЛ, рдХрдореА рдирд┐рдпрдВрддреНрд░рдг).
- ЁЯзк "рдкреНрд░рдпреЛрдЧрд╢рд╛рд│реЗрдЪрд╛ рдмрд╛рдХ" тАФ Chroma, LanceDB, Qdrant, Weaviate: developer-first stores; embedded-рдХрд┐рдВрд╡рд╛-server modes; prototypes рдкрд╛рд╕реВрди рдордзреНрдпрдо scale рдкрд░реНрдпрдВрдд рдЙрддреНрддрдо DX, рдкреНрд░рддреНрдпреЗрдХрд╛рдЪреА рдЖрдкрд▓реА рдЦрд╛рд╕рд┐рдпрдд (Qdrant: filters/perf; Weaviate: batteries; LanceDB: columnar/local).
- тЪЩя╕П "Engine block" тАФ FAISS, hnswlib: databases рдирд╛рд╣реАрдд тАФ рдзрдбрд╛ 04 рдЪреЗ indexes рдЕрдВрдорд▓рд╛рдд рдЖрдгрдгрд╛рд▒реНрдпрд╛ libraries. рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд рдирд┐рдпрдВрддреНрд░рдг рдЖрдгрд┐ рд╡реЗрдЧ, ops рдЪреА рд╢реВрдиреНрдп рдорджрдд (persistence/filters/replication рдирд╛рд╣реА тАФ рддреЗ рддреБрдореНрд╣реА рдмрдирд╡рддрд╛). Infra teams рдЖрдгрд┐ рд╕рдВрд╢реЛрдзрдХрд╛рдВрд╕рд╛рдареА.
- ЁЯФО "рдЬреБрдиреНрдпрд╛ рдЧреНрд░рдВрдерд╛рд▓рдпрд╛рдиреЗ рдирд╡реНрдпрд╛ рдпреБрдХреНрддреНрдпрд╛ рд╢рд┐рдХрд▓реНрдпрд╛" тАФ OpenSearch/Elastic, Redis, Mongo, SQLite-vecтАж: рддреБрдордЪреНрдпрд╛ рдЖрдзреАрдЪреНрдпрд╛ store рд▓рд╛ vector column рдЖрд▓рд╛. рддреЛ рдЖрдзреАрдЪ deploy рдЭрд╛рд▓реЗрд▓рд╛ рдЕрд╕реЗрд▓ рдЖрдгрд┐ рдмрд╕рдд рдЕрд╕реЗрд▓, рддрд░ рдЪрд╛рд▓рд╡рд╛рдпрд▓рд╛ рдПрдХ system рдХрдореА.
ЁЯзн рдирд┐рд╡рдбреАрдЪрд╛ flowchart (рд░рд╣рд╕реНрдп рдлреЛрдб: рд╕рд╣рд╕рд╛ pgvector)
- Corpus рдПрдХрд╛ Postgres рдордзреНрдпреЗ рдорд╛рд╡рддреЛ рдЖрдгрд┐ рддреБрдордЪреНрдпрд╛рдХрдбреЗ Postgres рдЖрд╣реЗ тЖТ pgvector.
- Prototype/notebook, рд╢реВрдиреНрдп setup рд╣рд╡рд╛ тЖТ Chroma/LanceDB embedded.
- рдЧрдВрднреАрд░ scale (рдХреЛрдЯреНрдпрд╡рдзреА+, рдХрдбрдХ latency, filtered ANN) рдЖрдгрд┐ ops рдЪреА рдЗрдЪреНрдЫрд╛ рдирд╛рд╣реА тЖТ managed (Pinecone-class).
- рддреЛрдЪ scale рдЖрдгрд┐ ops рдЪреА рдЗрдЪреНрдЫрд╛ (рдЖрдгрд┐ k8s рд╢рд╛рд│рд╛ рдкреВрд░реНрдг рдХреЗрд▓реЗрд▓реА тШ╕я╕П) тЖТ Qdrant/Weaviate self-hosted.
- рд╕реНрд╡рддрдГрдЪреЗ engine / рд╕рдВрд╢реЛрдзрди тЖТ FAISS/hnswlib.
- рдПрдХреВрдг ~100k рдкреЗрдХреНрд╖рд╛ рдХрдореА vectors? Brute-force loop (рдЖрдкрд▓рд╛ toy + рдЦрд░рд╛ embedder) рдЦрд░реЛрдЦрд░ рдкреБрд░реЗрд╕рд╛ рдЖрд╣реЗ тАФ рдПрдХрд╛ рд╡рд░реНрдЧрд╛рд╕рд╛рдареА hall рд╡рд┐рдХрдд рдШреЗрдК рдирдХрд╛. ЁЯШД
тЭУ рдЦрд░рд╛ рдлрд░рдХ рджрд╛рдЦрд╡рдгрд╛рд░реЗ рдкреНрд░рд╢реНрди (рд╣реЗ рд╡рд┐рдЪрд╛рд░рд╛, "рддреЛ рд╡реЗрдЧрд╡рд╛рди рдЖрд╣реЗ рдХрд╛" рдирд╛рд╣реА)
- Scale рд╡рд░ filtered search тАФ pre-filter рд╡рд┐рд░реБрджреНрдз post-filter (L06 рдЪрд╛ рд╕рд╛рдкрд│рд╛): рдкреНрд░рддреНрдпрдХреНрд╖ рдЬрдЧрд╛рддрд▓рд╛ #1 рдлрд░рдХ.
- Hybrid search рдЖрддрдЪ рдЖрд╣реЗ рдХрд╛? (keyword + vector + fusion) тАФ рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд░реВрди рдЬреЛрдбрд╛рд╡рд╛ рд▓рд╛рдЧрддреЛ?
- Ops рдЪреА рдЧреЛрд╖реНрдЯ: persistence, backups, updates/deletes (ANN indexes рдирд╛ deletes рдЕрдЬрд┐рдмрд╛рдд рдЖрд╡рдбрдд рдирд╛рд╣реАрдд!), multi-tenancy (namespaces! тАФ рдирдорд╕реНрдХрд╛рд░ k8s L05).
- рдкреБрдиреНрд╣рд╛-embed рдХрд░рдгреНрдпрд╛рдЪрд╛ рджрд┐рд╡рд╕ тЪая╕П (L02 рдЪрд╛ рдирд┐рдпрдо): embedding models рдмрджрд▓рд▓реЗ рдХреА рд╕рдЧрд│реЗ рдкреБрдиреНрд╣рд╛ embed рд╣реЛрддреЗ. рдкреВрд░реНрдг rebuild рдХрд┐рддреА рддреНрд░рд╛рд╕рджрд╛рдпрдХ рдЖрд╣реЗ? рд╣реЗ рдЕрд╕реЗ migration рдЖрд╣реЗ рдЬреНрдпрд╛рдЪреЗ рдХреЛрдгреАрдЪ рдирд┐рдпреЛрдЬрди рдХрд░рдд рдирд╛рд╣реА рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХрд╛рд▓рд╛ рд╢реЗрд╡рдЯреА рдХрд░рд╛рд╡реЗрдЪ рд▓рд╛рдЧрддреЗ.
- рдЖрдХрдбреНрдпрд╛рдВрд╕рд╣ recall benchmarks (L04): "рдХреЛрдгрддреНрдпрд╛ recall рд╡рд░ рд╡реЗрдЧрд╡рд╛рди, рдХреЛрдгрд╛рдЪреНрдпрд╛ dataset рд╡рд░?"
ЁЯдФ рдХрд╛
рдЫреЛрдЯреНрдпрд╛ teams рд╕рд╛рдареА vector DB рдЪреА рдирд┐рд╡рдб рд╣реЗ рджреЛрдиреНрд╣реА рдмрд╛рдЬреВрдВрдиреА рдЙрдШрдбрдгрд╛рд░реЗ рджрд╛рд░ рдЖрд╣реЗ (stores рдмрджрд▓рдгреЗ рд╕реЛрдкреЗ тАФ L05 рдордзреНрдпреЗ рд╢рд┐рдХрд▓реЗрд▓реНрдпрд╛ embedder рд╕реАрдореЗрдореБрд│реЗ vectors рд╕рд╣рдЬ рд╣рд▓рд╡рддрд╛ рдпреЗрддрд╛рдд) рдЖрдгрд┐ scale рд╡рд░ рдЬрд╡рд│рдкрд╛рд╕ рдПрдХрд╛рдЪ рдмрд╛рдЬреВрдиреЗ рдЙрдШрдбрдгрд╛рд░реЗ рджрд╛рд░ (data рдЪреЗ рдЧреБрд░реБрддреНрд╡). рдХрдВрдЯрд╛рд│рд╡рд╛рдгреНрдпрд╛ рдкрд░реНрдпрд╛рдпрд╛рдиреЗ рд╕реБрд░реБрд╡рд╛рдд рдХрд░рд╛, retrieval рдЪрд╛ рджрд░реНрдЬрд╛ рдореЛрдЬрд╛ (L06 рдЪреЗ golden questions), рдЖрдгрд┐ upgrades benchmarks рдореБрд│реЗ рдирд╡реНрд╣реЗ рддрд░ рдЦрд▒реНрдпрд╛ рдЕрдбрдерд│реНрдпрд╛рдВрдореБрд│реЗ рд╣реЛрдК рджреНрдпрд╛.
ЁЯзк рдХрд░реВрди рдкрд╛рд╣рд╛ тАФ engine рдмрджрд▓реВрди рдкрджрд╡реА рдорд┐рд│рд╡рд╛
рдзрдбрд╛ 07 рдЪреА RAG script рдШреНрдпрд╛ рдЖрдгрд┐ рддреА рдЦрд▒реНрдпрд╛ store рдХрдбреЗ рд╡рд│рд╡рд╛:
# pgvector (if you have Postgres): CREATE EXTENSION vector;
# store: INSERT ... embedding vector(256); search: ORDER BY embedding <=> $1 LIMIT 3
# or Chroma (pip install chromadb): 3 lines: client, collection.add, collection.query
# keep OUR embed() first тАФ then swap embed() for a real model and
# watch 'pupils' finally find 'students'. Both swaps, independently. ЁЯОУ
ЁЯОУ Hall рдЖрддрд╛ рддреБрдордЪрд╛ рдЖрд╣реЗ
рдЕрд░реНрде рдореНрд╣рдгрдЬреЗ рдЬрд╛рдЧрд╛ тЖТ рдЬрд╛рдЧрд╛ рдореНрд╣рдгрдЬреЗ рдЖрдХрдбреЗ тЖТ similarity рдореНрд╣рдгрдЬреЗ рджрд┐рд╢рд╛ тЖТ scale рд╡рд░ рд╢реЗрдЬрд╛рд░реА тЖТ рддреБрдореНрд╣реА рд╡рд╛рдЪрд▓реЗрд▓рд╛ database тЖТ рдХрд╛рддреНрд░реА рдЖрдгрд┐ stickers тЖТ open-book pipeline тЖТ products рдЪрд╛ рдирдХрд╛рд╢рд╛. рдЖрддрд╛ рддреБрдореНрд╣реА рдЫреЛрдЯрд╛ vector DB рд╕реНрд╡рддрдГ рдмрдирд╡реВ рд╢рдХрддрд╛, рдореЛрдард╛ рд╡рд┐рдХрдд рдШреЗрдК рд╢рдХрддрд╛, рджреЛрдиреНрд╣реА debug рдХрд░реВ рд╢рдХрддрд╛ тАФ рдЖрдгрд┐ рдХреЛрдгрд╛рд▓рд╛рд╣реА рдиреЗрдордХреЗ рд╕рдордЬрд╛рд╡реВ рд╢рдХрддрд╛ рдХреА рддреНрдпрд╛рдВрдиреА рдХрд╛рдп рд╡рд┐рдХрдд рдШреЗрддрд▓реЗ. ЁЯЧ║я╕ПЁЯОУ
git checkout main
python3 vectordb/demo.py # one last search, for fun