EraX-VL-7B-V1.5:聚焦越南语的多模态OCR与VQA模型,支持多轮问答与推理

基于Qwen2-VL-7B-Instruct微调,擅长越南语及多语言OCR与视觉问答,精准识别医疗表单、发票等文档,助力医疗、保险等场景应用,支持多轮推理。【此简介由AI生成】

分支1Tags0

license: apache-2.0 language:

  • vi
  • en
  • zh base_model:
  • Qwen/Qwen2-VL-7B-Instruct library_name: transformers tags:
  • erax
  • multimodal
  • erax-vl-7B
  • insurance
  • ocr
  • vietnamese
  • bcg
  • image-to-text pipeline_tag: visual-question-answering

widget:

  • src: images/photo-1-16505057982762025719470.webp example_title: Test 1
  • src: images/vt-don-thuoc-f0-7417.jpeg example_title: Test 2

Logo

EraX-VL-7B-V1.5

简介 🎉

继广受欢迎的 EraX-VL-7B-V1.0 模型 之后,我们荣幸推出 EraX-VL-7B-V1.5。这是另一款功能强大的多模态模型,专为 OCR(光学字符识别)VQA(视觉问答) 设计,在多种语言 🌍 上表现出色,尤其专注于越南语 🇻🇳。该模型在各类文档 📝 的精准识别方面脱颖而出,包括医疗表格 🩺、发票 🧾、销售单据 💳、报价单 📄 和病历 💊。此功能有望为医院 🏥、诊所 💉、保险公司 🛡️ 及其他类似应用场景 📋 带来极大益处。EraX-VL-7B-V1.5 基于 Qwen/Qwen2-VL-2B-Instruct[1] 这一坚实基础构建,我们发现该基础模型质量高且越南语表达流畅,并通过微调进一步提升了其性能。我们计划继续改进并免费发布新版本,并在不久的将来分享性能基准测试结果。

EraX-VL-7B-V1.5 的一大突出特点是具备多轮问答能力,并拥有令人印象深刻的推理能力!

请注意

  • EraX-VL-7B-V1.5 并非 Tesseract 之类的典型纯 OCR 工具,而是基于多模态大型语言模型(LLM)的模型。为有效使用它,您可能需要根据具体任务精心设计提示词
  • (目前)此模型尚未使用医学(X光)数据集或汽车事故数据集进行微调。敬请期待 2025 年初发布的更新版本。

EraX-VL-7B-V1.5 是我们 EraX 的 LànhGPT 大型语言模型系列的新成员。

基准测试 📊

🏆 排行榜

与同等规模甚至10倍规模的其他模型相比,EraX-VL-7B-V1.5均展现出了卓越的高性能,并且我们已将其开源!您可以随时重新运行基准测试。

模型 开源 VI-MTVQA
EraX-VL-7B-V1.5 🥇 47.2
Qwen2-VL 72B 🥈 41.6
ViGPT-VL 🥉 39.1
EraX-VL-2B-V1.5 38.2
EraX-VL-7B-V1 37.6
Vintern-1B-V2 37.4
Qwen2-VL 7B 30.0
Claude3 Opus 29.1
GPT-4o mini 29.1
GPT-4V 28.9
Gemini Ultra 28.6
InternVL2 76B 26.9
QwenVL Max 23.5
Claude3 Sonnet 20.8
QwenVL Plus 18.1
MiniCPM-V2.5 15.3

论文中用于评估模型的测试代码可在以下地址获取EraX-JS-Company/EraX-MTVQA-Benchmark

API 试用 🎉

如需咨询 API 访问权限,请联系 nguyen@erax.ai

示例 🧩

1. OCR - 多图像光学字符识别

示例 01:公民身份证

Front View

正面视图

Back View

背面视图

来源:Google 支持

{
    "Số thẻ": "037094012351",
    "Họ và tên": "TRỊNH QUANG DUY",
    "Ngày sinh": "04/09/1994",
    "Giới tính": "Nam",
    "Quốc tịch": "Việt Nam",
    "Quê quán": "Tân Thành, Kim Sơn, Ninh Bình",
    "Nơi thường trú": "Xóm 6\nTân Thành, Kim Sơn, Ninh Bình",
    "Có giá trị đến": "04/09/2034",
    "Đặc điểm nhân dạng": "sẹo chấm c. 1cm trên đuôi mắt trái",
    "Nơi cấp": "CỤC TRƯỞNG CỤC CẢNH SÁT\nQUẢN LÝ HÀNH CHÍNH VỀ TRẬT TỰ XÃ HỘI",
    "Ngày cấp": "10/12/2022",
    "Cán bộ ký tên": "Nguyễn Quốc Hùng",
    "Mã định danh": "IDVNM0940123513037094012351"
}

