واحد 3 / 11

قطعه بندی و آماده سازی سند

سود:

  • اندازه تکه، همپوشانی و معاوضه های تقسیم معنایی را به صورت عددی ارزیابی کنید
  • انتخاب استراتژی تقسیم بندی مناسب برای انواع مختلف اسناد (PDF، جدول، کد، گزارش چت)
  • با افزودن ابرداده به هر بخش، کیفیت بازیابی و فیلتر را تقویت کنید

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

چرا خرد می کنیم؟

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

بنابراین تکه کوچکترین واحد بازیابی است. نباید خیلی بزرگ یا خیلی کوچک باشد - درست است.

اندازه تکه و تعادل همپوشانی

دو تنظیم اصلی وجود دارد: اندازه تکه (چند نشانه/کلمه در یک تکه خواهد بود) و همپوشانی (بخشی که توسط تکه های همسایه مشترک است).

تکه های بسیار کوچک (مثلاً 100 توکن): متمرکز اما جدا از زمینه. می گوید «برای 14 روز» اما 14 روز در جمله قبل مانده است. تکه های بسیار بزرگ (مثلاً 2000 توکن): زمینه را حفظ می کند، اما بسیاری از رشته ها با هم مخلوط می شوند. جاسازی درهم می شود و موضوعات بی ربط با هم جمع می شوند.

همپوشانی مشکل مرزی را حل می کند. اگر جمله ای دقیقاً در مرز دو قسمت بیفتد بدون همپوشانی به دو قسمت تقسیم می شود و معنی آن از بین می رود. همپوشانی 50 تا 100 توکن تضمین می کند که اطلاعات در محدوده حداقل در یک قسمت دست نخورده باقی می مانند.

اندازه تکه

مزیت

نقطه ضعف

محتوای مناسب

کوچک (100-250 توکن)

حساسیت بالا، متمرکز

زمینه ممکن است شکسته شود

سوالات متداول، مقالات کوتاه، تعاریف

متوسط (300-600 توکن)

تعادل؛ اکثر سناریوها

-

رویه ها، متون خط مشی

بزرگ (800-1500 توکن)

یکپارچگی متن

تعبیه تار

روایت، توضیحات طولانی

نکته: اگر نمی‌دانید از کجا شروع کنید، با 400-500 قطعه توکن و 50-80 توکن همپوشانی شروع کنید. سپس با داده های خود اندازه گیری و تنظیم کنید. اندازه "درست" جهانی نیست، به زمینه بستگی دارد.

استراتژی های خرد کردن

اندازه ثابت: هر N نشانه متن را برش می دهد. این ساده و سریع است، اما می تواند وسط جمله را قطع کند.

مبتنی بر جداکننده (بازگشتی / جداکننده): بر اساس پاراگراف و سپس مرزهای جمله تقسیم می شود. یکپارچگی معنا را بهتر حفظ می کند. اکثر سیستم های تولید با این شروع می شوند.

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

Structure-aware: از ساختار سند مانند سرفصل ها، بخش ها، جداول استفاده می کند. به عنوان مثال، تقسیم یک سند Markdown بر اساس سرفصل ها، تضمین می کند که هر قسمت عنوان خاص خود را دارد.

انطباق بر اساس نوع سند

هر سندی یکسان نیست. استراتژی بر اساس نوع متفاوت است:

  • PDF/متن سیاست: مبتنی بر نشانک، اندازه متوسط. پاک کردن تکرارهای بالا/پایین صفحه (هدر/پانویس).
  • جداول: خط را از متن خارج نکنید. هر ردیف را با اطلاعات هدر نگه دارید ("مورد: X، قیمت: Y، سهام: Z"). تبدیل جدول خام به متن ساده اغلب ضروری است.
  • کد: تقسیم بر اساس مرزهای تابع/کلاس. عملکردی را از سر راه خود حذف نکنید.
  • ضبط چت/بلیت: با پیام یا دور مکالمه تقسیم می شود. اطلاعات خود را در مورد اینکه چه کسی گفته است حفظ کنید.

# تکه‌های مبتنی بر براکت (مفهومی) = bol( متن، هدف_اندازه=450، # همپوشانی توکن=70، # براکت‌های توکن=["\n\n"، "\n"، ". "، " "] # پاراگراف اول، کلمه آخر)

به هر آهنگ متادیتا اضافه کنید

تکه تکه کردن فقط "تقسیم" نیست. غنی سازی هر قطعه است. هر برچسبی که به آهنگ وصل می کنید برای فیلتر کردن و ذکر منبع در آینده ارزش طلایی خود را دارد.

# تکه غنی شده (مفهومی){ "متن": "مرخصی استحقاقی سالانه 14 روز با 1-5 سال خدمت است..."، "متاداده": { "منبع": "ik_el_kitabi_v7.pdf"، "بخش": "مرخصی سالانه 5.2"، "صفحه": 23، "تاریخ:"5-part:"20، "5-part:"20 "داخلی" }}

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

