26 điểm bởi GN⁺ 2025-06-17 | 2 bình luận | Chia sẻ qua WhatsApp
  • Mô hình OCR ảnh-to-Markdown hiệu năng cao, vượt xa mức nhận dạng ký tự đơn thuần để chuyển đổi toàn bộ tài liệu sang cấu trúc Markdown
  • Chuyển công thức toán sang định dạng LaTeX, tự động thêm mô tả cho hình ảnh, và xuất bảng dưới dạng bảng HTML/Markdown để tạo ra đầu ra được tối ưu cho việc sử dụng với LLM
  • Nhận diện chữ ký, watermark, checkbox rồi chuyển thành các dạng như <signature>, <watermark>, ☐/☑, cho thấy khả năng xử lý rất tốt theo từng thành phần tài liệu
  • Có thể sử dụng dễ dàng thông qua Transformers hoặc máy chủ vLLM của Hugging Face, đồng thời cũng có thể dùng dưới dạng ứng dụng web qua thư viện docext
  • Với nhiều loại tài liệu và bố cục phức tạp, mô hình cho độ chính xác và mức độ cấu trúc hóa rất cao, rất hữu ích cho hợp đồng, biểu mẫu, báo cáo, v.v.

Tổng quan dự án và tầm quan trọng

  • Nanonets-OCR-s là một mô hình đột phá không chỉ dừng ở OCR thông thường (nhận dạng ký tự quang học), mà còn phân tích ý nghĩa và cấu trúc của tài liệu để xuất kết quả ở định dạng Markdown
  • Mô hình phân biệt công thức, hình ảnh, bảng, checkbox, chữ ký và watermark, rồi chuyển chúng sang cách gắn thẻ và biểu diễn có ý nghĩa (LaTeX, HTML, Markdown, v.v.), từ đó cung cấp đầu ra phù hợp cho các tác vụ downstream hoặc xử lý tài liệu dựa trên LLM (mô hình ngôn ngữ lớn)
  • So với các dự án OCR mã nguồn mở hiện có, mô hình cho thấy hiệu năng cao hơn trong việc trích xuất cấu trúc tài liệu phức tạp và nhiều yếu tố ngữ nghĩa khác nhau, đồng thời có tiềm năng áp dụng vào các workflow tự động hóa
  • Đây là phiên bản fine-tune từ mô hình Qwen2.5-VL-3B-Instruct, có khả năng nhận diện nhiều thành phần tài liệu và gắn thẻ chúng bằng markup có ý nghĩa

Tính năng chính

  • Nhận diện công thức LaTeX
    • Tự động chuyển các biểu thức và công thức toán học trong tài liệu sang cú pháp LaTeX theo dạng inline($...$) hoặc display($$...$$)
  • Mô tả hình ảnh thông minh
    • Với mỗi hình ảnh, mô hình mô tả chi tiết tính chất, phong cách và nội dung của ảnh trong thẻ <img>
    • Các loại hình như logo, biểu đồ, đồ thị cũng được mô tả kèm ngữ cảnh và ý nghĩa để chuyển thành đầu vào phù hợp cho LLM
  • Phát hiện và tách chữ ký
    • Tách hình ảnh chữ ký khỏi văn bản và xử lý trong thẻ <signature> riêng
    • Có giá trị ứng dụng cao trong xử lý tự động tài liệu pháp lý và kinh doanh
  • Trích xuất watermark
    • Phát hiện văn bản watermark được chèn trong tài liệu và sắp xếp riêng trong thẻ <watermark>
  • Chuyển đổi checkbox và radio button
    • Xuất ra dưới dạng ký hiệu Unicode chuẩn như * ☐ (chưa chọn), ☑ (đã chọn), ☒ (từ chối)
    • Nâng cao độ tin cậy khi xử lý các tài liệu dạng biểu mẫu như khảo sát, đơn đăng ký
  • Trích xuất cấu trúc bảng phức tạp
    • Ngay cả các bảng phức tạp cũng được chuyển sang bảng Markdown và HTML, mang lại khả năng tận dụng cao

Cách sử dụng chính

Ví dụ mã Python

  • Có thể dễ dàng tải và chạy mô hình bằng thư viện transformers của Hugging Face
  • Khi đưa hình ảnh làm đầu vào, mô hình sẽ trả về kết quả dưới dạng Markdown có cấu trúc gồm văn bản, bảng, công thức, mô tả hình ảnh, watermark, v.v.
  • Số trang hoặc watermark được bọc và phân tách bằng ,
  • Checkbox được xuất bằng ký hiệu Unicode (☐, ☑)

