واحد 1 / 11

RAG چیست و چرا ضروری است؟

سود:

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

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

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

ایده اصلی RAG: امتحان کتاب باز

بیایید RAG را در یک جمله توضیح دهیم: "ابتدا سند مربوطه را پیدا کنید، سپس از مدل بخواهید آن سند را بخواند و پاسخ را مطابق آن چاپ کند."

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

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

نکته: دو سوال کیفیت RAG را تعیین می کند: (1) آیا سند مناسب را پیدا کردید؟ (2) آیا مدل آن را به درستی خوانده است؟ اولی «کیفیت بازیابی»، دومی «کیفیت نسل». این دو به طور جداگانه اندازه گیری و بهبود می یابند.

RAG، Fine-Tuning یا Long Context؟

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

رویکرد

چه می کند

چه زمانی مناسب است؟

هزینه / ریسک

RAG

سند مربوطه را به عنوان زمینه تزریق می کند

اطلاعات مکرر در حال تغییر، گسترده و خاص

کم؛ به روز رسانی آسان، منبع را می توان ذکر کرد

تنظیم دقیق

وزن ها را با داده های جدید به روز می کند

آموزش سبک/فرمت/زبان ثابت

بالا؛ با هر به روز رسانی نیاز به آموزش مجدد است

فقط زمینه طولانی

تمام اسناد را در اعلان پر می کند

مجموعه اسناد کوچک و ثابت

هزینه توکن و ریسک "از دست دادن قسمت میانی" افزایش می یابد

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

یک خط لوله RAG معمولی

RAG از دو مرحله اصلی تشکیل شده است: نمایه سازی (آماده سازی، یک بار یا دوره ای انجام می شود) و پرس و جو (در هر سؤال کاربر اجرا می شود).

نمایه سازی مرحله به مرحله (آفلاین، بدون انتظار کاربر):

  1. جمع آوری: اسناد را از منابع (PDF، ویکی، سیستم بلیط، پایگاه داده، ایمیل) جمع آوری کنید.
  2. خرد کردن: متن طولانی را به قطعات کوچکتر و قابل کنترل تقسیم کنید.
  3. Embed: هر قسمت را به embedding (بردار عددی که معنای متن را حمل می کند) تبدیل کنید.
  4. ذخیره: بردارها را به همراه متن و ابرداده (منبع، تاریخ، اطلاعات مجوز) در پایگاه داده برداری بنویسید.

پرس و جو گام به گام (آنلاین، در حالی که کاربر منتظر است):

  1. سوال کاربر را به جاسازی تبدیل کنید.
  2. شبیه ترین قسمت ها را از پایگاه داده برداری بازیابی کنید.
  3. این قطعات + سوال را در یک الگوی سریع قرار دهید.
  4. پاسخ متنی و منابع آن را از مدل دریافت کنید.

# طرح مفهومی مرحله پرس و جو (وابسته به زبان) سوال = "چند روز مرخصی سالانه؟"question_vektor = embed(question)parts = vektor_db.search(question_vektor, top_k=4) # مشابه ترین قسمت ها prompt = f"""به سوال پاسخ دهید. این." Fitting.CONTEXT:{parts}QUESTION: {question}"""answer = model.uret(prompt) # e.g. مدل: claude-opus-4-8

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

اعلان ضعیف / اعلان قوی

حتی با همان زمینه RAG، کیفیت اعلان پاسخ را تغییر می دهد.

اعلان ضعیف (برای برازش مدل باز است، نیازی به منابع ندارد):

از این اطلاعات استفاده کنید و بگویید مرخصی سالانه: {parts}. سوال: {سوال}

اعلان قدرتمند (زمینه کردن + مجوز "نمی دانم" + درخواست منبع):

فقط بر اساس متن زیر پاسخ دهید. اگر پاسخ روشنی در زمینه وجود ندارد، بنویسید "من نتوانستم اطلاعاتی در مورد این در مستندات پیدا کنم". حدس نزن برچسب [منبع: file_name] قطعه ای را که به آن تکیه می کنید را در پایان پاسخ خود اضافه کنید. زمینه: {pieces} QUESTION: {question}

سه کیف کوچک

مورد 1 - دستیار منابع انسانی (منابع انسانی). یک شرکت یک کتابچه راهنمای منابع انسانی 340 صفحه ای دارد و کارکنان به طور متوسط ​​90 سوال در روز می پرسند. تنظیم دقیق انجام شد، اما از آنجایی که دفترچه راهنما ماهانه به روز می شد، هر بار نیاز به آموزش مجدد بود. هزینه به هزاران دلار در ماه رسید. پس از تغییر به RAG، به‌روزرسانی به مرحله «نمایش مجدد سند» (دقیقه) کاهش یافت و نرخ پاسخ صحیح در اندازه‌گیری دستی از 71 درصد به 93 درصد افزایش یافت.

مورد 2 - پشتیبانی از مشتری. تیم پشتیبانی 12000 تیکت حل شده و 800 مقاله راهنما دارد. به طور متوسط ​​4 دقیقه طول می کشد تا یک نماینده به صورت دستی پاسخ را پیدا کند. هنگامی که دستیار RAG 5 رکورد مرتبط را آورد و یک پیش نویس پاسخ ارائه کرد، زمان به 40 ثانیه کاهش یافت. اما تیم متوجه خطر "مطمئن به نظر رسیدن با آوردن مقاله اشتباه" شد و ذکر منبع را اجباری کرد.

