🗺️ व्हेक्टर डेटाबेस शाळेच्या पद्धतीने शिका

अर्थानुसार लावलेले ग्रंथालय — semantic search, RAG आणि एजंट स्मरणाखालचे यंत्र. शाळेच्या पद्धतीने शिकवलेले: रेपोमध्ये खरा मिनी व्हेक्टर DB (~70 ओळी, शुद्ध Python, शून्य अवलंबित्व) जो तुम्ही पूर्ण वाचता — एका प्रामाणिक, मुद्दाम केलेल्या अपयशासह जे शिकलेली embeddings का असतात हे स्पष्ट करते.

🔢 embeddings📐 cosine 🏃 kNN & HNSW✂️ chunking 🏷️ metadata filters📖 RAG🏬 the landscape

💡 भाग 1 — कल्पना (1–4)

  • keywords strings जुळवतात; अर्थाला जागा लागतात 🗺️
  • मजकूर → निर्देशांक: खेळण्याचा मार्ग आणि खरा मार्ग
  • साम्य = दिशा (normalize करा, मग dot) 🧭
  • लाखो जागा: मैत्रीचा नकाशा (HNSW) 🏃

🔧 भाग 2 — खऱ्या जगात (5–8)

  • डेटाबेस संपूर्ण वाचा: 70 प्रामाणिक ओळी 🔬
  • कात्री & स्टिकर: chunking हा दर्जाचा लीव्हर ✂️
  • RAG सुरुवातीपासून शेवटपर्यंत, तुमच्या पान-शोधकासह 📖
  • pgvector → Pinecone: bake-off शिवाय निवड 🏬
# the 60-second wow — search by meaning, filters, and one honest failure:
git clone https://github.com/BaluRaut/learn-vectordb-school.git && cd learn-vectordb-school
python3 vectordb/demo.py

🗺️ संपूर्ण चित्र — एक आकृती, दोन्ही जगे

4K आवृत्तीसाठी क्लिक करा.

The big picture: the idea (seats, similarity, neighbors) and the practice (build, chunking, RAG, landscape)

🎓 8 धडे

एक git ब्रँच = एक कल्पना; ब्रँच 05 मध्ये धडे 01–05 आहेत. AI कोर्सच्या embeddings (L04) आणि RAG (L10) धड्यांनंतरचा नैसर्गिक खोल अभ्यास — आणि एजंट्स शाळेचा स्मरण-थर.

1

🗺️ व्हेक्टर DB का

अर्थानुसार लावलेले ग्रंथालय — keywords strings जुळवतात, कल्पना नव्हे.lesson-01-why-vector-dbधडा वाचा →आकृती पहा ↗
2

🔢 मजकुराचे व्हेक्टर

प्रत्येक मजकुराला जागा देणे — आपले प्रामाणिक खेळणे विरुद्ध शिकलेली embeddings.lesson-02-text-to-vectorsधडा वाचा →आकृती पहा ↗
3

📐 साम्य

दिशा अंतराला हरवते — आणि normalize-मग-dot ची युक्ती.lesson-03-similarityधडा वाचा →आकृती पहा ↗
4

🏃 जवळचे शेजारी

सगळ्यांना विचारणे विरुद्ध मैत्रीचा नकाशा (HNSW) — recall चा नॉब.lesson-04-nearest-neighborsधडा वाचा →आकृती पहा ↗
5

🔬 व्हेक्टर DB बांधा

70 प्रामाणिक ओळी: embed, cosine, store, filter, top-k.lesson-05-build-a-vector-dbधडा वाचा →आकृती पहा ↗
6

✂️ Chunking & metadata

कार्डे आणि रंगीत स्टिकर — कोणत्याही index पेक्षा मोठा दर्जाचा लीव्हर.lesson-06-chunking-metadataधडा वाचा →आकृती पहा ↗
7

📖 RAG जोडणी

पुस्तक उघडून परीक्षा, सुरुवातीपासून शेवटपर्यंत — आपल्या पान-शोधकासह.lesson-07-rag-wiringधडा वाचा →आकृती पहा ↗
8

🏬 लँडस्केप

