গাইড

RAG কী? Retrieval-Augmented Generation সহজভাবে ব্যাখ্যা

RAG (retrieval-augmented generation) হলো AI মডেলকে আপনার নিজের তথ্য ব্যবহার করে প্রশ্নের উত্তর দেওয়ানোর একটি উপায়। কেউ প্রশ্ন করলে আপনার অ্যাপ প্রথমে ডকুমেন্টগুলোতে সবচেয়ে প্রাসঙ্গিক অংশগুলো খোঁজে, তারপর সেই অংশগুলো প্রশ্নের সাথে মডেলকে দেয়। মডেল শুধু প্রশিক্ষণের সময় যা শিখেছিল তার উপর নির্ভর না করে ওই লেখা থেকেই উত্তর তৈরি করে।

AI দিয়ে বানানোর সময় RAG কেন গুরুত্বপূর্ণ

একটি বড় ভাষা মডেল বিশ্ব সম্পর্কে অনেক কিছু জানে, কিন্তু আপনার ব্যবসা সম্পর্কে কিছুই জানে না: আপনার দাম, নীতি, পণ্যের ম্যানুয়াল, গত সপ্তাহের সাপোর্ট টিকিট। এর একটি প্রশিক্ষণের শেষ সময়সীমাও আছে, তাই সাম্প্রতিক কিছু সে জানে না। তবু প্রশ্ন করলে সে আত্মবিশ্বাসী, বিশ্বাসযোগ্য মনে হওয়া কিন্তু ভুল উত্তর দিতে পারে।

এর সমাধানের তিনটি মোটামুটি উপায় আছে:

পদ্ধতিএটি কী করেকখন ভালো
সব প্রম্পটে বসিয়ে দেওয়াপ্রতিটি প্রশ্নের সাথে সব ডকুমেন্ট পাঠানোঅল্প লেখা, যেমন কয়েক পাতা
RAGডকুমেন্ট খোঁজে, শুধু প্রাসঙ্গিক অংশ পাঠায়বড় বা বদলায় এমন সংগ্রহ: সাহায্য কেন্দ্র, ম্যানুয়াল, নোট
Fine-tuningউদাহরণ দিয়ে মডেলকে আরও প্রশিক্ষণ দেওয়াটোন, ফরম্যাট ও বারবার করা কাজ, বদলায় এমন তথ্য নয়

আধুনিক মডেল লম্বা প্রম্পট গ্রহণ করে, তাই ছোট FAQ-র জন্য প্রথম উপায়টি প্রায়ই যথেষ্ট। RAG-এর প্রয়োজন হয় যখন আপনার কাছে এত লেখা থাকে যা প্রতিবার পাঠাতে চান না, কারণ প্রতিটি শব্দ পাঠানোর খরচ ও সময় লাগে (দেখুন LLM API-র খরচ কীভাবে হয়)।

আপনি যদি "আমাদের ডকসের সাথে চ্যাট" ফিচার, সাপোর্ট সহকারী বা অভ্যন্তরীণ জ্ঞান-সরঞ্জাম বানান, তবে প্রায় নিশ্চিতভাবেই কোনো না কোনো RAG বানাচ্ছেন।

একটি দৈনন্দিন উপমা

একটি open-book পরীক্ষার কথা ভাবুন। যে ছাত্রকে মুখস্থ থেকে উত্তর দিতে হয়, সে ভুল মনে রাখতে পারে বা অনুমান করতে পারে। যে ছাত্র আগে সঠিক পাতা উল্টে পড়ে তারপর উত্তর দিতে পারে, সে অনেক বেশি নির্ভরযোগ্য, যদি সঠিক পাতা খুঁজে পায়।

  • ছাত্র হলো ভাষা মডেল।
  • বই হলো আপনার ডকুমেন্ট।
  • সঠিক পাতা উল্টানো হলো retrieval বা খোঁজ।
  • সেই পাতা থেকে উত্তর লেখা হলো generation।

RAG হলো সেই open-book সংস্করণ। আর পরীক্ষার মতোই, উত্তরের মান অনেকটাই নির্ভর করে সঠিক পাতাগুলো খুঁজে পাওয়া হলো কি না তার উপর।

RAG কীভাবে কাজ করে, ধাপে ধাপে

একটি সাধারণ RAG সেটআপের দুটি পর্ব আছে।

