تیمهایی که RAG (تولید با بازیابی افزوده) را از یک نسخه نمایشی (demo) به یک سرویس عملیاتی (production) منتقل میکنند، با مجموعهای از تصمیمات روبرو میشوند که مرز بین یک دستیار مفید و یک دستیار پر از نویز را تعیین میکنند. پنج انتخاب طراحی — تکهبندی (chunking)، مدل جاسازی (embedding model)، ذخیرهساز برداری (vector store)، جستجوی ترکیبی (hybrid search) و ارزیابی (evaluation) — دقت، بازیابی (recall) و تأخیری (latency) را که کاربران واقعی تجربه میکنند، کنترل میکنند.
چرا گذار از نمونه اولیه به مرحله تولید اهمیت دارد
بیشتر آموزشها یک خط لوله (pipeline) RAG را تنها با چند ده خط کد راهاندازی میکنند، اما از اعمال دقت و سختگیری مهندسی که برای مدیریت ترافیک واقعی مورد نیاز است، باز میمانند.
۱. استراتژی تکهبندی (Chunking) – اولین دروازه کیفیت
اندازه تکهها (chunk size) بیشترین اهمیت را دارد. تکههای بزرگ، سیگنال اصلی را در میان متنهای بیربط غرق میکنند؛ تکههای بسیار کوچک نیز بافت (context) اطراف را که مدل برای تولید پاسخهای منسجم به آن نیاز دارد، از بین میبرند. تقسیمبندی با اندازه ثابت نیز ساختار طبیعی مطالب منبع را نادیده میگیرد.
یک قاعده سرانگشتی کاربردی
- بر اساس مرزهای منطقی تقسیمبندی کنید: تیترها در اسناد، شکست پاراگراف در مقالات، و تعریف توابع در کد.
- تکهها را به اندازهای کوچک نگه دارید که بازیابی دقیق انجام شود، اما بخش اصلی (parent section) بزرگتر را برای مرحله تولید توسط LLM حفظ کنید. این الگوی «والد-فرزند» (parent-child) به بازیاب اجازه میدهد یک قطعه دقیق را استخراج کند، در حالی که مولد (generator) بافت کافی برای واقعی ماندن پاسخ را در اختیار دارد.
۲. مدلهای جاسازی (Embedding models) – نحوه سنجش شباهت
مدل جاسازی، متن را به بردارهایی تبدیل میکند که موتور جستجوی شباهت آنها را با هم مقایسه میکند. یک مدل همهمنظوره قدرتمند مانند text-embedding-3-large شرکت OpenAI، یک پایه مستحکم برای اکثر حوزهها فراهم میکند. اگر مجموعه داده شما در یک حوزه بسیار تخصصی قرار دارد — مانند نظرات حقوقی، پروندههای پزشکی یا مشخصات فنی — یک مدل مختص به آن حوزه را آزمایش کنید، اما تنها پس از اینکه بهبود ملموسی را در دادههای خود مشاهده کردید.
چه زمانی تغییر مدل دهیم
- تنها زمانی تغییر مدل دهید که بهبود قابل اندازهگیری در امتیازهای مرتبطی که برای برنامه شما حیاتی هستند (مثلاً دقت بافت بالاتر) مشاهده کنید.
۳. پایگاه داده برداری (Vector database) – مقیاسپذیری ذخیرهسازی
یک ذخیرهساز برداری انتخاب کنید که با زیرساخت فعلی شما و تعداد بردارهای مورد انتظار همخوانی داشته باشد.
- pgvector درون PostgreSQL اجرا میشود و تا حدود یک میلیون بردار را به راحتی مدیریت میکند. این گزینه برای تیمهایی که در حال حاضر از یک پایگاه داده رابطهای استفاده میکنند و به راهکاری با هزینه نگهداری کم نیاز دارند، ایدهآل است.
- Qdrant در محدوده ۱ تا ۱۰۰ میلیون بردار میدرخشد و نرخ پردازش (throughput) بالاتر و تأخیر کمتری را برای مجموعه دادههای بزرگتر ارائه میدهد.
- Pinecone یک سرویس ابری کاملاً مدیریتشده ارائه میدهد و بار عملیاتی میزبانی شخصی را از دوش شما برمیدارد.
۴. جستجوی ترکیبی و رتبهبندی مجدد – ایجاد تعادل بین معنا و دقت
جستجوی برداری خالص در شباهت معنایی عالی عمل میکند، اما ممکن است تطابق دقیق کلمات کلیدی را که کاربران انتظار دارند، از دست بدهد. جستجوی ترکیبی (Hybrid search)، یک شاخص کلمات کلیدی سنتی (BM25) را روی شاخص برداری قرار داده و سپس دو لیست نتایج را با هم ترکیب میکند. روش ادغام رتبه معکوس (Reciprocal Rank Fusion یا RRF)، به هر کاندیدا بر اساس رتبهاش در هر دو لیست امتیازی اختصاص میدهد و آنها را ترکیب میکند؛ این کار باعث تقویت مواردی میشود که در هر یک از لیستها رتبه بالایی دارند.
رتبهبندی مجدد (Reranking) یک فیلتر دقت نهایی اضافه میکند. پس از بازیابی ترکیبی، $N$ کاندیدای برتر (معمولاً ۵۰ مورد) را به یک cross-encoder میدهید؛ مدلی که جفتِ «پرسوجو-سند» را به صورت مشترک امتیازدهی میکند. امتیازهای cross-encoder جایگزین اعداد شباهت اولیه میشوند و به شما اجازه میدهند قبل از ارسال تکه به LLM، مرتبطترین بخش را انتخاب کنید. این مرحله اضافی اغلب منجر به جهش محسوسی در کیفیت پاسخ میشود، بهویژه برای مجموعه دادههای طولانی یا پر از نویز.
۵. ارزیابی و خودداری از پاسخ – سنجش آنچه مهم است
شما نمیتوانید سیستمی را که اندازهگیری نمیکنید، بهبود دهید. چارچوب RAGAS چهار معیار را پیشنهاد میکند که در کنار هم سلامت یک خط لوله RAG را نشان میدهند:
- دقت بافت (Context Precision) – نسبت تکههای بازیابی شده که واقعاً حاوی پاسخ هستند.
- بازیابی بافت (Context Recall) – سهمی از تمام تکههای مرتبط که بازیابی شدهاند.
- وفاداری (Faithfulness) – میزان وفاداری پاسخ تولید شده به بافت بازیابی شده، برای جلوگیری از توهم (hallucination).
- مرتبط بودن پاسخ (Answer Relevance) – اینکه پاسخ نهایی تا چه حد پرسوجوی اصلی را برآورده میکند.
این معیارها را روی یک مجموعه تست متغیر (rolling test set) که بازتابدهنده ترافیک واقعی تولید است، ردیابی کنید.
یک لایه حفاظتی نهایی که اغلب نادیده گرفته میشود، خودداری از پاسخ (abstention) است. به جای مجبور کردن مدل به پاسخ دادن با اطمینان پایین، آستانهای برای امتیاز وفاداری یا مرتبط بودن تعیین کنید که در صورت عبور از آن، پاسخ «نمیدانم» فعال شود. کاربران یک اعتراف شفاف به عدم اطمینان را به یک پاسخ با اعتمادبهنفس اما غلط ترجیح میدهند، و این روش هزینههای پشتیبانی در مراحل بعدی را کاهش میدهد.
اگر با هر یک از این پنج حوزه به عنوان یک نقطه تصمیمگیری برخورد کنید (نه صرفاً یک پیکربندی «تنظیم کن و فراموش کن»)، میتوانید RAG را از یک دموی پرزرقوبرق به یک سرویس عملیاتی قابل اعتماد تبدیل کنید. نتیجه: سیستمی که سریع پاسخ میدهد، در موضوع باقی میماند و میداند چه زمانی باید سکوت کند.