pgvector, Pinecone, Chroma, FAISS — bake-off शिवाय निवड.lesson-08-landscapeधडा वाचा →आकृती पहा ↗
🏬 प्रदर्शन: product लँडस्केप — pgvector, Pinecone-वर्ग, Chroma/Qdrant/LanceDB, FAISS, आणि तुमचा-जुना-साठा-नव्या-युक्त्यांसह — प्रामाणिक तुलना, कंटाळवाण्या निवड-क्रमासह.

📐 धड्यांच्या आकृत्या — क्रमांक अनुसरा

निळा = कल्पना, हिरवा = खऱ्या जगात. स्वतंत्र पानावरही.

1 🗺️ व्हेक्टर DB का

अर्थानुसार लावलेले ग्रंथालय — keywords strings जुळवतात, कल्पना नव्हे.

🧒 सोप्या शब्दांत

साध्या ग्रंथालयात "kind to animals" शोधले तर तीच अक्षरे असलेली पुस्तकेच सापडतात: राजकारणावरची कादंबरी Animal Farm सुद्धा येते, आणि Every Living Thing सुटते. आता अशा hall ची कल्पना करा जिथे प्रत्येक पुस्तक त्याच विषयाच्या पुस्तकांशेजारी बसते. Vector DB म्हणजे तो hall: तुमच्या प्रश्नाला जागा मिळते, आणि सर्वात जवळची पुस्तके हेच उत्तर, एकही शब्द जुळत नसला तरी.

📖 नवे शब्दkeyword search — तुमच्या प्रश्नातली तीच अक्षरे असलेला text शोधणेvector DB — सर्वात जवळच्या जागा पाहून अर्थानुसार text शोधणारे भांडारembed — text ला अर्थाच्या hall मध्ये जागा (आकड्यांची यादी) देणेmetadata — प्रत्येक गोष्टीवरचे stickers, जसे room किंवा page, ज्यावरून filter करता येते
1📇 keywords — अक्षरे, अर्थ नव्हेquery: "kind to animals"✓ Kindness to Animals (शीर्षक जुळले)✗ Every Living Thing✗ Pet Care 101✓ Animal Farm (राजकारणावरची कादंबरी)अक्षरे जुळवते: राजकीय कादंबरी सापडते,"Every Living Thing" हरवते — एकही शब्द सामाईक नाही2🗺️ अर्थाचे सभागृह — पुस्तके ती कशाबद्दल आहेत त्यानुसार बसवलेलीEvery Living ThingKind to AnimalsPet Care 101Farm FriendsRocket SciencePlanets for KidsFractionsTimes TablesPoemsअवकाश & गणितकविताप्राणी & काळजी1 प्रश्नाला जागा द्या(embed करा)2 जवळच्या जागा शोधा3 ✅ "Every LivingThing" — एकहीसामाईक शब्द नाही3🗄️ vector DB, एका वाक्यातलाखो जागा (vectors) साठवा · प्रश्नाच्या सगळ्यात जवळच्या k, जलद परत द्या · stickers (metadata) ने गाळूनएवढेच काम — या कोर्समधले सगळे म्हणजे या तीन गोष्टी चांगल्या कशा करायच्या
⏪ आधी

Keyword search अक्षरे जुळवत असे, म्हणून "kind to animals" ला Animal Farm मिळाले आणि Every Living Thing पूर्ण सुटले.

💡 काय

Vector DB म्हणजे असे library hall जिथे प्रत्येक text शब्दांनुसार नाही तर अर्थानुसार ठरलेल्या जागेवर बसतो.

⚙️ कसे

तो तुमचा प्रश्न embed करून त्याला जागा देतो, जवळच्या k जागा पटकन शोधतो आणि stickers (metadata) ने filter करू शकतो.

🎯 का

प्रश्नाशी एकही शब्द जुळत नसला तरी योग्य पान सापडते, जे keywords कधीच करू शकत नाहीत.

🚀 पुढे

पुढे आपण शिकू की text ला मुळात जागा कशी मिळते: शब्दांचे vectors मध्ये रूपांतर (L02).

