SmolDocling: визуальная языковая модель для эффективной обработки документов небольшого объема

Общее введение

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

SmolDocling:小体积高效处理文档的视觉语言模型

 

SmolDocling:小体积高效处理文档的视觉语言模型

 

Список функций

  • Извлечение текста (OCR): Распознавание и извлечение текста из изображений, поддержка нескольких языков.
  • Идентификация макета: Проанализируйте структуру документа на картинке, например, расположение заголовков, абзацев, таблиц.
  • распознавание кодов: Извлекает блоки кода, сохраняя отступы и форматирование.
  • распознавание формул: Обнаружение математических формул и преобразование их в редактируемый текст.
  • распознавание диаграмм: Разбирает содержимое графика на изображении и извлекает данные.
  • Обработка форм: Определите структуру таблицы и сохраните информацию о строках и столбцах.
  • Выходные данные DocTags: Преобразование результатов обработки в единый формат маркировки для удобства последующего использования.
  • Обработка изображений высокого разрешения: Поддерживает ввод изображений с большим разрешением для повышения точности распознавания.

 

Использование помощи

Использование SmolDocling делится на две части: установка и эксплуатация. Ниже приведены подробные шаги, которые помогут пользователям быстро начать работу.

Процесс установки

  1. Подготовка среды
    • Убедитесь, что на вашем компьютере установлен Python 3.8 или более поздней версии.
    • Установите библиотеку зависимостей, введя в терминале следующую команду:
      pip install torch transformers docling_core
      
    • Если у вас есть GPU, рекомендуется установить PyTorch с поддержкой CUDA, чтобы работать быстрее. Проверьте методологию:
      import torch
      print("GPU可用:" if torch.cuda.is_available() else "使用CPU")
      
  2. Модели для погрузки
    • SmolDocling не нужно скачивать вручную, его можно получить прямо из Hugging Face с помощью кода.
    • Убедитесь, что сеть открыта и что файлы модели автоматически загружаются при первом запуске.

Этапы использования

  1. Подготовьте фотографию
    • Найдите изображение, содержащее текст, например отсканированный документ или снимок экрана.
    • Загрузите изображение с кодом:
      from transformers.image_utils import load_image
      image = load_image("你的图片路径.jpg")
      
  2. Инициализация моделей и процессоров
    • Загрузите процессор и модель 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)
      
  3. Создание тегов документов
    • Настройте входные данные и запустите модель:
      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)
      
  4. Преобразование в распространенные форматы
    • Конвертируйте DocTags в Markdown или другие форматы:
      from docling_core.types.doc import DoclingDocument
      doc = DoclingDocument(name="我的文档")
      doc.load_from_doctags(doctags)
      print(doc.export_to_markdown())
      
  5. Расширенное использование (опционально)
    • Работа с многостраничными документами: Обработка нескольких изображений в цикле, а затем объединение 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. Весь процесс прост и подходит как для новичков, так и для профессиональных пользователей.

 

сценарий применения

  1. научные исследования
    Преобразуйте отсканированные документы в текст, извлеките формулы и таблицы для удобного редактирования и цитирования.
  2. Документация по программированию
    Преобразует ручные изображения, содержащие код, в Markdown, сохраняя форматирование кода для разработчиков.
  3. автоматизация офиса
    Работа с отсканированными копиями договоров, отчетов и т.д., распознавание макета и содержания для повышения эффективности.
  4. Образовательная поддержка
    Превращайте изображения учебников в редактируемые документы, чтобы помочь учителям и ученикам организовать свои заметки.

 

QA

  1. В чем разница между SmolDocling и SmolVLM?
    SmolDocling основан на оптимизированной версии SmolVLM-256M, ориентированной на обработку документов и вывод формата DocTags, в то время как SmolVLM является более общим и поддерживает такие задачи, как описание изображений.
  2. Какие операционные системы поддерживаются?
    Поддерживаются операционные системы Windows, Mac и Linux, которые можно запускать с установленным Python и зависимыми библиотеками.
  3. Быстро ли происходит обработка?
    Обработка изображения занимает всего несколько секунд на обычном компьютере и еще быстрее для пользователей GPU, обычно менее секунды.
  4. Можете ли вы работать с рукописным текстом?
    Да, но результаты зависят от четкости почерка, поэтому для достижения наилучших результатов рекомендуется использовать изображения печатного текста.
© заявление об авторских правах

Похожие статьи

FlowGPT:使用各类大模型自由编写个性化AI助手,AI角色扮演应用商店

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...