olmOCR: преобразование PDF-документов в текст, поддержка таблиц, формул и распознавание рукописного текста

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

olmOCR - это инструмент с открытым исходным кодом, разработанный командой AllenNLP в Институте искусственного интеллекта Аллена (AI2), который предназначен для преобразования PDF-файлов в линеаризованный текст и особенно подходит для подготовки наборов данных и обучения крупномасштабных языковых моделей (LLM). Программа поддерживает извлечение текста из сложных PDF-документов, сохраняет естественный порядок чтения и может работать с таблицами, формулами и даже рукописным контентом. Инструмент отличается высокой производительностью и может работать как на локальных GPU, так и через AWS S3 для многоузловой параллельной обработки, что значительно снижает затраты на обработку. По официальным данным, его скорость обработки достигает 3000+ токенов в секунду, стоимость составляет всего 1/32 от GPT-4o, что очень подходит для исследователей и разработчиков, которым необходимо работать с большим количеством PDF. olmOCR использует лицензию Apache 2.0, код, модельные веса и данные полностью открыты, и поощряет сообщество к участию в улучшении.

olmOCR:PDF文档转换为文本,支持表格、公式和手写内容的识别

Адрес для демонстрации: https://olmocr.allenai.org/

 

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

  • Извлечение и линеаризация текста в формате PDF: Преобразование PDF-файлов в текст в формате JSONL в стиле Dolma с сохранением порядка чтения.
  • Ускорение рассуждений с помощью GPU: Использование нативных GPU и технологии sglang для эффективной обработки документов.
  • Многоузловая параллельная обработка: Поддержка координации многоузловых задач через AWS S3, подходящая для обработки миллионов PDF-файлов.
  • Распознавание сложного содержимого: Обработка таблиц, математических формул и рукописного текста для вывода структурированных результатов.
  • Гибкое управление рабочим пространствомПоддержка локального или облачного рабочего пространства для хранения результатов обработки и промежуточных данных.
  • Экологическая поддержка с открытым исходным кодом: Предоставление полного кода и документации для вторичной разработки и кастомизации.

 

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

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

Установку olmOCR необходимо выполнять в среде, поддерживающей Python, а для повышения эффективности обработки рекомендуется использовать GPU. Ниже приведены подробные шаги:

1. Подготовка окружающей среды

  • Установка Anaconda: Если у вас нет Anaconda, перейдите на официальный сайт, чтобы загрузить и установить ее.
  • Создание виртуальной среды:
    conda create -n olmocr python=3.11
    conda activate olmocr
  • Репозиторий клонированного кода:
    git clone https://github.com/allenai/olmocr.git
    cd olmocr
    

2. Установка основных зависимостей

  • Установка основных зависимостей:
    pip install -e .
    
  • Установка поддержки GPU (необязательно): Установите sglang и flashinfer, если вам нужно ускорение GPU:
    pip install sgl-kernel==0.0.3.post1 --force-reinstall --no-deps
    pip install "sglang[all]==0.4.2" --find-links https://flashinfer.ai/whl/cu124/torch2.4/flashinfer/
    

    принимать к сведению: Убедитесь, что драйвер вашего GPU и версия CUDA совместимы с вышеуказанными зависимостями.

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

  • В командной строке выполните команду python -m olmocr.pipeline --helpЕсли выводится сообщение о помощи, значит, установка прошла успешно.

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

olmOCR предоставляет два основных сценария использования: локальная обработка одного файла и крупномасштабная обработка в облаке. Ниже подробно описывается процесс работы.