🧪 Try it here — शेल्फ keyword ने शोधा, मग अर्थाने

संपूर्ण धडा 01 वाचा →

2 🔢 मजकुराचे व्हेक्टर

प्रत्येक मजकुराला जागा देणे — आपले प्रामाणिक खेळणे विरुद्ध शिकलेली embeddings.

🧒 सोप्या शब्दांत

वाक्याला अर्थाच्या hall मध्ये बसवायला त्याचा पत्ता आकड्यांत लिहावा लागतो. आपला toy प्रत्येक शब्द 256 पैकी एका खोक्यात टाकतो, म्हणून त्याला फक्त सामायिक शब्द दिसतात आणि "pupils" व "students" यांचा काहीच संबंध नाही असे वाटते (0.00). खऱ्या embedding model ने खूप text मधून शिकलेले असते, म्हणून एकच अर्थ असलेल्या शब्दांना जवळचे आकडे मिळतात (0.91).

📖 नवे शब्दvector — आकड्यांची यादी, जी अर्थाच्या hall मधला पत्ता म्हणून काम करतेembedding — text ला मिळणारा vector, म्हणजे अर्थानुसार त्याची जागाhash bucket — आपली toy युक्ती: प्रत्येक शब्द 256 क्रमांकित खोक्यांपैकी एकात टाकला जातोembedding model — प्रशिक्षित program, जो सारख्या अर्थांना जवळचे आकडे देतो
1🔤 खेळण्यातला embedder — प्रत्येक शब्द 256 पैकी एका कप्प्यात hash करा, मग normaliseतोpupilsreadbookshash(word) % 256कप्पा 0255256 आकड्यांचा vector: बहुतेक शून्य, प्रत्येक शब्दाला एक उंचवटा · लांबी 1 करा · vectordb/vectordb.py embed() — 6 ओळी2😬 अदूरदृष्टी: फक्त सामाईक शब्द दिसतातABcosinepupils readstudents read0.50pupilsstudents0.00 ✗kind to animalsEvery Living Thing0.00 ✗समानार्थी शब्द वेगळ्या कप्प्यांत पडतात — खेळण्याला"pupils" आणि "students" एकच हे माहीत नाही3🧠 खरे embedding model — दिशा = अर्थ🧠 मॉडेलप्रशिक्षित network0.12-0.400.07…0.31768–3072 आकडे, दाटABcosinepupilsstudents0.91 ✓kind to animalsEvery Living Thing0.78 ✓database ला फरक पडत नाही: vectors आत, शेजारी बाहेर
⏪ आधी

Computer ला दोन वाक्यांचा अर्थ तुलना करता येत नाही; त्याला फक्त अक्षरांच्या साध्या strings दिसतात.

💡 काय

Embedding कोणत्याही text चे आकड्यांच्या यादीत (vector) रूपांतर करते, म्हणजेच अर्थाच्या hall मधली त्याची जागा.

⚙️ कसे

आपला toy प्रत्येक शब्द 256 पैकी एका bucket मध्ये hash करून normalise करतो; खरे model 768–3072 dense आकडे देते.

🎯 का

शिकलेल्या model ला "pupils" आणि "students" एकच आहेत हे कळते (0.91), तर toy ला फक्त सामायिक शब्द दिसतात (0.00).

🚀 पुढे

तुम्ही कोणता embedder वापरता याची database ला पर्वा नसते; पुढे आपण दोन vectors किती जवळ आहेत ते मोजू (L03).

🧪 Try it here — दोन वाक्ये लिहा आणि खेळण्यातल्या word-hash embedder ने तुलना करा

संपूर्ण धडा 02 वाचा →

3 📐 साम्य

दिशा अंतराला हरवते — आणि normalize-मग-dot ची युक्ती.

🧒 सोप्या शब्दांत

एकाच दिशेला रोखलेले दोन बाण एकच गोष्ट सांगतात, एक लांब आणि एक आखूड असला तरी. 10 पानांचा robot निबंध आणि एका ओळीची robot टीप एकाच दिशेला रोखलेली असतात, म्हणून cosine त्यांना 0.95 देतो, तर साधे अंतर लांबीमुळे फसते. म्हणून साठवताना आपण प्रत्येक बाणाची लांबी 1 करतो; मग तुलना म्हणजे प्रत्येक आकड्याला एक झटपट गुणाकार-बेरीज.

