Chế ngự các tài liệu dài bằng LLM

Tôi đã xây dựng một hệ thống để trả lời các câu hỏi từ các tệp PDF kỹ thuật dài 100 trang.

Các kịch bản đơn giản đều thất bại. Tôi đã phải vật lộn với giới hạn token và chi phí cao trong nhiều tuần.

Lần thử đầu tiên của tôi là sử dụng GPT-4 với toàn bộ văn bản. Cách này hoạt động tốt với 10 trang. Nhưng đến 100 trang, tôi đã chạm ngưỡng giới hạn token. Mô hình bị quên các chi tiết ở giữa tài liệu. Chi phí thì quá cao.

Tôi đã thử các phương pháp sau:

  • Chia nhỏ cơ bản (Basic chunking): Mô hình chọn sai các phần. Nó bị mất ngữ cảnh.
  • Map-reduce: Tôi bị mất các chi tiết cụ thể.
  • Cửa sổ trượt (Sliding windows): Cách này quá chậm và tốn kém.

Tôi mô phỏng cách con người đọc. Chúng ta lướt qua mục lục. Sau đó, chúng ta đọc các phần cụ thể.

Đây là quy trình làm việc mới:

  • Tạo một cấu trúc phân cấp. Sử dụng LLM để tạo một bản tóm tắt ngắn cho mỗi phần (chunk).
  • Lưu trữ các bản tóm tắt và toàn bộ văn bản vào một cơ sở dữ liệu vector (vector database).
  • Sử dụng tìm kiếm hỗn hợp (hybrid search). Kết hợp giữa từ khóa và tìm kiếm ngữ nghĩa (semantic search).
  • Truy xuất 3 bản tóm tắt hàng đầu trước.
  • Lấy toàn bộ văn bản của các bản tóm tắt đó.
  • Đưa ngữ cảnh này vào LLM.

Kết quả:

  • Chi phí giảm 70%.
  • Các thuật ngữ kỹ thuật hiện đã chính xác.
  • Độ chính xác được cải thiện.

Lời khuyên cho thiết lập của bạn:

  • Sử dụng GPT-3.5 để tóm tắt.
  • Sử dụng GPT-4 để đưa ra câu trả lời cuối cùng.
  • Xây dựng bộ dữ liệu kiểm thử ngay từ đầu.
  • Đưa trực tiếp nội dung vào prompt đối với các tài liệu dưới 20 trang.

Nguồn: https://dev.to/__c1b9e06dc90a7e0a676b/how-i-finally-tamed-long-document-analysis-with-llms-it-wasnt-simple-chunking-5ed3