MODULE 03 / LESSON 21

Query Parsing در سیستم‌های RAG

مفهوم اصلی یکی از مراحل مهم در یک سیستم RAG Production ، آماده‌سازی و اصلاح Promptهای ارسال‌شده توسط کاربر است. در بسیاری از سیستم‌های RAG، کاربر انتظار دارد مانند یک انسان با LLM گفتگو کند. بنابراین Promptهای انسانی معمولاً برای…

نویسنده: محمد ابوطالبی۱۱۰۰ واژهماژول ۳: Vector Databaseشامل افزودهٔ پژوهشی ۲۰۲۶

مفهوم اصلی

یکی از مراحل مهم در یک سیستم RAG Production، آماده‌سازی و اصلاح Promptهای ارسال‌شده توسط کاربر است.

در بسیاری از سیستم‌های RAG، کاربر انتظار دارد مانند یک انسان با LLM گفتگو کند.

بنابراین Promptهای انسانی معمولاً برای Search مناسب نیستند.


مشکل Promptهای خام کاربران

کاربران معمولاً:

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

اما Retriever نیاز دارد:

  • یک Query دقیق
  • با اطلاعات مرتبط

برای جستجو دریافت کند.


Query Parsing چیست؟

Query Parsing فرآیندی است که طی آن Retriever قبل از ارسال Query به Vector Database:

  • Intent کاربر را تشخیص می‌دهد.
  • Query را اصلاح می‌کند.
  • بازنویسی می‌کند.
  • یا حتی به شکل جدیدی تبدیل می‌کند.

هدف:

تبدیل Prompt انسانی به یک Query بهینه برای Retrieval.


روش‌های Query Parsing

روش‌های مختلفی وجود دارد.

مهم‌ترین آن‌ها:

  1. Query Rewriting
  2. Named Entity Recognition (NER)
  3. Hypothetical Document Embeddings (HyDE)

1. Query Rewriting

مفهوم اصلی

ساده‌ترین و رایج‌ترین روش Query Parsing:

استفاده از یک LLM برای بازنویسی Query قبل از ارسال به Retriever است.


وظایف Query Rewriter

LLM می‌تواند:

  • ابهام‌ها را برطرف کند.
  • اصطلاحات تخصصی اضافه کند.
  • Synonymهای مناسب اضافه کند.
  • اطلاعات غیرضروری را حذف کند.

مثال پزشکی

فرض کنید سیستم RAG دارای Knowledge Base پزشکی است.

کاربر می‌پرسد:

I was out walking my dog, a beautiful black lab named Poppy, when she raced away from me and yanked on her leash hard while I was holding it. Three days later, my shoulder is still numb and my fingers are all pins and needles. What's going on?


مشکل Query اصلی

این Prompt برای Retrieval مناسب نیست.

دلایل:

  • اطلاعات غیرمرتبط زیاد دارد.
  • اصطلاحات پزشکی دقیق ندارد.
  • هدف اصلی سؤال در میان جزئیات گم شده است.

Query بازنویسی‌شده

LLM آن را تبدیل می‌کند به:

Experience a sudden forceful pull on the shoulder resulting in persistent shoulder numbness and finger numbness for three days. What are the potential causes or diagnoses such as neuropathy or nerve impingement?


بهبودهای Query جدید

Query جدید:

  • اطلاعات اضافی را حذف کرده است.
  • مشکل اصلی را مشخص کرده است.
  • از اصطلاحات پزشکی استفاده کرده است.

مثلاً:

  • Neuropathy
  • Nerve impingement

این موارد احتمال پیدا کردن Document مرتبط را افزایش می‌دهند.


مزایای Query Rewriting

  • پیاده‌سازی ساده است.
  • کیفیت Retrieval معمولاً افزایش قابل توجهی پیدا می‌کند.
  • هزینه یک درخواست اضافی به LLM معمولاً ارزش بهبود را دارد.

2. Named Entity Recognition (NER)

مفهوم اصلی

Named Entity Recognition

تکنیکی برای تشخیص موجودیت‌های مهم در Query است.

مثلاً:

  • افراد
  • مکان‌ها
  • تاریخ‌ها
  • شخصیت‌های داستانی
  • کتاب‌ها

کاربرد NER در RAG

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

  • Vector Search
  • Metadata Filtering

استفاده شود.


مثال

یک مدل NER مانند:

GLiNER

می‌تواند متن را دریافت کند.