📖 नवे शब्दcosine similarity — दोन बाण किती एकाच दिशेला आहेत: 1 म्हणजे एकसारखे, 0 म्हणजे संबंध नाहीdistance — दोन बिंदू किती दूर आहेत; एक text खूप लांब असेल तर फसतेnormalise — बाणाची दिशा तशीच ठेवून त्याची लांबी 1 करणेdot product — जुळणारे आकडे गुणून त्यांची बेरीज करणे — computer साठी झटपट
1🧭 cosine — दिशांची तुलना10 पानांचा रोबोट निबंध1 ओळीची रोबोट चिठ्ठीसमुद्रावरची कविताछोटा कोन → cosine 0.95 ✓मोठा कोन → 0.12अर्थ म्हणजे दिशा; लांबी फक्त आवाज 📢2📏 अंतर — स्थानांची तुलना (लांबीने फसते)निबंधचिठ्ठीकवितालांब: 235जवळ: 150 ✗अंतरानुसार चिठ्ठी कवितेजवळ — मजकुरासाठी चुकीचा निकाल3⚡ युक्ती — लिहिताना normalise करा, मग वाचताना cosine म्हणजे साधा dot product0.60.8÷ लांबी 1.0 →0.60.8a·b = 0.6×0.28 + 0.8×0.96 = 0.94प्रत्येक dimension ला एक गुणाकार-बेरीज, hardware-जलद — प्रत्येक vector DB normalised vectors साठवतो किंवा तुमच्यासाठी करतो
⏪ आधी

साधे अंतर मोजल्यावर लांबीमुळे फसगत होत असे: एका ओळीची टीप स्वतःच्या निबंधापेक्षा समुद्राच्या कवितेजवळ दिसत असे.

💡 काय

Cosine similarity दोन vectors ची दिशा तुलना करते, कारण अर्थ म्हणजे दिशा आणि लांबी म्हणजे फक्त आवाज.

⚙️ कसे

लिहिताना प्रत्येक vector ची लांबी 1 करा (normalise), मग वाचताना cosine म्हणजे साधा dot product होतो.

🎯 का

Text साठी योग्य निर्णय मिळतो (निबंध आणि टीप 0.95) आणि प्रत्येक dimension ला फक्त एक गुणाकार-बेरीज लागते.

🚀 पुढे

तुलना स्वस्त आहे, पण लाखो vectors शी तुलना नाही; पुढे आपण जवळचे शेजारी पटकन शोधू (L04).

🧪 Try it here — लांबी बदला — cosine ला फरक पडत नाही, अंतराला पडतो

संपूर्ण धडा 03 वाचा →

4 🏃 जवळचे शेजारी

सगळ्यांना विचारणे विरुद्ध मैत्रीचा नकाशा (HNSW) — recall चा नॉब.

🧒 सोप्या शब्दांत

तुमच्या सर्वात जवळ कोण राहतो ते शोधायला तुम्ही सर्व 7 million लोकांना विचारू शकता: अचूक, पण खूपच हळू. किंवा जवळ असलेल्या मित्राला विचारा, मग त्याच्या आणखी जवळच्या मित्राला, आणि काही उड्यांत पोहोचा. HNSW म्हणजे तो मैत्रीचा नकाशा. कधी कधी तो खरा शेजारी चुकवू शकतो, म्हणून एक बटण असते: जास्त मेहनत करून जास्त शोधा, किंवा वेगाने थोडे कमी.

