Гибрид қидирув: нега векторлар ёлғон гапиради, калит сўзлар эса ақлдан озмайди
ва уларни қандай яхлаштириш мумкин
Автор: AI Datanomix Content Agent
Время чтения: ~12 daqiqa
1-қисм: Нега векторли қидирув — тузақ
// чиройли, лекин тузақ
// чиройли, лекин тузақ
Идея гениал. Матнни оламиз, нейросеть орқали ўтказамиз, вектор оламиз — 1024 та сондан иборат массив, у «маънони кодлайди». Маъноси яқин матнлар яқин векторлар олади.
Сценарий 1: Аниқ идентификаторлар — SKU-7829-BX, қонун рақамлари, буюртма ID.
Сценарий 2: Qisqartmalar — банкингда KYC, AML, SOFR, ICAAP, PCI DSS.
Сценарий 3: Домендан ташқари — модель ҳеч қачон кўрмаган ички ҳужжатлар.
векторли қидирув — эмпатияли китобхоначи. Сиз «муҳаббат ҳақида бирор нарса ғамгин» дейишингизни сезади. Лекин ISBN бўйича аниқ китоб сўрангиз — у сизга жиннидек қарайди.2-қисм: Джедай қайтиши (BM25)
// 1970-йиллар технологияси, ўлишдан бош тартади
BM25 = Best Matching 25, TF-IDF оиласи, 1994 йилдан стандарт.
BM25 кучли томонлари
- Идентификаторларнинг аниқ мослашиши.
- Интерпретацияланади — қай сўзлар бўйича ишлаганлиги кўринади.
- Тезлик — GPU йўқ, миллисониялар.
Заифлик: семантика йўқ. «Машина» ≠ «автомобиль».
BM25 — робот-китобхоначи. Ёзилганини айнан топади. Ҳарфма-ҳарф.3-қисм: Hybrid Search — 1+1=3 бўлганда
// юзада ётган идея
Hybrid = параллел вектор + BM25, сўнг натижаларни бирлаштириш.
Муаммо: турли балл шкалалари (cosine 0–1 vs BM25 0.5–45.7).
Ечим: RRF (Reciprocal Rank Fusion), 2009 йил мақоласи.
RRF formula:
RRF_score(doc) = 1/(k + rank_vector) + 1/(k + rank_bm25) where k = 60 Doc X: vector rank=2, BM25 rank=1 → RRF = 1/62 + 1/61 = 0.0325
Doc Y: vector rank=1, BM25 rank=15 → RRF = 1/61 + 1/75 = 0.0297
→ X wins because high in BOTH rankings
Нега бу гениал:
- Скорларни нормалаштириш шарт эмас.
- Огирлиқларни ўргатиш шарт эмас.
- GPU йўқ.
- Латентлик — микросониялар.
4-қисм: Рақамлар ёлғон гапирмайди (бенчмарк)
// benchmark_results.log
| Усул | Recall@3 | Қидирувда GPU | Латентлик |
|---|---|---|---|
| Pure BM25 | 0.667 | No | ~5 ms |
| Pure Vector | 0.767 | No | ~10 ms |
| Hybrid RRF | 0.800 | No | ~15 ms |
| Reranker | 0.833 | Yes | ~150-500 ms |
| Сўров | Vector | BM25 | Hybrid |
|---|---|---|---|
| "Постановление №2864, PEP" | 0.67 | 1.00 | 1.00 |
| "CAR, CET1, №2432" | 0.33 | 0.33 | 0.67 |
Hybrid RRF оғир Reranker сифатининг 96% беради. GPU йўқ. Қўшимча модель йўқ. Битта SQL-сўров.
5-қисм: Меъморчилик зоопарки vs бир платформа
// нима учун уч база, биттаси етарли
Типик RAG-меъморчилик
Documents → Elasticsearch (full-text)
→ Qdrant / Milvus (vector)
→ PostgreSQL (metadata) Бирлашган ёндашув
-- Hybrid Search in one SQL query
WITH vector_results AS (
SELECT doc_id,
cosine_distance(embedding, :query_vec) AS score,
ROW_NUMBER() OVER (ORDER BY cosine_distance(embedding, :query_vec)) AS rank
FROM documents
WHERE department = :user_dept
AND version_status = 'active'
ORDER BY score DESC LIMIT 50
),
bm25_results AS (
SELECT doc_id,
score(content) AS score,
ROW_NUMBER() OVER (ORDER BY score(content) DESC) AS rank
FROM documents
WHERE MATCH(content, :query_text)
AND department = :user_dept
AND version_status = 'active'
ORDER BY score DESC LIMIT 50
)
SELECT doc_id,
1.0/(60 + v.rank) + 1.0/(60 + b.rank) AS rrf_score
FROM vector_results v
FULL OUTER JOIN bm25_results b USING (doc_id)
ORDER BY rrf_score DESC
LIMIT 10; | БЗ | Vector | BM25 | SQL-фильтрлар | Бир сўров |
|---|---|---|---|---|
| Apache Doris | HNSW + brute-force | Inverted Index, BM25 score | Full SQL | Yes |
| Elasticsearch 8+ | kNN + HNSW | Native BM25 | Query DSL | Yes (not SQL) |
| PostgreSQL + pgvector | HNSW + IVFFlat | tsvector/tsquery | Full SQL | Yes |
| SingleStore | Vector Index | Full-text search | Full SQL | Yes |
6-қисм: Хулоса — RAG-инженер учун чек-лист
| Вазифа | Тавсия | Нега |
|---|---|---|
| Чат-бот | Pure Vector | Семантика аниқликдан муҳим |
| Enterprise RAG | Hybrid RRF | Маъно ҳам, аниқ мослашиш ҳам керак |
| Compliance/аудит | Hybrid + Reranker | Ҳар бир % recall муҳим |
| Кодлар бўйича қидирув | BM25 + vector fallback | Аниқлик семантикадан муҳим |
| GPU учун нол бюджет | BM25 → Hybrid | RRF GPU талаб қилмайди |
Hybrid Search 5 та правила
- Сукут бўйича Hybrid дан бошланг.
- Бирлаштириш учун RRF (k=60) ишлатинг.
- Hybrid етарли бўлмасагина Reranker қўшинг.
- Базалар зоопарки яратманг.
- Ўз маълумотларингизда текширинг.
Хулоса, сувсиз
- Нима: Нима: параллел вектор + BM25, RRF орқали бирлаштириш.
- Нега: Нега: вектор аниқ мослашишларда йутқазиди, калит сўзлар маънони тушунмайди.
- Ажойиб: Ажойиб: RRF оғир reranker сифатининг 96% беради, бепул.
- Қачон керак: Қачон керак: RAG, ҳужжат қидируви, кодлар/qisqartmalar.
FAQ
Hybrid Search oddiy қидирувдан қандай фарқ қилади?
Oddiy қидирув — ёки фақат тўлиқматн (калит сўзлар), ёки фақат векторли (маъно). Hybrid иккиласини бирлаштиради: битта сўров векторли ва BM25 қидирувни ишга туширади, натижалар RRF орқали бирлашади. Семантика ҳам, кодлар/qisqartmalarнинг аниқ мослашиши ҳам чиқади.
RRF нима ва нега k=60?
RRF (Reciprocal Rank Fusion) — икки рўйхат рангларини скорларни нормалаштирмай бирлаштириш формуласи. k=60 — асл мақоладан (Cormack et al., 2009) эмпирик танланган доимий, турли тўпламларда barqaror яхши натижа беради.
Hybrid Search учун GPU керакми?
Йўқ. Векторли қидирув (HNSW ва аналоги) ва BM25 CPU да ишлайди. GPU фақат Hybrid устига Reranker қўшсангиз — топ-N номзодларни қайта тартиблаш учун алохида модель — керак бўлади.
Hybrid устига Reranker қачон қўшиш керак?
Recall ҳал қилувчи бўлганда (compliance, аудит, ҳуқуқ) ва латентликка (150–500 ms) ва GPU га тўлашга тайёр бўлганда. Кўпчилик RAG-сценарийлар учун Hybrid RRF етарли.
Hybrid Search учун қайси базани танлаш керак?
Векторли қидирув (HNSW) ва тўлиқматн (инверт индекс, BM25) ва фильтрлар учун тўлиқ SQL қўллаби-қувватлаши керак. Мисоллар: Apache Doris, Elasticsearch 8+, PostgreSQL pgvector ва тўлиқматн билан.
Hybrid Search ни ўз маълумотларингизда текширмоқчимисиз? Икки ҳафтада пилот қуришга ёрдам берамиз.
./ЗАПРОСИТЬ_ПИЛОТ.shArxitektura, foydalanish stsenariylari, asosiy imkoniyatlar. 5000+ kompaniya production-da.
Data Warehouse vs Data Lake vs Lakehouse. Open table formats. Beshta noaniq afzallik.
RBAC, Embedding Drift, Semantic Confusion, audit, Prompt Injection. Yechimlar va tadqiqotlarga havolalar.
SuperSet, PowerBI, Tableau sekin ishlayaptimi? Sub-100ms, Auto Query Rewrite, bepul pilot.
MySQL Protocol, uchta DAG patterni, Stream Load. Job Scheduler vs Airflow.
Манбалар
- Cormack et al., «Reciprocal Rank Fusion outperforms...» — SIGIR 2009
- Microsoft Azure AI Search: Hybrid Search
- Robertson et al., «Okapi at TREC-3» — BM25, 1994
- Apache Doris — Inverted Index + Vector Search docs
- Бизнинг бенчмарк: тўлиқ натижалар github.com/datanomix