Triển khai Qwen3-VL cho Computer Vision trong production: từ OCR đến visual inspection
Vision-Language Model mới nhất của Qwen mở ra một lớp bài toán computer vision mà OCR và pipeline CV truyền thống khó giải quyết — nhưng đưa vào production đòi hỏi tư duy khác với gọi một API demo. Tiêu chí chọn use case, chọn kích thước model, và cách chúng tôi tích hợp vào các Pilot Build tại KonexForge.
Hai năm gần đây, các Vision-Language Model (VLM) đã đi từ benchmark nghiên cứu sang một lớp component thực sự dùng được trong production — và Qwen3-VL là một trong những model mã nguồn mở mạnh nhất hiện tại cho nhóm bài toán này. Tại KonexForge, chúng tôi đã đánh giá và triển khai Qwen3-VL cho một số Pilot Build trong lớp AI & ML — không phải vì "mô hình mới nhất" mà vì nó giải được một nhóm bài toán cụ thể mà OCR truyền thống và CV pipeline classic (object detection + classification riêng lẻ) thường phải ghép nhiều model mới làm được.
Qwen3-VL là gì, và khác gì với một "OCR API"
Về kiến trúc, Qwen3-VL kết hợp một vision encoder xử lý ảnh ở độ phân giải động — không resize cứng về một kích thước cố định, nên giữ được chi tiết nhỏ như chữ trên hóa đơn hoặc số serial trên thiết bị — với một LLM decoder. Khác với OCR API truyền thống, vốn chỉ trả về text thô theo tọa độ, Qwen3-VL hiểu ngữ cảnh: nó có thể đọc một hóa đơn và trả lời "tổng tiền sau thuế là bao nhiêu", đọc một biểu đồ và mô tả xu hướng, hoặc xem một đoạn video camera giám sát và tóm tắt "có 3 lần xe ra vào trong khung giờ này".
Ba khả năng quan trọng nhất cho ứng dụng thực tế:
- Visual grounding — model trả về bounding box hoặc tọa độ điểm cho một đối tượng được hỏi ("khoanh vùng vết nứt trên bề mặt kim loại"), không chỉ mô tả bằng lời
- Document understanding có cấu trúc — trích xuất thông tin từ hóa đơn, hợp đồng, CCCD/CMND thành JSON theo schema định trước, xử lý được layout phức tạp (bảng, multi-column, chữ viết tay một phần)
- Video/temporal understanding — xử lý một chuỗi frame liên tục, hữu ích cho camera giám sát và inspection line, thay vì chỉ xử lý từng ảnh rời rạc
Khi nào nên dùng VLM, khi nào pipeline CV truyền thống vẫn thắng
Đây là câu hỏi quan trọng nhất trước khi quyết định kiến trúc — và câu trả lời không phải lúc nào cũng là "dùng VLM":
- Bài toán cố định, output đơn giản (phát hiện có/không có người trong khung hình, đọc một mã vạch cố định vị trí) → một model classification/detection nhỏ (YOLO, MobileNet) vẫn nhanh hơn, rẻ hơn, và chạy được trên edge device không cần GPU mạnh
- Bài toán có ngữ cảnh thay đổi, layout không cố định, hoặc cần lý luận trên nhiều loại input cùng lúc (ảnh + câu hỏi text) → đây là vùng VLM vượt trội rõ rệt, vì viết rule hoặc train model riêng cho từng biến thể layout là không khả thi
- Bài toán cần độ trễ dưới 100ms ở edge, không có kết nối ổn định đến server có GPU → VLM, kể cả bản nhỏ, vẫn nặng hơn một model chuyên biệt đã quantize cho edge — đây vẫn là lãnh địa của Edge AI inference (TFLite Micro, ONNX Runtime) trong lớp IoT & Sensors
Nguyên tắc thực tế: VLM không thay thế toàn bộ pipeline CV — nó thêm một lớp "hiểu ngữ cảnh" ở những điểm pipeline cũ bị giới hạn bởi rule cứng. Ghép đúng chỗ, không thay toàn bộ.
Ứng dụng trong các Pilot Build tại KonexForge
Document automation và KYC
Với các pilot trong lĩnh vực fintech và dịch vụ tài chính, một trong những điểm nghẽn lớn nhất là xử lý giấy tờ — CCCD, hộ chiếu, hợp đồng, sao kê ngân hàng — với layout khác nhau giữa nhà phát hành và chất lượng ảnh chụp từ điện thoại không đồng nhất. Qwen3-VL được dùng làm lớp trích xuất chính: đọc ảnh giấy tờ, trả về JSON có cấu trúc (họ tên, số định danh, ngày cấp...), kèm confidence score cho từng field. Field có confidence thấp được đưa vào hàng chờ human-in-the-loop thay vì tự động pass — kiến trúc tương tự pipeline KYC automation chúng tôi đã triển khai cho một fintech tier-1, nơi OCR kết hợp đối chiếu giấy tờ và face matching giúp tự động hóa 92% hồ sơ.
Visual inspection cho sản xuất
Trong các hệ thống predictive maintenance dựa trên camera nhiệt và camera thường, Qwen3-VL được dùng như một lớp bổ sung cho mô hình phát hiện bất thường đã train riêng: khi mô hình chuyên biệt phát hiện một vùng nhiệt độ hoặc hình ảnh bất thường, frame đó được gửi qua VLM để mô tả bằng ngôn ngữ tự nhiên ("vùng nóng bất thường ở khớp nối trục, hình dạng giống vết rò dầu") — giúp kỹ thuật viên đánh giá nhanh hơn so với chỉ nhìn một con số nhiệt độ hoặc một bounding box không có giải thích. Đây là một phần mở rộng cho kiến trúc giám sát 3,200 cảm biến rung động và camera nhiệt mà chúng tôi xây dựng cho 4 nhà máy thép.
Gắn metadata cho dữ liệu hình ảnh trong data warehouse
Một ứng dụng ít được nói đến nhưng có giá trị thực tế: dùng VLM để tự động gắn tag/metadata cho lượng lớn ảnh và video lưu trữ — ảnh sản phẩm, ảnh hiện trường, ảnh từ camera AI — biến dữ liệu không cấu trúc thành các cột có thể query trong warehouse, phục vụ lớp Data Analytics phía sau mà không cần gắn tay từng ảnh.
Triển khai — chọn kích thước model và cách serve
Qwen3-VL có nhiều kích thước, và lựa chọn đúng kích thước ảnh hưởng trực tiếp đến chi phí vận hành:
- Bản nhỏ (dưới 8B tham số, quantize INT4/AWQ) — chạy được trên một GPU phổ thông (16-24GB VRAM), phù hợp self-host on-prem, độ trễ vài trăm ms/ảnh, đủ tốt cho OCR và document understanding với layout không quá phức tạp
- Bản lớn (30B+ hoặc kiến trúc MoE) — cần GPU cluster hoặc gọi qua API, dùng cho task cần lý luận phức tạp, video dài, hoặc layout rất đa dạng — chi phí/request cao hơn nên cần queue và batch xử lý hợp lý, không gọi realtime cho mọi request
- Serving framework — vLLM hoặc SGLang cho self-host, hỗ trợ continuous batching giúp throughput tăng đáng kể so với serve naive từng request một
Một lưu ý quan trọng khi self-host: output của VLM là text/JSON tự do — cần ràng buộc bằng structured output (JSON schema constrained decoding) để tránh việc downstream system phải tự parse text tự do, vốn là nguồn lỗi phổ biến khi tích hợp LLM vào pipeline production.
Chi phí và MLOps — VLM không phải "set and forget"
Một VLM tự host cần GPU chạy liên tục — chi phí cố định theo giờ bất kể có request hay không, khác với API trả theo request. Quyết định self-host hay dùng API phụ thuộc vào volume: dưới một ngưỡng request/ngày nhất định, API trả-theo-dùng thường rẻ hơn tổng chi phí GPU và vận hành. Ngoài ra, giống mọi model trong lớp AI & ML, VLM cần nằm trong vòng Optimization Loop: theo dõi confidence score theo thời gian, sample case bị route sang human review để phát hiện model bắt đầu "trượt" so với dữ liệu thực tế (ví dụ: nhà phát hành CCCD đổi mẫu giấy tờ mới), và có quy trình re-evaluate khi có phiên bản model mới — không phải triển khai một lần rồi để chạy mãi.
Kết luận
Qwen3-VL mở ra một lớp giải pháp cho các bài toán mà trước đây phải ghép nhiều model chuyên biệt hoặc chấp nhận xử lý tay — nhưng giá trị thực sự chỉ đến khi nó được tích hợp đúng vị trí trong một pipeline đã có, với fallback, monitoring, và human-in-the-loop rõ ràng. Đây là loại đánh giá kỹ thuật nằm trong lớp AI & ML của Discovery Sprint — xác định bài toán nào thực sự cần VLM, bài toán nào một model nhỏ chuyên biệt vẫn là lựa chọn đúng, trước khi đầu tư vào hạ tầng serving.