ডকুমেন্ট প্রস্তুত করা (আগে থেকে করা হয়):

  1. সংগ্রহ করুন মূল উপাদান: সাহায্য নিবন্ধ, PDF, নীতিমালা, পণ্যের তথ্য।
  2. Chunk করুন: বড় ডকুমেন্টগুলো ছোট টুকরোয় ভাগ করুন, প্রায়ই কয়েক অনুচ্ছেদের, যাতে খোঁজ শুধু প্রাসঙ্গিক অংশটুকু ফেরত দিতে পারে।
  3. Embed করুন প্রতিটি chunk: একটি embedding model-এ পাঠান, যা লেখাকে embedding-এ রূপান্তর করে, অর্থাৎ সংখ্যার একটি দীর্ঘ তালিকা যা অর্থ ধারণ করে। একই ধরনের বিষয়ের লেখার সংখ্যাগুলো কাছাকাছি হয়।
  4. সংরক্ষণ করুন chunk ও তাদের embedding এমন একটি ডেটাবেসে, যেখানে সাদৃশ্য দিয়ে খোঁজা যায় (যাকে সাধারণত vector database বা vector index বলা হয়)।

প্রতিবার প্রশ্নের উত্তর দেওয়া (প্রতিবার করা হয়):

  1. প্রশ্নটি embed করুন একই embedding model দিয়ে।
  2. Retrieve করুন সেই chunk যেগুলোর embedding প্রশ্নের সবচেয়ে কাছাকাছি, ধরা যাক সেরা পাঁচটি।
  3. প্রম্পট তৈরি করুন: নির্দেশনা, খুঁজে পাওয়া chunk ও প্রশ্ন।
  4. Generate করুন: ভাষা মডেল ওই chunk-এর উপর ভিত্তি করে উত্তর লেখে, আদর্শভাবে কোনগুলো ব্যবহার হয়েছে তা উল্লেখ করে।

অর্থের ভিত্তিতে খোঁজাই এটিকে কার্যকর করে: "আমার টাকা ফেরত পাওয়া" নিয়ে প্রশ্ন একটি "Refund policy" শিরোনামের chunk খুঁজে পেতে পারে, যদিও দুটিতে কোনো শব্দই মেলে না।

একটি কাজের উদাহরণ: একটি জিমের সহায়তা সহকারী

ধরুন একটি জিমের কাছে ৪০টি সাহায্য নিবন্ধ আছে এবং ওয়েবসাইটে একটি চ্যাট সহকারী চায়। একজন সদস্য জিজ্ঞেস করলেন: "ভ্রমণের সময় আমি কি আমার সদস্যপদ স্থগিত রাখতে পারি?"

অ্যাপ প্রশ্নটি embed করে এবং সবচেয়ে কাছের তিনটি chunk খুঁজে আনে। তার একটি বলে:

Membership freeze: Members on monthly plans can freeze their
membership for up to 2 months per year. Request it at the front
desk or in the app at least 7 days before the freeze starts.

তারপর মডেলে পাঠানো প্রম্পটটি দেখতে এমন:

You are the help assistant for Northside Gym.
Answer only from the sources below. If the answer isn't in them,
say you don't know and suggest contacting the front desk.
Mention which source you used.

[Source 1: Membership freeze] Members on monthly plans can freeze...
[Source 2: Cancelling your membership] ...
[Source 3: Guest passes] ...

Question: Can I pause my membership while I'm travelling?

আর মডেল উত্তর দেয়: "হ্যাঁ, মাসিক প্ল্যানে আপনি বছরে দুই মাস পর্যন্ত সদস্যপদ স্থগিত রাখতে পারেন। ফ্রন্ট ডেস্কে বা অ্যাপে শুরুর অন্তত ৭ দিন আগে অনুরোধ করুন (সূত্র: Membership freeze)।"

জিমটি কিছুই পুনঃপ্রশিক্ষণ দেয়নি। যখন তারা freeze-এর নীতি বদলায়, নিবন্ধটি আপডেট করে, অ্যাপ সেই chunk আবার embed করে, এবং পরের উত্তরে নতুন নীতি প্রতিফলিত হয়।

মূল শব্দাবলি