示例 02:驾驶证

Front View

正面视图

Back View

背面视图

来源:Báo Pháp luật

{
  "No.":"400116012313"
  "Fullname":"NGUYỄN VĂN DŨNG"
  "Date_of_birth":"08/06/1979"
  "Nationality":"VIỆT NAM"
  "Address":"X. Quỳnh Hầu, H. Quỳnh Lưu, T. Nghệ An
  Nghệ An, ngày/date 23 tháng/month 04 năm/year 2022"
  "Hang_Class":"FC"
  "Expires":"23/04/2027"
  "Place_of_issue":"Nghệ An"
  "Date_of_issue":"ngày/date 23 tháng/month 04 năm/year 2022"
  "Signer":"Trần Anh Tuấn"
  "Các loại xe được phép":"Ô tô hạng C kéo rơmoóc, đầu kéo kéo sơmi rơmoóc và xe hạng B1, B2, C, FB2 (Motor vehicle of class C with a trailer, semi-trailer truck and vehicles of classes B1, B2, C, FB2)"
  "Mã số":""
}

示例 03:机动车登记证书

来源:越南网报

{
    "Tên chủ xe": "NGUYỄN TÔN NHUẬN",
    "Địa chỉ": "KE27 Kp3 P.TTTây Q7",
    "Nhãn hiệu": "HONDA",
    "Số loại": "DYLAN",
    "Màu sơn": "Trắng",
    "Năm sản xuất": "2012",
    "Số máy": "F03E-0057735",
    "Số khung": "SA04F-070410",
    "Dung tích": "152",
    "Số chỗ ngồi": "02",
    "Biển số đăng ký": "59V1-498.89",
    "Đăng ký lần đầu ngày": "08/06/2004",
    "Chức vụ": "Thượng tá",
    "Người ký": "Trần Văn Hiểu"
}

示例 04:车辆注册

来源:https://llumar.com.vn

{
    "vehicle": {
        "registration_number": "30A-072.36",
        "vehicle_inspection_number": "2903V-093515",
        "type": "ô tô con",
        "mark": "MERCEDES-BENZ",
        "model_code": "C300 W204",
        "engine_number": "27294732096079",
        "chassis_number": "RLMGF5EX3DV005333",
        "manufactured_year_and_country": "2013, Việt Nam",
        "life_time_limit_to": "",
        "commercial_use": "",
        "modification": ""
    },
    "specifications": {
        "wheel_formula": "4x2",
        "wheel_tread": "1521/1512 (mm)",
        "overall_dimension": "4650 x 1770 x 1429 (mm)",
        "largest_luggage_container_dimension": "",
        "wheelbase": "2760 (mm)",
        "kerb_mass": "1575 (kg)",
        "design_authorized_pay_load": "",
        "design_authorized_total_mass": "2090/2090 (kg)",
        "design_authorized_towed_mass": "",
        "permissible_number_of_pers_carried": "5 chỗ ngồi, 0 chỗ đứng, 0 chỗ nằm",
        "type_of_fuel_used": "Xăng",
        "engine_displacement": "2996 (cm3)",
        "max_output_per_rpm": "170(kW)/6000vph",
        "number": "KC-1292285"
    },
    "inspection_report_number": "2905V-20953/16",
    "valid_until": "31/01/2018",
    "place_date_of_issue": "Hà Nội, ngày 1 tháng 8 năm 2016",
    "inspection_center": "ĐƠN VỊ KIỂM ĐỊNH XE CƠ GIỚI",
    "signature": "Ngọc Tuấn",
    "equipped_with_tachograph": "",
    "inspection_stamp_was_not_issued": "",
    "notes": "Biển đăng ký nền trắng"
}

示例 05:收据

来源:https://tintucketoan.com/