📖 नवे शब्दnearest neighbour — ज्याची जागा तुमच्या प्रश्नाच्या सर्वात जवळ आहे ती साठवलेली गोष्टbrute force — प्रत्येक गोष्टीशी तुलना — अचूक पण millions साठी हळूHNSW — मैत्रीचा नकाशा, ज्यावर प्रश्नाजवळ असलेल्याकडे उड्या मारत जाताrecall — खऱ्या जवळच्या गोष्टींपैकी प्रत्यक्ष किती सापडल्या (ef=64 ला 93%)
1🚶 brute force — सगळ्या N ना विचाराअचूक · N तुलना7k: ठीक · 7M: 💀2🗺️ HNSW — मैत्रीचा नकाशालोभी उड्या: नेहमी प्रश्नाच्या जवळच्यामित्राकडे जा — log-सारखी पावले3🏘️ IVF — वस्त्याफक्त जवळचा जिल्हा / जिल्हेशोधा — nprobe4🎯 recall चे बटण — वेग विरुद्ध किती खरे शेजारी सापडतातrecall 80% · 0.4 ms · ef=16recall 93% · 0.9 ms · ef=64recall 98% · 2.1 ms · ef=256recall 100% · 40 ms · brute force
⏪ आधी

Brute force दर वेळी सर्व N vectors ना विचारतो: 7k साठी ठीक, पण 7 million साठी खूपच हळू.

💡 काय

HNSW आणि IVF सारखे approximate nearest neighbour indexes बहुतेक vectors वगळतात तरी जवळजवळ सर्व खरे शेजारी शोधतात.

⚙️ कसे

HNSW मैत्रीच्या नकाशावर चालतो, नेहमी प्रश्नाजवळच्या मित्राकडे उडी मारतो; IVF फक्त जवळचे districts शोधतो.

🎯 का

तुमच्या हातात recall चे बटण असते: ef=64 ने 0.9 ms मध्ये 93% recall, तर brute force ने 40 ms मध्ये 100%.

🚀 पुढे

Embed, cosine आणि search समजल्यावर, पुढे आपण स्वतः एक छोटा पूर्ण vector DB बनवू (L05).

🧪 Try it here — 2,000 यादृच्छिक बिंदूंवर शोधा: brute force विरुद्ध लोभी graph चाल
8

संपूर्ण धडा 04 वाचा →

5 🔬 व्हेक्टर DB बांधा

70 प्रामाणिक ओळी: embed, cosine, store, filter, top-k.

🧒 सोप्या शब्दांत

खरे यंत्र कसे चालते ते पाहायचा सर्वात चांगला मार्ग म्हणजे स्वतः toy बनवणे. आपला MiniVectorDB फक्त 70 ओळींचा आहे: embed text चे आकडे बनवतो, cosine दोघे किती जवळ आहेत ते गुण देतो, आणि search आधी योग्य sticker (room 3A) असलेली cards ठेवतो, मग गुण देऊन, क्रम लावून top k परत देतो. प्रत्येक खरा vector DB याच पायऱ्या करतो, फक्त जास्त वेगाने.

📖 नवे शब्दMiniVectorDB — vectordb/vectordb.py मधला आपला स्वतःचा 70 ओळींचा vector DBtop-k — फक्त k सर्वोत्तम जुळण्या ठेवणे, उदा. सर्वोत्तम 2filter — गुण देण्याआधी चुकीचा sticker असलेली cards बाजूला काढणेscore — card प्रश्नाच्या किती जवळ आहे ते सांगणारा आकडा
1🔬 70 प्रामाणिक ओळी — vectordb/vectordb.py, तीन भागांत1 🔢 embed(text)शब्द hash → 256 dims → normalise← इथे model call ने बदला2 📐 cosine(a, b)sum(x*y) — एक ओळ(normalise ने स्वस्त केले)3 🗄️ MiniVectorDBadd: embed + साठवा (id, vector, मजकूर, stickers)search: आधी 🏷️ ने गाळा → गुण → लावा → top-ksearch("rules about pets", k=2, where={"room": "3A"})① sticker ने गाळा② गुण (cosine)③ लावा · top-2c1room:3Aवर्गात कुत्रे नाहीत0.71c2room:3Bपाळीव प्राण्यांना परवानगी लागतेc3room:3Ahamster खाऊ घालण्याचे वेळापत्रक0.64c4room:3Aजेवणाच्या वेळा0.08c5room:3Aसहलीत प्राणी0.58c1वर्गात कुत्रे नाहीत0.71c3hamster खाऊ घालण्याचे वेळापत्रक0.64मुद्दाम नसलेले: persistence, deletes, ANN index — खऱ्या database मधला प्रत्येक एक धडा, आणि त्यांच्या अस्तित्वाचे कारणpython3 vectordb/demo.py प्रत्येक धड्याचा प्रश्न या फाइलवर चालवते
⏪ आधी