শব্দঅর্থ
LLMLarge language model, অর্থাৎ যে AI উত্তর লেখে। দেখুন LLM কী।
Embeddingকোনো লেখার অর্থ প্রকাশকারী সংখ্যার তালিকা।
Embedding modelযে মডেল embedding তৈরি করে। সাধারণত চ্যাট মডেল থেকে আলাদা এবং অনেক সস্তা।
Chunkকোনো ডকুমেন্টের একটি টুকরো, যা আলাদাভাবে খুঁজে পাওয়ার মতো আকারের।
Vector database / vector searchযে সংরক্ষণ একই ধরনের embedding-বিশিষ্ট আইটেম খুঁজে বের করে। কিছু সাধারণ ডেটাবেসেও এটি থাকে, যেমন Postgres-এ pgvector এক্সটেনশনের মাধ্যমে।
Top-kপ্রতি প্রশ্নে কতগুলো chunk খুঁজে আনা হয়।
Hybrid searchঅর্থভিত্তিক খোঁজের সাথে সাধারণ কীওয়ার্ড খোঁজ মেশানো, যা পণ্য কোডের মতো সঠিক শব্দ মেলাতে সাহায্য করে।
Context windowএকটি অনুরোধে মডেল একসাথে কতটা লেখা নিতে পারে তার সর্বোচ্চ সীমা।
Grounding / citationsউত্তরকে নির্দিষ্ট খুঁজে পাওয়া সূত্রের সাথে যুক্ত করা এবং সেগুলো দেখানো।

সাধারণ ভুল ধারণা

  • "RAG আমার তথ্য দিয়ে মডেলকে প্রশিক্ষণ দেয়।" দেয় না। মডেলের কিছুই বদলায় না; প্রশ্নের সময় সে শুধু অতিরিক্ত লেখা পড়ে।
  • "RAG মানে আর কোনো hallucination নেই।" মানে কম। খোঁজ সঠিক chunk মিস করলে, বা উত্তরটি ডকুমেন্টে না থাকলে, মডেল তবুও অনুমান করতে পারে। তাকে "আমি জানি না" বলার নির্দেশ দিন এবং যে প্রশ্নের উত্তর আপনি জানেন তা দিয়ে পরীক্ষা করুন।
  • "আমার একটি বিশেষ vector database লাগবে।" প্রায়ই লাগে না। অল্প তথ্যের জন্য আপনার বিদ্যমান ডেটাবেসের একটি vector এক্সটেনশন, বা এমনকি সাধারণ কীওয়ার্ড খোঁজও যথেষ্ট হতে পারে।
  • "বড় chunk মানেই ভালো।" খুব বড় হলে অপ্রাসঙ্গিক লেখা বেশি যায় (বেশি খরচ, বেশি বিভ্রান্তি); খুব ছোট হলে chunk তার অর্থ দেওয়া প্রসঙ্গ হারায়। সমন্বয় করতে হয়।
  • "সব কিছু আপলোড করে দিন।" পুরোনো, নকল বা পরস্পরবিরোধী ডকুমেন্ট পরস্পরবিরোধী উত্তর দেয়। উৎস উপাদান পরিষ্কার রাখাই প্রায়ই সবচেয়ে বড় উন্নতি।
  • "যে কেউ যেকোনো ডকুমেন্ট দেখতে পারে।" শুধু তখনই, যদি আপনি সেভাবে বানান। কিছু ডকুমেন্ট নির্দিষ্ট ব্যবহারকারীদের জন্য ব্যক্তিগত হলে, খোঁজকেই প্রশ্নকারী কে তা দিয়ে ছাঁকতে হবে, নয়তো সহকারী একজন গ্রাহকের তথ্য অন্যজনকে উদ্ধৃত করে দিতে পারে।

খরচ কত

একটি RAG ফিচারের সাধারণত তিনটি চলমান খরচ থাকে: ডকুমেন্ট embed করা (ছোট এবং বেশির ভাগই একবারের), প্রতিটি প্রশ্ন embed করা (অতি সামান্য), এবং ভাষা মডেলের কল (মূল খরচ, যা কতগুলো chunk পাঠানো হচ্ছে তার সাথে বাড়ে)। এর সাথে আপনার ডেটাবেসের সংরক্ষণ খরচও যোগ হয়। আপনার AI প্রদানকারী এগুলো আপনার নিজের অ্যাকাউন্টে বিল করে, তাই সেখানে একটি খরচের সীমা সেট করুন।

আপনার AI builder-কে কী জিজ্ঞেস করবেন

  • "RAG বানানোর আগে যাচাই করো: আমাদের কনটেন্ট কি এত ছোট যে শুধু প্রম্পটে যোগ করলেই চলে?"
  • "সাহায্য নিবন্ধগুলো কয়েক অনুচ্ছেদের chunk-এ ভাগ করো, প্রতিটি chunk-এর শিরোনাম ও সূত্রের লিংক রাখো, এবং embedding আমাদের ডেটাবেসে সংরক্ষণ করো।"
  • "Hybrid search ব্যবহার করো, অর্থভিত্তিক ও কীওয়ার্ড খোঁজ একসাথে, যাতে পণ্য কোড মেলে।"
  • "মডেলকে বলো শুধু খুঁজে পাওয়া সূত্র থেকে উত্তর দিতে, না জানলে বলতে, এবং প্রতিটি উত্তরের নিচে সূত্র দেখাতে।"
  • "শুধু সেই ডকুমেন্টই খোঁজো যা বর্তমান ব্যবহারকারী দেখার অনুমতি রাখে।"
  • "কোনো ডকুমেন্ট সম্পাদনা হলে স্বয়ংক্রিয়ভাবে আবার embed করো।"
  • "AI প্রদানকারীর key সার্ভারে একটি secret হিসেবে রাখো, কখনো ব্রাউজারে নয়।"
  • "প্রতিটি প্রশ্ন, খুঁজে পাওয়া chunk এবং উত্তর লগ করো, যাতে আমি খারাপ উত্তরগুলো পর্যালোচনা করতে পারি।"

