Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Bàn về công nghệ 4.0
Bàn về công nghệ 4.0

Mấy ngày trước IBM ra mắt mô hình mở Granite Docling VLM tích hợp vào thư viện Docling với kỳ vọng OCR “hiểu” được cấu trúc văn bản. Nhân dịp đó mình thử benchmark ba pipeline để xem tốc độ và độ phù hợp khi xử lý tài liệu pháp lý tiếng Việt.
Thỉnh thoảng mình thấy ai đó trong các nhóm mình tham gia hỏi: “Công cụ OCR nào tốt nhất?”
Mỗi người trả lời khác nhau. Có người nói về API đa phương thức của Google, có người giới thiệu dịch vụ chuyên như Llamaparse. Rồi có PaddleOCR, rất mạnh, nhưng không có model mã nguồn mở cho tiếng Việt tương thích. VietOCR thì bỏ rồi, lần cuối mình thử tải model từ AWS S3 cũng không được. Có khi nó vẫn sống, có khi không.
Thực tế mình dùng OCR chủ yếu cho văn bản pháp luật. Các tài liệu pháp lý ở Việt Nam đủ kiểu: form có bảng, hợp đồng nhiều trang, scan từ giấy, ảnh mờ… OCR phải xử được cả đống đó mà vẫn giữ được dấu tiếng Việt, cấu trúc, format.
Mấy ngày trước IBM mới công bố một mô hình VLM (vision language model) 258M parameter tích hợp vào thư viện docling với lời hứa hẹn về khả năng “hiểu” thực sự đối với cấu trúc văn bản cần được OCR.
Vì vậy mình làm thử benchmark ba pipeline sau:
Bài benchmark này mục đích không phải để tuyên bố công cụ nào thắng, mà để xem mấy cái này làm được gì, chỗ nào yếu, trong điều kiện thực tế.
Cấu hình thử nghiệm: Intel i5 12400, 32GB RAM DDR4, RTX 3060 12GB
Dataset 1: 2 file tài liệu scan đơn giản (6 trang), 2 file vận đơn dạng bảng (1 trang mỗi file)
Dataset 2: 10 file tài liệu scan, tổng 60 trang
| Pipeline | Engine OCR | Nhận dạng layout | Đầu ra (*) | Hỗ trợ tiếng Việt | Thời gian với 4 file | Thời gian với 10 file |
|---|---|---|---|---|---|---|
| ParaOCR | EasyOCR | ❌ Chưa có (**) | JSONL | ✅ Tạm ổn | ~ 30.46 giây | ~ 117.89 giây |
| Docling Standard | EasyOCR | ✅ Có | HTML | ✅ Trung bình | ~ 38.96 giây | ~ 326.83 giây |
| Docling VLM | Granite_docling + EasyOCR | ✅ Nâng cao | Markdown | ❌ Kém | ~ 712.55 giây | Không test |
(*) Mình chọn mấy định dạng này cho benchmark thôi. Pipeline có thể xuất sang định dạng khác được.
(**) Lúc làm ParaOCR mình có để lại placeholder cho mục layout analysis, nhưng mình cũng chưa có thời gian triển khai phần đó.
Cũng xin nhắc lại: trong bài blog trước mình làm thử với 10 file, thì EasyOCR nguyên bản không parallel mất khoảng 179 giây để xử lý hết.
Văn bản pháp lý Việt Nam vẫn cần các model hiểu được script, dấu, cách trình bày tài liệu đặc thù. Trong lúc chờ model tốt hơn:
[1] https://www.ibm.com/new/announcements/granite-docling-end-to-end-document-conversion
[2] https://huggingface.co/ibm-granite/granite-docling-258M