পাঠ্যক্রম খুলুন
অগ্রসর পর্যায়

RAG: embedding, vector index ও নিজের ডেটা থেকে উত্তর

Embeddings, Vector Indexes, and RAG

এই পাঠের কুইজ ↓৫ মিনিট পড়াPHP 8.3+ · Laravel 12
এই পাঠের সূচিপত্র

এই পাঠে যা শিখবেন

  • Embedding ও nearest neighbor-এর অর্থ বুঝুন
  • RAG pipeline-এর failure আলাদা করুন
  • Retrieval-এ tenant authorization রাখুন

সমস্যা দিয়ে শুরু

Company policy assistant পুরোনো ছুটির নিয়ম বলছে। Model training data-তে নতুন policy নেই। Documents prompt-এ সব ঢোকালে context বড় হয় এবং অন্য tenant-এর confidential policy leak হতে পারে। Relevant অনুমোদিত evidence বেছে এনে উত্তর তৈরি করতে হবে।

সহজ করে বুঝি

RAG বা Retrieval-Augmented Generation প্রশ্নের সঙ্গে প্রাসঙ্গিক document chunks এনে model-এর context-এ যোগ করে। Embedding text-এর numeric representation; similarity relevance-এর সংকেত, সত্যের প্রমাণ নয়। Vector index approximate search দ্রুত করতে পারে কিন্তু কিছু nearest result miss হতে পারে।

পরিচিত একটি উপমা

পরীক্ষায় বই খোলা থাকলেও সঠিক পৃষ্ঠা খুঁজতে হয়, তারপর বুঝে উত্তর দিতে হয়। ভুল বই বা অন্য class-এর confidential note দিলে বই খোলা পরীক্ষাও নিরাপদ নয়। Retrieval permission এবং answer evidence দুটো আলাদা ধাপ।

নকশাটি দেখুন

Diagram লোড হচ্ছে…

Embedding ও nearest neighbor-এর অর্থ বুঝুন
Diagram-এর text flow দেখুন
flowchart LR
 Q[Question] --> E[Query Embedding]
 E --> V[(Tenant Filtered Vector Search)]
 V --> R[Rerank Authorized Chunks]
 R --> P[Prompt with Source IDs]
 P --> M[LLM]
 M --> A[Answer and Verified Citations]

Question-এর embedding একই compatible model family-তে তৈরি হয়। Vector search tenant ও access filter মেনে candidate আনে। Rerank relevance বাছাই করে। Prompt source identity রাখে; final citation real retrieved source-এ map করে। Model বানানো source ID অনুমোদন করা যাবে না।

PHP ও Laravel-এ প্রয়োগ

Laravel PostgreSQL query fragment; pgvector extension এবং document_chunks.embedding vector column আছে। $vectorLiteral validated dimension-এর numeric embedding থেকে তৈরি, user raw input নয়। Parameter binding SQL injection ঠেকাতে ব্যবহার করা হয়েছে; document ACL tenant filter-এর বাইরেও দরকার হতে পারে।

php
use Illuminate\Support\Facades\DB;

$chunks = DB::select(
    'SELECT id, document_id, content
     FROM document_chunks
     WHERE tenant_id = ? AND is_public_to_tenant = true
     ORDER BY embedding <=> CAST(? AS vector)
     LIMIT 5',
    [$verifiedTenantId, $vectorLiteral],
);

$sourceIds = array_map(fn ($chunk) => $chunk->id, $chunks);
logger()->info('retrieval.completed', [
    'tenant_id' => $verifiedTenantId,
    'source_ids' => $sourceIds,
]);
// Model output citations must be checked against this authorized source set.

এটি PHP 8.3+ ও Laravel 12-এর শিক্ষামূলক fragment; সম্পূর্ণ application নয়। সংশ্লিষ্ট route-এ authentication ও resource authorization প্রয়োগ করতে হবে। নিচের অনুশীলনে failure ইচ্ছা করে তৈরি করুন; শুধু সফল response দেখে correctness ধরে নেবেন না।

সুবিধা, সীমাবদ্ধতা ও trade-off

RAG current private knowledge আনতে পারে এবং source traceability দেয়। Retrieval miss হলে model এখনও ভুল উত্তর দিতে পারে। Approximate index latency কমায় কিন্তু recall tune করতে হয়। ছোট corpus-এ full-text বা exact search যথেষ্ট হতে পারে।

সাধারণ ভুল

  • Embedding similarity-কে factual confidence বলা।
  • Global vector search করে পরে UI-তে tenant hide করা।
  • Deleted document-এর chunks index-এ রেখে দেওয়া।

আরও একটু গভীরে

Hybrid search keyword matching ও vector similarity মেলাতে পারে, বিশেষত product code বা exact policy term-এ। Reranker candidate quality বাড়াতে পারে কিন্তু latency যোগ করে। Retrieval evaluation এবং answer grounding evaluation আলাদা dataset দিয়ে মাপুন।

একই নামের policy দুই tenant-এ রাখুন। Tenant A query-তে B-এর chunk কখনও context-এ যাবে না। Known-answer প্রশ্নে relevant chunk top results-এ আছে কি না মাপুন। Document সরিয়ে reindex করার পরে পুরোনো content ফেরে কি না পরীক্ষা করুন।

মনে রাখুন

  • Retrieval relevance, authorization ও freshness আলাদা।
  • RAG hallucination শূন্য করে না।
  • Citation retrieved evidence-এর সঙ্গে মিলান।

নিজে চেষ্টা করুন

বাংলা HR assistant-এর পাঁচটি evaluation question লিখুন: exact policy, ambiguous wording, unknown answer, permission denied ও recently changed document।

নিজের বোঝা যাচাই করুন

1. Embedding সত্য জানে?

না। এটি similarity representation; factual correctness source ও generation যাচাইয়ের বিষয়।

2. Tenant filter কখন?

Retrieval boundary-তেই; unauthorized chunk model context-এ পৌঁছানোর পরে hide করা দেরি।

3. Index দরকারই?

ছোট corpus-এ exact search যথেষ্ট হতে পারে; latency এবং recall দেখে সিদ্ধান্ত নিন।

4. Citation পেলেই সঠিক?

না। Source সত্যি আছে, অনুমোদিত এবং claim সমর্থন করে কি না যাচাই করুন।

5. No relevant evidence?

সৎভাবে জানা নেই বা clarification চাইতে হবে; arbitrary confident answer নয়।

আরও পড়ুন

এই পাঠের কুইজ

এই পাঠ থেকে ২টি প্রশ্ন। উত্তর দিয়ে ব্যাখ্যা দেখুন; অধ্যায়ের কুইজ আলাদাভাবে দিতে হবে।

এই পাঠের ২টি প্রশ্নের উত্তর দিন। পাস করতে দুটিই সঠিক হতে হবে।

জমা দেওয়ার পর সঠিক উত্তর ও ব্যাখ্যা দেখবেন। ফলাফল এই ব্রাউজারে সংরক্ষিত থাকবে। অনুশীলনের ফল অধ্যায় সম্পন্নের হিসাবে যোগ হয় না।

সব বিষয় মিলিয়ে অনুশীলন করুন →

অগ্রগতি এই ব্রাউজারে সংরক্ষিত থাকে। শুধু পাঠ খুললে সম্পন্ন হয় না।