{
    'Mẫu số': '01GKTKT3/001', 
    'Ký hiệu': 'TC/18P', 
    'Số': '0000030', 
    'Họ tên người mua hàng': None, 
    'Tên đơn vị': 'Công Ty TNHH Kế Toán Hà Nội', 
    'Mã số thuế': '0106235869', 
    'Địa chỉ': 'Số 49 Ngõ 322 Lê Trọng Tấn, phường Khương Mai, quận Thanh Xuân, Hà Nội', 
    'Hình thức thanh toán': 'TM', 
    'STT': None, 
    'Tên hàng hóa, dịch vụ': 'Tra cứu phần mềm thư viện pháp luật trực tuyến', 
    'Đơn vị tính': None, 
    'Số lượng': None, 
    'Đơn giá': '168.000', 
    'Thành tiền': '2.016.000', 
    'Thuế suất GTGT': None, 
    'Tiền thuế GTGT': None, 
    'Tổng cộng tiền thanh toán': '2.016.000', 
    'Số tiền viết bằng chữ': 'Hai triệu, không trăm mười sáu nghìn đồng', 
    'Người bán hàng': 'Bùi Văn Hùng', 
    'Chức vụ người bán hàng': 'TRƯỞNG CHI NHÁNH'
}

2.1 图像描述

这是一张年龄别BMI图表,展示了儿童身体质量指数(BMI)与年龄之间的关系。图表被划分为不同颜色区域,分别对应不同的BMI水平:

  • 红色区域: BMI值高于25,表示肥胖状态。
  • 黄色区域: BMI值在18至25之间,表示有肥胖风险。
  • 浅绿色区域: BMI值在16至18之间,表示营养健康良好。
  • 深绿色区域: BMI值低于16,表示体重过轻状态。

纵轴表示BMI指数,横轴表示年龄(以年为单位)。深灰色曲线代表年龄别BMI标准线。这些曲线展示了BMI随时间的变化情况,有助于评估儿童的体重发育。例如,3岁以下儿童的BMI通常在体重过轻或营养健康良好的区间内波动。随着儿童年龄增长,BMI有逐渐上升的趋势,但增长速度可能因个体差异而有所不同。图表还显示了百分位数(Percentile),表明BMI低于或高于同龄儿童群体的百分比。这有助于将儿童的BMI与国际标准进行比较。

2.2 图像描述

图像呈现出一幅充满冲击力与悲伤的景象,似乎发生在一个贫困地区,可能是难民营或贫民窟。画面中心是一辆由一头驴子牵引的手推车。手推车上载着一群人,包括一位看起来像是领路的年长男性、一位身着黑色罩袍的女性、一位穿着灰色上衣的年轻女子、一个用头巾遮脸的小女孩,以及一个穿着绿色上衣的小男孩。他们似乎正从一个遭受破坏的区域转移到另一个地方。他们周围是瓦砾、垃圾和倒塌的建筑物,展现出一个艰难且匮乏的生活环境。在他们身后,还有一些人在步行或骑自行车,一些人提着行李。天空晴朗,但整个画面的氛围沉重而哀伤。这可能是一幅关于迁徙、难民或某种灾难事件的景象。

3. 多轮视觉问答与推理

来源:https://kenh14.vn

  • 用户:请告知患者信息

  • 助手:姓名:NGUYỄN THỊ THÁI TRINH,出生日期:09/09/1993,性别:女,地址:TÂN ĐỊNH - Q1 - TPHCM,医保卡号:19169080,就诊号:2569501,地区代码(K1/K2/K3):2

  • 用户:他们被诊断出患了什么病?

  • 助手:细菌性肠道感染,未确定菌种

  • 用户:患者有既往病史吗?如果有,是什么?

  • 助手:因饮食习惯导致缺钙

  • 用户:患者进行了哪些检查?

  • 助手:[NQ286] 外周血细胞全分析(激光计数法),[NQ286] 电解质(钠、钾、氯)[血液],[NQ286] 血清丙氨酸氨基转移酶(ALT/GPT)活性测定 [血液],[NQ286] 血清天门冬氨酸氨基转移酶(AST/GOT)活性测定 [血液],[NQ286] 血清总钙测定 [血液],[NQ286] 血清肌酐测定 [血液],[NQ286] 血糖测定 [血液],[NQ286] 血尿素测定 [血液],[NQ286] 腹部超声(肝、胆、胰、脾、肾、膀胱)

  • 用户:患者需支付的医疗材料费是多少?

  • 助手:19,708

  • 用户:患者需支付的各类输液药物有哪些,总金额是多少?

  • 助手:硫酸阿托品(Syv2019)、头孢唑林1g(Syv2019)、GONCAL(Syv2019)、乳酸林格液-500ml(Syv2019)、注射用灭菌水5ml(Syv2019)、0.9%氯化钠注射液-500ml(Syv2019)、Vincomid(Syv2019)、Vinopa(Syv2019),总计45,234盾

