RAG چیست و چه نقشی در هوش مصنوعی دارد؟
تولید تقویتشده با بازیابی RAG سرنام Retrieval-Augmented Generation یک تکنیک قدرتمند در دنیای هوش مصنوعی است که پتانسیل بهبود دقت و ارتباط پاسخهای ارائه شده توسط مدلهای زبانی بزرگ را دارد. برخلاف روشهای سنتی که صرفا بر دانش داخلی خود برای تولید پاسخها تکیه میکنند، RAG از یک مرحله بازیابی برای جستوجوی اطلاعات مرتبط از منابع خارجی مانند پایگاههای داده یا اسناد وب استفاده میکند. این اطلاعات بازیابی شده به مدل زبانی ارائه میشوند و به آن اجازه میدهند تا پاسخهای آگاهانهتر و دقیقتری ایجاد کند. RAG میتواند به ویژه در سناریوهایی مفید باشد که مدل زبانی فاقد دانش خاص یا اطلاعات بهروز است. با ترکیب دانش داخلی با اطلاعات بازیابی شده، RAG میتواند پاسخهایی تولید کند که هم دقیق و هم مرتبط با زمینه هستند. با این حال، RAG چالشهای مخصوص به خود را دارد. یک چالش، یافتن و بازیابی اطلاعات مرتبط از مجموعه دادههای بزرگ است. چالش دیگر، ادغام یکپارچه اطلاعات بازیابی شده در فرآیند تولید پاسخ است. علیرغم این چالشها، RAG به عنوان یک تکنیک امیدوارکننده برای بهبود قابلیتهای مدلهای زبانی بزرگ ظاهر شده است و به همین دلیل تحقیقات در این زمینه به سرعت در حال پیشرفت است.
دلیل استفاده از RAG چیست؟
مدلهای زبانی بزرگ با وجود تواناییهای چشمگیر خود در تولید متن، در برخی موارد با محدودیتهایی مواجه هستند. یکی از این محدودیتها، عدم دسترسی به اطلاعات بهروز و دقیق است. به طور کلی، مدلهای زبانی بزرگ، دانش خود را از طریق آموزش بر روی مجموعه دادههای عظیم به دست میآورند، اما این دانش میتواند به مرور زمان منسوخ شود یا شامل اطلاعات نادرست باشد. به همین دلیل، استفاده از RAG میتواند به عنوان راهکاری برای غلبه بر این محدودیتها مورد استفاده قرار گیرد. RAG با افزودن یک مرحله بازیابی به فرآیند تولید پاسخ، به مدلهای زبانی بزرگ اجازه میدهد تا به منابع اطلاعاتی خارجی مانند پایگاههای داده یا اسناد وب دسترسی داشته باشد. این رویکرد به مدلها امکان میدهد تا اطلاعات مرتبط با سوال کاربر را جستوجو و بازیابی کنند و سپس از این اطلاعات برای تولید پاسخهای دقیقتر و بهروزتر استفاده کند. در نتیجه، RAG میتواند به طور قابل توجهی کیفیت پاسخهای تولید شده توسط مدلهای زبانی را بهبود دهد و آنها را برای طیف گستردهتری از کاربردها مناسبتر سازد.
مکانیزم کاری RAG چگونه است؟
همانگونه که اشاره کردیم RAG تکنیک قدرتمندی است که برای بهبود عملکرد مدلهای زبانی بزرگ با استفاده از اطلاعات خارجی طراحی شده است. مدلهای زبانی مثل GPT-3، دانش زیادی را در طول آموزش خود به دست میآورند، اما این دانش محدود به دادههای آموزشی آنها است و نمیتواند شامل اطلاعات جدید یا خاص باشد. RAG با افزودن یک مرحله بازیابی به فرآیند تولید پاسخ، این مشکل را حل میکند. وقتی یک سوال به مدل زبانی داده میشود، RAG ابتدا یک مرحله بازیابی را اجرا میکند.