Sử dụng dựa trên vLLM

  • Có thể đăng ký mô hình trên máy chủ vLLM và truy cập, sử dụng dễ dàng qua API tương thích OpenAI
  • Khi nhập hình ảnh, mô hình xuất kết quả chuyển đổi ở định dạng nhất quán cho văn bản, bảng, công thức, watermark, v.v.

Sử dụng gói docext

  • Thông qua gói riêng docext, có thể áp dụng ngay Nanonets-OCR-s vào việc cấu trúc hóa tài liệu chỉ bằng cách chạy lệnh riêng biệt
  • Có thể tham khảo tài liệu GitHub

2 bình luận

 
GN⁺ 2025-06-17
Ý kiến trên Hacker News
  • Tôi làm việc tại Nanonets và rất hào hứng khi được công bố Nanonets-OCR-s, một mô hình VLM quy mô 3B
    Mô hình nhẹ này được tối ưu để chuyển tài liệu thành Markdown sạch, có cấu trúc
    Nó học được cấu trúc và ngữ cảnh của tài liệu như bảng, công thức, hình ảnh, biểu đồ, watermark, checkbox, v.v.
    Các tính năng chính gồm nhận diện công thức LaTeX (phân biệt đúng giữa công thức inline và block khi chuyển đổi), mô tả hình ảnh tích hợp sẵn (dùng thẻ img, hỗ trợ biểu đồ/logo/sơ đồ, v.v.), phát hiện và tách chữ ký (xuất trong khối signature), trích xuất watermark (lưu bằng thẻ watermark), xử lý checkbox/radio button thông minh (chuyển sang Unicode để tăng độ tin cậy cho hậu xử lý), trích xuất cấu trúc bảng phức tạp (cả bảng nhiều hàng/cột cũng xuất tốt sang Markdown và HTML)
    Nếu muốn tự dùng thử, có thể xem Huggingface hoặc Docext Colab

    • Liên kết đúng của Docext là README.md

    • Tôi tò mò liệu LLM đang dùng có xuất hiện hiện tượng hallucination hay không

    • Tôi muốn hỏi liệu có thể trích xuất chính hình ảnh hay vẫn cần một bước trích xuất riêng

    • Tôi muốn biết liệu có thể dùng nó để parse ảnh hoặc PDF thực đơn nhà hàng theo một JSON schema nào đó không (có lẽ kèm thêm sự hỗ trợ của một LLM hậu xử lý), hay một multimodal LLM cỡ lớn sẽ phù hợp hơn cho mục đích này

  • Tôi đã thử nhiều LLM để dịch một từ điển Shipibo (ngôn ngữ bản địa Peru)-Tây Ban Nha sang từ điển tiếng Anh, nhưng vì có hai cột, xuống dòng lạ, và phần định nghĩa trộn cả Shipibo lẫn tiếng Tây Ban Nha nên rất khó hiểu
    Thêm nữa chất lượng bản scan cũng không tốt
    Tôi nghĩ mình nên thử mô hình này một lần

  • Tôi đã luôn tìm một giải pháp nhận toàn bộ tài liệu được lưu suốt hàng chục năm trong Word và PowerPoint, rồi chuyển chúng sang dạng chuẩn hóa để từng thành phần có thể được tái sử dụng ở các định dạng khác
    Đây là một khối xây dựng cốt lõi tuyệt đối cần thiết để tạo ra hệ thống đó
    Giờ tôi còn cần thêm tính năng archive hoặc history, tức là sẽ rất tốt nếu có thể dễ dàng lưu trữ và gọi lại từng thành phần
    Thật sự là một công trình rất tuyệt

    • Có ý kiến rằng có thể đơn giản hơn nếu bắt đầu bằng cách chuyển đổi cơ bản bằng unoconv hoặc pandoc, rồi dùng LLM để làm sạch phần plain text
  • Tôi thấy tiếc vì các mô hình kiểu này chỉ nhắm tới Markdown
    Thực tế Markdown có nhiều biến thể và hỗ trợ còn kém cho chú thích cuối trang, tài liệu tham khảo, hình minh họa, v.v.
    Cần một định dạng có cấu trúc hơn và đặc tả rõ ràng hơn

    • Thực ra chúng tôi huấn luyện mô hình không chỉ chuyển sang Markdown mà còn gắn semantic tagging cùng lúc
      Ví dụ, công thức được trích xuất dưới dạng LaTeX, còn hình ảnh (biểu đồ, hình minh họa, v.v.) được mô tả chi tiết bằng thẻ img
      Chữ ký (signature), watermark (watermark), số trang, v.v. cũng dùng thẻ
      Các bảng phức tạp (nhiều hàng/cột) sẽ được xuất thành bảng HTML thay vì Markdown

    • Tôi còn hào hứng với khái niệm "Markdown có cấu trúc" hơn cả bản thân mô hình LLM OCR, nhưng rốt cuộc cảm giác nó vẫn chỉ dừng ở mức gắn thẻ cho một số thành phần nhất định, nên khả năng tận dụng ngoài mô hình có phần hơi hạn chế

  • Tôi muốn biết nếu so với docling(https://github.com/docling-project/docling) thì ưu và nhược điểm là gì

  • Tôi muốn biết nó khác gì so với Datalab/Marker(https://github.com/datalab-to/marker)
    Tôi đã so sánh nhiều bộ chuyển PDF->MD, và tới giờ Marker vẫn là cái tốt nhất, dù chưa hoàn hảo

    • Theo trải nghiệm cá nhân, Marker khá hợp để chuyển các bài báo có công thức phức tạp và code trộn lẫn
      Ví dụ, nếu xử lý bằng Marker một trang trong bài báo về phép biến đổi Laplace ngược bằng Fortran, nơi công thức (trộn inline/display) và các khối code monospace xen lẫn nhau, thì inline $\sigma_0$ sẽ bị hỏng thành "<sup>s</sup> 0", còn $f(t)$ thành "<i>f~</i>~t*!"
      Điểm mạnh của mô hình này là hiện xuất đúng các phần như vậy ở mức nội tại
      Ảnh chụp màn hình tham khảo(https://imgur.com/a/Q7UYIfW)

    • Tôi mới bắt đầu tự so sánh chéo, nên nếu có thể cho tôi danh sách các ứng viên thì tôi sẽ thực sự rất biết ơn

  • Tôi đã tự viết một script PowerShell để áp dụng mô hình này cho PDF ở mọi nơi
    Tự chạy thử thì GPU (1080 8GB) đã cũ nên tốc độ khá chậm (ít nhất hơn 5 phút mỗi trang)
    Nếu ai muốn thử một tiện ích chuyển PDF sang Markdown chạy trên Cloud Run (có hỗ trợ GPU ngoài), hãy cho tôi biết
    Khi hoàn thiện tôi cũng sẽ chia sẻ liên kết

    • Tôi vừa chạy nó trên Cloud Run và báo cáo kết quả mẫu
      Nhìn vào một phần kết quả của animate.pdf, có thể thấy tiêu đề, tác giả, nhà xuất bản, minh họa đen trắng (được mô tả bằng thẻ img), và thẻ số hóa của Google đều được trích xuất tốt
      Ngay cả mục lục cũng được trích ra hoàn hảo dưới dạng bảng
      Ngoài việc chậm ra thì tôi rất hài lòng với tính năng và độ chính xác

    • Tôi rất quan tâm đến dịch vụ PDF sang Markdown dùng Cloud Run

  • Tôi muốn biết nó xử lý tài liệu có bảng nhiều cột hoặc bảng nhiều hàng như thế nào (ví dụ: PDF này, như rowspan ở trang 1, colspan ở trang 29, v.v.)

  • Tôi tò mò về hiệu năng nhận diện văn bản không phải tiếng Anh
    Tôi biết rằng OCR dựa trên LLM hiện có thường kém xa OCR truyền thống về hỗ trợ ngoại ngữ

    • Đây là nhận xét từ trải nghiệm thực tế hay chỉ dựa trên hiểu biết vậy?
      Theo trải nghiệm của tôi, nếu dùng trực tiếp Google Translate và ChatGPT trên hình ảnh thì ChatGPT luôn cho kết quả tốt hơn
      Đặc biệt nó còn dịch/giải thích rất tốt cả thực đơn viết tay bằng tiếng Nhật
  • Những mô hình không hề nhắc tới hỗ trợ đa ngôn ngữ thì ngoài thực tế sẽ cho hiệu năng rất tệ với PDF không phải tiếng Anh

    • Thực tế nó được huấn luyện chủ yếu trên tiếng Anh, nhưng một phần dữ liệu huấn luyện cũng có tiếng Trung và nhiều ngôn ngữ châu Âu khác
      Thêm nữa, mô hình nền tảng (Qwen-2.5-VL-3B) là đa ngôn ngữ
      Tôi từng thấy một bài trên Reddit nói rằng nó cũng hoạt động tốt với tiếng Trung (liên kết)
 
chakankim 2025-06-18

Tôi đã thử xử lý mẫu hóa đơn thẻ bằng tiếng Hàn; tốc độ thì chậm nhưng đang dần đọc ra gần như hoàn hảo.