RAG patterns (BN)
RAG-প্যাটার্ন (ইংরেজি: RAG Patterns) — এটি Retrieval-Augmented Generation (RAG) সিস্টেম নির্মাণের জন্য একটি স্থাপত্যগত ও পদ্ধতিগত পদ্ধতির সমষ্টি। এই প্যাটার্নগুলো বৃহৎ ভাষা মডেলের (LLM) মৌলিক সমস্যাগুলো — যেমন হ্যালুসিনেশন, জ্ঞানের অপ্রচলন এবং ডোমেন-নির্দিষ্ট জ্ঞানের অভাব — সমাধানের জন্য ডিজাইন করা হয়েছে, যেখানে LLM-কে বাহ্যিক, গতিশীলভাবে অ্যাক্সেসযোগ্য ডেটা উৎসের সাথে একীভূত করা হয়[1]। RAG-এর বিবর্তন সরল রৈখিক পাইপলাইন থেকে শুরু হয়ে জটিল মডুলার ও এজেন্ট-ভিত্তিক সিস্টেমে পরিণত হয়েছে[2]।
RAG-এর মূল প্যাটার্নসমূহ
প্রযুক্তির বিকাশের সাথে সাথে অনেক RAG-প্যাটার্ন আবির্ভূত হয়েছে, প্রতিটি নির্দিষ্ট সমস্যা সমাধান করে এবং মান, গতি ও খরচের মধ্যে নিজস্ব আপস বজায় রাখে।
- Classic RAG (ক্লাসিক RAG) — মৌলিক পদ্ধতি, যেখানে ব্যবহারকারীর প্রশ্নকে ভেক্টরাইজ করে ভেক্টর ডেটাবেসে প্রাসঙ্গিক অংশ (চাংক) অনুসন্ধান করা হয়; পাওয়া চাংকগুলো প্রশ্নের সাথে LLM-এ পাঠানো হয় উত্তর তৈরির জন্য[1]।
- Multi‑Query RAG (বহু-প্রশ্ন RAG) — LLM মূল প্রশ্নের একাধিক পুনর্বিন্যস্ত/পরিমার্জিত রূপ তৈরি করে; সব রূপে অনুসন্ধান চালানো হয় এবং ফলাফল একত্রিত করা হয়, যা সম্পূর্ণতা (recall) বৃদ্ধি করে[3]।
- HyDE (Hypothetical Document Expansion) — সংক্ষিপ্ত প্রশ্ন ও দীর্ঘ দলিলের মধ্যে «অর্থগত ব্যবধান» কাটিয়ে উঠতে ব্যবহৃত হয়। LLM প্রথমে একটি «অনুমানমূলক» উত্তর-দলিল তৈরি করে, তারপর তার embedding অনুসন্ধানে ব্যবহার করা হয়, যা প্রায়শই নিষ্কাশনের মান উন্নত করে[4]।
- Hybrid Retrieval (হাইব্রিড অনুসন্ধান) — সেমান্টিক (ভেক্টর) ও লেক্সিক্যাল (BM25) অনুসন্ধানের সমন্বয়। হাইব্রিড পদ্ধতি প্রোডাকশন সিস্টেমের মানদণ্ড হয়ে উঠেছে: ভেক্টর অনুসন্ধান অর্থগত মিল ধরে, আর BM25 সঠিক পরিভাষা/ID/অ্যাক্রোনিম খুঁজে পায়; ফলাফল fusion-এ একত্রিত হয়[5][6][7]।
- Re‑ranking (পুনঃ-র্যাংকিং) — দ্বি-স্তরীয় প্রক্রিয়া: দ্রুত retriever প্রার্থীদের একটি তালিকা দেয় (যেমন শীর্ষ-১০০), তারপর cross-encoder (বা অন্য reranker) প্রাসঙ্গিকতা পুনর্গণনা করে এবং LLM-এর জন্য সেরাগুলো (যেমন শীর্ষ-৫) বাছাই করে[8][9]।
- Query Routing (প্রশ্ন রাউটিং) — একাধিক বিভিন্নধর্মী ডেটা উৎস সম্বলিত সিস্টেমে (বিভিন্ন ইনডেক্স/ডেটাবেস/API) প্রশ্নকে router-এর (LLM-সিলেক্টর বা ক্লাসিফায়ার) মাধ্যমে সবচেয়ে উপযুক্ত উৎসে পাঠানো হয়; fallback কৌশলও অন্তর্ভুক্ত[10]।
- Agentic/Web RAG (এজেন্ট-ভিত্তিক RAG) — LLM একটি এজেন্ট হিসেবে কাজ করে: জটিল প্রশ্ন বিশ্লেষণ করে, পুনরাবৃত্তি পরিকল্পনা করে এবং প্রতিক্রিয়ার সাথে টুল ব্যবহার করে (ভেক্টর অনুসন্ধান, ওয়েব অনুসন্ধান)। সাধারণ বাস্তবায়ন হল ReAct প্যারাডাইম[11]; ওয়েব-কেন্দ্রিক সংগ্রহ ও বাধ্যতামূলক উদ্ধৃতির জন্য দেখুন WebGPT[12]।
সম্পর্কিত ও উদীয়মান প্যারাডাইম
- GraphRAG (গ্রাফ RAG) — প্রেক্ষাপট নির্বাচনের উৎস ও প্রক্রিয়া হিসেবে knowledge graph ব্যবহার করে; সত্তাগুলোর মধ্যে সংযোগের কাঠামো এবং পাঠ্যের ভিত্তিতে অনুসন্ধান চলে, যা multi‑hop প্রশ্নে ব্যাখ্যাযোগ্যতা ও মান বৃদ্ধি করে[13][14]।
- MM‑RAG (মাল্টিমোডাল RAG) — পাঠ্য ও দৃশ্যমান উৎস (স্ক্যান/ডায়াগ্রাম/টেবিল) নিয়ে কাজ করে। উদাহরণ: VisRAG মাল্টিমোডাল দলিলে VLM-কেন্দ্রিক retrieval ও generation প্রদর্শন করে[15]।
- Packaging & Context Handling (প্রেক্ষাপট প্যাকেজিং) — পাওয়া চাংকগুলো prompt-এ একীভূত করার উপায়: Stuff, Map‑Reduce, Refine, Tree‑of‑Chunks (RAPTOR)[16]।
প্যাটার্নের তুলনামূলক সারণী
| প্যাটার্ন | কখন প্রয়োগ করবেন | মানের উপর প্রভাব | খরচ / বিলম্ব | ঝুঁকি ও সীমাবদ্ধতা |
|---|---|---|---|---|
| Classic RAG | PoC এবং সমজাতীয় ভিত্তিতে সহজ Q&A | মৌলিক স্তর; embedding-এর উপর অনেকটা নির্ভরশীল[1] | কম | প্রশ্নের ভাষার প্রতি সংবেদনশীলতা; অপ্রাসঙ্গিক প্রেক্ষাপটের ঝুঁকি |
| Hybrid Retrieval | অধিকাংশ প্রোডাকশন পরিস্থিতিতে; অনেক কোড/অ্যাক্রোনিম/ID থাকলে | সম্পূর্ণতা বাড়ায়; সঠিক পরিভাষা ধরে[5][6][7] | কম/মাঝারি | fusion ওজন নির্ধারণ; দুটি ইনডেক্স |
| Re‑ranking | যখন উচ্চ নির্ভুলতা গুরুত্বপূর্ণ | শীর্ষ-k-তে precision উল্লেখযোগ্যভাবে বৃদ্ধি[8][9] | মাঝারি/বেশি | অতিরিক্ত বিলম্ব/খরচ |
| Multi‑Query | সংক্ষিপ্ত/বহু-দিকবিশিষ্ট প্রশ্ন | recall বাড়ায়[3] | মাঝারি | অতিরিক্ত/শোরগোলময় পুনর্বিন্যাস |
| HyDE | বড় «অর্থগত ব্যবধান» সহ সংক্ষিপ্ত/অস্পষ্ট প্রশ্ন | zero‑shot retrieval-এর মান উন্নত করে[4] | মাঝারি | «অনুমানমূলক» পাঠ্যের মানের উপর নির্ভরশীল |
| Query Routing | একাধিক উৎস (দলিল-ভিত্তি, SQL, API, ওয়েব) | সঠিক উৎসের মাধ্যমে প্রাসঙ্গিকতা বাড়ায়[10] | মাঝারি | রুট ভুল হলে = অনুসন্ধান ব্যর্থ |
| Agentic/Web RAG | জটিল, গবেষণামূলক, বহু-ধাপের প্রশ্ন | রৈখিক পাইপলাইনের বাইরের সমস্যা সমাধান করে[11][12] | বেশি | জটিলতা, লুপে আটকানোর ঝুঁকি; গার্ডরেইল প্রয়োজন |
ব্যবহারিক বাস্তবায়ন ও স্থাপত্য
বাস্তবায়নের ধাপসমূহ
- Proof of Concept (PoC): সীমিত কিন্তু প্রতিনিধিত্বমূলক ডেটাসেটে Classic RAG দিয়ে শুরু করুন embedding-এর মান ও মৌলিক retrieval পরীক্ষার জন্য[1]।
- Minimum Viable Product (MVP): «প্রচেষ্টা/প্রভাব»-এর সর্বোত্তম অনুপাত হিসেবে Hybrid Retrieval ও Re‑ranking বাস্তবায়ন করুন[5][8]।
- Production: প্রশ্ন রূপান্তর (HyDE, Multi‑Query) এবং প্রয়োজনে Query Routing যোগ করুন; observability (retrieval/rerank/উত্তর লগিং) এবং A/B-পরীক্ষা কনফিগার করুন[3][10]।
মূল উপাদানসমূহ
- চাংকিং (Chunking): মানের সবচেয়ে গুরুত্বপূর্ণ কারণগুলোর একটি। সরল নির্দিষ্ট আকার প্রায়ই অর্থগত একক ভেঙে দেয়। কাঠামো-ভিত্তিক (মার্কআপ অনুযায়ী) বা পুনরাবৃত্তিমূলক splitter (অনুচ্ছেদ → বাক্য → শব্দ) ব্যবহার করার পরামর্শ দেওয়া হয়[17][18]।
- Embedding ও মেটাডেটা: প্রতিটি চাংকের সাথে document_id, পৃষ্ঠা/বিভাগ, শিরোনাম, তারিখ সংরক্ষণ করুন; এটি ফিল্টারিং ও সঠিক উৎস উদ্ধৃতির জন্য প্রয়োজনীয়।
- হাইব্রিড retrieval ও rerank: BM25+ভেক্টর fusion (বা RRF) ব্যবহার করুন, তারপর ছোট প্রার্থী পুলে cross-encoder দিয়ে পুনঃ-র্যাংকিং করুন[5][6][8]।
- প্রেক্ষাপট প্যাকেজিং: দীর্ঘ corpus-এর জন্য Map‑Reduce, Refine বা Tree‑of‑Chunks বেছে নিন[16][18]।
সাধারণ ভুল (অ্যান্টি-প্যাটার্ন)
- শুধু ভেক্টর অনুসন্ধান BM25 ছাড়া → কোড/ID/অ্যাক্রোনিমে ব্যর্থতা[5][7]।
- অতিরিক্ত বড়/ছোট চাংক → প্রেক্ষাপট হারানো বা embedding «ভাসাভাসা» হয়ে যাওয়া[17]।
- প্রোডাকশনে rerank অনুপস্থিত → LLM শোরগোলময় প্রেক্ষাপট পায়[8]।
- observability ও উৎস ট্রেসিং নেই → ত্রুটির কারণ বিশ্লেষণ করা অসম্ভব (RAG মূল্যায়ন দেখুন)।
মান মূল্যায়ন ও মেট্রিক
মূল্যায়ন retriever স্তরে (অফলাইন) এবং end‑to‑end (generation) স্তরে পরিচালিত হয়।
Retriever মেট্রিক
- Hit Rate, Recall@k, MRR — প্রাসঙ্গিক দলিলের কভারেজ ও অবস্থান।
- Context Precision & Recall — নিষ্কাশিত প্রেক্ষাপট কতটা «আবর্জনা»-মুক্ত এবং সবকিছু ধারণ করে (RAGAS-এ বাস্তবায়িত)[19]।
Generator মেট্রিক (end‑to‑end)
- Faithfulness / Groundedness — প্রদত্ত প্রেক্ষাপটের সাথে উত্তরের সামঞ্জস্য।
- Answer Relevancy (উত্তরের প্রাসঙ্গিকতা) — মূল প্রশ্নের সাথে সামঞ্জস্য।
মেট্রিক স্বয়ংক্রিয় করতে open‑source ফ্রেমওয়ার্ক ব্যবহার করা হয়: RAGAS, TruLens (RAG triad: context relevance, groundedness, answer relevance), DeepEval[20][21]।
আরও দেখুন
- Retrieval-Augmented Generation (RAG)
- ভেক্টর ডেটাবেস
- Embedding
- AI-এজেন্ট
- GraphRAG
- MM-RAG
- LLM মূল্যায়ন ও benchmark
সাহিত্য
- Lewis, P., Perez, E., et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. NeurIPS. arXiv:2005.11401.
- Fan, W., Ding, Y., et al. (2024). A Survey on RAG Meeting LLMs: Towards Retrieval-Augmented Large Language Models. KDD. DOI:10.1145/3637528.3671470; arXiv:2405.06211.
- Gao, L., Ma, X., Lin, J., Callan, J. (2023). Precise Zero‑Shot Dense Retrieval without Relevance Labels (HyDE). ACL 2023. ACL Anthology; arXiv:2212.10496.
- Nogueira, R., Cho, K. (2019). Passage Re‑ranking with BERT. arXiv:1901.04085.
- Weaviate Docs. Hybrid search (BM25+Vector). [১].
- Qdrant Docs. Hybrid Queries. [২].
- Milvus Docs. Full‑Text Search / Hybrid Search. [৩] / [৪].
- LangChain Docs. MultiQueryRetriever. [৫].
- Cohere Docs. Rerank — best practices. [৬].
- LlamaIndex Docs. Routing (query routers/selectors). [৭].
- Yao, S., et al. (2023). ReAct: Synergizing Reasoning and Acting in Language Models. ICLR. arXiv:2210.03629.
- Nakano, R., et al. (2021). WebGPT: Browser‑assisted question‑answering with human feedback. arXiv:2112.09332.
- Microsoft Research Blog. GraphRAG: Unlocking LLM discovery on narrative private data. (2024). [৮].
- Microsoft Research. Project GraphRAG. (2024). [৯].
- Yu, S., et al. (2024). VisRAG: Vision‑based Retrieval‑augmented Generation on Multi‑modality Documents. arXiv:2410.10594.
- Sarthi, P., et al. (2024). RAPTOR: Recursive Abstractive Processing for Tree‑Organized Retrieval. arXiv:2401.18059.
- Es, S., et al. (2024). RAGAs: Automated Evaluation of Retrieval Augmented Generation. EACL (Demo). [১০].
- TruLens Docs. RAG Triad. [১১].
- DeepEval (GitHub). The LLM Evaluation Framework. [১২].
- LangChain Docs. RecursiveCharacterTextSplitter. [১৩].
- LlamaIndex Docs. HierarchicalNodeParser; Response Synthesis (Tree/Refine). [১৪]; [১৫].
টীকা
- ↑ 1.0 1.1 1.2 1.3 Lewis, P., Perez, E., et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. NeurIPS. arXiv:2005.11401.
- ↑ Fan, W., Ding, Y., et al. (2024). A Survey on RAG Meeting LLMs: Towards Retrieval-Augmented Large Language Models. KDD. DOI:10.1145/3637528.3671470; arXiv:2405.06211.
- ↑ 3.0 3.1 3.2 LangChain Docs. MultiQueryRetriever. https://python.langchain.com/docs/how_to/MultiQueryRetriever/
- ↑ 4.0 4.1 Gao, L., Ma, X., Lin, J., Callan, J. (2023). Precise Zero‑Shot Dense Retrieval without Relevance Labels. ACL 2023. arXiv:2212.10496; ACL Anthology: 2023.acl‑long.99.
- ↑ 5.0 5.1 5.2 5.3 5.4 Weaviate Docs. Hybrid search (BM25+Vector). https://docs.weaviate.io/weaviate/concepts/search/hybrid-search
- ↑ 6.0 6.1 6.2 Qdrant Docs. Hybrid Queries. https://qdrant.tech/documentation/concepts/hybrid-queries/
- ↑ 7.0 7.1 7.2 Milvus Docs. Full‑Text Search и Hybrid Search. https://milvus.io/docs/full-text-search.md; https://milvus.io/docs/hybrid_search_with_milvus.md
- ↑ 8.0 8.1 8.2 8.3 8.4 Nogueira, R., Cho, K. (2019). Passage Re‑ranking with BERT. arXiv:1901.04085.
- ↑ 9.0 9.1 Cohere Docs. Rerank — best practices. https://docs.cohere.com/docs/reranking-best-practices
- ↑ 10.0 10.1 10.2 LlamaIndex Docs. Routing (query routers/selectors). https://docs.llamaindex.ai/en/stable/module_guides/querying/router/
- ↑ 11.0 11.1 Yao, S., et al. (2023). ReAct: Synergizing Reasoning and Acting in Language Models. ICLR 2023. arXiv:2210.03629.
- ↑ 12.0 12.1 Nakano, R., et al. (2021). WebGPT: Browser‑assisted question‑answering with human feedback. arXiv:2112.09332.
- ↑ Microsoft Research Blog. GraphRAG: Unlocking LLM discovery on narrative private data. 2024. https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
- ↑ Microsoft Research. Project GraphRAG. https://www.microsoft.com/en-us/research/project/graphrag/
- ↑ Yu, S., et al. (2024). VisRAG: Vision‑based Retrieval‑augmented Generation on Multi‑modality Documents. arXiv:2410.10594; OpenReview: zG459X3Xge.
- ↑ 16.0 16.1 Sarthi, P., et al. (2024). RAPTOR: Recursive Abstractive Processing for Tree‑Organized Retrieval. arXiv:2401.18059.
- ↑ 17.0 17.1 LangChain Docs. RecursiveCharacterTextSplitter. https://python.langchain.com/docs/how_to/recursive_text_splitter/
- ↑ 18.0 18.1 LlamaIndex Docs. HierarchicalNodeParser и Tree Summarization. https://docs.llamaindex.ai/en/stable/api/llama_index.core.node_parser.HierarchicalNodeParser.html; https://docs.llamaindex.ai/en/stable/examples/low_level/response_synthesis/
- ↑ Es, S., et al. (2024). RAGAs: Automated Evaluation of Retrieval Augmented Generation. EACL (Demo). https://aclanthology.org/2024.eacl-demo.16/
- ↑ TruLens Docs. RAG Triad. https://www.trulens.org/getting_started/core_concepts/rag_triad/
- ↑ DeepEval (GitHub). https://github.com/confident-ai/deepeval