Введение
Недавно я протестировал локальную модель Qwen2.5‑VL‑32B‑Instruct на задаче распознавания сканов товарных накладных. Результат выглядит довольно убедительно, хотя я пока не проверял его точность в полном объёме.
Модель Qwen2.5‑VL‑32B‑Instruct
Qwen2.5‑VL‑32B‑Instruct – это большая визуально‑текстовая модель (VL), способная обрабатывать изображения и генерировать структурированные ответы. Она обучена на широком спектре задач, включая OCR, и может работать полностью локально без обращения к облачным сервисам.
Результат распознавания
Ниже приведён пример JSON‑вывода, полученный после обработки скана товарной накладной. Вы видите, как модель выделила тип документа, номер, дату, реквизиты получателя и список товаров с артикулами.
{
"document_type": "Товарная накладная",
"number": "923",
"date": "02.06.2017",
"recipient": {
"recipient_name": "Частное лицо: Коршунова Мария",
"recipient_address": "109044, Россия, Москва, 8-я улица Сокольной горы, д.22, кв/оф.203",
"recipient_phone": "+79629978695"
},
"products": [
{
"product_name": "Трансмиссионное масло HONDA ATF-DW1 для АКПП, 5л, 0.49",
"article_number": "082009008"
},
{
"product_name": "Моторное масло HONDA Motor Oil ULTRA LTD SN 5W30 4L Япония (полусинтетика)",
"article_number": "0621899974"
},
{
"product_name": "Фильтр масляный",
"article_number": "15400RTA003"
},
{
"product_name": "Фильтр воздушный",
"article_number": "17220RNAY00"
},
{
"product_name": "Фильтр салонный",
"article_number": "802927V1E01"
},
{
"product_name": "Шайба уплотнительная сливного отверстия масла двигателя ММПП (14мм)",
"article_number": "9410914000"
}
]
}
Как использовать локальную модель
Для запуска модели локально понадобится:
- Python 3.10+ с установленными библиотеками
torch,transformersиdatasets. - Установленный пакет
qwen-vl-instruct(или аналогичный, предоставляющий доступ к Qwen2.5‑VL‑32B‑Instruct). - Графический процессор (GPU) с достаточным объёмом видеопамяти (минимум 16 GB).
Пример кода для инференса:
from qwen_vl_instruct import QwenVLInstruct
model = QwenVLInstruct.from_pretrained("Qwen/Qwen2.5-VL-32B-Instruct")
image_path = "path/to/scan.jpg"
result = model.run_instruct(image_path, prompt="Extract structured data from the invoice.")
print(result)
Вывод
Модель Qwen2.5‑VL‑32B‑Instruct демонстрирует хорошие результаты при распознавании сканов накладных, выдавая полностью структурированный JSON. Это открывает возможности для автоматизации обработки документов в локальной среде без необходимости обращения к облачным сервисам. Дальнейшая проверка точности и настройка под конкретные типы документов могут повысить надёжность решения.