مورد 3 - قانون. یک تیم قراردادی پرسید "بند محرمانگی در کدام قراردادها 5 سال طول می کشد؟" او سوال را می پرسد. در آزمایش زمینه طولانی، 60 قرارداد در یک درخواست تکمیل شد. مدل از دو قرارداد میانی صرف نظر کرد. هنگامی که فقط موارد مربوطه با RAG معرفی شدند، هزینه توکن 80٪ کاهش یافت و رد شدن از دست رفته بازنشانی شد.

چرا RAG مورد نیاز است؟

  • فعلی: شما پس از تاریخ پایان آموزش به اطلاعات دسترسی پیدا می کنید.
  • اطلاعات ویژه: مدارک داخلی شما در آموزش هیچ مدلی گنجانده نشده است. فقط شما می توانید بدهید.
  • قابلیت تأیید: می توانید منبع پاسخ را ذکر کنید (استناد) - برای حسابرسی و اعتماد ضروری است.
  • کنترل توهم: به جای ساختن یک مدل، به متنی که در مقابل آن قرار داده شده است، متکی است.
  • هزینه: راه اندازی آن بسیار ارزان تر و سریعتر از تنظیم دقیق است.
احتیاط: RAG جادویی نیست. اگر قطعه اشتباهی را وارد کنید، مدل به نظر "با اعتماد به نفس" به پاسخ اشتباه می رسد. عبارت "کیفیت بازیابی = کیفیت RAG" را در نظر داشته باشید.

اشتباهات رایج

  • اشتباه RAG برای تنظیم دقیق: RAG وزن ها را تغییر نمی دهد. فقط زمینه را اضافه می کند. اشتباه گرفتن این دو منجر به انتخاب معماری اشتباه می شود.
  • اجازه ندادن «نمی‌دانم»: اگر درخواست مدل را برای پر کردن جای خالی باز بگذارد، آن را جبران می‌کند.
  • عدم ذکر منابع: پاسخ بدون منبع قابل بررسی نیست. کاربر نمی تواند متوجه اشتباه شود.
  • همه چیز را در یک دستور جمع کنید: زمینه طولانی ارزان به نظر می رسد اما گران است و اطلاعات میانی را از دست می دهد.
  • گیر افتادن در نسل بدون اندازه گیری بازیابی: اگر پاسخ بد است، ابتدا بپرسید "آیا قسمت مناسب رسید؟" باید پرسیده شود.

به طور خلاصه

  • RAG رویکردی است که اسناد مربوط به سوال را به عنوان زمینه به مدل تزریق می کند. وزن ها را تغییر نمی دهد ("آزمون کتاب باز").
  • تنظیم دقیق سبک / قالب را آموزش می دهد، RAG اطلاعات فعلی و خاص را ارائه می دهد. زمینه طولانی برای مجموعه های ثابت کوچک به خوبی کار می کند. در اکثر سناریوها، ابتدا RAG امتحان می شود.
  • خط لوله دارای دو مرحله است: نمایه سازی آفلاین (تکه + جاسازی + ذخیره) و پرس و جو آنلاین (بازیابی + اعلان + تولید).
  • RAG به موقع، اطلاعات خاص، قابلیت تأیید، کنترل توهم و هزینه کم را ارائه می دهد.
  • کیفیت سیستم به طور مستقیم به کیفیت بازیابی بستگی دارد: قطعه اشتباه به معنای پاسخ اشتباه است.

وظیفه کاربردی

یک منبع واقعی اطلاعات را از تیم خود انتخاب کنید (مثلاً یک سند رویه یا صفحه سؤالات متداول). (1) 5 سوال واقعی در مورد این منبع بنویسید. (2) توجه داشته باشید که کدام بخش از سند حاوی پاسخ صحیح برای هر سوال است - این لیست "پاسخ طلایی" شما می شود. (3) با استفاده از الگوی "اعلان قوی" در بالا، بخش مربوطه را به صورت دستی به عنوان متن قرار دهید و یک مدل بخواهید. (4) پاسخ داده شده توسط مدل را با پاسخ طلایی مقایسه کنید و به عنوان درست/نادرست علامت بزنید. این اولین نسخه دستی ارزیابی است که در واحدهای آینده آن را خودکار خواهید کرد.

چک لیست

  • [ ] می توانم در یک جمله توضیح دهم که RAG وزن ها را تغییر نمی دهد، فقط زمینه را اضافه می کند.
  • [ ] من می توانم بین RAG، تنظیم دقیق و زمینه طولانی و زمان مناسب تمایز قائل شوم.
  • [ ] من می توانم فازهای نمایه سازی (جمع آوری-شرد-جاسازی-ذخیره) و پرس و جو (جاسازی-واکشی-سرعت-تولید) را به ترتیب بشمارم.
  • [ ] می دانم چرا دستورالعمل های "اگر در زمینه نیست، بگو نمی دانم" و "منبع را ذکر کنید" را به دستور اضافه کردم.
  • [ ] من می توانم اصل "کیفیت بازیابی = کیفیت RAG" را با مورد خودم تطبیق دهم.