Quay lại danh sách
Tin tức công nghệ

Xây Dựng Hệ Thống OCR Tự Động Trích Xuất Dữ Liệu Hóa Đơn Bằng Qwen2.5-VL Tự Host Trên Cloud GPU

4 tháng 6, 2026

Giới thiệu về xu hướng OCR thế hệ mới trong quản lý tài chính

Trong kỷ nguyên số hóa và tự động hóa quy trình bằng robot (RPA), việc xử lý chứng từ kế toán, đặc biệt là hóa đơn (invoices), luôn là bài toán đau đầu của các doanh nghiệp. Các giải pháp OCR (Optical Character Recognition) truyền thống dựa trên luật (rule-based) hoặc các mô hình AI nhỏ thường gặp rất nhiều hạn chế khi đối mặt với sự đa dạng về định dạng, ngôn ngữ, và chất lượng hình ảnh của hóa đơn.

Sự ra đời của các mô hình Vision-Language Models (VLMs), tiêu biểu là dòng mô hình Qwen2.5-VL, đã mở ra một chương mới cho công nghệ trích xuất dữ liệu. Thay vì chỉ nhận diện ký tự đơn thuần, các mô hình này có khả năng hiểu bối cảnh ngữ nghĩa của văn bản và hình ảnh, cho phép trích xuất chính xác các trường thông tin phức tạp như mã số thuế, tổng tiền thanh toán, hay danh sách các mặt hàng mà không cần định nghĩa template trước. Bài viết này sẽ hướng dẫn bạn cách tự host Qwen2.5-VL trên hạ tầng Cloud GPU để xây dựng một hệ thống OCR hóa đơn bảo mật và hiệu năng cao.

Tại sao nên tự host Qwen2.5-VL thay vì sử dụng API thương mại?

Khi triển khai các giải pháp AI cho doanh nghiệp, việc lựa chọn giữa sử dụng API trả phí (như GPT-4o, Claude 3.5 Sonnet) và tự host (Self-hosting) mô hình mã nguồn mở luôn là một quyết định chiến lược. Đối với bài toán xử lý hóa đơn, tự host Qwen2.5-VL mang lại ba lợi thế cốt lõi:

  • Bảo mật và tuân thủ dữ liệu (Data Privacy): Hóa đơn chứa đựng nhiều thông tin tài chính nhạy cảm, thông tin khách hàng và đối tác. Việc tự host trên Cloud GPU của riêng doanh nghiệp giúp đảm bảo dữ liệu không bị rò rỉ ra bên ngoài hoặc bị sử dụng để train mô hình công cộng.
  • Tối ưu hóa chi phí dài hạn: Nếu doanh nghiệp cần xử lý hàng vạn hóa đơn mỗi ngày, chi phí gọi API bên thứ ba sẽ tăng theo cấp số nhân. Việc thuê Cloud GPU theo tháng hoặc theo giờ sẽ giúp tối ưu hóa chi phí cố định (OpEx) tốt hơn rất nhiều.
  • Khả năng tùy biến và tối ưu latency: Bạn hoàn toàn kiểm soát được hạ tầng, có thể tinh chỉnh mô hình (Fine-tuning) sau này và tối ưu hóa tốc độ phản hồi (Latency) thông qua các framework tăng tốc suy luận như vLLM hay Hugging Face TGI.

Kiến trúc hệ thống OCR hóa đơn tự động

