مهار اسناد طولانی با استفاده از LLMها

من سیستمی برای پاسخگویی به سوالات از فایل‌های PDF فنی ۱۰۰ صفحه‌ای ساختم.

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

اولین تلاش من استفاده از GPT-4 با متن کامل بود. این روش برای ۱۰ صفحه جواب داد. اما در ۱۰۰ صفحه، به سقف محدودیت توکن رسیدم. مدل جزئیات میانی را فراموش می‌کرد. هزینه‌ها هم بسیار بالا بود.

من این روش‌ها را امتحان کردم:

  • تکه‌تکه کردن (Chunking) ساده: مدل بخش‌های اشتباهی را انتخاب می‌کرد و زمینه (context) را از دست می‌داد.
  • روش Map-reduce: جزئیات خاص را از دست دادم.
  • پنجره‌های لغزان (Sliding windows): این روش بسیار کند و گران بود.

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

گردش کار (workflow) جدید به این صورت است:

  • ایجاد یک سلسله‌مراتب. از یک LLM برای ساخت خلاصه کوتاهی از هر تکه (chunk) استفاده کنید.
  • ذخیره خلاصه‌ها و متن کامل در یک پایگاه داده برداری (vector database).
  • استفاده از جستجوی ترکیبی (hybrid search). ترکیب کلمات کلیدی و جستجوی معنایی (semantic search).
  • ابتدا ۳ خلاصه برتر را بازیابی کنید.
  • متن کامل مربوط به آن خلاصه‌ها را فراخوانی کنید.
  • این زمینه (context) را به LLM بدهید.

نتایج:

  • هزینه‌ها ۷۰٪ کاهش یافت.
  • اصطلاحات فنی اکنون دقیق هستند.
  • دقت بهبود یافت.

نکاتی برای تنظیمات شما:

  • از GPT-3.5 برای خلاصه‌سازی استفاده کنید.
  • از GPT-4 برای پاسخ نهایی استفاده کنید.
  • از همان ابتدا یک مجموعه داده آزمایشی بسازید.
  • برای اسناد زیر ۲۰ صفحه، کل متن را در پرامپت قرار دهید (Stuff the prompt).

منبع: https://dev.to/__c1b9e06dc90a7e0a676b/how-i-finally-tamed-long-document-analysis-with-llms-it-wasnt-simple-chunking-5ed3