Vector DB एखाद्या जादूच्या बंद डब्यासारखा वाटत असे; निकाल चुकीचे आल्यावर त्यावर विश्वास ठेवणे किंवा debug करणे कठीण.

💡 काय

MiniVectorDB म्हणजे vectordb/vectordb.py मधल्या 70 प्रामाणिक ओळी: embed, cosine, store, filter आणि top-k.

⚙️ कसे

search("rules about pets", k=2, where={"room": "3A"}) आधी sticker ने filter करतो, मग score, sort करून top-2 ठेवतो.

🎯 का

एकदा स्वतः बनवला की प्रत्येक खरा vector DB म्हणजे याच पायऱ्या, फक्त जास्त वेगाने आणि सुरक्षितपणे.

🚀 पुढे

Persistence, deletes आणि ANN index मुद्दाम नाहीत; पुढे चांगली cards आणि stickers सर्वात महत्त्वाची (L06).

🧪 Try it here — mini vector DB मध्ये cards जोडा आणि sticker filter ने शोधा

संपूर्ण धडा 05 वाचा →

6 ✂️ Chunking & metadata

कार्डे आणि रंगीत स्टिकर — कोणत्याही index पेक्षा मोठा दर्जाचा लीव्हर.

🧒 सोप्या शब्दांत

400 पानांचे handbook कोणी एका गठ्ठ्यात शिकत नाही, म्हणून आपण त्याचे छोटे cards करतो, प्रत्येक एका कल्पनेबद्दल. शेजारच्या cards मध्ये एक वाक्य पुन्हा येते, म्हणजे कोणतीही कल्पना अर्धवट कापली जात नाही. प्रत्येक card ला room:3A आणि page 12 सारखे stickers मिळतात, म्हणजे फक्त योग्य room ठेवता येते आणि उत्तर कोणत्या पानावरून आले ते दाखवता येते.

📖 नवे शब्दchunk — मोठ्या document मधून कापलेले एक छोटे, स्वतंत्र cardoverlap — दोन शेजारच्या cards मधले एक सामायिक वाक्य, म्हणजे कल्पना तुटत नाहीmetadata — प्रत्येक card वर लावलेले room, kind आणि page सारखे stickerscitation — उत्तर कोणत्या पानावरून आले ते दाखवणे — पावती
1✂️ chunking — पुस्तकाचे स्वयंपूर्ण cards करा, stickers सह📚 handbook.pdf400 पानेp12 PetsDogs are notallowed in class.Hamsters need afeeding rota…p13 Trips…✂️Dogs are not allowed in class. Hamsters need a feeding rota.🏷️ room:3A · kind:rules · p12Hamsters need a feeding rota. Trips need a signed form.🏷️ room:3A · kind:rules · p12–13Trips need a signed form and a packed lunch.🏷️ room:all · kind:trips · p13🔁 overlapएक वाक्य पुन्हा येतेम्हणजे कोणतीच कल्पना अर्धी कापली जात नाही🏷️ stickers = metadataगुण देण्याआधी गाळाआणि पान उद्धृत करा (पावत्या)नैसर्गिक सांध्यांवर कापा (शीर्षके, परिच्छेद) · प्रत्येक card एकटे अर्थपूर्ण हवे · आकार आणि overlap दस्तऐवजांनुसार — अनेकदा काहीशे tokens2❌ खूप मोठे आणि खूप लहानखूप मोठे: एक card, पाच विषयत्याची जागा पाचांच्या मध्ये पडते —कोणाच्याच जवळ नाहीखूप लहान: "…ते शुक्रवारपर्यंत परत करायचे"काय परत? विषय आधीच्या card वर होताchunking कोणत्याही index पेक्षा गुणवत्ता जास्त हलवते
⏪ आधी

