การจัดการกับการวิเคราะห์เอกสารขนาดยาวด้วย LLMs

ผมต้องตอบคำถามจากไฟล์ PDF ที่มีความยาวถึง 100 หน้า สคริปต์แบบธรรมดาใช้งานไม่ได้ผล ผมต้องต่อสู้กับข้อจำกัดของ token และค่าใช้จ่ายที่สูงลิ่วอยู่หลายสัปดาห์

เริ่มแรก ผมลองใช้ข้อความทั้งหมด (full text) โมเดลลืมรายละเอียดตรงช่วงกลางๆ ค่าใช้จ่ายพุ่งสูงถึง 50 เซนต์ต่อการเรียกใช้งานหนึ่งครั้ง

จากนั้นผมจึงลองใช้วิธีเหล่านี้:

  • Fixed chunks: โมเดลเลือกส่วนที่ไม่ถูกต้อง
  • Map-reduce: บทสรุปขาดรายละเอียดที่สำคัญ
  • Sliding window: ทำงานช้าเกินไป

ผมจึงตัดสินใจเลียนแบบวิธีการอ่านของมนุษย์ มนุษย์จะอ่านแบบกวาดสายตาก่อน แล้วจึงค่อยอ่านอย่างละเอียด

นี่คือกระบวนการของผม:

  • สร้างลำดับชั้นของ chunks
  • เขียนบทสรุปสั้นๆ สำหรับแต่ละ chunk
  • เก็บทั้งบทสรุปและข้อความดิบ (raw text) ไว้ใน vector database
  • ใช้ hybrid search เพื่อค้นหาบทสรุปที่ดีที่สุด
  • ดึงข้อความดิบจากบทสรุปเหล่านั้นออกมา
  • ใช้ prompt ที่เข้มงวดเพื่อป้องกันการเกิด hallucination

สิ่งนี้ทำให้ผลลัพธ์เปลี่ยนไป:

  • ค่าใช้จ่ายลดลง 70 เปอร์เซ็นต์
  • ความแม่นยำเพิ่มขึ้น
  • คำศัพท์ทางเทคนิคยังคงความถูกต้องครบถ้วน

คำแนะนำสำหรับคุณ:

  • ใช้โมเดลราคาถูกสำหรับการทำบทสรุป
  • ใช้ GPT-4 สำหรับการตอบคำถามสุดท้าย
  • สร้างชุดข้อมูลสำหรับทดสอบ (test dataset) ตั้งแต่สัปดาห์แรก
  • ข้ามขั้นตอนนี้ไปได้เลยหากเอกสารมีความยาวน้อยกว่า 20 หน้า

แล้วคุณล่ะ มีวิธีการจัดการกับเอกสารขนาดยาวอย่างไร?

Source: https://dev.to/__c1b9e06dc90a7e0a676b/how-i-finally-tamed-long-document-analysis-with-llms-it-wasnt-simple-chunking-5ed3 Optional learning community: https://t.me/GyaanSetuAi