Локальная обработка отдельных PDF-файлов

  1. Подготовка файлов PDF:
    • Поместите обрабатываемый PDF-файл в локальный каталог, например ./tests/gnarly_pdfs/horribleocr.pdf.
  2. Выполнить команду обработки:
    python -m olmocr.pipeline ./localworkspace --pdfs tests/gnarly_pdfs/horribleocr.pdf
    
  3. Посмотреть результаты:
    • По завершении обработки результаты сохраняются в формате JSON в файле ./localworkspace.
    • Извлеченный текст сохраняется в формате JSONL в стиле Dolma в ./localworkspace/results Средний.
  4. Параметры настройки (опция):
    • --workers: Устанавливает количество одновременных рабочих потоков, по умолчанию 8.
    • --target_longest_image_dim: Устанавливает максимальную длину стороны отрисованного изображения, по умолчанию 1024 пикселя.

образец вывода (вычисления):

{"text": "Molmo and PixMo:\nOpen Weights and Open Data\nfor State-of-the...", "metadata": {"primary_language": "en", "is_table": false}}

Крупномасштабная обработка данных в облаке (AWS S3)

  1. Настройка среды AWS:
    • Убедитесь, что у вас есть учетная запись AWS, и сгенерируйте ключ доступа.
    • Создайте два ведра на S3, например s3://my_s3_bucket/pdfworkspaces/exampleworkspace ответить пением s3://my_s3_bucket/jakep/gnarly_pdfs/.
  2. Загрузка файлов PDF:
    • Загрузите файлы PDF в s3://my_s3_bucket/jakep/gnarly_pdfs/.
  3. Запуск задания главного узла:
    python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace --pdfs s3://my_s3_bucket/jakep/gnarly_pdfs/*.pdf
    
    • Эта команда создает рабочую очередь и начинает обработку.
  4. Добавление ведомых узлов:
    • Работает на других машинах:
    python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace
    
    • Ведомый узел автоматически получит задание из очереди и обработает его.
  5. Просмотр результатов:
    • Результаты сохраняются в s3://my_s3_bucket/pdfworkspaces/exampleworkspace/results.

принимать к сведению: Вам необходимо настроить AWS CLI и убедиться, что у вас достаточно прав для доступа к ведру хранения S3.

Использование мензурки (внутренний пользователь AI2)

  1. Добавить параметры мензурки:
    python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace --pdfs s3://my_s3_bucket/jakep/gnarly_pdfs/*.pdf --beaker --beaker_gpus 4
    
  2. операционный эффект:
    • После локальной подготовки рабочего пространства в кластере автоматически запускаются 4 рабочих узла GPU.

Функциональное управление

1. работа со сложными документами

  • процедура:
    • Загружайте PDF-файлы, содержащие таблицы или формулы.
    • Использование модели по умолчанию allenai/olmOCR-7B-0225-previewВыполните команду обработки.
    • Проверьте выходной JSONL-файл, чтобы убедиться, что таблицы и формулы правильно разбираются как текст.
  • привлекать внимание к чему-л.:: Корректировка при плохом распознавании --target_longest_image_dim параметр для увеличения разрешения изображения.

2. Высокая производительность обработки

  • процедура:
    • Настройте многоузловую среду (например, AWS или Beaker).
    • подниматься --workers параметр для усиления параллелизма в автономном режиме.
    • Контролируйте скорость обработки, чтобы обеспечить 3000+ жетонов в секунду.
  • доминирование: Стоимость составляет 190 долларов за миллион страниц, что гораздо меньше, чем у коммерческих API.

3. Пользовательская разработка

  • процедура:
    • модификации olmocr/pipeline.py, настраивая логику обработки.
    • взаимозаменяемость --model параметр, используя пользовательский путь к модели.
    • Отправляйте код на GitHub и участвуйте в развитии сообщества.

предостережение

  • требования к оборудованию: Для локальной работы требуется графический процессор, рекомендуется видеокарта NVIDIA.
  • сетевые требованияОблачная обработка требует стабильного сетевого подключения к AWS.
  • Советы по отладке: Использование --stats Параметр для просмотра статистики рабочего пространства для устранения неполадок.

Выполнив эти шаги, вы сможете быстро освоить olmOCR и эффективно выполнять работу, независимо от того, работаете ли вы с одним PDF-файлом или с большим набором данных.

© заявление об авторских правах

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

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

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