Mythex-এ RAG

Mythex-এ কোনো তৈরি জ্ঞানভান্ডার বা RAG পণ্য নেই। এটি যা করে তা হলো আপনার অ্যাপের ভেতরে এর কোড লিখে দেওয়া: আপনি আপনার ডকুমেন্ট ও নিজের AI প্রদানকারীর key আনেন, যা একটি প্রজেক্ট secret হিসেবে সংরক্ষিত থাকে, আর এজেন্ট retrieval ও চ্যাট অংশ তৈরি করে, সংরক্ষণের জন্য প্রজেক্টের Postgres ডেটাবেস ব্যবহার করে। প্রদানকারীর ব্যবহার আপনার প্রদানকারী অ্যাকাউন্টে বিল হয়, Mythex ক্রেডিট থেকে নয়। ডকস পরামর্শ দেয় একটি সহজ AI ফিচার দিয়ে শুরু করতে এবং সেটি কাজ করলে RAG যোগ করতে; দেখুন AI অ্যাপ বানানো, এবং আমাদের গাইড AI চ্যাটবট অ্যাপ বানানো ও আপনার অ্যাপে AI ফিচার যোগ করা।

প্রশ্নোত্তর

সহজ ভাষায় RAG কী?

RAG (retrieval-augmented generation) হলো AI মডেলকে আপনার নিজের তথ্য থেকে উত্তর দেওয়ানোর একটি পদ্ধতি। মডেল উত্তর দেওয়ার আগে আপনার অ্যাপ ডকুমেন্টগুলোতে প্রশ্নের সবচেয়ে প্রাসঙ্গিক অংশগুলো খোঁজে এবং সেগুলো প্রম্পটের সাথে পাঠায়। ফলে উত্তরটি শুধু প্রশিক্ষণের সময় মডেল যা শিখেছিল তার উপর নির্ভর করে না, বরং সেই লেখার উপর ভিত্তি করে তৈরি হয়।

RAG কি আমার তথ্য দিয়ে AI-কে প্রশিক্ষণ দেয়?

না। RAG মডেলের কোনো পরিবর্তন করে না। প্রশ্ন করার মুহূর্তে এটি প্রাসঙ্গিক লেখা খোঁজে এবং প্রশ্নের সাথে মডেলকে দেয়। আপনি কোনো ডকুমেন্ট বদলালে পরের উত্তরেই নতুন সংস্করণ ব্যবহার হতে পারে।

RAG কি fine-tuning-এর মতোই?

না। Fine-tuning উদাহরণ দিয়ে মডেলকে আরও প্রশিক্ষণ দিয়ে তার আচরণ বদলায়, যা ধীর এবং শৈলী বা ফরম্যাটের জন্য ভালো। RAG প্রশ্নের সময় পড়ার জন্য মডেলকে তথ্য দেয়, যা বদলায় এমন জ্ঞান বা যা নির্ভুলভাবে উদ্ধৃত করতে হয় তার জন্য ভালো।

RAG কি AI-এর hallucination বন্ধ করে?

এটি তা কমায়, কিন্তু পুরোপুরি বন্ধ করে না। খোঁজ যদি ভুল অংশ আনে, অথবা উত্তরটি আপনার ডকুমেন্টে না থাকে, তবুও মডেল অনুমান করতে পারে। ভালো RAG অ্যাপ মডেলকে বলে দেয় কখন সে জানে না বলবে, এবং প্রতিটি উত্তরের সাথে কোন সূত্র ব্যবহার হয়েছে তা দেখায়।

Mythex · Pricing · AI দিয়ে যা খুশি বানান · ওয়েবসাইট ও অ্যাপের টেমপ্লেট · Mythex-এর তুলনা · AI অ্যাপ তৈরির শব্দকোষ · AI অ্যাপ তৈরির বিনামূল্যের টুল · English

English አማርኛ العربية Български Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)