RAG چیست؟ توضیح ساده برای صاحبان کسب‌وکار

به‌روزرسانی: · ۶ دقیقه مطالعه

خلاصه در یک نگاه

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

اگر پرسیده‌اید RAG چیست یا چطور یک چت بات از اطلاعات من جواب می‌دهد، جواب در یک جمله این است: ربات قبل از جواب دادن، در اطلاعات شما مرور می‌کند و فقط از همان‌ها استفاده می‌کند. نام رسمی‌اش «بازیابی تقویت‌شده با تولید» است و در انگلیسی Retrieval-Augmented Generation. در این راهنما بدون فرمول و اصطلاح سنگین توضیح می‌دهیم چطور کار می‌کند، چرا خطا را کم می‌کند ولی صفرش نمی‌کند، و کیفیتش به چه چیزهایی بستگی دارد. در آخر هم می‌گوییم راوانو این ایده را چطور به کار می‌برد.

ساده‌ترین تشبیه: امتحان با کتاب باز

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

مدل‌های زبانی بدون RAG شبیه دانشجوی اول‌اند: چیزهای زیادی می‌دانند ولی درباره‌ی کسب‌وکار شما هیچ نمی‌دانند و در خلأ ممکن است چیزی بسازند. با RAG، کتاب شما، یعنی قوانین، قیمت‌ها و سؤال‌های متداولتان، روی میز آنهاست.

پشت صحنه: سه قدم ساده

فنی‌اش پیچیده است، ولی ایده‌اش سه قدم دارد.

  1. آماده‌سازی: اطلاعات شما به تکه‌های کوچک و معنادار تقسیم می‌شود.
  2. بازیابی: وقتی مشتری سؤال می‌پرسد، سیستم تکه‌هایی را پیدا می‌کند که به سؤال نزدیک‌ترند.
  3. تولید: مدل زبانی با همان تکه‌ها جواب را به زبان روان می‌نویسد، و منبعش را هم کنار جواب می‌گذارد.

تکه‌ها (Chunks)

یک PDF صد صفحه‌ای را نمی‌شود یک‌جا جلوی مدل گذاشت. آن را به تکه‌های کوتاه، مثلاً چند پاراگراف مرتبط، می‌شکنند. هر تکه باید به‌تنهایی معنی داشته باشد، مثل «شرایط مرجوعی کالا».

امبدینگ (Embedding)

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

بازیابی (Retrieval)

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

چرا RAG خطای ساختگی را کم می‌کند؟

به جواب‌هایی که مدل از خودش می‌سازد و درست به نظر می‌رسند ولی غلط‌اند، «توهم» می‌گویند. وقتی ربات مجبور باشد فقط از روی تکه‌های بازیابی‌شده جواب بدهد، فضای ساختن چیز تازه خیلی کوچک‌تر می‌شود.

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

منبع جواب: چرا اینقدر مهم است؟

در RAG می‌دانیم هر جواب از کدام تکه آمده، پس می‌توانیم منبعش را نشان بدهیم. این سه فایده دارد.

  • اعتماد: مشتری می‌بیند جواب از کجا آمده است.
  • کشف اشتباه: اگر جوابی غلط بود، منبعش را می‌بینید و اطلاعات اصلی را اصلاح می‌کنید.
  • پاسخگویی: به جای «ربات این را گفت»، می‌توانید به یک سند مشخص برگردید.

اگر منبعی پیدا نشد؟

RAG خوب وقتی تکه‌ی مرتبطی پیدا نکند، باید همین را بگوید و جواب نسازد. این رفتار «نمی‌دانم» برای کسب‌وکار از جوابِ قشنگ ولی نادرست ارزشمندتر است.

RAG در برابر فاین‌تیونینگ

دو راه رایج برای «یاد دادن» اطلاعات به مدل وجود دارد و بیشتر کسب‌وکارها نیازی به راه دوم ندارند. اطلاعات کسب‌وکارها مدام عوض می‌شود: قیمت، موجودی، قوانین. برای این نوع داده RAG منطقی‌تر است.

