مفهوم اصلی
بعد از یادگیری مبانی Information Retrieval، در این ماژول هدف این است که این مفاهیم را به یک محیط واقعی و Production منتقل کنیم.
اگرچه میتوان بسیاری از تکنیکهای Retrieval را با استفاده از یک Relational Database سنتی پیادهسازی کرد، اما زمانی که تعداد اسناد بسیار زیاد شود، مشکلات عملکردی ایجاد میشوند.
مشکل دیتابیسهای سنتی در مقیاس بزرگ
در سیستمهای کوچک:
- یک دیتابیس رابطهای میتواند برای ذخیره و جستجوی اطلاعات کافی باشد.
اما وقتی تعداد اسناد به:
- میلیونها Document
- حتی میلیاردها Document
برسد، برخی عملیاتها بهشدت کند میشوند.
مشکل اصلی: عملیات Vector
این مشکل بهخصوص در عملیات Vector که پایه اصلی Semantic Search هستند، دیده میشود.
در Semantic Search باید:
- Vector مربوط به Prompt
- با Vector تعداد زیادی Document
مقایسه شود.
با افزایش حجم داده:
- تعداد محاسبات افزایش مییابد.
- سرعت Retrieval کاهش پیدا میکند.
راهحل: Vector Database
برای حل این مشکل از:
Vector Database
استفاده میشود.
Vector Database چیست؟
Vector Database نوعی دیتابیس است که بهطور خاص برای:
- ذخیره Vectorهای بسیار زیاد
- جستجوی سریع در میان Vectorها
بهینه شده است.
اهمیت Vector Database در RAG
به دلیل قابلیتهای آن، Vector Databaseها تقریباً با سیستمهای:
RAG (Retrieval-Augmented Generation)
همراه شدهاند.
زیرا بخش مهمی از RAG، مخصوصاً:
- Semantic Search
- Vector Retrieval
به جستجوی سریع Vectorها نیاز دارد.
اهداف Module 3
در این ماژول موارد زیر بررسی میشوند:
1. دلیل بهینه بودن Vector Databaseها
یاد میگیریم:
- چرا Vector Databaseها برای Vector Retrieval سریعتر هستند.
- چگونه برای جستجوی حجم زیادی از Vectorها طراحی شدهاند.
2. کار عملی با Vector Database
در این بخش:
- استفاده عملی از یک Vector Database انجام میشود.
- انواع جستجوهای مختلف اجرا خواهند شد.
تکنیکهای Production در RAG
علاوه بر Vector Database، در سیستمهای واقعی RAG تکنیکهای دیگری نیز برای بهبود Retriever استفاده میشوند.
مهمترین آنها:
1. Document Chunking
تقسیم Documentهای بزرگ به بخشهای کوچکتر.
هدف:
- افزایش کیفیت Retrieval
- پیدا کردن بخش دقیقتر اطلاعات مورد نیاز
2. Query Parsing
پردازش و تحلیل Query کاربر قبل از انجام Retrieval.
هدف:
- درک بهتر درخواست کاربر.
- بهبود کیفیت جستجو.
3. Re-ranking
مرتبسازی دوباره نتایج Retrieval.
هدف:
- قرار دادن مرتبطترین اسناد در رتبههای بالاتر.
- افزایش کیفیت خروجی Retriever.
تمرین عملی Module 3
در پایان این ماژول:
- یک Assignment برنامهنویسی وجود خواهد داشت.
- مفاهیم یادگرفتهشده در عمل پیادهسازی خواهند شد.
جمعبندی
- برای سیستمهای کوچک میتوان از Relational Database استفاده کرد، اما در مقیاس میلیونها یا میلیاردها سند محدودیت ایجاد میشود.
- عملیات Vector، مخصوصاً در Semantic Search، در مقیاس بزرگ بسیار سنگین میشوند.
- Vector Databaseها برای ذخیره و جستجوی سریع Vectorها طراحی شدهاند.
- Vector Database یکی از اجزای اصلی سیستمهای RAG Production است.
- در این ماژول علاوه بر Vector Database، تکنیکهایی مانند Chunking، Query Parsing و Re-ranking برای بهبود Retriever بررسی میشوند.