مفهوم اصلی
برای ساخت یک سیستم قدرتمند RAG (Retrieval-Augmented Generation)، ابتدا نیاز به یک نقشه و معماری کلی (Blueprint) داریم.
در این ماژول، مفاهیم پایهای RAG معرفی میشوند و اجزای اصلی یک سیستم RAG بررسی خواهند شد. همچنین در پایان، یک سیستم ساده RAG بهصورت عملی پیادهسازی میشود.
هدف اصلی این بخش، ایجاد درک اولیه از موارد زیر است:
- RAG چیست؟
- چرا باید از RAG استفاده کنیم؟
- چگونه RAG میتواند کیفیت پاسخهای تولیدشده توسط یک LLM (Large Language Model) را افزایش دهد؟
- معماری یک سیستم RAG چگونه است؟
- اجزای مختلف RAG چگونه با یکدیگر کار میکنند؟
معماری کلی یک سیستم RAG
یک سیستم RAG از ترکیب دو بخش اصلی تشکیل میشود:
1. LLM (Large Language Model)
مدلی که وظیفه تولید پاسخ را بر عهده دارد.
2. Retriever
کامپوننتی که وظیفه پیدا کردن اطلاعات مرتبط از یک منبع اطلاعاتی معتبر (Knowledge Base) را دارد.
روند کلی کار:
- کاربر یک سؤال یا درخواست به سیستم ارسال میکند.
- Retriever اطلاعات مرتبط را از Knowledge Base پیدا میکند.
- اطلاعات پیدا شده در اختیار LLM قرار میگیرد.
- LLM با استفاده از این اطلاعات، پاسخ دقیقتر و مرتبطتری تولید میکند.
چرا از RAG استفاده میکنیم؟
یکی از اهداف اصلی RAG، بهبود کیفیت پاسخهای تولیدشده توسط LLM است.
RAG با فراهم کردن اطلاعات مرتبط و قابل اعتماد برای LLM کمک میکند تا:
- پاسخها دقیقتر شوند.
- مدل بتواند از اطلاعات موجود در یک Knowledge Base مشخص استفاده کند.
- پاسخها بر اساس دادههای معتبر تولید شوند.
اجزای سیستم RAG
در ادامه دوره، هر بخش از سیستم RAG بهصورت عمیقتر بررسی خواهد شد:
Retriever
- مسئول جستجو و پیدا کردن اطلاعات مرتبط است.
- اطلاعات را از Knowledge Base استخراج میکند.
Vector Database
در بخشهای بعدی دوره، استفاده از Vector Database برای ذخیره و بازیابی اطلاعات بررسی خواهد شد.
LLM
در ادامه دوره، روشهای پیشرفتهتر استفاده از LLM در سیستمهای RAG بررسی میشود.
کاربردهای RAG
RAG در موقعیتهای مختلف قابل استفاده است.
در این ماژول:
- نمونههایی از سیستمهای RAG واقعی در محیط Production بررسی میشوند.
- فرصتهای استفاده از RAG در پروژههای مبتنی بر LLM بررسی خواهد شد.
هدف این است که بتوان کاربردهای عملی RAG را در پروژههای واقعی شناسایی کرد.
مسیر یادگیری دوره
در طول این دوره، سیستم RAG ساده اولیه به مرور توسعه داده خواهد شد.
مراحل توسعه شامل اضافه کردن قابلیتهای پیشرفتهتر است:
- ساخت اولین سیستم ساده RAG
- اضافه کردن Retriever قدرتمندتر
- استفاده از Vector Database
- استفاده پیشرفتهتر از LLM
- اضافه کردن تکنیکهای Monitoring و Evaluation برای بررسی عملکرد سیستم
تمرین عملی Module 1
در طول این ماژول:
- با کدهای نمونه کار خواهد شد.
- در پایان، اولین تمرین برنامهنویسی انجام میشود.
- در این تمرین، بخشهایی از یک سیستم ساده RAG پیادهسازی خواهد شد.
جمعبندی
- برای ساخت یک سیستم RAG قدرتمند، ابتدا باید معماری و اجزای اصلی آن را شناخت.
- RAG ترکیبی از یک LLM و یک Retriever است.
- Retriever اطلاعات مرتبط را از Knowledge Base پیدا میکند و در اختیار LLM قرار میدهد.
- هدف اصلی RAG افزایش کیفیت پاسخهای تولیدشده توسط LLM است.
- در ادامه دوره، سیستم ساده RAG با قابلیتهایی مانند Vector Database، Retriever پیشرفته و Monitoring توسعه داده خواهد شد.