RAG چیست؟ Retrieval-Augmented Generation، Vector DB و Grounding به زبان ساده

RAG مخفف Retrieval-Augmented Generation است؛ روشی که قبل از تولید پاسخ، اطلاعات مرتبط را از منبع بیرونی مثل اسناد، وبسایت، پایگاه داده یا knowledge base پیدا میکند و در اختیار مدل قرار میدهد. هدف این است که پاسخ LLM به داده تازه، اختصاصی و قابلبررسی متصل شود.
RAG در سه مرحله
- Retrieve: پیدا کردن بخشهای مرتبط از منبع داده؛
- Augment: اضافهکردن اطلاعات بازیابیشده به context مدل؛
- Generate: تولید پاسخ بر اساس prompt و اطلاعات بازیابیشده.
چرا RAG لازم است؟
مدل زبانی همه اطلاعات جهان را در زمان پاسخ در اختیار ندارد. training ممکن است قدیمی باشد، اطلاعات داخلی شرکت در داده آموزشی نباشد و مدل برای ادعای خود citation قابلاعتماد نداشته باشد. RAG بهجای آموزش دوباره مدل، اطلاعات مناسب را هنگام درخواست وارد context میکند.
RAG چگونه کار میکند؟
یک pipeline معمولاً اسناد را ingest میکند، آنها را به بخشهای کوچکتر یا chunk تقسیم میکند و برای هر بخش یک embedding میسازد. هنگام سؤال کاربر، سیستم query را نیز به embedding تبدیل کرده و بخشهایی را که از نظر معنایی مرتبطترند پیدا میکند. نتیجه بازیابی وارد prompt مدل میشود و پاسخ بر اساس آن تولید میشود.
Embedding چیست؟
Embedding نمایش عددی متن، تصویر یا داده است که مفهوم و شباهت را در یک فضای چندبعدی نشان میدهد. متنهایی که معنای نزدیکتری دارند معمولاً embedding نزدیکتری هم دارند. این ویژگی برای semantic search مفید است.
Vector Database چیست؟
Vector Database پایگاه دادهای است که embeddingها را ذخیره و بر اساس شباهت جستوجو میکند. سیستمهای RAG میتوانند از vector database، موتور جستوجوی سنتی، SQL یا ترکیب چند روش استفاده کنند.
Chunking چرا مهم است؟
اگر یک سند ۱۰۰ صفحهای بهصورت یک بلوک ذخیره شود، retrieval دقیق سخت میشود. اگر chunk بیش از حد کوچک باشد، context لازم از بین میرود. اندازه و overlap مناسب chunk به نوع داده بستگی دارد: قرارداد، مقاله، FAQ و کد ساختار یکسانی ندارند.
Reranking چیست؟
retriever ممکن است دهها نتیجه احتمالی برگرداند. Reranker نتایج را دوباره ارزیابی میکند تا مرتبطترین بخشها بالاتر قرار گیرند. کیفیت retrieval اهمیت زیادی دارد؛ اگر اطلاعات نامرتبط به مدل داده شود، پاسخ میتواند grounded باشد اما همچنان غلط یا بیربط باشد.
Grounding چیست؟
Grounding یعنی پاسخ مدل به اطلاعات مشخص و قابلرجوع متصل باشد. یک سیستم RAG خوب باید بتواند نشان دهد کدام سند یا chunk پشت پاسخ بوده و در کاربردهای حرفهای citation یا source link ارائه کند.
آیا RAG جلوی Hallucination را میگیرد؟
ریسک را کاهش میدهد اما صفر نمیکند. مدل ممکن است retrieved context را اشتباه تفسیر کند، منبع نادرست بازیابی شود یا citation به جملهای وصل شود که واقعاً آن ادعا را پشتیبانی نمیکند. بنابراین evaluation همچنان ضروری است.
RAG با Long Context چه تفاوتی دارد؟
اگر همه داده لازم داخل context window جا شود، میتوان کل سند را مستقیم به مدل داد. اما برای knowledge base بزرگ، ارسال همه داده در هر درخواست گران و ناکارآمد است. RAG فقط بخشهای مرتبط را بازیابی میکند و میتواند token مصرفی را پایین بیاورد.
RAG یا Fine-tuning؟
| نیاز | RAG | Fine-tuning |
|---|---|---|
| اطلاعات تازه | مناسب | ضعیفتر |
| داده اختصاصی شرکت | مناسب | در بعضی موارد |
| citation | قابل پیادهسازی | بهتنهایی نه |
| تغییر سبک/رفتار | محدود | مناسبتر |
| بهروزرسانی دانش | با تغییر منبع سریع | نیاز به training جدید |
Hybrid Search چیست؟
جستوجوی semantic همیشه برای نام دقیق، کد محصول یا عدد بهترین نیست. Hybrid Search جستوجوی keyword و vector را ترکیب میکند تا هم شباهت معنایی و هم match دقیق را ببیند.
RAG چه کاربردهایی دارد؟
- چتبات داخلی شرکت؛
- پاسخ بر اساس policy و handbook؛
- جستوجو در قرارداد و اسناد حقوقی؛
- پشتیبانی مشتری با knowledge base؛
- تحلیل گزارش و پژوهش؛
- پرسش از مستندات فنی؛
- دستیار فروش و محصول؛
- داده پزشکی یا علمی با کنترل دسترسی مناسب.
RAG در AI Agent چه نقشی دارد؟
AI Agent ممکن است هنگام انجام task چند بار به داده بیرونی نیاز داشته باشد. RAG میتواند ابزار retrieval Agent باشد. در Agentic RAG، مدل حتی میتواند query را به چند سؤال فرعی تقسیم کند، retrieval را تکرار کند و در صورت ناکافیبودن نتیجه دوباره جستوجو کند.
ریسکهای RAG چیست؟
- داده منبع اشتباه یا قدیمی؛
- permission نامناسب روی اسناد خصوصی؛
- prompt injection داخل سند؛
- chunking ضعیف؛
- retrieval بیربط؛
- هزینه embedding و search؛
- citation ظاهری اما نادرست؛
- نشت داده میان کاربران یا tenantها.
چطور کیفیت RAG را بسنجیم؟
فقط کیفیت متن نهایی کافی نیست. باید retrieval و generation جدا ارزیابی شوند. معیارهایی مثل recall نتایج، relevance، groundedness، citation accuracy و کیفیت پاسخ به سؤال مهماند.
چه زمانی RAG لازم نیست؟
برای تولید خلاقانه، بازنویسی ساده یا taskی که به دانش بیرونی نیاز ندارد، RAG ممکن است فقط هزینه و پیچیدگی اضافه کند. معماری باید از مسئله شروع شود، نه از مد روز.
منابع
Google Cloud – Generative AI glossary
NVIDIA Developer – Retrieval-Augmented Generation
تصویر شاخص: Taylor Vick / Unsplash
جمعبندی
RAG روشی برای اتصال LLM به اطلاعات بیرونی است: داده مرتبط بازیابی میشود، وارد context میشود و مدل پاسخ را بر اساس آن تولید میکند. RAG میتواند پاسخ را تازهتر و قابلاستنادتر کند، اما کیفیت آن کاملاً به retrieval، منبع داده و evaluation وابسته است.