快速上手 🎮

安装必要的软件包:

python -m pip install git+https://github.com/huggingface/transformers accelerate
python -m pip install qwen-vl-utils
pip install flash-attn --no-build-isolation

然后您可以像这样使用 EraX-VL-7B-V1.5

import os
import base64
import json

import cv2
import numpy as np
import matplotlib.pyplot as  plt

import torch
from transformers import Qwen2VLForConditionalGeneration, AutoTokenizer, AutoProcessor
from qwen_vl_utils import process_vision_info

model_path = "erax/EraX-VL-7B-V1.5"

model = Qwen2VLForConditionalGeneration.from_pretrained(
    model_path,
    torch_dtype=torch.bfloat16,
    attn_implementation="eager", # replace with "flash_attention_2" if your GPU is Ampere architecture
    device_map="auto"
)

tokenizer =  AutoTokenizer.from_pretrained(model_path)
# processor = AutoProcessor.from_pretrained(model_path)

min_pixels = 256 * 28 * 28
max_pixels = 1280 * 28 * 28
processor = AutoProcessor.from_pretrained(
     model_path,
     min_pixels=min_pixels,
     max_pixels=max_pixels,
 )

image_path ="image.jpg"

with open(image_path, "rb") as f:
    encoded_image = base64.b64encode(f.read())
decoded_image_text = encoded_image.decode('utf-8')
base64_data = f"data:image;base64,{decoded_image_text}"

messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "image",
                "image": base64_data,
            },
            {
                "type": "text",
                "text": "Trích xuất thông tin nội dung từ hình ảnh được cung cấp."
            },
        ],
    }
]

# Prepare prompt
tokenized_text = processor.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True
)

image_inputs, video_inputs = process_vision_info(messages)

inputs = processor(
    text=[ tokenized_text],
    images=image_inputs,
    videos=video_inputs,
    padding=True,
    return_tensors="pt",
)
inputs = inputs.to("cuda")

# Generation configs
generation_config =  model.generation_config
generation_config.do_sample   = True
generation_config.temperature = 1.0
generation_config.top_k       = 1
generation_config.top_p       = 0.9
generation_config.min_p       = 0.1
generation_config.best_of     = 5
generation_config.max_new_tokens     = 2048
generation_config.repetition_penalty = 1.06

# Inference
generated_ids = model.generate(**inputs, generation_config=generation_config)
generated_ids_trimmed = [
    out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
    generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)

print(output_text[0])

参考文献 📑

[1] Qwen team. Qwen2-VL. 2024.

[2] Bai, Jinze, et al. "Qwen-VL: A Versatile Vision-Language Model for Understanding, Localization, Text Reading, and Beyond." arXiv preprint arXiv:2308.12966 (2023).

[4] Yang, An, et al. "Qwen2 technical report." arXiv preprint arXiv:2407.10671 (2024).

[5] Chen, Zhe, et al. "Internvl: Scaling up vision foundation models and aligning for generic visual-linguistic tasks." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2024.

[6] Chen, Zhe, et al. "How far are we to gpt-4v? closing the gap to commercial multimodal models with open-source suites." arXiv preprint arXiv:2404.16821 (2024).

[7] Tran, Chi, and Huong Le Thanh. "LaVy: Vietnamese Multimodal Large Language Model." arXiv preprint arXiv:2404.07922 (2024).

联系方式 🤝

  • 有关本研究工作的通信或 API 试用咨询,请联系 Nguyễn Anh Nguyên,邮箱:nguyen@erax.ai
  • 关注我们的 EraX Github

项目介绍

基于Qwen2-VL-7B-Instruct微调,擅长越南语及多语言OCR与视觉问答,精准识别医疗表单、发票等文档,助力医疗、保险等场景应用,支持多轮推理。【此简介由AI生成】

定制我的领域

下载使用量

0

项目总下载次数(含Clone、Pull、 zip 包及 release 下载),每日凌晨更新