Một hệ thống OCR hoàn chỉnh không chỉ dừng lại ở việc chạy mô hình AI, mà là một quy trình khép kín từ khâu tiếp nhận cho đến khâu lưu trữ. Sơ đồ kiến trúc tổng thể bao gồm các thành phần sau:

  1. Data Ingestion (Tiếp nhận dữ liệu): Hóa đơn được tải lên thông qua Web Portal, Email API hoặc quét từ máy scanner dưới dạng file PDF hoặc hình ảnh (PNG, JPEG).
  2. Preprocessing (Tiền xử lý): Chuyển đổi PDF thành hình ảnh, chuẩn hóa kích thước, giảm nhiễu và xoay đúng chiều hình ảnh để tối ưu cho mô hình Vision.
  3. Inference Engine (Trình suy luận AI): Cloud GPU instance chạy Qwen2.5-VL dưới dạng một RESTful API (sử dụng vLLM). Mô hình sẽ nhận hình ảnh hóa đơn và một câu lệnh (Prompt) định dạng cấu trúc đầu ra.
  4. Post-processing & Validation: Nhận kết quả dạng JSON từ mô hình, kiểm tra tính hợp lệ của dữ liệu (ví dụ: kiểm tra tính toán Tổng tiền = Tiền hàng + Thuế) và lưu trữ vào cơ sở dữ liệu ERP/CRM.
Qwen2.5-VL sở hữu kiến trúc Naive Dynamic Resolution, cho phép mô hình xử lý các hình ảnh có độ phân giải bất kỳ mà không cần cắt nhỏ, giúp bảo toàn tính toàn vẹn của các ký tự nhỏ trên hóa đơn tài chính.

Hướng dẫn triển khai Qwen2.5-VL trên Cloud GPU

1. Chuẩn bị hạ tầng Cloud GPU

Để chạy mượt mà mô hình Qwen2.5-VL (phiên bản 7B hoặc 72B tùy nhu cầu), bạn cần chuẩn bị một cấu hình Cloud GPU phù hợp. Đối với phiên bản Qwen2.5-VL-7B-Instruct, cấu hình tối thiểu khuyến nghị là:

  • GPU: 1x NVIDIA A10G (24GB VRAM) hoặc NVIDIA L4 (24GB VRAM). Để đạt hiệu năng cao hơn, NVIDIA A100 (40GB/80GB) là lựa chọn tối ưu.
  • OS: Ubuntu 22.04 LTS có cài đặt sẵn CUDA Toolkit 12.x.
  • Storage: Tối thiểu 50GB ổ cứng SSD NVMe rảnh để lưu trữ trọng số mô hình.

2. Triển khai API Inference với vLLM

Sử dụng framework vLLM là cách tốt nhất hiện nay để deploy các mô hình lớn với tốc độ throughput cực cao nhờ cơ chế PagedAttention. Dưới đây là các bước thiết lập cơ bản:

# Bước 1: Khởi tạo môi trường ảo Python
python3 -m venv ocr_env
source ocr_env/bin/activate

# Bước 2: Cài đặt vLLM và các thư viện phụ thuộc
pip install --upgrade pip
pip install vllm transformers accelerate flash-attn

# Bước 3: Khởi chạy OpenAI-compatible API server với Qwen2.5-VL
python3 -m vllm.entrypoints.openai.api_server \
    --model Qwen/Qwen2.5-VL-7B-Instruct \
    --port 8000 \
    --trust-remote-code

Sau khi lệnh trên chạy thành công, hệ thống của bạn đã có một API endpoint tương thích với chuẩn OpenAI chạy tại port 8000, sẵn sàng tiếp nhận các yêu cầu trích xuất dữ liệu.

Thiết kế Prompt cấu trúc hóa dữ liệu hóa đơn (Structured Output)

Điểm mạnh nhất của Qwen2.5-VL là khả năng xuất dữ liệu theo định dạng JSON định sẵn một cách chính xác mà không cần dùng đến các thư viện bóc tách chuỗi phức tạp. Để làm được điều này, chúng ta cần thiết kế một hệ thống Prompt chuyên dụng. Dưới đây là một ví dụ Python script sử dụng thư viện openai để gọi đến endpoint vLLM vừa thiết lập:

import openai
import base64

client = openai.OpenAI(base_url="http://localhost:8000/v1", api_key="none")

def encode_image(image_path):
    with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode('utf-8')

image_base64 = encode_image("path_to_invoice.jpg")

