رویکرد Retrieval Augmented Generation (RAG) یک معماری ترکیبی در حوزه هوش مصنوعی است که برای حل محدودیت‌های مدل‌های زبان بزرگ به کار می‌رود. مدل‌های زبانی بزرگ تنها به دانشی که در هنگام آموزش به آن‌ها ارائه شده محدود هستند، یعنی دانشی که در زمان آموزش در مجموعه داده‌ها وجود داشته است. این محدودیت باعث می‌شود که مدل‌های معمولی نتوانند به سؤالاتی که به اطلاعات به‌روز یا تخصصی نیاز دارند، به خوبی پاسخ دهند.

فرض کنید یک فروشگاه اینترنتی می خواهد برای کمک به تیم پشتیبانی از یک چت بات برای پاسخگویی به سوالات مشتریان استفاده کند. هوش مصنوعی تنها بر اساس داده هایی که موجود در مدل خود به سوالات پاسخ می دهد و اشراف کاملی نسبت به محصولات این فروشگاه ندارد. با رویکرد RAG جزیئات و اطلاعات کاملی از محصولات را در اختیار هوش مصنوعی قرار می دهیم تا پاسخ های آن دقیق تر و نزدیک تر به درخواست مشتریان باشد.



اجزای اصلی RAG

بازیابی اطلاعات (Retriever): در این بخش، از یک مدل جستجو یا بازیابی اطلاعات استفاده می‌شود که قادر است از یک پایگاه داده بزرگ (مثل مجموعه‌ای از اسناد، کتاب‌ها، مقالات، یا منابع آنلاین) اطلاعات مرتبط با درخواست کاربر را استخراج کند.

برای بازیابی اطلاعات، معمولاً از روش‌های Embedding (کدگذاری معنایی) استفاده می‌شود که شباهت معنایی بین سوال کاربر و اطلاعات موجود در پایگاه داده را محاسبه می‌کند. نتیجه‌ی این مرحله یک مجموعه از اسناد یا پاراگراف‌های مرتبط است که اطلاعات پایه را در اختیار سیستم قرار می‌دهد.

تولید متن (Generator) پس از بازیابی اطلاعات، یک مدل زبان بزرگ مانند GPT یا BERT استفاده می‌شود تا از اسناد بازیابی‌شده برای تولید پاسخ مناسب به پرسش کاربر استفاده کند. مدل زبان این اسناد را پردازش کرده و با استفاده از توانایی زبانی خود پاسخی جامع و مرتبط تولید می‌کند.



مراحل کار

به طور خلاصه فرایند کار به این شکل است:

پرسش کاربر: کاربر سوالی را به مدل ارائه می‌دهد.

بازیابی اسناد: سیستم، اطلاعات مرتبط با پرسش کاربر را از یک پایگاه داده بزرگ استخراج می‌کند.

تولید پاسخ: مدل زبان از اسناد بازیابی شده برای تولید پاسخی دقیق و متنی استفاده می‌کند.

خروجی نهایی: پاسخ نهایی که ترکیبی از اطلاعات بازیابی شده و توانایی زبانی مدل است، به کاربر ارائه می‌شود.

اما فرایند کامل تر را در دیاگرام زیر میتوانید مشاهده کنید:

۱. تقسیم و آماده‌سازی اطلاعات

در ابتدا، سیستم به دنبال اطلاعاتی است که ممکن است به درد بخورد. این اطلاعات می‌تواند شامل متن‌های مختلف، مقالات، یا هر نوع داده دیگری باشد. برای اینکه بتوانیم از این اطلاعات استفاده کنیم، آنها را به بخش‌های کوچک‌تر تقسیم می‌کنیم و هر بخش را به یک شکل عددی تبدیل می‌کنیم که کامپیوتر بفهمد.

مثلا فرض کنید شما یک سری مقاله علمی دارید. این مقالات را به پاراگراف‌های کوچک‌تر تقسیم می‌کنیم و به صورت کدهایی که کامپیوتر بفهمد، ذخیره می‌کنیم.

۲. ذخیره‌سازی این کدهای عددی

این کدهای عددی که نشان‌دهنده بخش‌های مختلف اطلاعات هستند، در یک پایگاه داده مخصوص ذخیره می‌شوند. این پایگاه داده مانند یک کتابخانه است که وقتی نیاز به اطلاعاتی داشتیم، می‌توانیم به سرعت به آن دسترسی پیدا کنیم.

۳. پرسیدن سوال و جستجو

حالا وقتی شما یک سوال از سیستم می‌پرسید، سیستم ابتدا سوال شما را تجزیه و تحلیل می‌کند. سپس، این سوال را به یک کد عددی تبدیل می‌کند و به پایگاه داده سر می‌زند تا بخش‌هایی از اطلاعات که به سوال شما مرتبط هستند را پیدا کند.

مثلا شما می‌پرسید “آخرین یافته‌های علمی درباره آب و هوا چیست؟” سیستم سوال شما را به کدی تبدیل می‌کند و در میان مقالاتی که قبلاً ذخیره کرده، به دنبال پاراگراف‌هایی می‌گردد که به آب و هوا مربوط می‌شوند.

۴. تولید پاسخ با استفاده از اطلاعات بازیابی‌شده

بعد از اینکه سیستم اطلاعات مرتبط را پیدا کرد، این اطلاعات را به همراه دانش خودش ترکیب می‌کند و یک پاسخ تولید می‌کند. این پاسخ شامل اطلاعات به‌روز و دقیق است.

مثلا سیستم از اطلاعات مقالات علمی که درباره آب و هوا پیدا کرده، استفاده می‌کند و یک پاسخ جدید و کامل برای شما تولید می‌کند که هم شامل یافته‌های جدید است و هم براساس دانش عمومی درباره آب و هوا است.



کاربردهای RAG

  • پاسخ‌دهی به سوالات: RAG می‌تواند به عنوان یک سیستم پاسخ‌دهی به سوالات پیچیده یا تخصصی به کار رود.
  • کمک به چت‌بات‌ها: چت‌بات‌ها با استفاده از RAG می‌توانند به سوالات متنوعی که نیازمند دسترسی به منابع خارجی است، پاسخ دهند.
  • سیستم‌های جستجو: می‌تواند برای بهبود سیستم‌های جستجوی اطلاعات در پایگاه‌های داده بزرگ مانند مقالات علمی، مستندات فنی، و یا داده‌های عمومی به کار رود.
  • موتورهای توصیه‌گر: در سیستم‌های توصیه‌گر، RAG می‌تواند بر اساس اطلاعات بازیابی‌شده از منابع خارجی پیشنهاداتی دقیق‌تر ارائه دهد.



مزایای RAG

  • دسترسی به اطلاعات به‌روز: برخلاف مدل‌های زبانی که فقط بر اساس داده‌های ثابت و قبلی آموزش داده شده‌اند، RAG می‌تواند به اطلاعات جدید یا منابع به‌روز دسترسی پیدا کند و آن‌ها را در پاسخ‌های خود استفاده کند.
  • دقت بالاتر: به دلیل بازیابی اطلاعات دقیق از منابع مختلف، مدل RAG می‌تواند پاسخ‌های بسیار دقیق‌تر و تخصصی‌تری را ارائه دهد.
  • قابلیت کاربرد در حوزه‌های تخصصی: در حوزه‌هایی مانند پزشکی، حقوق، علم داده و …، RAG می‌تواند با دسترسی به مقالات و اسناد تخصصی، پاسخ‌های دقیق‌تر و مبتنی بر اطلاعات به‌روز ارائه دهد.