همراه آن مشخص می‌کنیم چه Entityهایی را پیدا کند.

مثلاً:

  • Person
  • Book
  • Location
  • Date
  • Actor
  • Character

مدل Query را تحلیل می‌کند و بخش‌های مربوط به این دسته‌ها را علامت‌گذاری می‌کند.


مزیت NER

NER می‌تواند:

  • اطلاعات مهم Query را استخراج کند.
  • به بهبود Retrieval کمک کند.

هزینه NER

اجرای NER برای هر Query:

  • کمی Latency اضافه می‌کند.

اما:

  • کیفیت Retrieval می‌تواند بهتر شود.

3. Hypothetical Document Embeddings (HyDE)

مفهوم اصلی

HyDE

روشی است که به جای Search مستقیم Query، ابتدا یک Document فرضی تولید می‌کند.


ایده HyDE

Retriever معمولاً باید:

Prompt کاربر را با Documentهای واقعی مقایسه کند.

اما این دو نوع متن متفاوت هستند.

یعنی:

  • Query کوتاه
  • Document طولانی

مثل مقایسه:

سیب با پرتقال


HyDE این مشکل را حل می‌کند.


نحوه کار HyDE

مراحل:

  1. کاربر Query ارسال می‌کند.
  2. LLM یک Document فرضی تولید می‌کند که پاسخ ایده‌آل به Query باشد.
  3. Document فرضی به Embedding Vector تبدیل می‌شود.
  4. همین Vector برای Search استفاده می‌شود.

مثال پزشکی

Query:

مشکل بی‌حسی شانه و دست بعد از کشیده شدن ناگهانی

LLM یک Document فرضی تولید می‌کند درباره:

  • بی‌حسی شانه و دست
  • آسیب عصبی ناشی از کشش ناگهانی
  • دلایل احتمالی

سپس:

Vector این Document فرضی برای Search استفاده می‌شود.


مزیت HyDE

Retriever دیگر فقط Query را با Documentها مقایسه نمی‌کند.

بلکه مقایسه می‌کند:

  • یک Document فرضی با کیفیت بالا
  • Documentهای واقعی Knowledge Base

بنابراین دو طرف مقایسه شبیه‌تر هستند.


محدودیت HyDE

هزینه دارد:

  • نیاز به اجرای LLM دارد.
  • Latency افزایش پیدا می‌کند.
  • منابع محاسباتی بیشتری مصرف می‌شود.

اما در عمل می‌تواند عملکرد Retrieval را بهتر کند.


مقایسه تکنیک‌های Query Parsing

روش هدف مزیت هزینه
Query Rewriting اصلاح Query کاربر ساده و مؤثر کم
NER استخراج Entityها بهبود Search و Filter متوسط
HyDE ساخت Document فرضی کیفیت Retrieval بالاتر بیشتر

انتخاب روش مناسب

در اکثر پروژه‌های RAG:

بهترین نقطه شروع:

Query Rewriting

است.

یعنی:

  • یک LLM با Prompt مناسب
  • اصلاح ساده Queryهای کاربر

روش‌های پیشرفته‌تر مانند:

  • NER
  • HyDE

ممکن است مفید باشند، اما:

  • پیچیدگی بیشتری دارند.
  • همیشه باعث بهبود نمی‌شوند.

نکته مهم در طراحی RAG

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

هدف:

انتخاب تکنیکی است که برای داده و نیاز پروژه بیشترین ارزش را ایجاد کند.

بنابراین باید:

  • آزمایش انجام شود.
  • نتایج Retrieval بررسی شوند.
  • بر اساس عملکرد تصمیم‌گیری شود.

جمع‌بندی

  • Promptهای انسانی معمولاً برای Retrieval مستقیم مناسب نیستند.
  • Query Parsing باعث تبدیل Prompt کاربر به Query مناسب‌تر برای Search می‌شود.
  • Query Rewriting رایج‌ترین و ساده‌ترین روش Query Parsing است.
  • NER موجودیت‌های مهم Query را استخراج می‌کند و می‌تواند برای Search و Filtering استفاده شود.
  • HyDE ابتدا یک Document فرضی ایجاد می‌کند و Vector آن را برای Search استفاده می‌کند.
  • تکنیک‌های پیشرفته‌تر ممکن است کیفیت Retrieval را افزایش دهند، اما هزینه و پیچیدگی بیشتری دارند.
  • در اکثر سیستم‌ها شروع با Query Rewriting بهترین انتخاب است.