نسل افزوده بازیابی (RAG) اکنون به معماری پیش‌فرض برای برنامه‌های سازمانی مبتنی بر مدل‌های زبان بزرگ (LLM) تبدیل شده است. سیستم‌های RAG با تکیه بر اسناد زمینه‌ای در پایگاه‌های دانشی خارجی، قادرند پاسخ‌هایی دقیق و به‌روز ارائه دهند بدون نیاز به تنظیم دقیق مدل؛ اما در عمل اغلب این سیستم‌ها با روش‌های ارزیابی ناقص به تولید می‌رسند و همین باعث بروز مشکلات پنهان در استفاده واقعی می‌شود. 😊

بسیاری از تیم‌ها تعبیه‌ها، رتریورها، استراتژی‌های قطعه‌سازی و promptها را تنظیم می‌کنند، اما برای سنجش کیفیت به بازبینی‌های دستی نقطه‌ای، مجموعه‌داده‌های کوچک برچسب‌خورده یا قضاوت‌های عمومی «LLM-as-a-judge» وابسته‌اند. نتیجه غالباً سیستم‌هایی است که در آزمایش‌ها خوب نشان می‌دهند اما در ترافیک واقعی کاربران شکست می‌خورند.

چرا ارزیابی RAG دشوار است؟ دلایل اصلی عبارتند از:

درهم‌تنیدگی بازیابی و تولید: وقتی یک سیستم RAG خراب می‌شود، اغلب مشخص نیست مشکل از بازیابی اسناد اشتباه است یا از توهم‌زایی LLM حتی با زمینه صحیح. بدون داشتن حقیقت پایه (ground truth) مشخص، رفع اشکال به حدس و گمان می‌افتد.

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

رانش مبتنی بر دانش: اسناد سازمانی دائماً تغییر می‌کنند؛ مجموعه‌های تست ایستا سریعاً منسوخ می‌شوند و ارزیابی‌های گمراه‌کننده‌ای ایجاد می‌کنند که دیگر رفتار تولیدی واقعی را منعکس نمی‌کنند.

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

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

راه‌حل: تولید داده‌های مصنوعی — داده‌های مصنوعی رویکردی متفاوت ارائه می‌دهند که امکان ارزیابی با کیفیت بالا را مستقیماً از داده‌ها فراهم می‌سازد: پایه‌ای متشکل از سؤالات واقع‌بینانه، پاسخ‌های مبتنی بر زمینه و حقیقت پایه. این رویکرد امکان ایجاد خودکار حقیقت پایه را بدون حاشیه‌نویسی دستی می‌دهد، تست‌های بازیابی و تولید را جدا می‌کند و دقیقا مشخص می‌کند کدام مؤلفه شکست خورده است. همچنین معیارهای تکرارشونده اجازه می‌دهند تعبیه‌ها، استراتژی‌های تقسیم‌بندی و پیکربندی‌های LLM را مقایسه و پیشرفت‌ها را در طول زمان دنبال کنید.

چگونه کار می‌کند: SDG Hub یک چارچوب پایتون متن‌باز از Red Hat برای ساخت خطوط لوله تولید داده مصنوعی است. SDG Hub یک جریان داده ارزیابی RAG از پیش‌ساخته ارائه می‌دهد که سه‌گانه پرسش-پاسخ-زمینه با کیفیت بالا تولید می‌کند.

خط لوله تبدیل اسناد خام به مجموعه‌داده‌های ارزیابی باکیفیت شامل مراحل زیر است:

استخراج موضوع: استخراج مفاهیم کلیدی از سند تا شناسایی لنگرهای ارزیابی.

تولید سؤال: خلق سؤالات اولیه بر اساس طرح کلی سند.

تکامل سؤال: اصلاح آن‌ها به جستارهای واقعی و به سبک کاربر.

تولید پاسخ: اعمال فیلترهای سختگیرانه کیفیت برای تولید جفت‌های سؤال-پاسخ قابل‌اطمینان.

استخراج زمینه: جدا کردن حداقل زمینه حقیقت پایه مورد نیاز برای پاسخ به هر سؤال.

نتیجه یک مجموعه‌دادهٔ تمیز و آماده برای RAG است که شامل سؤالات، پاسخ‌ها و زمینه‌های طلایی (golden contexts) می‌باشد تا ارزیابی بازیابی و تولید قابل اعتماد انجام شود.

شروع به کار: می‌توانید مجموعه‌داده‌های ارزیابی پایه برای سیستم RAG خود را در چند دقیقه بسازید. برای نصب SDG Hub و اجرای نمونه‌ها از دستورات زیر استفاده کنید:

uv pip install sdg-hub

git clone https://github.com/Red-Hat-AI-Innovation-Team/sdg_hub

در ادامه یک نمونه ساده از استفاده SDG Hub در پایتون آمده است:

from sdg_hub import Flow, FlowRegistry

# 1) جریان ارزیابی RAG را بارگیری کنید
flow = Flow.from_yaml(FlowRegistry.get_flow_path("جریان مجموعه داده ارزیابی RAG"))

# 2) حداقل ورودی را ارائه دهید: محتوا + طرح کلی
input_dataset = Dataset.from_dict({
    "سند": [
        "Kubernetes یک سیستم منبع باز برای خودکارسازی استقرار، مقیاس بندی و مدیریت برنامه های کاربردی کانتینری است.",
        "OpenShift پلتفرم Kubernetes سازمانی Red Hat با توسعه دهنده و ابزار عملیاتی اضافه شده است."
    ],
    "document_outline": [
        "نمای کلی Kubernetes به عنوان پلت فرم استاندارد برای کانتینرها",
        "نمای کلی OpenShift به عنوان پلت فرم سازمانی Kubenertes"
    ],
})

# 3) مجموعه داده ارزیابی را ایجاد کنید
result = flow.generate(input_dataset)

# 4) خروجی‌ها را بررسی کنید
df = result.to_pandas()
print(df.columns)
df.head()

برای جزئیات بیشتر در پیش‌پردازش داده برای جریان SDG و پردازش پس از تولید برای چارچوب‌های ارزیابی خاص، به دفترچه‌های راهنما و اسناد موجود در مخزن مراجعه کنید. همچنین می‌توانید جریان SDG Hub را برای نیازهای ارزیابی سفارشی خود بهینه کنید.

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

document: واحد اتمی دانش که باید بازیابی شود (می‌تواند سند، بخش یا مرجع طلایی باشد). استراتژی تکه‌سازی باید طوری باشد که این واحدها قابل بازیابی باشند.

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

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

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

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

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

به گزارش از وبسایت redhat