एका मोठ्या chunk मध्ये पाच विषय मिसळले म्हणून त्याची जागा कोणाच्याच जवळ नव्हती, आणि छोट्या chunks चा विषयच हरवला.

💡 काय

Chunking पुस्तकाचे स्वतंत्र cards मध्ये तुकडे करते, आणि metadata stickers प्रत्येक card वर room, kind आणि page लिहितात.

⚙️ कसे

Headings सारख्या नैसर्गिक ठिकाणी कापा, एक वाक्य overlap ठेवा म्हणजे कल्पना अर्धवट तुटणार नाही, आणि प्रत्येक card ला stickers लावा.

🎯 का

Chunking उत्तराचा दर्जा कोणत्याही index निवडीपेक्षा जास्त बदलते, आणि stickers मुळे filter करता येते व page सांगता येते.

🚀 पुढे

चांगली cards हा RAG चा कच्चा माल आहे, जिथे search model ला उघडे पुस्तक देते (L07).

🧪 Try it here — handbook वेगवेगळ्या आकारांनी आणि overlaps ने कापा
123

संपूर्ण धडा 06 वाचा →

7 📖 RAG जोडणी

पुस्तक उघडून परीक्षा, सुरुवातीपासून शेवटपर्यंत — आपल्या पान-शोधकासह.

🧒 सोप्या शब्दांत

Open-book परीक्षेत आधी योग्य पाने शोधायची, मग फक्त त्यांच्यावरूनच उत्तर लिहायचे. RAG हेच AI साठी करते: प्रश्नाचे आकडे बनतात, vector DB सर्वोत्तम cards शोधतो, आणि ती cards "फक्त यांच्यावरून उत्तर दे आणि त्यांचा उल्लेख कर" या नियमासह model च्या बाकावर ठेवली जातात. म्हणून उत्तर पावतीसह येते, जसे "Yes, with a feeding rota [c3]".

📖 नवे शब्दRAG — Retrieval-Augmented Generation: आधी पाने शोधा, मग AI ला उत्तर देऊ द्याretrieve — प्रश्नाशी सर्वात जुळणारी काही cards आणणेprompt — model वाचते ते सगळे: नियम, cards आणि प्रश्नgrounded — उत्तर दिलेल्या cards मधून येते, अंदाजातून नाही
1🗂️ index वेळ — एकदा, आणि दस्तऐवज बदलले की पुन्हा📚 docshandbook, सूचना✂️ chunkcards + stickers🔢 embedmodel → vectors🗄️ storevector DB2❓ प्रश्नाची वेळ — प्रत्येक query, उघड्या पुस्तकाची परीक्षा❓ "मी माझा hamsterआणू शकतो का?"🔢 embedतेच model🔎 search k=4+ where room=3A🧐 rerankऐच्छिक🪑 डेस्क — model ला दिसणारा promptफक्त या cards वरून उत्तर द्या; त्यांचे ids उद्धृत करा.[c1] Dogs are not allowed in class …[c3] Hamsters need a feeding rota …→ "हो, खाऊ घालण्याच्या वेळापत्रकासह [c3]." ✅ आधारित, पावतीसहवाईट उत्तर debug करणे:1 योग्य card सापडले का? → chunking, embedding, k2 ते डेस्कवर होते आणि दुर्लक्षित झाले?→ promptAI शाळा (L08–L10), आततुमचा page-finder
⏪ आधी

Language model फक्त स्मरणातून उत्तर देत असे, तुमच्या handbook बद्दल अंदाज बांधत, तपासायला कोणतीही पावती न देता.

💡 काय

RAG म्हणजे open-book परीक्षा: योग्य cards शोधा, बाकावर ठेवा, आणि फक्त त्यांच्यावरूनच उत्तर द्या.

⚙️ कसे

प्रश्न त्याच model ने embed करा, room=3A सह k=4 शोधा, मग prompt द्या: फक्त या cards वरून उत्तर द्या, ids सांगा.

🎯 का

उत्तरे पुराव्यासह येतात, जसे "Yes, with a feeding rota [c3]", आणि चुकीचे उत्तर debug करणे सोपे होते.

