فناوری

RAG چیست و چرا برای ساخت هوش مصنوعی تخصصی به آن نیاز داریم؟

بنر

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

یک راه این است که تلاش کنیم تمام این اطلاعات را داخل مدل هوش مصنوعی قرار دهیم.

اما روش دیگری وجود دارد:

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

این ایده، پایه معماری Retrieval-Augmented Generation یا RAG است.

RAG به زبان ساده چیست؟

RAG را می‌توان ترکیب دو قابلیت دانست:

  1. جست‌وجو و بازیابی اطلاعات
  2. تولید پاسخ توسط مدل زبانی

در یک سیستم ساده RAG، وقتی کاربر سؤال می‌پرسد ابتدا موتور جست‌وجوی سیستم به دنبال اطلاعات مرتبط می‌گردد.

سپس بخش‌های پیدا شده همراه سؤال در اختیار مدل زبانی قرار می‌گیرد.

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

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

سؤال → جست‌وجوی منابع → انتخاب اطلاعات مرتبط → تولید پاسخ

چرا فقط خود مدل زبانی کافی نیست؟

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

اول اینکه دانش مدل به زمان آموزش آن وابسته است.

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

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

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

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

RAG تلاش می‌کند بخشی از این محدودیت‌ها را کاهش دهد.

یک مثال ساده

فرض کنید کاربر می‌پرسد:

> آیا کارمند پاره‌وقت مشمول بیمه است؟

سیستم RAG ممکن است ابتدا میان اسناد خود جست‌وجو کند.

چند بخش مرتبط درباره:

  • رابطه کار؛
  • بیمه کارکنان؛
  • کار پاره‌وقت؛
  • و مقررات مربوط به روزهای کارکرد

پیدا کند.

سپس همین بخش‌ها را همراه سؤال برای مدل ارسال کند.

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

مرحله اول: آماده‌سازی اسناد

برای اینکه بتوان میان اسناد جست‌وجوی مؤثر انجام داد، معمولاً اسناد به قسمت‌های کوچک‌تر تقسیم می‌شوند.

این قسمت‌ها ممکن است شامل:

  • چند پاراگراف؛
  • یک ماده قانونی؛
  • بخشی از یک بخشنامه؛
  • یک فصل از دستورالعمل؛
  • یا واحد منطقی دیگری از متن

باشند.

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

اگر بیش از حد کوچک باشند، ممکن است ارتباط میان جملات از بین برود.

بنابراین نحوه تقسیم اسناد بخشی مهم از طراحی یک سامانه RAG است.

Embedding چیست؟

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

مدل‌های Embedding می‌توانند متن را به نمایش عددی تبدیل کنند تا شباهت معنایی میان سؤال و اسناد قابل محاسبه شود.

برای مثال سؤال:

> موقع رفتن کارمند چه چیزهایی باید تسویه شود؟

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

این یکی از مزایای جست‌وجوی معنایی است.

آیا اولین نتایج جست‌وجو همیشه بهترین هستند؟

خیر.

به همین دلیل در سامانه‌های پیشرفته‌تر ممکن است مرحله دیگری به نام Reranking وجود داشته باشد.

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

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

RAG چه مزیتی دارد؟

مزیت اصلی فقط «بهتر جواب دادن» نیست.

RAG می‌تواند چند قابلیت مهم ایجاد کند:

  • استفاده از دانش تخصصی؛
  • امکان به‌روزرسانی منابع بدون آموزش مجدد کامل مدل؛
  • دسترسی به اسناد داخلی سازمان؛
  • کاهش اتکا به حافظه مدل؛
  • و فراهم کردن امکان نمایش منابع پاسخ.

این ویژگی آخر برای حوزه‌هایی مانند مقررات، پزشکی، دانش سازمانی و تحقیقات اهمیت زیادی دارد.

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

خیر.

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

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

همچنین مدل ممکن است متن منبع را به‌درستی تفسیر نکند.

به همین دلیل کیفیت یک سیستم RAG به مجموعه‌ای از عوامل وابسته است:

  • کیفیت داده‌ها؛
  • تقسیم‌بندی مناسب اسناد؛
  • جست‌وجو؛
  • رتبه‌بندی؛
  • مدل زبانی؛
  • نحوه طراحی Prompt؛
  • و ارزیابی مستمر پاسخ‌ها.

RAG برای چه سیستم‌هایی مناسب است؟

هرجا دانش تخصصی یا اطلاعات متغیر وجود داشته باشد، RAG می‌تواند مفید باشد.

برای مثال:

  • دانش داخلی شرکت‌ها؛
  • پشتیبانی محصول؛
  • اسناد فنی؛
  • قوانین و مقررات؛
  • بانک‌های اطلاعات پژوهشی؛
  • دستورالعمل‌های سازمانی.

تفاوت اصلی

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

یک سامانه مبتنی بر RAG ابتدا می‌پرسد:

برای پاسخ به این سؤال، کدام اطلاعات را باید پیدا کنم؟

همین تفاوت ساده پایه بسیاری از سامانه‌های تخصصی هوش مصنوعی امروز است.