--- language: - vi tags: - vision-language - qwen - vlm - gguf - pytorch license: apache-2.0 datasets: - minhduc168/dataset-qwen-vlm-extract-bill-diagnosis base_model: - unsloth/Qwen3-VL-2B-Instruct-bnb-4bit --- # Qwen3-VL-2B-Instruct Vietnamese Bill Diagnosis (4-bit) Mô hình **Qwen3-VL-2B-Instruct Vietnamese Bill Diagnosis** được fine-tune cho tác vụ **trích xuất thông tin hóa đơn, phiếu thu, đơn thuốc và chuẩn đoán bệnh tiếng Việt**. Model hỗ trợ hiểu hình ảnh và văn bản, phù hợp cho các bài toán OCR nâng cao, document understanding và information extraction. --- ## 🔥 Điểm nổi bật - ✅ Tối ưu cho **tiếng Việt** - ✅ Fine-tune cho **bill / invoice / prescription / diagnosis extraction** - ✅ Phiên bản **4-bit (bnb)** giúp giảm VRAM khi inference - ✅ Có thể chuyển sang **GGUF** để chạy local CPU - ✅ Tương thích với `transformers` --- ## 📂 Cấu trúc Repository - **`/merged_16bit`** Chứa trọng số **bnb 4-bit** để chạy với thư viện `transformers` + `bitsandbytes`. - **`/gguf`** Phiên bản GGUF dành cho `llama.cpp` hoặc các engine suy luận local. **Bao gồm:** - `Qwen3-VL-2B-Instruct-Vietnamese.Q4_K_M.gguf` — bản nén 4-bit chất lượng cao - `Qwen3-VL-2B-Instruct-Vietnamese.mmproj.gguf` — file projector xử lý hình ảnh --- ## 🚀 Hướng dẫn sử dụng ### ✅ Với Transformers ```python from transformers import Qwen2VLForConditionalGeneration, AutoProcessor model = Qwen2VLForConditionalGeneration.from_pretrained( "minhduc168/Qwen3-VL-2B-Instruct-Vietnamese", device_map="auto" ) processor = AutoProcessor.from_pretrained( "minhduc168/Qwen3-VL-2B-Instruct-Vietnamese" ) ``` ## ⚠️ Lưu ý quan trọng khi dùng GGUF (Vision Model) Đối với các model Vision-Language như **Qwen3-VL**, khi chuyển sang GGUF: ### Bắt buộc cần 2 file: 1️⃣ **Model chính** (`.gguf`) 2️⃣ **Projector** (`mmproj.gguf`) 👉 Thiếu file projector → model **không thể xử lý hình ảnh**. --- ## 📊 Dataset **Bao gồm:** - Hóa đơn bán lẻ - Phiếu thu - Đơn thuốc - Chứng từ tiếng Việt - Chuẩn đoán bệnh Định dạng **instruction-following** giúp model trích xuất dữ liệu có cấu trúc chính xác hơn. ### Format mẫu 📌 Example 1 – BILL_OCR ```json { "id": "bill_f18b567055ed4c5d85143770499b2f65", "image": "bill_001.jpg", "conversations": [ { "from": "human", "value": "\n[BILL_OCR] Trích xuất danh sách dịch vụ và thông tin liên quan từ bảng trong ảnh.\nKhông suy đoán hoặc bổ sung thông tin không có trong ảnh." }, { "from": "gpt", "value": "[ { "stt": 1, "ten_dich_vu": "STTOMET 1000mg + 50mg", "so_luong": "56", "don_vi_tinh": "Viên", "don_gia": "5.390", "thanh_tien": "301.840" }, { "stt": 2, "ten_dich_vu": "JARDIANCE DUO 12.5mg + 1000mg", "so_luong": "56", "don_vi_tinh": "Viên", "don_gia": "17.976", "thanh_tien": "1.006.656" }, { "stt": 3, "ten_dich_vu": "Atovze* 20mg+10mg", "so_luong": "56", "don_vi_tinh": "Viên", "don_gia": "6.409", "thanh_tien": "358.921" }, { "stt": 4, "ten_dich_vu": "SADAPRON 300mg", "so_luong": "28", "don_vi_tinh": "Viên", "don_gia": "2.750", "thanh_tien": "77.000" } ]" } ] } ``` 📌 Example 2 – DIAGNOSIS_EXTRACT ```json { "id": "diag_db2888ccc0de4c4b8e9d39c3e08c104a", "image": "diag_001.jpg", "conversations": [ { "from": "human", "value": "\n[DIAGNOSIS_EXTRACT] Hãy trích xuất và cho biết chẩn đoán trong hình này." }, { "from": "gpt", "value": "Răng 28: [K07 4] Răng mọc lệch" } ] } ``` --- ## 🎯 Use Cases - Trích xuất thông tin hóa đơn tự động - Structured OCR - Document AI tiếng Việt - Medical / pharmacy bill parsing - Fintech document processing --- ## 📌 Gợi ý phần cứng | Quantization | VRAM đề xuất | |------------|------------| | 4-bit bnb | ~6–8GB | | GGUF Q4 | Chạy được trên CPU (khuyến nghị ≥16GB RAM) | --- ## License Apache-2.0