تکه تکه شدن ضعیف / تکه تکه شدن قوی

ضعیف (هاردکات کور، بدون ابرداده):

هر 1000 کاراکتر متن را کوتاه کنید. فقط متن را نگه دارید. # نتیجه: جداول در وسط تقسیم می شوند، "14 روز" بدون متن باقی می ماند، # معلوم نیست از کدام سند آمده است، هیچ فیلتری نمی توان ساخت.

قدرتمند (ساختار آگاه + سرصفحه + ابرداده):

سند را بر اساس عناوین تقسیم کنید. عنوان بخش را به هر بخش اضافه کنید؛ منبع، صفحه، تاریخ و ابرداده حریم خصوصی را پیوست کنید. جدول‌ها را با هدرها به متن ساده تبدیل کنید. # نتیجه: متمرکز، متنی، قابل فیلتر، قابل منبع‌یابی.

سه کیف کوچک

مورد 1 - فاجعه نقاشی. یک تیم مالی لیست قیمت 200 صفحه ای را با برش سخت کور تقسیم کرد. ردیف های جدول به طور تصادفی تقسیم شدند. "قیمت محصول X چقدر است؟" مدل خط اشتباه خوانده و قیمت اشتباه داده است (9 مورد از 12 مورد اشتباه است). وقتی ردیف های جدول را به متن ساده در قالب "محصول: ... | قیمت: ... | واحد: ..." تبدیل کردم، خطا به 0 از 12 کاهش یافت.

مورد 2 - تکه بسیار بزرگ. در یک ویکی، هر صفحه از یک تکه (برخی می گویند 3000 توکن) ساخته شده است. جاسازی تار است زیرا "مرخصی"، "اضافه کار" و "حقوق" در یک صفحه وجود دارد. بخش ساعات کار نیز در رابطه با سوال مرخصی وارد عمل شد. هنگامی که صفحات بر اساس عنوان به اندازه متوسط ​​تقسیم شدند، recall@5 از 64% به 91% افزایش یافت.

مورد 3 - جمله کوتاه بدون همپوشانی. برش ثابت 250 توکن برای یک تیم حقوقی، بدون همپوشانی. یک تعریف انتقادی درست در مرز دو قسمت قرار گرفت و به دو بخش تقسیم شد. نه یکی و نه دیگری حاوی پاسخ کامل نیستند. وقتی 60 توکن همپوشانی اضافه شد، همان تعریف در یک تکه دست نخورده باقی ماند و پاسخ صحیح برگردانده شد.

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

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

به طور خلاصه

  • قطعه کوچکترین واحد بازیابی است. نه خیلی بزرگ و نه خیلی کوچک - باید بر اساس محتوا متعادل شود.
  • اندازه تکه نشان دهنده تعادل تمرکز-زمینه است. همپوشانی از دست دادن مرز را مدیریت می کند.
  • قطعه بندی مبتنی بر براکت و ساختار آگاه نقطه شروع اکثر سیستم های تولید است. قطعه بندی معنایی کیفیت خوبی دارد اما گران است.
  • انواعی مانند جدول، اسکریپت و چت به استراتژی های خاص خود نیاز دارند. تبدیل جداول به متن ساده
  • منبع/تاریخ/فصل/فراداده حریم خصوصی و عنوان بخش را به هر آهنگ اضافه کنید. این اساس فیلترینگ و استناد است.

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

بخشی از سندی را که انتخاب می کنید به سه روش مختلف تقسیم کنید: (1) قطعات کوچک 200 توکن، (2) قطعات متوسط ​​از 500 توکن (70 توکن همپوشانی)، (3) تک تکه های بزرگ. همان 3 سوال را برای هر استراتژی بپرسید، به صورت دستی علامت گذاری کنید کدام قطعه را وارد کنید، و استدلالی را بنویسید که کدام استراتژی برای آن سند بهتر عمل می کند. سپس حداقل چهار فیلد فراداده و یک «عنوان فصل» به هر آهنگ اضافه کنید. اگر سند حاوی جدول است، یک ردیف جدول را با فرمت "field:value" به متن ساده تبدیل کنید.

چک لیست

  • [ ] می توانم بگویم که تکه کوچکترین واحد بازیابی و اندازه تعادل تمرکز-زمینه است.
  • [ ] من می دانم که چرا همپوشانی مانع از دست دادن مرز می شود.
  • [ ] من می توانم بین تقسیم بندی مبتنی بر براکت، معنایی و ساختار آگاه تمایز قائل شوم.
  • [ ] من می توانم استراتژی را برای جدول، کد و چت تطبیق دهم.
  • [ ] من بازیابی را با افزودن ابرداده و عنوان فصل به هر آهنگ تقویت می کنم.