RAG patterns (BN)

From Systems analysis Wiki
Jump to navigation Jump to search

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]

প্যাটার্নের তুলনামূলক সারণী

মূল RAG-প্যাটার্নের তুলনা
প্যাটার্ন কখন প্রয়োগ করবেন মানের উপর প্রভাব খরচ / বিলম্ব ঝুঁকি ও সীমাবদ্ধতা
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] বেশি জটিলতা, লুপে আটকানোর ঝুঁকি; গার্ডরেইল প্রয়োজন

ব্যবহারিক বাস্তবায়ন ও স্থাপত্য

বাস্তবায়নের ধাপসমূহ

  1. Proof of Concept (PoC): সীমিত কিন্তু প্রতিনিধিত্বমূলক ডেটাসেটে Classic RAG দিয়ে শুরু করুন embedding-এর মান ও মৌলিক retrieval পরীক্ষার জন্য[1]
  2. Minimum Viable Product (MVP): «প্রচেষ্টা/প্রভাব»-এর সর্বোত্তম অনুপাত হিসেবে Hybrid RetrievalRe‑ranking বাস্তবায়ন করুন[5][8]
  3. 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. 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.
  2. 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. 3.0 3.1 3.2 LangChain Docs. MultiQueryRetriever. https://python.langchain.com/docs/how_to/MultiQueryRetriever/
  4. 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. 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. 6.0 6.1 6.2 Qdrant Docs. Hybrid Queries. https://qdrant.tech/documentation/concepts/hybrid-queries/
  7. 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. 8.0 8.1 8.2 8.3 8.4 Nogueira, R., Cho, K. (2019). Passage Re‑ranking with BERT. arXiv:1901.04085.
  9. 9.0 9.1 Cohere Docs. Rerank — best practices. https://docs.cohere.com/docs/reranking-best-practices
  10. 10.0 10.1 10.2 LlamaIndex Docs. Routing (query routers/selectors). https://docs.llamaindex.ai/en/stable/module_guides/querying/router/
  11. 11.0 11.1 Yao, S., et al. (2023). ReAct: Synergizing Reasoning and Acting in Language Models. ICLR 2023. arXiv:2210.03629.
  12. 12.0 12.1 Nakano, R., et al. (2021). WebGPT: Browser‑assisted question‑answering with human feedback. arXiv:2112.09332.
  13. 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/
  14. Microsoft Research. Project GraphRAG. https://www.microsoft.com/en-us/research/project/graphrag/
  15. Yu, S., et al. (2024). VisRAG: Vision‑based Retrieval‑augmented Generation on Multi‑modality Documents. arXiv:2410.10594; OpenReview: zG459X3Xge.
  16. 16.0 16.1 Sarthi, P., et al. (2024). RAPTOR: Recursive Abstractive Processing for Tree‑Organized Retrieval. arXiv:2401.18059.
  17. 17.0 17.1 LangChain Docs. RecursiveCharacterTextSplitter. https://python.langchain.com/docs/how_to/recursive_text_splitter/
  18. 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/
  19. Es, S., et al. (2024). RAGAs: Automated Evaluation of Retrieval Augmented Generation. EACL (Demo). https://aclanthology.org/2024.eacl-demo.16/
  20. TruLens Docs. RAG Triad. https://www.trulens.org/getting_started/core_concepts/rag_triad/
  21. DeepEval (GitHub). https://github.com/confident-ai/deepeval