SmolDocling: визуальная языковая модель для эффективной обработки документов небольшого объема
Общее введение
SmolDocling - это модель визуального языка (VLM), разработанная командой ds4sd в сотрудничестве с IBM, основанная на SmolVLM-256M и размещенная на платформе Hugging Face. Это самая маленькая в мире ВЛМ с параметрами всего 256 М. Ее основная функция - извлечение текста из изображений, распознавание макетов, кодов, формул и диаграмм, а также генерация структурированных документов в формате DocTags. smolDocling может работать на обычных устройствах с высокой эффективностью и низким потреблением ресурсов. Команда разработчиков делится этой моделью с открытым исходным кодом в надежде помочь большему числу людей справиться с задачами, связанными с документами. Она входит в семейство SmolVLM, которое специализируется на преобразовании документов и подходит для пользователей, которым необходимо быстро обрабатывать сложные документы.


Список функций
- Извлечение текста (OCR): Распознавание и извлечение текста из изображений, поддержка нескольких языков.
- Идентификация макета: Проанализируйте структуру документа на картинке, например, расположение заголовков, абзацев, таблиц.
- распознавание кодов: Извлекает блоки кода, сохраняя отступы и форматирование.
- распознавание формул: Обнаружение математических формул и преобразование их в редактируемый текст.
- распознавание диаграмм: Разбирает содержимое графика на изображении и извлекает данные.
- Обработка форм: Определите структуру таблицы и сохраните информацию о строках и столбцах.
- Выходные данные DocTags: Преобразование результатов обработки в единый формат маркировки для удобства последующего использования.
- Обработка изображений высокого разрешения: Поддерживает ввод изображений с большим разрешением для повышения точности распознавания.
Использование помощи
Использование SmolDocling делится на две части: установка и эксплуатация. Ниже приведены подробные шаги, которые помогут пользователям быстро начать работу.
Процесс установки
- Подготовка среды
- Убедитесь, что на вашем компьютере установлен Python 3.8 или более поздней версии.
- Установите библиотеку зависимостей, введя в терминале следующую команду:
pip install torch transformers docling_core
- Если у вас есть GPU, рекомендуется установить PyTorch с поддержкой CUDA, чтобы работать быстрее. Проверьте методологию:
import torch print("GPU可用:" if torch.cuda.is_available() else "使用CPU")
- Модели для погрузки
- SmolDocling не нужно скачивать вручную, его можно получить прямо из Hugging Face с помощью кода.
- Убедитесь, что сеть открыта и что файлы модели автоматически загружаются при первом запуске.
Этапы использования
- Подготовьте фотографию
- Найдите изображение, содержащее текст, например отсканированный документ или снимок экрана.
- Загрузите изображение с кодом:
from transformers.image_utils import load_image image = load_image("你的图片路径.jpg")
- Инициализация моделей и процессоров
- Загрузите процессор и модель SmolDocling:
from transformers import AutoProcessor, AutoModelForVision2Seq DEVICE = "cuda" if torch.cuda.is_available() else "cpu" processor = AutoProcessor.from_pretrained("ds4sd/SmolDocling-256M-preview") model = AutoModelForVision2Seq.from_pretrained( "ds4sd/SmolDocling-256M-preview", torch_dtype=torch.bfloat16 ).to(DEVICE)
- Загрузите процессор и модель SmolDocling:
- Создание тегов документов
- Настройте входные данные и запустите модель:
messages = [{"role": "user", "content": [{"type": "image"}, {"type": "text", "text": "Convert this page to docling."}]}] prompt = processor.apply_chat_template(messages, add_generation_prompt=True) inputs = processor(text=prompt, images=[image], return_tensors="pt").to(DEVICE) generated_ids = model.generate(**inputs, max_new_tokens=8192) doctags = processor.batch_decode(generated_ids[:, inputs.input_ids.shape[1]:], skip_special_tokens=False)[0].lstrip() print(doctags)
- Настройте входные данные и запустите модель:
- Преобразование в распространенные форматы
- Конвертируйте DocTags в Markdown или другие форматы:
from docling_core.types.doc import DoclingDocument doc = DoclingDocument(name="我的文档") doc.load_from_doctags(doctags) print(doc.export_to_markdown())
- Конвертируйте DocTags в Markdown или другие форматы:
- Расширенное использование (опционально)
- Работа с многостраничными документами: Обработка нескольких изображений в цикле, а затем объединение DocTags.
- оптимизировать производительность: Настройки
torch_dtype=torch.bfloat16
Экономия памяти, пользователи GPU могут включитьflash_attention_2
Ускорение:model = AutoModelForVision2Seq.from_pretrained( "ds4sd/SmolDocling-256M-preview", torch_dtype=torch.bfloat16, _attn_implementation="flash_attention_2" if DEVICE == "cuda" else "eager" ).to(DEVICE)
навык работы
- Требования к изображению: Изображения должны быть четкими, а текст разборчивым, чем выше разрешение, тем лучше.
- Параметры настройки: Если результат неполный, добавьте
max_new_tokens
(по умолчанию 8192). - пакетный файл: Несколько изображений могут быть переданы в виде списка
images=[image1, image2]
. - Метод ввода в эксплуатацию: Вывод промежуточных результатов проверки, например, печать
inputs
Проверьте правильность ввода.
предостережение
- Для первого запуска требуется доступ к Интернету, после чего его можно использовать в автономном режиме.
- Слишком большие фотографии могут привести к нехватке памяти, поэтому их рекомендуется обрезать и обработать.
- Если вы столкнулись с ошибкой, проверьте правильность установки версии Python и зависимых библиотек.
Выполнив вышеописанные действия, пользователи смогут превратить изображения в структурированные документы с помощью SmolDocling. Весь процесс прост и подходит как для новичков, так и для профессиональных пользователей.
сценарий применения
- научные исследования
Преобразуйте отсканированные документы в текст, извлеките формулы и таблицы для удобного редактирования и цитирования. - Документация по программированию
Преобразует ручные изображения, содержащие код, в Markdown, сохраняя форматирование кода для разработчиков. - автоматизация офиса
Работа с отсканированными копиями договоров, отчетов и т.д., распознавание макета и содержания для повышения эффективности. - Образовательная поддержка
Превращайте изображения учебников в редактируемые документы, чтобы помочь учителям и ученикам организовать свои заметки.
QA
- В чем разница между SmolDocling и SmolVLM?
SmolDocling основан на оптимизированной версии SmolVLM-256M, ориентированной на обработку документов и вывод формата DocTags, в то время как SmolVLM является более общим и поддерживает такие задачи, как описание изображений. - Какие операционные системы поддерживаются?
Поддерживаются операционные системы Windows, Mac и Linux, которые можно запускать с установленным Python и зависимыми библиотеками. - Быстро ли происходит обработка?
Обработка изображения занимает всего несколько секунд на обычном компьютере и еще быстрее для пользователей GPU, обычно менее секунды. - Можете ли вы работать с рукописным текстом?
Да, но результаты зависят от четкости почерка, поэтому для достижения наилучших результатов рекомендуется использовать изображения печатного текста.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...