prompt = """
Hãy phân tích hình ảnh hóa đơn này và trích xuất thông tin theo định dạng JSON chính xác tuyệt đối. 
Nếu không tìm thấy thông tin, hãy để giá trị là null.
JSON phải bao gồm các key sau:
{
  "invoice_number": "Số hóa đơn",
  "invoice_date": "Ngày hóa đơn (DD/MM/YYYY)",
  "seller_name": "Tên đơn vị bán hàng",
  "seller_tax_code": "Mã số thuế người bán",
  "buyer_name": "Tên đơn vị mua hàng",
  "total_amount_before_tax": "Tổng tiền trước thuế (số nguyên)",
  "vat_rate": "Thuế suất VAT (%)",
  "total_amount_after_tax": "Tổng tiền thanh toán cuối cùng (số nguyên)"
}
"""

response = client.chat.completions.create(
    model="Qwen/Qwen2.5-VL-7B-Instruct",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": prompt},
                {
                    "type": "image_url",
                    "image_url": {
                        "url": f"data:image/jpeg;base64,{image_base64}"
                    }
                }
            ]
        }
    ],
    response_format={ "type": "json_object" },
    temperature=0.0
)

print(response.choices[0].message.content)

Trong đoạn mã trên, việc đặt temperature=0.0 giúp mô hình đưa ra kết quả mang tính chất xác định cao nhất (deterministic), giảm thiểu hiện tượng ảo tưởng (hallucination) dữ liệu số.

Đánh giá hiệu năng và các lưu ý tối ưu vận hành

Qua thực nghiệm triển khai thực tế trên dòng GPU NVIDIA A10G, mô hình Qwen2.5-VL-7B cho thấy những chỉ số ấn tượng:

  • Độ chính xác (Accuracy): Đạt trên 95% đối với các hóa đơn chuẩn của Tổng cục Thuế Việt Nam và các định dạng hóa đơn bán lẻ phổ biến. Mô hình nhận diện cực tốt chữ viết tay điền thêm hoặc các con dấu đè lên chữ.
  • Tốc độ xử lý (Speed): Trung bình mất khoảng 1.5 đến 2.5 giây cho một trang hóa đơn khi sử dụng vLLM với tính năng Flash-Attention kích hoạt.

Tuy nhiên, để hệ thống hoạt động ổn định ở môi trường Production quy mô lớn, doanh nghiệp cần lưu ý thêm các điểm sau:

Cơ chế xếp hàng (Queueing)

Khi có hàng trăm hóa đơn được đẩy lên cùng một lúc, hệ thống rất dễ bị nghẽn mạch (Out of Memory - OOM). Hãy thiết lập một hàng đợi bằng RabbitMQ hoặc Redis Queue trước khi đẩy request vào vLLM endpoint để đảm bảo tải được phân phối đều đặn.

Giám sát và Hậu kiểm (Human-in-the-loop)

Mặc dù AI có độ chính xác rất cao, doanh nghiệp vẫn nên xây dựng một giao diện hậu kiểm cho nhân viên kế toán. Các hóa đơn có điểm tự tin (Confidence score) thấp hoặc không khớp logic toán học (Ví dụ: Tổng tiền không khớp tổng các mục con) sẽ được đẩy về hàng đợi để con người phê duyệt thủ công.

Lời kết

Xây dựng hệ thống OCR tự động nhận diện và trích xuất hóa đơn bằng cách tự host Qwen2.5-VL trên Cloud GPU không chỉ là một giải pháp công nghệ tiên tiến, mà còn là một bước đi chiến lược giúp doanh nghiệp làm chủ công nghệ cốt lõi, bảo vệ an toàn thông tin tài chính và tối ưu hóa chi phí vận hành. Với sự phát triển không ngừng của các mô hình VLM mã nguồn mở, việc tự động hóa toàn diện quy trình kế toán, tài chính đã nằm trong tầm tay của mọi doanh nghiệp số.