0
0
Lập trình
Thaycacac
Thaycacac thaycacac

IBM Granite-Docling: Hiểu và Chuyển đổi Tài liệu Hiệu quả

Đăng vào 2 tuần trước

• 4 phút đọc

Giới thiệu

Granite Docling là một mô hình chuyển đổi tài liệu đa phương thức, được phát triển bởi IBM, với khả năng chuyển đổi các hình ảnh tài liệu phức tạp thành định dạng văn bản có cấu trúc và có thể chỉnh sửa. Điều này giải quyết một trong những thách thức lớn trong xử lý tài liệu. Granite Docling được thiết kế để đảm bảo tích hợp liền mạch với DoclingDocuments, giúp duy trì tính tương thích trong hệ sinh thái Docling.

Tóm tắt mô hình

Granite Docling 258M dựa trên kiến trúc IDEFICS3 nhưng có những cải tiến quan trọng: nó thay thế bộ mã hóa hình ảnh bằng siglip2-base-patch16–512 và thay thế mô hình ngôn ngữ bằng Granite 165M LLM.

  • Phát triển bởi: IBM Research
  • Loại mô hình: Mô hình đa phương thức (hình ảnh + văn bản)
  • Ngôn ngữ: Tiếng Anh (NLP)
  • Giấy phép: Apache 2.0
  • Ngày phát hành: 17 tháng 9 năm 2025

Granite Docling-258M không chỉ đơn thuần là một mô hình nhận dạng ký tự quang học (OCR). Nó có khả năng nhận diện công thức toán học, cấu trúc bảng và giữ nguyên bố cục tài liệu gốc.

Các tính năng nổi bật

  1. 🔢 Nhận diện phương trình nâng cao: Phát hiện và định dạng công thức toán học chính xác hơn.
  2. 🧩 Chế độ suy diễn linh hoạt: Lựa chọn giữa suy diễn toàn trang hoặc suy diễn theo khu vực.
  3. 🧘 Tính ổn định cải tiến: Hạn chế tốt hơn vòng lặp vô tận.
  4. 🧮 Công thức nội tuyến nâng cao: Nhận diện toán học nội tuyến tốt hơn.
  5. 🧾 Câu hỏi về cấu trúc tài liệu: Trả lời câu hỏi về sự hiện diện và thứ tự của các phần tử tài liệu.
  6. 🌍 Hỗ trợ tiếng Nhật, Ả Rập và Trung Quốc (thí nghiệm).

Thực hiện và Kiểm tra

Để bắt đầu sử dụng Granite Docling, bạn cần cài đặt một số thư viện cần thiết. Dưới đây là mã mẫu để bạn có thể thử nghiệm:

python Copy
# /// script
# requires-python = ">=3.12"
# dependencies = [
#     "docling-core",
#     "mlx-vlm",
#     "pillow",
#     "transformers",
# ]
# ///

import webbrowser
from pathlib import Path
from docling_core.types.doc import ImageRefMode
from docling_core.types.doc.document import DocTagsDocument, DoclingDocument
from mlx_vlm import load, stream_generate
from mlx_vlm.prompt_utils import apply_chat_template
from mlx_vlm.utils import load_config
from transformers.image_utils import load_image

# Cấu hình
MODEL_PATH = "ibm-granite/granite-docling-258M-mlx"
PROMPT = "Chuyển đổi trang này sang docling."
SHOW_IN_BROWSER = True
SAMPLE_IMAGE = "https://ibm.biz/docling-page-with-table"

# Tải mô hình và bộ xử lý
print("Đang tải mô hình...")
model, processor = load(MODEL_PATH)
config = load_config(MODEL_PATH)

# Chuẩn bị hình ảnh đầu vào
print("Đang chuẩn bị đầu vào...")
pil_image = load_image(SAMPLE_IMAGE)
formatted_prompt = apply_chat_template(processor, config, PROMPT, num_images=1)

# Tạo đầu ra DocTags
print("Đang tạo DocTags...\n")
output = ""
for token in stream_generate(
    model, processor, formatted_prompt, [pil_image], max_tokens=4096, verbose=False
):
    output += token.text
    print(token.text, end="")
    if "</doctag>" in token.text:
        break

print("\n\nĐang xử lý đầu ra...")

doctags_doc = DocTagsDocument.from_doctags_and_image_pairs([output], [pil_image])
doc = DoclingDocument.load_from_doctags(doctags_doc, document_name="Tài liệu mẫu")

# Xuất sang định dạng khác
print("\nĐầu ra Markdown:\n")
print(doc.export_to_markdown())

# Lưu dưới dạng HTML với hình ảnh nhúng
output_path = Path("./output.html")
doc.save_as_html(output_path, image_mode=ImageRefMode.EMBEDDED)
print(f"\nHTML đã lưu tại: {output_path}")

# Mở trong trình duyệt
if SHOW_IN_BROWSER:
    webbrowser.open(f"file:///{str(output_path.resolve())}")

Một số lưu ý khi sử dụng

  • Cài đặt môi trường ảo: Khuyến nghị bạn tạo một môi trường ảo để cài đặt các thư viện cần thiết.
bash Copy
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install docling-core mlx-vlm pillow transformers
  • Kiểm tra đầu ra: Đầu ra của bạn sau khi chạy đoạn mã sẽ tạo ra các file Markdown và HTML, giúp bạn dễ dàng kiểm tra và biên soạn tài liệu.

Mẹo hiệu suất

  • Tối ưu hóa quy trình: Để giảm thời gian xử lý, hãy chắc chắn rằng bạn đang sử dụng hình ảnh có độ phân giải phù hợp và không quá lớn.
  • Quản lý tài nguyên: Theo dõi việc sử dụng bộ nhớ và CPU trong quá trình thực hiện để tránh gặp phải các vấn đề về tài nguyên.

Các lỗi thường gặp

  1. Không tìm thấy thư viện: Đảm bảo bạn đã cài đặt tất cả các thư viện cần thiết theo yêu cầu.
  2. Lỗi khi tải hình ảnh: Kiểm tra đường dẫn và định dạng hình ảnh đầu vào.
  3. Vấn đề về bộ nhớ: Nếu mô hình không đủ bộ nhớ, hãy giảm kích thước hình ảnh đầu vào.

Kết luận

Mô hình Granite-Docling-258M mang lại một giải pháp chuyển đổi tài liệu hiệu quả và chính xác hơn so với các mô hình OCR truyền thống. Với kích thước nhỏ gọn và khả năng xử lý mạnh mẽ, nó là sự lựa chọn lý tưởng cho các tổ chức cần xử lý tài liệu một cách thông minh và hiệu quả.

➡️ Bạn có thể thử nghiệm trực tiếp trên Hugging Face tại đây: Granite Docling Demo.

Các liên kết tham khảo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào