استراتژی‌های تکه‌کردن (Chunking) در RAG: تقسیم اسناد برای بازیابی بهتر

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

اگر بازیابی (retrieval) شما ضعیف است، ابتدا پرامپت یا LLM خود را تغییر ندهید. به تکه‌های (chunks) خود نگاه کنید. اگر اطلاعات صحیح در پایگاه داده شما وجود دارد اما سیستم نمی‌تواند آن را پیدا کند، احتمالاً استراتژی تکه‌کردن شما مشکل اصلی است.

تکه‌کردن نامناسب باعث سه مشکل اصلی می‌شود:

قطع شدن در مرزها (Boundary truncation): جمله‌ای که حاوی پاسخ است به دو قسمت تقسیم می‌شود. هیچ‌کدام از این دو قسمت اطلاعات کافی برای مطابقت با پرس‌وجو (query) را ندارند. • رقیق شدن متن (Context dilution): یک تکه بزرگ شامل یک جمله مرتبط و ده جمله بی‌فایده است. متن اضافی سیگنال معنایی را تضعیف می‌کند. • فقدان متادیتا (Missing metadata): تکه‌ها فاقد اطلاعات مربوط به منبع یا تاریخ هستند که جستجوی فیلترشده را غیرممکن می‌کند.

از این چهار استراتژی برای اصلاح خط لوله (pipeline) خود استفاده کنید:

  1. تکه‌کردن با اندازه ثابت (Fixed-size chunking) بهترین گزینه برای متن‌های طولانی و پیوسته مانند گزارش‌ها یا مقالات. • از ۲۵۶ تا ۵۱۲ توکن استفاده کنید. • یک هم‌پوشانی (overlap) ۱۰٪ تا ۱۵٪ برای جلوگیری از قطع شدن جملات تنظیم کنید.

  2. تکه‌کردن معنایی (Semantic chunking) بهترین گزینه برای متن‌های با چگالی بالا مانند سوالات متداول (FAQs) یا اسناد پشتیبانی. • این روش متن را بر اساس تغییر موضوع، به جای تعداد توکن‌ها، تقسیم می‌کند. • این کار باعث می‌شود ایده‌های کامل در کنار هم باقی بمانند.

  3. تکه‌کردن ساختاری (Structural chunking) بهترین گزینه برای اسناد فنی، Markdown یا HTML. • متن را بر اساس سرتیترها (H1, H2, H3) تقسیم می‌کند. • این کار متادیتا اضافه می‌کند تا بتوانید بازیابی را بر اساس بخش (section) فیلتر کنید.

  4. تکه‌کردن سلسله‌مراتبی (Hierarchical/Parent-Child chunking) بهترین گزینه برای سیستم‌های عملیاتی که هم به دقت و هم به متن (context) نیاز دارند. • تکه‌های فرزند کوچک (۶۴-۱۲۸ توکن) برای جستجوی برداری (vector search) دقیق ایجاد کنید. • آن‌ها را به تکه‌های والد بزرگ (۵۱۲-۱۰۲۴ توکن) متصل کنید تا LLM آن‌ها را بخواند. • این روش بهترین ویژگی‌های هر دو حالت را به شما می‌دهد.

چگونه اندازه مناسب را انتخاب کنید:

• ۱۲۸–۲۵۶ توکن: مناسب برای جستجوی حقایق و اسناد فنی. • ۲۵۶–۵۱۲ توکن: یک نقطه شروع مناسب برای استفاده‌های عمومی. • ۵۱۲–۱۰۲۴ توکن: برای سوالات تحلیلی طولانی استفاده کنید.

قانون طلایی: همیشه استراتژی خود را قبل از عرضه (ship) آزمایش کنید.

مجموعه‌ای از ۳۰ تا ۵۰ پرس‌وجوی واقعی بسازید. پاسخ‌های صحیح را برچسب‌گذاری (annotate) کنید. معیار recall@3 خود را اندازه‌گیری کنید. تا زمانی که recall شما بالای ۸۰٪ نشده است، مدل embedding خود را تغییر ندهید.

Source: https://dev.to/dishant_sethi/rag-pipeline-chunking-strategies-split-documents-for-better-retrieval-aoe

Optional learning community: https://t.me/GyaanSetuAi