🚀 पुढे

AI school (L08–L10) तुमचा स्वतःचा page-finder आत ठेवून हेच पुढे नेते; पुढे खरा vector DB निवडा (L08).

🧪 Try it here — शाळेच्या handbook ला प्रश्न विचारा — आधी शोधा, मग cards वरून उत्तर

संपूर्ण धडा 07 वाचा →

8 🏬 लँडस्केप

pgvector, Pinecone, Chroma, FAISS — bake-off शिवाय निवड.

🧒 सोप्या शब्दांत

Vector store निवडणे म्हणजे अभ्यासाची जागा निवडण्यासारखे: आधीच वापरता ते ग्रंथालय, घरचे टेबल, किंवा दुसरे कोणी सांभाळते तो भाड्याचा hall. तुमच्याकडे आधीच Postgres आणि सुमारे 10 million पेक्षा कमी vectors असतील तर pgvector ही सोपी निवड. Laptop वरच्या prototype ला Chroma, servers चालवायला कोणी नसलेल्या team ला Pinecone सारखी managed service, आणि research ला FAISS.

📖 नवे शब्दpgvector — Postgres मध्ये vector search जोडते, जो database कदाचित आधीच तुमच्याकडे आहेmanaged service — दुसरे कोणी ते चालवते, backup घेते आणि वाढवते; तुम्ही भाडे भरताChroma — तुमच्या program मध्येच चालणारा छोटा vector DB, कल्पना करून पाहायला उत्तमFAISS — स्वतःचे बनवायला किंवा research साठी low-level search engine library
1🏬 परिसर — नियंत्रण विरुद्ध चालवणेतुम्ही स्वतः चालवता → दुसरे कोणी चालवतेखालच्या पातळीचे नियंत्रण ↑⚙️ FAISS · hnswlibइंजिनचे भाग🧪 Chroma · LanceDBप्रयोगशाळेचे टेबल, embedded🐘 pgvectorतुमच्याकडे आधीच असलेले ग्रंथालय🧪 Qdrant · Weaviateस्वतः host किंवा cloud☁️ Pinecone & coभाड्याचे सभागृह🔎 OpenSearch · Elasticजुने भांडार, नवी युक्ती2🧭 स्पर्धा न घेता निवडआधीच Postgres वर, < ~10M vectors→ 🐘 pgvectorops टीम नाही, आत्ता scale हवे→ ☁️ managedलॅपटॉपवर prototype→ 🧪 Chromaproduction मध्ये आधीच search engine→ 🔎 त्यात vectors जोडास्वतःचा DB बांधणे / संशोधन→ ⚙️ FAISSSQL + vectors एका backup मध्येहा युक्तिवाद बहुधा आधी जिंकतो
⏪ आधी

एकही vector साठवण्याआधी teams pgvector, Pinecone, Chroma आणि FAISS मध्ये लांबलचक स्पर्धा घेत असत.

💡 काय

हा नकाशा vector stores दाखवतो: तुम्ही स्वतः चालवता ती low-level engines ते दुसरे कोणी चालवते ते managed halls.

⚙️ कसे

आधीच Postgres आणि ~10M पेक्षा कमी vectors: pgvector; ops team नाही: managed; laptop prototype: Chroma; research: FAISS.

🎯 का

SQL आणि vectors एकाच backup मध्ये ठेवणे सहसा आधी जिंकते, आणि चालवायला व सुरक्षित ठेवायला नवी system लागत नाही.

🚀 पुढे

आधी तुमच्याकडे असलेल्या store पासून सुरुवात करा, आणि scale किंवा operations ची खरी गरज आल्यावरच बदला.

🧪 Try it here — तुमची परिस्थिती सांगा आणि सुरुवातीचा पर्याय मिळवा

संपूर्ण धडा 08 वाचा →

धडा 01 सुरू करा → 🏬 लँडस्केप 📐 सर्व 8 धड्यांच्या आकृत्या 🧪 प्रश्नमंजुषा 🗓️ अभ्यास योजना 🧠 AI कोर्स