RAGفاین‌تیونینگ
چطور کار می‌کنداطلاعات را هنگام جواب پیدا می‌کندخود مدل را روی داده‌ها آموزش می‌دهد
به‌روزرسانیاطلاعات را عوض کنید، همان لحظه اثر می‌کندنیاز به آموزش دوباره
منبع جوابقابل نمایشمعمولاً مشخص نیست
مناسب برایقیمت، قوانین، محصول، سؤال‌های متداولتغییر سبک و رفتار کلی مدل

تازه ماندن اطلاعات

چون در RAG اطلاعات جدا از مدل نگه داشته می‌شود، به‌روز کردن آن ساده است. قیمت عوض شد؟ منبع را به‌روز کنید. قانون ارسال تغییر کرد؟ همان را اصلاح کنید.

ولی «خودبه‌خود» به‌روز نمی‌شود. اگر صفحه‌ی سایت‌تان را عوض کنید و منبع را دوباره به ربات ندهید، ربات هنوز نسخه‌ی قبلی را می‌داند. بعد از هر تغییر مهم، اطلاعات را دوباره بدهید و بازبینی کنید.

کیفیت RAG به چه چیزی بستگی دارد؟

مدل قوی بدون اطلاعات خوب، جواب خوب نمی‌دهد. چند چیز بیشتر از بقیه اثر دارند:

  • منبع تمیز: متن‌های متناقض یا قدیمی را حذف کنید. اگر دو صفحه دو قیمت می‌گویند، ربات هم گیج می‌شود.
  • پوشش کافی: چیزی که ننوشته‌اید، ربات نمی‌داند. سؤال‌های بی‌پاسخ نشان می‌دهد چه چیزی کم است.
  • ساختار روشن: عنوان و پاراگراف‌های جدا از هم، بهتر از یک متن بلند و درهم است.
  • بازبینی انسانی: یک نفر باید آنچه ربات فهمیده را بخواند و تأیید کند.

یک مثال از دو منبع

اگر فایل قوانین شما بنویسد «ارسال به شیراز ۲ تا ۳ روز» و صفحه‌ی قدیمی سایت بنویسد «۵ روز»، RAG هر دو را پیدا می‌کند و ممکن است جواب مبهم بدهد. مشکل از الگوریتم نیست؛ از اطلاعات متناقض است. بازبینی همین‌جا کمک می‌کند.

راوانو این ایده را چطور به کار می‌برد؟

راوانو بر همین فکر ساخته شده است، با یک اضافه: قبل از اینکه ربات به مشتری جواب بدهد، شما اطلاعات را می‌بینید. آدرس سایت، فایل (PDF، Word، Excel، CSV)، کانال تلگرام، اینستاگرام، دیتابیس یا متن آزاد را می‌دهید. راوانو آن‌ها را می‌خواند و مرتب می‌کند و نتیجه را در پنج بخش نشان می‌دهد تا بخوانید، اصلاح کنید و تأیید کنید.

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

خودتان امتحان کنید

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

پرسش‌های متداول

RAG یعنی چه و مخفف چیست؟

RAG مخفف Retrieval-Augmented Generation است، یعنی بازیابی تقویت‌شده با تولید. چت‌بات قبل از جواب دادن، مرتبط‌ترین بخش‌های اطلاعات شما را پیدا می‌کند و جواب را از روی آنها می‌نویسد، به جای اینکه فقط از حافظه‌ی خودش حرف بزند.

آیا RAG جلوی اشتباه ربات را کاملاً می‌گیرد؟

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

چت بات چطور از اطلاعات من جواب می‌دهد؟

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

تفاوت RAG و فاین‌تیونینگ چیست؟

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

اگر اطلاعات سایت‌م عوض شود، ربات خودش متوجه می‌شود؟

خودبه‌خود نه. بعد از تغییر مهم، باید منبع را دوباره به ربات بدهید و بخش‌هایی که عوض شده را بازبینی کنید. بعد از آن، ربات از اطلاعات تازه جواب می‌دهد و نیازی به آموزش دوباره‌ی مدل نیست.