در این مرحله، سیستم به دنبال اطلاعات مرتبط با پرسش در منابع خارجی مانند پایگاههای داده، اسناد وب یا حتی دانشنامههای خاص دامنه میگردد. این جستوجو میتواند با استفاده از تکنیکهای مختلفی مانند جستوجوی کلمات کلیدی، جستوجوی معنایی یا تطبیق بر اساس بردار انجام شود. هدف، یافتن قطعاتی از اطلاعات است که بیشترین ارتباط را با پرسش کاربر دارند. سپس، اطلاعات بازیابی شده به همراه پرسش اصلی به مدل زبانی ارائه میشود. مدل زبانی از این اطلاعات اضافی برای تولید پاسخ استفاده میکند. با داشتن اطلاعات مرتبط، مدل زبانی میتواند پاسخهای دقیقتر، مرتبطتر و غنیتر تولید کند. برای مثال، اگر پرسش در مورد یک رویداد تاریخی خاص باشد، RAG میتواند اطلاعات مربوط به آن رویداد را از منابع تاریخی بازیابی کند و به مدل زبانی ارائه دهد. در ادامه، مدل زبانی میتواند از این اطلاعات برای تولید یک پاسخ جامع و دقیق استفاده کند.
یکی از مزایای کلیدی RAG این است که به مدل زبانی اجازه میدهد با اطلاعات جدید و بهروز سازگار شود. از آنجایی که مرحله بازیابی میتواند به طور مداوم اطلاعات جدید را از منابع خارجی بازیابی کند، مدل زبانی میتواند پاسخهایی ارائه دهد که همیشه با آخرین اطلاعات هماهنگ هستند. این امر به ویژه در زمینههایی مانند اخبار، علم و فناوری که اطلاعات به سرعت تغییر میکنند، بسیار مهم است. همچنین، RAG میتواند به مدل زبانی کمک کند تا ابهامات موجود در سوال کاربر را برطرف کند. گاهی اوقات، سوالات کاربران ممکن است مبهم یا ناقص باشند. RAG با بازیابی اطلاعات مرتبط، میتواند به مدل زبانی کمک کند تا منظور کاربر را بهتر درک کند و پاسخ مناسبتری ارائه دهد.
مهمترین مولفههای RAG چیستند؟
RAG یک رویکرد نوین در حوزه هوش مصنوعی، بهویژه در ارتباط با مدلهای زبانی بزرگ است که چالشهای رایج مانند “توهمزایی” (hallucination) و عدم دسترسی به اطلاعات بهروز را برطرف میکند. اساس کار RAG این است که به جای اینکه LLM صرفا بر دادههایی که از قبل روی آنها آموزش دیده است تکیه کند، توانایی بازیابی اطلاعات مرتبط از یک منبع خارجی معتبر و بهروز را پیدا میکند. این فرآیند معمولا در دو مرحله انجام میشود: ابتدا، هنگامی که کاربر یک پرسش یا فرمان را مطرح میکند، سیستم RAG به سراغ یک پایگاه دانش خارجی (مانند مجموعهای از اسناد داخلی شرکت، صفحات وب، مقالات علمی، یا پایگاه دادههای مشخص) رفته و بخشهای مرتبطی از این اطلاعات را بازیابی میکند.
این پایگاه دانش اغلب به صورت یک پایگاه داده برداری (Vector Database) سازماندهی شده است که جستوجو و یافتن اطلاعات معنایی مرتبط را بسیار سریع و کارآمد میکند. سپس، این اطلاعات بازیابی شده به همراه پرسش اصلی کاربر، به عنوان محتوای تقویتشده (Augmented Context) به مدل زبانی بزرگ ارسال میشوند. LLM با استفاده از این اطلاعات تازه و معتبر، پاسخ خود را تولید میکند. این روش باعث میشود پاسخهای LLM نه تنها دقیقتر و مستندتر باشند، بلکه به اطلاعاتی دسترسی پیدا کنند که در زمان آموزش اولیه مدل وجود نداشتهاند. به عبارت دیگر، RAG به LLM اجازه میدهد که “کتاب باز” امتحان بدهد و به جای تکیه صرف بر “حافظه” داخلی خود، به منابع بیرونی برای یافتن حقایق و دادههای دقیق رجوع کند، که در نهایت به افزایش اعتمادپذیری، کاهش پاسخهای نادرست و ارائه اطلاعات کاملا بهروز منجر میشود. این رویکرد به طور چشمگیری هزینه و زمان مورد نیاز برای آموزش مجدد مداوم LLMها را نیز کاهش میدهد.
با اینحال، فناوری مذکور مبتنی بر یکسری مولفههای داخلی است. مولفههای اصلی RAG شامل ماژول بازیابی (Retriever)، پایگاه دانش خارجی (External Knowledge Base)، ماژول تولید (Generator)، و مکانیزم یکپارچهسازی (Integration Mechanism) هستند که با همکاری یکدیگر، امکان پردازش پرسوجوهای پیچیده و ارائه پاسخهای باکیفیت را فراهم میکنند.
ماژول بازیابی (Retriever): هسته اصلی RAG است و وظیفه جستوجو و استخراج اطلاعات مرتبط از پایگاه دانش خارجی را بر عهده دارد. این ماژول معمولا از مدلهای مبتنی بر بردار (Vector-Based Models) مانند Dense Passage Retrievalیا BERT استفاده میکند که پرسوجوی کاربر را به یک بردار عددی تبدیل کرده و با مقایسه آن با بردارهای اسناد موجود در پایگاه دانش، مرتبطترین اسناد یا قطعات متن را بازیابی میکند. برای مثال، اگر کاربری بپرسد «علت اصلی تغییرات اقلیمی چیست»، ماژول بازیابی پرسوجو را تحلیل کرده و مقالاتی درباره گازهای گلخانهای و فعالیتهای صنعتی از پایگاه دانش استخراج میکند. این ماژول باید سریع و دقیق باشد تا اطلاعات مرتبط را در کسری از ثانیه ارائه دهد. تکنیکهایی مانند نمایهسازی (Indexing) و جستوجوی تقریبی نزدیکترین همسایه (Approximate Nearest Neighbor Search) برای بهبود سرعت و مقیاسپذیری استفاده میشوند.
پایگاه دانش خارجی (External Knowledge Base): منبعی از اطلاعات ساختارمند یا بدون ساختار است که RAG برای دسترسی به دانش بهروز و گسترده از آن استفاده میکند. این پایگاه میتواند شامل اسناد متنی، مقالات علمی، صفحات وب، یا حتی پایگاههای داده تخصصی مانند ویکیپدیا یا آرشیوهای سازمانی باشد. برخلاف مدلهای زبانی سنتی که به دانش داخلی خود محدود هستند، پایگاه دانش خارجی به RAG امکان میدهد تا اطلاعات جدید و معتبر را بدون نیاز به بازآموزی مدل اصلی در دسترس داشته باشد. برای مثال، در یک سیستم RAG که برای پشتیبانی مشتریان یک شرکت فناوری استفاده میشود، پایگاه دانش ممکن است شامل مستندات محصول، راهنماهای عیبیابی، و پرسشهای متداول باشد. کیفیت و بهروز بودن این پایگاه دانش تاثیر مستقیمی بر دقت پاسخهای سیستم دارد، و بنابراین، مدیریت و بهروزرسانی مداوم آن ضروری است. به طور کلی، پایگاه دانش، که به عنوان منبع بیرونی نیز شناخته میشود، قلب تپنده سیستم RAG است. این پایگاه، مجموعهای متنوع از دادهها را از منابع مختلف مانند اسناد، فایلهای PDF، وبسایتها، فایلهای صوتی و غیره در خود جای میدهد و امکان جستوجو در میان این دادهها را فراهم میکند. بیشتر اطلاعات موجود در این منبع داده، از نوع دادههای بدون ساختار و بدون برچسب هستند. در سیستمهای مبتنی بر RAG، فرآیندی به نام جایگذاری (Embedding) وجود دارد که دادهها را به شکل عددی تبدیل میکند که به آنها “بردار” یا “وکتور” گفته میشود. این تبدیل باعث میشود که دادهها در یک فضای ریاضی چندبعدی قرار بگیرند و بر اساس شباهتشان مرتب شوند. به عبارت دیگر، دادههایی که ارتباط بیشتری با یکدیگر دارند، در این نوع نمایش نزدیک به هم قرار میگیرند. نکته حائز اهمیت این است که کیفیت و دقت تکنیک RAG تا حد زیادی به کیفیت اطلاعات موجود در پایگاه دانش بستگی دارد.
ماژول تولید (Generator): بخش تولید متن RAG است که از یک مدل زبانی بزرگ مانند GPT یا T5 تشکیل شده است. این ماژول اطلاعات بازیابیشده توسط ماژول بازیابی را بهعنوان زمینه (Context) دریافت میکند و پاسخهایی منسجم، طبیعی، و متناسب با پرسوجو تولید میکند. برخلاف مدلهای زبانی مستقل که ممکن است پاسخهای نادرست یا غیرمرتبط تولید کنند، ماژول تولید در RAG از اطلاعات بازیابیشده برای اطمینان از صحت و ارتباط پاسخ استفاده میکند. این ماژول همچنین میتواند سبک و لحن پاسخ را بر اساس نیاز کاربر تنظیم کند، مثلا پاسخهای رسمی برای محیطهای حرفهای یا پاسخهای ساده برای کاربران عمومی.
مکانیزم یکپارچهسازی (Integration Mechanism): ارتباط بین ماژولهای بازیابی و تولید را برقرار میکند و اطمینان میدهد که اطلاعات بازیابیشده بهطور موثر در فرآیند تولید متن استفاده شوند. این مکانیزم معمولا شامل تکنیکهایی مانند توجه (Attention Mechanisms) یا همجوشی زمینه (Context Fusion) است که به مدل تولید اجازه میدهد تا بخشهای مهم اطلاعات بازیابیشده را اولویتبندی کند. برای مثال، در یک سیستم RAG که برای پاسخ به پرسشهای حقوقی استفاده میشود، مکانیزم یکپارچهسازی میتواند بندهای مرتبط از قوانین را برجسته کند و به ماژول تولید کمک کند تا پاسخهایی دقیق و مبتنی بر قانون ارائه دهد. این مکانیزم همچنین میتواند چندین سند بازیابیشده را ترکیب کند تا پاسخ جامعی تولید شود، بهویژه در مواردی که پرسوجو چندوجهی یا پیچیده است.
یکی از مزایای کلیدی RAG، توانایی آن در ترکیب دانش داخلی مدل زبانی با اطلاعات خارجی است که باعث کاهش وابستگی به آموزش مجدد مدل برای بهروزرسانی دانش میشود. برای مثال، در یک سیستم RAG که برای تحلیل اخبار استفاده میشود، اگر خبری جدید درباره یک رویداد جهانی منتشر شود، پایگاه دانش میتواند بهسرعت بهروزرسانی شود و ماژول بازیابی اطلاعات جدید را استخراج کند، بدون اینکه نیاز به تغییر مدل تولید باشد. این انعطافپذیری RAG را برای کاربردهایی مانند پشتیبانی مشتریان، تحلیل دادههای علمی، و حتی دستیارهای مجازی مانند Grok ایدهآل میکند.
با این حال، چالشهایی مانند مدیریت حجم عظیم دادهها در پایگاه دانش، بهینهسازی سرعت بازیابی، و کاهش سوگیریهای احتمالی در اطلاعات بازیابیشده وجود دارند. برای مثال، اگر پایگاه دانش شامل اطلاعات نادرست یا قدیمی باشد، پاسخهای RAG نیز ممکن است نادرست شوند. بنابراین، طراحی دقیق هر مولفه و هماهنگی بین آنها برای عملکرد بهینه ضروری است. در مجموع، اجزای RAG با همکاری یکدیگر، سیستمی قدرتمند و مقیاسپذیر ایجاد میکنند که میتواند پاسخهایی دقیق، مرتبط، و بهروز به طیف گستردهای از پرسوجوها ارائه دهد، و کاربردهای آن در حوزههای مختلف از پزشکی تا آموزش و صنعت را تقویت میکند.
قطعهبندی در RAG چیست؟
قطعهبندی (Chunking) در RAG به فرآیند تقسیم دادههای موجود در پایگاه دانش به بخشهای کوچکتر و قابل مدیریت گفته میشود. این بخشها میتوانند شامل جملات، پاراگرافها یا حتی بخشهای کوچکتر از یک متن باشند. هدف از قطعهبندی، بهبود عملکرد و کارایی سیستم RAG در بازیابی اطلاعات مرتبط با پرسش کاربر است. در واقع، سیستم RAG با دریافت پرسش کاربر، ابتدا باید اطلاعات مرتبط با آن را از پایگاه دانش بازیابی کند. اگر پایگاه دانش شامل اسناد بزرگ و پیچیده باشد، جستوجوی اطلاعات مرتبط میتواند بسیار زمانبر و دشوار باشد. قطعهبندی با تقسیم اسناد به بخشهای کوچکتر، این فرآیند را تسهیل میکند. به این ترتیب که سیستم RAG به جای جستوجوی کل سند، فقط قطعات مرتبط با پرسش کاربر را جستوجو میکند که این امر باعث افزایش سرعت و دقت بازیابی اطلاعات میشود. علاوه بر این، قطعهبندی میتواند به بهبود کیفیت پاسخهای تولید شده توسط سیستم RAG نیز کمک کند. وقتی قطعات کوچکتر و مرتبط با پرسش کاربر در اختیار مدل زبانی بزرگ قرار میگیرند، مدل میتواند پاسخهای دقیقتر و منسجمتری تولید کند. در واقع، قطعهبندی به مدل زبانی کمک میکند تا بر روی اطلاعات مرتبط با پرسش کاربر تمرکز کند و از اطلاعات تکراری یا نامربوط پرهیز کند.
نکته مهم در مورد قطعهبندی، انتخاب اندازه مناسب برای قطعات است. اگر قطعات خیلی بزرگ باشند، ممکن است همچنان شامل اطلاعات تکراری باشند و اگر خیلی کوچک باشند، ممکن است اطلاعات کافی برای پاسخ به پرسش کاربر را نداشته باشند. بنابراین، انتخاب اندازه مناسب برای قطعات یک مسئله مهم در طراحی سیستمهای RAG است و به عوامل مختلفی مانند نوع دادهها، اندازه پایگاه دانش و نوع پرسشهای کاربران بستگی دارد. در عمل، برای قطعهبندی دادهها از روشهای مختلفی استفاده میشود. یکی از روشهای رایج، تقسیم متن به جملات یا پاراگرافها است. روش دیگر، استفاده از تکنیکهای پردازش زبان طبیعی برای شناسایی واحدهای معنایی در متن و تقسیم آن بر اساس این واحدها است. به عنوان مثال، میتوان از روشهایی مانند segmentation یا chunking برای تقسیم متن به عبارات اسمی، عبارات فعلی و سایر واحدهای معنایی استفاده کرد. انتخاب روش مناسب برای قطعهبندی و تعیین اندازه بهینه برای قطعات، از جمله چالشهای مهم در طراحی سیستمهای RAG است که باید با دقت مورد توجه قرار گیرد.
فرآیند بازیابی در سیستمهای RAG به چه صورتی است؟
در فرآیند بازیابی، اطلاعات مرتبط با پرسش کاربر از پایگاه دانش استخراج و برای استفاده در مرحله تولید پاسخ آماده میشود. این فرآیند از اهمیت ویژهای برخوردار است، چرا که کیفیت و دقت پاسخ نهایی تا حد زیادی به صحت و جامعیت اطلاعات بازیابی شده بستگی دارد. ابتدا، پرسش کاربر به سیستم RAG وارد میشود. سپس، سیستم با استفاده از تکنیکهای پردازش زبان طبیعی پرسش را تحلیل کرده و کلمات کلیدی و مفاهیم اصلی آن را شناسایی میکند. این کلمات کلیدی و مفاهیم به عنوان مبنایی برای جستوجو در پایگاه دانش مورد استفاده قرار میگیرند.
پایگاه دانش میتواند شامل انواع مختلفی از دادهها باشد، از جمله متون، تصاویر، ویدیوها و سایر فرمتهای اطلاعاتی. سیستم RAG با استفاده از الگوریتمهای جستوجوی پیشرفته، در میان این دادهها به دنبال اطلاعاتی میگردد که با پرسش کاربر مرتبط باشند. این الگوریتمها میتوانند بر اساس کلمات کلیدی، شباهت معنایی، یا سایر معیارهای ارتباط، اطلاعات مرتبط را شناسایی کنند. پس از شناسایی اطلاعات مرتبط، سیستم RAG آنها را به صورت قطعات کوچکتر و قابل مدیریت تقسیم میکند. این قطعات میتوانند شامل جملات، پاراگرافها یا بخشهای کوچکتر از یک متن باشند. در مرحله بعد، سیستم RAG اطلاعات مرتبط را بر اساس میزان ارتباط آنها با پرسش کاربر رتبهبندی میکند. این رتبهبندی میتواند بر اساس معیارهای مختلفی مانند تعداد کلمات کلیدی مشترک، شباهت معنایی، یا میزان اهمیت اطلاعات انجام شود.
تقویت مدل زبانی با اطلاعات خارجی و تولید پاسخ
در سیستمهای RAG مدلهای زبانی بزرگ با استفاده از اطلاعات خارجی تقویت میشوند تا پاسخهای دقیقتر و مرتبطتری تولید کنند. این فرآیند شامل چند مرحله است. اولین مرحله، بازیابی اطلاعات است که، پرسش کاربر به سیستم وارد میشود. سپس، سیستم با استفاده از تکنیکهای پردازش زبان طبیعی فرآیند تحلیل انجام شده و کلمات کلیدی و مفاهیم اصلی شناسایی میشوند. این کلمات کلیدی و مفاهیم به عنوان مبنایی برای جستوجو در پایگاه دانش مورد استفاده قرار میگیرند. در ادامه نوبت به قطعهبندی و رتبهبندی میرسد. پس از شناسایی اطلاعات مرتبط، سیستم RAG آنها را به صورت قطعات کوچکتر در قالب جملات، پاراگرافها یا بخشهای کوچکتر از یک متن تقسیم میکند. همانگونه که در پاراگراف قبل اشاره کردیم، قطعهبندی اطلاعات، به بهبود عملکرد و کارایی سیستم در مراحل بعدی کمک میکند. در مرحله بعد، RAG اقدام به امتیازدهی به اطلاعات میکند. این امتیازدهی بر مبنای معیارهای مختلفی مانند تعداد کلمات کلیدی مشترک، شباهت معنایی، یا میزان اهمیت اطلاعات انجام شود. در نهایت، اطلاعات رتبهبندی شده به همراه پرسش کاربر به مدل زبانی بزرگ ارسال میشوند. مدل زبانی بزرگ با استفاده از این اطلاعات، پاسخ نهایی را برای کاربر تولید میکند. در واقع، مدل زبانی با استفاده از اطلاعات بازیابی شده، دانش خود را تکمیل و بهروز میکند و سپس با استفاده از این دانش ترکیبی، پاسخ مناسب را تولید میکند.
منابع:
https://aws.amazon.com/what-is/retrieval-augmented-generation
https://cloud.google.com/use-cases/retrieval-augmented-generation
https://research.ibm.com/blog/retrieval-augmented-generation-RAG
https://www.databricks.com/glossary/retrieval-augmented-generation-rag

