From 4 Weeks to 45 Minutes: Designing a Document Extraction System for 4,700+ PDFs | Towards Data Science
TL;DR
Bài này chia sẻ cách xây dựng một pipeline hybrid (kết hợp PyMuPDF và GPT-4 Vision) để tự động trích xuất số phiên bản từ 4,700 bản vẽ kỹ thuật PDF. Giải pháp này đã giúp tiết kiệm 160 giờ làm việc và hơn £8,000 chi phí nhân công, cho thấy việc thiết kế hệ thống thông minh quan trọng hơn là chỉ dùng mỗi AI mạnh nhất.
Nói đơn giản: Như có một bộ lọc thông minh, cái nào dễ thì tự làm, cái nào khó mới nhờ chuyên gia AI.
Tổng quan
Một công ty cần di chuyển 4,700 bản vẽ kỹ thuật PDF sang hệ thống quản lý tài sản mới. Vấn đề là họ cần trích xuất giá trị “REV” (số phiên bản) từ mỗi bản vẽ, một trường nhỏ nằm trong khối tiêu đề (title block). Nếu làm thủ công, sẽ tốn khoảng 160 giờ (4 tuần làm việc của một kỹ sư) và hơn £8,000 chi phí.
Đây hông phải là bài toán AI thuần túy, mà là bài toán thiết kế hệ thống với nhiều ràng buộc thực tế: ngân sách, độ chính xác, định dạng file hỗn hợp. Bản vẽ kỹ thuật rất phức tạp: có file là text-based PDF (tạo từ CAD), có file là image-based PDF (scan từ giấy cũ). Thậm chí trong file text-based, REV có thể ở nhiều định dạng, file bị xoay, hoặc dễ nhầm lẫn với các bảng lịch sử sửa đổi hay ký tự lưới.
Giải pháp được đưa ra là một kiến trúc hybrid hai giai đoạn:
- Giai đoạn 1 (PyMuPDF): Dùng rule-based extraction (quy tắc cố định) với PyMuPDF để xử lý các PDF text-based. Phương pháp này miễn phí và cực nhanh.
- Giai đoạn 2 (GPT-4 Vision): Nếu giai đoạn 1 hông tìm được kết quả tự tin (do PDF là ảnh hoặc layout quá phức tạp), thì mới gửi ảnh trang đầu tiên của PDF đó cho GPT-4 Vision qua Azure OpenAI.
Kết quả là hệ thống đạt độ chính xác 96%, xử lý toàn bộ 4,700 file trong 45 phút với chi phí API chỉ $10-15, tiết kiệm đáng kể so với việc chỉ dùng GPT-4 Vision cho tất cả.
Xài vào việc gì?
Cần di chuyển dữ liệu cũ sang hệ thống mới Tình huống: Bạn đang có hàng ngàn tài liệu cũ (hợp đồng, hóa đơn, bản vẽ) dưới dạng PDF và cần trích xuất các thông tin quan trọng (số hợp đồng, ngày, số phiên bản) để nhập vào hệ thống quản lý mới. Cách xài: Áp dụng pipeline hybrid này để tự động hóa việc trích xuất. Phần lớn tài liệu sẽ được xử lý nhanh và miễn phí bằng rule-based, những trường hợp khó hơn mới dùng AI. Kết quả: Tiết kiệm hàng trăm giờ nhập liệu thủ công, giảm chi phí và đẩy nhanh quá trình chuyển đổi dữ liệu.
Quản lý tài liệu kỹ thuật, pháp lý quy mô lớn Tình huống: Bạn cần thường xuyên kiểm tra hoặc cập nhật một trường thông tin cụ thể (ví dụ: số phiên bản, chữ ký, ngày hiệu lực) trong kho tài liệu khổng lồ của mình. Cách xài: Xây dựng một công cụ nội bộ như web app (như ví dụ trong bài) để team hông chuyên kỹ thuật cũng có thể upload file và chạy trích xuất theo yêu cầu. Kết quả: Đảm bảo dữ liệu luôn được cập nhật và chính xác mà hông cần tốn nhân lực mở từng file một.
Tối ưu chi phí vận hành cho các tác vụ lặp lại Tình huống: Team bạn đang dành nhiều thời gian cho các tác vụ nhập liệu, kiểm tra dữ liệu lặp đi lặp lại từ các tài liệu có cấu trúc tương tự. Cách xài: Phân tích các mẫu dữ liệu và xây dựng các quy tắc trích xuất deterministic trước, sau đó dùng AI để xử lý các ngoại lệ. Kết quả: Giảm đáng kể chi phí nhân công, giải phóng kỹ sư và nhân viên làm các công việc có giá trị cao hơn, tăng ROI cho các dự án tự động hóa.
Các điểm chính
-
Bắt đầu với phương pháp rẻ nhất, khả thi nhất. Đừng vội vàng “quăng” mọi thứ vào LLM. Rule-based extraction (PyMuPDF) đã xử lý 70-80% tài liệu mà hông tốn một xu, chỉ dùng GPT-4 Vision cho những trường hợp thực sự cần. Hành động: Khi đối mặt với bài toán tự động hóa, hãy luôn tìm cách giải quyết bằng các phương pháp deterministic (quy tắc cố định) trước khi nghĩ đến AI phức tạp.
-
PDF kỹ thuật hông đơn giản như bạn nghĩ. Nó có thể là text-based, image-based, bị xoay, và chứa nhiều “bẫy” như bảng lịch sử sửa đổi hay ký tự lưới dễ gây nhầm lẫn với giá trị cần trích xuất. Hành động: Dành thời gian hiểu sâu về cấu trúc và các “ngoại lệ” của dữ liệu tài liệu bạn đang làm việc.
-
Validate trên toàn bộ dữ liệu, hông phải mẫu nhỏ. Các vấn đề như xoay file, nhầm lẫn với bảng lịch sử chỉ lộ ra khi chạy trên 4,700 file, hông phải 20 file test ban đầu. Hành động: Luôn chuẩn bị một tập dữ liệu validation đủ lớn và đa dạng, đại diện cho tất cả các trường hợp edge case bạn có thể gặp trong production.
-
Prompt engineering là software engineering. Prompt hông phải là văn bản viết chơi chơi, mà là một thành phần quan trọng của hệ thống. Nó cần được thiết kế kỹ lưỡng với ví dụ đa dạng, trường hợp phủ định rõ ràng và checklist tự kiểm tra để tránh “hallucination”. Hành động: Coi prompt như một phần code, versioning cẩn thận, test kỹ lưỡng và liên tục cải tiến.
-
Độ chính xác “đúng” hông phải lúc nào cũng là cao nhất. Với bài toán di chuyển dữ liệu, 96% accuracy và 5% cần review thủ công là chấp nhận được vì nó cân bằng chi phí và thời gian. Nếu là yêu cầu tuân thủ quy định thì có thể cần cao hơn. Hành động: Xác định rõ mục tiêu của stakeholder và độ chính xác “đủ tốt” để đạt được mục tiêu đó, thay vì cố gắng đạt 100% bằng mọi giá.
-
Mô hình mới nhất hông phải lúc nào cũng tốt nhất. Các mô hình GPT-5+ mới hơn hông mang lại cải thiện đáng kể về độ chính xác so với GPT-4.1 cho tác vụ này, nhưng lại tốn kém hơn và chậm hơn. Hành động: Đừng chạy theo “hot trend” mô hình mới nhất. Benchmark kỹ lưỡng và chọn công cụ phù hợp nhất với bài toán và ngân sách của bạn.
-
Biến script thành hệ thống. Từ một công cụ dòng lệnh, nó được đóng gói thành web app nội bộ, giúp người dùng hông chuyên kỹ thuật cũng xài được. Hành động: Sau khi chứng minh được giá trị, hãy nghĩ cách làm cho giải pháp của bạn dễ tiếp cận và tái sử dụng cho nhiều team khác trong tổ chức.
Quick Start
- Tuần này: Xác định một tác vụ nhập liệu hoặc trích xuất dữ liệu lặp lại đang tốn thời gian trong team/công việc của bạn. Ước tính số giờ và chi phí nhân công mà nó đang “ngốn” mỗi tháng.
- Bước tiếp: Thử dùng các thư viện xử lý PDF cơ bản (như PyMuPDF) hoặc các công cụ no-code/low-code để xem bạn có thể tự động hóa bao nhiêu phần trăm tác vụ đó mà hông cần đến AI phức tạp.
- Thói quen duy trì: Khi nghĩ đến việc dùng AI để giải quyết một vấn đề, hãy luôn tự hỏi: “Mình có thể giải quyết bao nhiêu phần trăm vấn đề này bằng cách đơn giản/rẻ tiền nhất trước khi cần AI hông?”
FAQ
Hệ thống này có thể áp dụng cho loại tài liệu khác hông? Có, miễn là bạn hiểu cấu trúc tài liệu và vị trí thông tin cần trích xuất. Nguyên tắc hybrid này có thể áp dụng cho hợp đồng, hóa đơn, báo cáo…
Có cần biết code để làm được điều này hông? Để xây dựng pipeline ban đầu thì có (khoảng 600 dòng Python). Nhưng khi nó được đóng gói thành web app nội bộ, người dùng cuối hông cần biết code để xài.
Tại sao hông dùng thẳng GPT-4 Vision cho tất cả các file? Vì nó sẽ tốn kém hơn gấp nhiều lần (khoảng $47 so với $10-15) và chậm hơn (100 phút so với 45 phút), trong khi phần lớn dữ liệu có thể xử lý bằng cách rẻ hơn và nhanh hơn.
Độ chính xác 96% có đủ tốt hông? Tùy bài toán. Với việc di chuyển dữ liệu, có một tỷ lệ nhỏ cần review thủ công là chấp nhận được để đổi lấy việc tiết kiệm thời gian và chi phí khổng lồ. Với các yêu cầu tuân thủ nghiêm ngặt, bạn có thể cần độ chính xác cao hơn.
Tags [AI automation, document processing, PDF extraction, hybrid AI, cost optimization, PyMuPDF, GPT-4 Vision]
Đang tải nội dung...