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

Адрес для демонстрации: 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-файлов
- Подготовка файлов PDF:
- Поместите обрабатываемый PDF-файл в локальный каталог, например
./tests/gnarly_pdfs/horribleocr.pdf
.
- Поместите обрабатываемый PDF-файл в локальный каталог, например
- Выполнить команду обработки:
python -m olmocr.pipeline ./localworkspace --pdfs tests/gnarly_pdfs/horribleocr.pdf
- Посмотреть результаты:
- По завершении обработки результаты сохраняются в формате JSON в файле
./localworkspace
. - Извлеченный текст сохраняется в формате JSONL в стиле Dolma в
./localworkspace/results
Средний.
- По завершении обработки результаты сохраняются в формате JSON в файле
- Параметры настройки (опция):
--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)
- Настройка среды AWS:
- Убедитесь, что у вас есть учетная запись AWS, и сгенерируйте ключ доступа.
- Создайте два ведра на S3, например
s3://my_s3_bucket/pdfworkspaces/exampleworkspace
ответить пениемs3://my_s3_bucket/jakep/gnarly_pdfs/
.
- Загрузка файлов PDF:
- Загрузите файлы PDF в
s3://my_s3_bucket/jakep/gnarly_pdfs/
.
- Загрузите файлы PDF в
- Запуск задания главного узла:
python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace --pdfs s3://my_s3_bucket/jakep/gnarly_pdfs/*.pdf
- Эта команда создает рабочую очередь и начинает обработку.
- Добавление ведомых узлов:
- Работает на других машинах:
python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace
- Ведомый узел автоматически получит задание из очереди и обработает его.
- Просмотр результатов:
- Результаты сохраняются в
s3://my_s3_bucket/pdfworkspaces/exampleworkspace/results
.
- Результаты сохраняются в
принимать к сведению: Вам необходимо настроить AWS CLI и убедиться, что у вас достаточно прав для доступа к ведру хранения S3.
Использование мензурки (внутренний пользователь AI2)
- Добавить параметры мензурки:
python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace --pdfs s3://my_s3_bucket/jakep/gnarly_pdfs/*.pdf --beaker --beaker_gpus 4
- операционный эффект:
- После локальной подготовки рабочего пространства в кластере автоматически запускаются 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-файлом или с большим набором данных.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...