Skip to main content
Ai-инженер, разработчик
14 октября, 2025

Docling: как превратить сложные PDF в структурированные данные для ИИ

Корпоративные документы — PDF-отчёты, технические руководства, презентации и контракты — хранят огромные объёмы ценной информации, но работать с ними крайне сложно. Традиционные инструменты извлечения данных часто теряют структуру таблиц, путают порядок чтения или выдают некорректный текст из-за ошибок распознавания. В результате подготовка документов для современных систем искусственного интеллекта превращается в трудоёмкий процесс, требующий ручной проверки и корректировки каждого файла.

IBM Research разработала решение этой проблемы — открытый инструментарий Docling, который преобразует сложные документы в структурированные данные, готовые для использования в языковых моделях и RAG-системах.

В статье расскажем:

  • что такое Docling и какие задачи он решает лучше традиционных парсеров;
  • как работает архитектура инструмента и какие модели ИИ обеспечивают высокую точность;
  • как установить и настроить Docling для работы с PDF, Office-документами и изображениями;
  • в каких областях применяется инструмент и как интегрировать его с LangChain и LlamaIndex;
  • сколько времени занимает обработка документов и какие результаты показывают бенчмарки.

Читайте также: [Лучшие практики подготовки данных для обучения языковых моделей]


Что такое Docling и для чего он нужен


Docling — это специализированный инструментарий с открытым исходным кодом для извлечения и структурирования данных из сложных корпоративных документов. В отличие от простых парсеров текста, Docling понимает внутреннюю организацию документа — распознаёт заголовки и подзаголовки, восстанавливает структуру таблиц с объединёнными ячейками, сохраняет порядок чтения элементов и классифицирует изображения.

Основная задача инструмента — подготовить данные для современных приложений генеративного искусственного интеллекта. Языковые модели работают эффективнее, когда получают на вход не просто текст, а структурированную информацию с сохранённой иерархией разделов, корректными таблицами и метаданными. Именно такой результат обеспечивает Docling — он преобразует PDF, DOCX, PPTX и другие форматы в JSON или Markdown, которые можно напрямую использовать для обучения моделей, построения систем поиска по знаниям или создания RAG-приложений.

Ключевые характеристики:

  • поддержка множества форматов — помимо PDF работает с документами Office, HTML, изображениями и даже аудиофайлами с текстовыми дорожками;
  • локальное выполнение — весь процесс обработки происходит на вашем оборудовании без отправки данных в облако, что критично для работы с конфиденциальной информацией;
  • открытая лицензия MIT — инструмент можно свободно использовать в коммерческих проектах, модифицировать под свои задачи и встраивать в корпоративные системы.

Важно понимать, что Docling не является универсальным OCR-решением для любых документов. Инструмент специализируется на структурированных бизнес-документах — отчётах, контрактах, технической документации. Для простого извлечения текста из сканов более подходящими могут оказаться классические OCR-движки.

Чем Docling отличается от традиционных парсеров


Большинство разработчиков сталкиваются с необходимостью выбора между скоростью и качеством извлечения данных. Простые библиотеки вроде PyMuPDF работают молниеносно — могут обработать документ за секунды, но при этом часто теряют структуру таблиц и путают порядок элементов на странице. Облачные сервисы предлагают высокое качество, однако требуют отправки документов на сторонние серверы и взимают плату за каждую страницу.

Docling занимает уникальную позицию на этом рынке — инструмент объединяет высокое качество извлечения с возможностью полностью локальной работы.

Качество против скорости

По результатам бенчмарков качество выходных данных Docling существенно превосходит большинство открытых альтернатив. Инструмент демонстрирует стопроцентную точность извлечения текста из плотных параграфов и достигает 97,9% точности при восстановлении структуры сложных таблиц с объединёнными ячейками и вложенной иерархией — это лучший результат среди решений с открытым кодом.

Однако за качество приходится платить временем обработки. На архитектуре M3 Max инструмент обрабатывает одну страницу документа за 1,26 секунды — это заметно медленнее PyMuPDF, который справляется с аналогичной задачей в десятки раз быстрее. Тем не менее для большинства корпоративных задач, где важна точность структурирования данных для последующего использования в ИИ-системах, такая скорость вполне приемлема.

Преимущество перед OCR

Традиционное оптическое распознавание символов работает по принципу «увидел картинку — распознал буквы». Этот подход неизбежно вносит ошибки — движки OCR путают похожие символы, неправильно определяют границы слов в таблицах и не понимают логическую структуру документа.

Docling использует принципиально иной подход — модели компьютерного зрения, обученные распознавать визуальные паттерны документов. Вместо посимвольного распознавания инструмент сначала определяет тип каждого элемента на странице — параграф, заголовок, таблица, изображение — а затем извлекает из него данные оптимальным способом. Для цифровых PDF это означает прямое чтение текстового слоя без распознавания, что исключает ошибки и ускоряет процесс в 30 раз по сравнению с классическим OCR.

При этом для отсканированных документов и изображений Docling поддерживает интеграцию с несколькими OCR-движками — EasyOCR, Tesseract и RapidOCR — которые подключаются опционально при необходимости.

Локальное выполнение

Ключевое преимущество Docling для корпоративного сегмента — возможность работать полностью автономно. Инструмент не требует подключения к интернету, не отправляет документы на внешние серверы и может функционировать в изолированных средах с повышенными требованиями к безопасности. Для обработки достаточно стандартного ноутбука — даже модели без выделенного GPU справляются с задачей, хотя для ускорения рекомендуется использовать системы с графическими ускорителями.

Архитектура Docling: как работает обработка документов

Docling построен на модульной архитектуре, где каждый компонент отвечает за определённый аспект анализа документа. Понимание этой структуры помогает правильно настроить инструмент под конкретные задачи и оценить, где могут возникнуть узкие места при обработке больших объёмов файлов.

Конвейер обработки

Процесс преобразования документа проходит через последовательность этапов, каждый из которых добавляет информацию к формируемой структуре.

Первый этап — низкоуровневый парсинг файла. Для PDF-документов по умолчанию используется собственный C++ бэкэнд на основе библиотеки qpdf, который быстро извлекает текстовый слой и векторную графику. Этот бэкэнд работает напрямую с внутренней структурой PDF без промежуточных конвертаций, что обеспечивает высокую скорость. Альтернативный бэкэнд на базе pypdfium доступен для случаев, когда требуется обработать документы с нестандартной структурой.

Второй этап — анализ визуального макета страницы. Специализированная модель компьютерного зрения, обученная на наборе данных DocLayNet, предсказывает ограничивающие рамки для каждого элемента — параграфа, заголовка, списка, сноски или изображения. Модель работает как детектор объектов — получает на вход изображение страницы и возвращает координаты прямоугольников с классификацией содержимого внутри них.

Третий этап — специализированная обработка таблиц через модель TableFormer. Эта модель-трансформер восстанавливает логическую структуру таблиц независимо от того, нарисованы они линиями или обозначены только пробелами. TableFormer распознаёт объединённые ячейки, определяет иерархию заголовков и корректно интерпретирует таблицы со сложной структурой — именно здесь Docling значительно превосходит простые парсеры, которые часто превращают табличные данные в бессмысленный набор текста.

Четвёртый этап — сборка результатов. Система агрегирует информацию со всех страниц, определяет правильный порядок чтения элементов с учётом многоколоночной вёрстки, сопоставляет рисунки с их подписями и извлекает метаданные документа — заголовок, авторов, язык содержимого.

DoclingDocument: единый формат для всех типов файлов

Независимо от исходного формата — PDF, DOCX или HTML — результатом работы конвейера становится объект DoclingDocument. Это не просто текстовый файл, а богатая структурированная репрезентация, которая сохраняет всю иерархию исходного документа.

В DoclingDocument хранится информация о типе каждого элемента — параграф это или заголовок определённого уровня, список или цитата. Сохраняются геометрические координаты элементов на странице, что позволяет при необходимости воссоздать визуальное расположение контента. Таблицы представлены в машиночитаемом формате с явным указанием строк, столбцов и объединений ячеек. Изображения сопровождаются метаданными о размере, положении и связи с текстовыми подписями.

Эта структура напрямую готова для использования в приложениях искусственного интеллекта — её можно сериализовать в JSON для хранения и дальнейшей обработки либо экспортировать в Markdown для чтения человеком или загрузки в языковые модели.

Роль OCR и распознавания речи

Хотя Docling стремится избегать традиционного OCR для цифровых документов, инструмент предоставляет расширенную поддержку оптического распознавания для работы с отсканированными материалами.

Для распознавания текста на изображениях и сканах доступны три движка. EasyOCR используется по умолчанию и обеспечивает хороший баланс качества и скорости для большинства языков. Tesseract подключается через интерфейс командной строки или Python-библиотеку для случаев, когда требуется настроить специфические параметры распознавания. RapidOCR предлагает ускоренную обработку за счёт оптимизированных моделей.

Помимо текста, Docling умеет работать с аудиофайлами через модели автоматического распознавания речи — это позволяет извлекать текстовые дорожки из записей лекций, интервью или презентаций и включать их в общий корпус документов для анализа.

Установка и базовая настройка Docling


Начать работу с Docling можно за несколько минут — инструмент распространяется как стандартный Python-пакет и не требует сложной настройки окружения.

Системные требования

Для работы необходима версия Python 3.10, 3.11 или 3.12 — более старые версии не поддерживаются из-за использования современных возможностей языка и зависимостей. Минимальные требования к оборудованию достаточно скромные — Docling работает даже на ноутбуках без выделенного GPU, хотя наличие видеокарты существенно ускоряет обработку больших документов.

Объём оперативной памяти зависит от размера обрабатываемых файлов — для типичных PDF на десятки страниц достаточно 8 ГБ, но для пакетной обработки сотен документов рекомендуется иметь 16 ГБ или больше.

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

Базовая установка выполняется одной командой через менеджер пакетов pip:

pip install docling

Эта команда установит Docling со всеми необходимыми зависимостями, включая модели для анализа макета и обработки таблиц. По умолчанию устанавливается версия с поддержкой как CPU, так и GPU — система автоматически определит доступное оборудование и выберет оптимальный вариант выполнения.

Для систем Linux, где не планируется использовать GPU, рекомендуется явно указать источник CPU-версии PyTorch — это сократит объём загружаемых данных и ускорит установку:

pip install docling --extra-index-url https://download.pytorch.org/whl/cpu

Если планируется использовать Tesseract OCR, необходимо предварительно установить его как системную зависимость через пакетный менеджер операционной системы. Для Ubuntu это команда apt install tesseract-ocr, для macOS — brew install tesseract. Без этого шага Docling не сможет использовать Tesseract даже после установки Python-обёртки.

Первый запуск

Проверить работоспособность установки можно буквально тремя строками кода:

from docling.document_converter import DocumentConverter

converter = DocumentConverter()
result = converter.convert("https://arxiv.org/pdf/2408.09869")

print(result.document.export_to_markdown())

Этот пример загружает научную статью из arXiv, обрабатывает её и выводит результат в формате Markdown. Первый запуск займёт больше времени — Docling автоматически загрузит необходимые модели машинного обучения, которые затем будут использоваться повторно.

Для работы с локальными файлами вместо URL достаточно указать путь:

result = converter.convert("/path/to/document.pdf")

Docling автоматически определит тип файла по расширению и применит соответствующий конвейер обработки.

Расширенные возможности настройки


Базовая конфигурация Docling подходит для большинства задач, однако инструмент предоставляет гибкие опции для точной настройки поведения в зависимости от типа документов и требований к качеству.

Управление OCR

По умолчанию Docling не использует оптическое распознавание символов для цифровых PDF — инструмент читает текстовый слой напрямую. Однако для отсканированных документов или страниц, которые представляют собой изображения, необходимо явно активировать OCR:

from docling.document_converter import DocumentConverter
from docling.datamodel.pipeline_options import PipelineOptions

pipeline_options = PipelineOptions(do_ocr=True)
doc_converter = DocumentConverter(pipeline_options=pipeline_options)

При включении OCR Docling обрабатывает каждую страницу через выбранный движок распознавания — это существенно увеличивает время обработки, но позволяет извлекать текст из любых документов независимо от их происхождения.

Режимы работы TableFormer

Модель восстановления структуры таблиц TableFormer поддерживает два режима работы, различающихся балансом между скоростью и точностью.

Быстрый режим (по умолчанию) использует облегчённую версию модели, которая обрабатывает таблицы за считанные секунды и справляется с большинством типичных случаев — простые таблицы с явными границами и стандартной структурой.

Точный режим задействует более сложную модель, способную корректно интерпретировать даже нестандартные таблицы — с частичными границами, сложными объединениями ячеек, иерархическими заголовками и вложенными структурами. Этот режим работает медленнее, но обеспечивает максимальное качество для критически важных документов:

from docling.datamodel.pipeline_options import TableFormerMode

pipeline_options = PipelineOptions(do_table_structure=True)
pipeline_options.table_structure_options.mode = TableFormerMode.ACCURATE

doc_converter = DocumentConverter(pipeline_options=pipeline_options)

Выбор форматов экспорта

Docling может экспортировать результаты в несколько форматов в зависимости от дальнейшего использования.

Markdown обеспечивает читаемое представление с сохранением структуры — это оптимальный выбор для загрузки в языковые модели или публикации на вики-платформах:

markdown_text = result.document.export_to_markdown()

JSON предоставляет полную структурированную информацию без потерь — все метаданные, координаты элементов, таблицы в машиночитаемом виде. Этот формат подходит для программной обработки и интеграции с другими системами:

json_data = result.document.export_to_dict()

HTML создаёт веб-страницу с визуальным оформлением, близким к оригиналу — удобно для предварительного просмотра результатов или публикации в интранете.

DocTags — специализированный формат с семантической разметкой, оптимизированный для обучения языковых моделей и задач извлечения информации.

Работа через интерфейс командной строки


Для быстрой обработки документов без написания кода Docling предоставляет удобный интерфейс командной строки. CLI особенно полезен для разовых задач, тестирования инструмента на новых типах документов или интеграции в скрипты автоматизации.

Базовые команды

Простейший вариант использования — указать путь к файлу или URL документа:

docling https://arxiv.org/pdf/2206.01062

По умолчанию результат сохраняется в текущую директорию в формате Markdown с тем же именем, что и исходный файл.

Для явного указания форматов вывода используются флаги --to:

docling myfile.pdf --to json --to md

Эта команда создаст два файла — myfile.json с полной структурированной информацией и myfile.md с текстовым представлением.

Пакетная обработка

CLI поддерживает обработку целых директорий с автоматической фильтрацией по типам файлов:

docling ./input/dir --from pdf --from docx --to md --to json --output ./scratch

Команда найдёт все PDF и DOCX файлы в директории ./input/dir, обработает их и сохранит результаты в папку ./scratch. Каждый документ будет экспортирован в оба указанных формата.

Управление OCR через CLI

Для отключения оптического распознавания символов — например, когда известно, что все документы содержат текстовый слой — используется флаг --no-ocr:

docling myfile.pdf --to json --to md --no-ocr

Это существенно ускоряет обработку цифровых документов, избавляя от ненужных затрат времени на распознавание уже доступного текста.

На практике многие пользователи начинают работу с Docling именно с CLI для быстрого тестирования на своих документах. Если результаты устраивают, переходят к интеграции через Python API для более тонкой настройки и встраивания в автоматизированные рабочие процессы.

Интеграция Docling с фреймворками для работы с LLM


Основная ценность Docling проявляется при интеграции с современными фреймворками для построения приложений на базе языковых моделей — в первую очередь с LangChain и LlamaIndex.

Работа с LangChain

LangChain предоставляет специальный загрузчик документов DoclingLoader, который упрощает использование Docling в цепочках обработки данных.

Базовый пример загрузки документа:

from langchain_community.document_loaders import DoclingLoader

loader = DoclingLoader(file_path="./example.pdf")
documents = loader.load()

Загрузчик возвращает список документов LangChain, где каждый элемент содержит текст и метаданные. Эти документы можно сразу передавать в векторные хранилища для построения RAG-систем или использовать в качестве контекста для языковых моделей.

Для более детальной настройки поведения Docling можно передать параметры конвейера:

from docling.datamodel.pipeline_options import PipelineOptions

pipeline_options = PipelineOptions(do_ocr=True, do_table_structure=True)
loader = DoclingLoader(
    file_path="./scanned_report.pdf",
    pipeline_options=pipeline_options
)

Интеграция с LlamaIndex

LlamaIndex предлагает ещё более глубокую интеграцию через два компонента — DoclingReader для загрузки и DoclingNodeParser для интеллектуального разделения на фрагменты.

DoclingReader работает аналогично загрузчику LangChain, но возвращает данные в формате, оптимизированном для индексации в LlamaIndex:

from llama_index.readers.docling import DoclingReader

reader = DoclingReader()
documents = reader.load_data(file_path="./technical_manual.pdf")

Ключевое преимущество — DoclingNodeParser, который использует структурную информацию из DoclingDocument для создания семантически связных фрагментов. Вместо простого разделения текста на куски фиксированного размера, парсер создаёт узлы с учётом иерархии документа — отдельные узлы для параграфов, таблиц, разделов:

from llama_index.core.node_parser import DoclingNodeParser

node_parser = DoclingNodeParser()
nodes = node_parser.get_nodes_from_documents(documents)

Такой подход обеспечивает более точный поиск в RAG-системах — релевантные фрагменты возвращаются полностью, без обрыва на середине таблицы или потери контекста иерархии разделов.

Многомодальные RAG-системы

Docling поддерживает построение многомодальных RAG-систем, которые работают не только с текстом, но и с изображениями из документов.

Рабочий процесс выглядит следующим образом. Docling обрабатывает документ и извлекает все элементы — текст, таблицы, изображения. Изображения передаются мультимодальной языковой модели — например, IBM Granite Vision — для генерации текстовых описаний. Эти описания векторизуются вместе с текстовыми блоками и табличными данными. При поиске система находит релевантные фрагменты по запросу пользователя независимо от их типа — текст, таблица или описание изображения.

Такой подход позволяет отвечать на вопросы типа «покажи диаграмму распределения расходов» или «найди изображение архитектуры системы» — RAG-система возвращает не только текстовый контекст, но и соответствующее изображение с его описанием.

Чанкинг и подготовка данных для векторизации


Качество работы RAG-систем критически зависит от того, как разделены документы на фрагменты для векторизации. Простое разбиение по количеству символов часто приводит к потере контекста — предложения обрываются на середине, таблицы разрываются между фрагментами, связь между разделами теряется.

Docling предоставляет специализированные инструменты для интеллектуального разделения документов с учётом их структуры.

HybridChunker

Гибридный разделитель сочетает несколько стратегий для создания оптимальных фрагментов. Он учитывает естественные границы в документе — концы параграфов, границы разделов, таблицы как отдельные единицы — и при этом следит за тем, чтобы размер каждого фрагмента не превышал заданный лимит для эффективной векторизации.

Базовое использование:

from docling_core.transforms.chunker import HybridChunker

chunker = HybridChunker(max_tokens=512)
chunks = list(chunker.chunk(doc_content))

Параметр max_tokens определяет максимальный размер фрагмента в токенах — это важно для соответствия ограничениям моделей эмбеддингов, которые обычно принимают входные последовательности до 512 или 1024 токенов.

HierarchicalChunker

Иерархический разделитель идёт ещё дальше — он создаёт фрагменты с сохранением структуры заголовков. Каждый фрагмент текста получает префикс с цепочкой заголовков от корня документа до текущего раздела.

Например, параграф из раздела «Глава 3 → Подраздел 3.2 → Пункт 3.2.1» будет включать эту иерархию в свой контекст. При поиске это позволяет находить информацию с учётом её положения в структуре документа — система понимает, что найденный фрагмент относится именно к этому разделу, а не к другой части документа с похожим текстом.

from docling_core.transforms.chunker import HierarchicalChunker

h_chunker = HierarchicalChunker()
hierarchical_chunks = list(h_chunker.chunk(doc_content))

Эксперты рекомендуют использовать HierarchicalChunker для технической документации, руководств и учебных материалов, где структура разделов критически важна для понимания контекста. Для менее структурированных документов — писем, заметок, новостных статей — достаточно HybridChunker.

Извлечение структурированной информации из документов


Помимо преобразования документов в текст и JSON, Docling предоставляет функциональность извлечения специфической информации по заданной схеме — это особенно полезно для автоматизации обработки типовых документов вроде счетов, договоров или анкет.

Работа с моделями Pydantic

Механизм извлечения структурированных данных основан на использовании Pydantic-моделей, которые описывают желаемую схему данных.

Предположим, необходимо извлечь информацию из счёта на оплату. Определяем модель данных:

from pydantic import BaseModel
from typing import List

class LineItem(BaseModel):
    description: str
    quantity: int
    unit_price: float
    total: float

class Invoice(BaseModel):
    invoice_number: str
    date: str
    supplier_name: str
    items: List[LineItem]
    total_amount: float

Затем используем DocumentExtractor для извлечения данных из документа:

from docling.document_extractor import DocumentExtractor

extractor = DocumentExtractor(schema=Invoice)
result = extractor.extract("./invoice.pdf")

# Получаем структурированные данные по страницам
for page_result in result.pages:
    invoice_data = page_result.data  # Объект класса Invoice
    print(f"Счёт №{invoice_data.invoice_number}")
    print(f"Сумма: {invoice_data.total_amount}")

Система автоматически находит в документе поля, соответствующие схеме, и возвращает заполненные объекты Pydantic. Это избавляет от необходимости писать регулярные выражения или правила парсинга для каждого типа документов.

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

Для простых случаев можно использовать обычные словари Python вместо Pydantic-моделей:

schema = {
    "company_name": str,
    "registration_number": str,
    "address": str,
    "phone": str
}

extractor = DocumentExtractor(schema=schema)
result = extractor.extract("./company_profile.pdf")

Однако использование Pydantic предпочтительнее — это обеспечивает валидацию типов данных, поддержку вложенных структур и автоматическую генерацию документации для схемы.

Функциональность извлечения структурированной информации находится в стадии бета-тестирования. На практике качество работы сильно зависит от того, насколько стандартизирована структура обрабатываемых документов. Для типовых форм — счетов, анкет, стандартных отчётов — система показывает хорошие результаты, но для документов с произвольной структурой может потребоваться ручная доработка.

Области применения и практические кейсы


Docling находит применение везде, где необходимо обработать большие объёмы сложных документов и подготовить их для использования в современных ИИ-системах.

Подготовка данных для обучения языковых моделей

Одно из ключевых применений — извлечение качественных данных из PDF для fine-tuning базовых моделей. Проект InstructLab от IBM использует Docling для подготовки обучающих материалов — инструмент извлекает текст из технических руководств, научных статей и корпоративной документации, сохраняя структуру и форматирование, что критично для обучения моделей понимать иерархию информации.

В отличие от простого извлечения текста, Docling создаёт обучающие примеры с сохранённым контекстом — модель учится не просто генерировать текст, но и понимать структуру документов, правильно форматировать таблицы и следовать иерархии разделов.

Корпоративное управление знаниями

Крупные организации накапливают огромные объёмы внутренней документации — политики компании, технические стандарты, процедуры и руководства. Эти документы хранят критически важные знания, но найти нужную информацию в тысячах PDF крайне сложно.

Docling позволяет структурировать этот массив данных и построить интеллектуальную систему поиска — сотрудники могут задавать вопросы на естественном языке и получать ответы со ссылками на конкретные разделы документов. Поскольку Docling работает полностью локально, конфиденциальная корпоративная информация не покидает инфраструктуру компании.

Юридические документы и контракты

Юридические фирмы используют Docling для анализа договоров, судебных решений и нормативных актов. Инструмент извлекает структурированную информацию о сторонах договора, датах, суммах обязательств и условиях — это ускоряет процесс due diligence при слияниях и поглощениях, помогает находить прецеденты в судебной практике и автоматизирует проверку соответствия контрактов корпоративным стандартам.

Особенно ценна возможность работы с таблицами — в юридических документах часто встречаются сложные приложения с графиками платежей, спецификациями имущества или условиями поставок, которые Docling корректно преобразует в машиночитаемый формат.

Финансовая отчётность и анализ

Финансовые аналитики применяют Docling для обработки годовых отчётов компаний, форм 10-K и квартальных презентаций. Инструмент извлекает финансовые таблицы с сохранением всех связей между показателями, что позволяет автоматически рассчитывать коэффициенты, строить временные ряды и сравнивать результаты разных компаний.

RAG-системы на базе Docling могут отвечать на вопросы типа «какая была выручка компании X в Q3 2023 года» или «как изменилась маржинальность бизнеса Y за последние три года», извлекая точные данные из первоисточников без ручного ввода.

Научные исследования

Академические исследователи используют Docling для анализа научных публикаций — инструмент извлекает таблицы экспериментальных данных, списки цитируемой литературы и метаданные статей. Это позволяет автоматизировать систематические обзоры литературы, строить графы цитирования и анализировать эволюцию научных концепций.

Поддержка математических формул (планируется в будущих версиях) сделает Docling ещё более полезным для работы с техническими и научными текстами.

Производительность и бенчмарки


При выборе инструмента для обработки документов важно понимать реальную скорость работы и возможности масштабирования.

Скорость обработки

По результатам внутренних тестов IBM Research на архитектуре M3 Max, Docling демонстрирует среднюю скорость обработки 1,26 секунды на страницу для типичных PDF-документов с текстом и таблицами. Эта цифра включает все этапы конвейера — парсинг файла, анализ макета, распознавание таблиц и сборку результата.

Производительность масштабируется линейно при пакетной обработке — документ на 10 страниц обрабатывается примерно за 12-13 секунд, на 50 страниц — около минуты. Это предсказуемое поведение упрощает планирование времени при обработке больших архивов документов.

Факторы влияния на скорость

На реальную производительность влияют несколько факторов.

Сложность макета — документы с многоколоночной вёрсткой, обилием изображений и сложными таблицами обрабатываются медленнее простых текстовых файлов. Использование OCR — включение оптического распознавания символов увеличивает время обработки в несколько раз, поскольку требует анализа каждой страницы как изображения. Режим TableFormer — точный режим распознавания таблиц работает медленнее быстрого, но обеспечивает лучшее качество для сложных структур.

Наличие GPU существенно ускоряет работу моделей компьютерного зрения — на системах с видеокартой обработка может быть в 2-3 раза быстрее по сравнению с CPU-only режимом.

Сравнение с альтернативами

В контексте производительности Docling занимает среднюю позицию между скоростными парсерами и точными, но медленными решениями.

PyMuPDF работает на порядок быстрее — может обработать тот же документ за доли секунды, однако часто теряет структуру таблиц и неправильно определяет порядок чтения. Для задач, где важна только скорость извлечения текста без сохранения структуры, PyMuPDF остаётся оптимальным выбором.

Облачные сервисы типа LlamaParse демонстрируют очень быструю обработку благодаря мощным серверным ресурсам — около 6 секунд на документ независимо от размера. Однако они требуют отправки данных на внешние серверы и взимают плату за каждую обработанную страницу, что делает их неподходящими для конфиденциальных данных или больших объёмов.

Docling предлагает оптимальный баланс — достаточно высокая скорость для большинства задач, превосходное качество извлечения структуры и полная локальность выполнения без зависимости от внешних сервисов.

Ограничения и планы развития


Несмотря на впечатляющие возможности, Docling имеет определённые ограничения, о которых важно знать при планировании использования.

Текущие ограничения

Рукописный текст и сканы низкого качества остаются проблемной областью. Даже с подключенным OCR Docling может испытывать трудности с корректным распознаванием рукописных заметок, стильных шрифтов или текста на фотографиях низкого разрешения — в таких случаях может потребоваться ручная проверка и корректировка результатов.

Математические формулы пока не получают специальной обработки. Docling распознаёт их как текст или изображения, но не преобразует в машиночитаемый формат типа LaTeX или MathML — это планируется добавить в будущих версиях.

Сложные диаграммы и графики классифицируются как изображения, но их содержимое не извлекается автоматически. Для работы с графиками требуется либо OCR для распознавания подписей осей и легенды, либо интеграция с мультимодальными моделями для интерпретации визуальной информации.

Блоки кода в технической документации распознаются как обычный текст без специальной обработки — Docling не определяет язык программирования и не применяет синтаксическое выделение.

Планы развития

Команда IBM Research активно работает над расширением возможностей инструмента. В разработке находится поддержка нескольких новых типов контента.

Математические уравнения и формулы получат специализированную обработку с преобразованием в стандартные форматы для дальнейшего использования в научных приложениях. Графики и диаграммы — столбчатые, круговые, линейные — будут автоматически классифицироваться с извлечением данных для построения в других инструментах. Блоки программного кода получат распознавание языка и синтаксическую разметку.

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

Расширяется извлечение метаданных — помимо заголовка и авторов, планируется автоматическое определение ключевых слов, тематики документа и извлечение библиографических ссылок со структурированием по стандартам цитирования.

На практике текущие возможности Docling уже покрывают большинство типичных корпоративных задач. Ограничения проявляются в специализированных областях — академических исследованиях с обилием формул, химических производствах с молекулярными структурами или обработке архивов рукописных документов. Для стандартной бизнес-документации инструмент работает отлично.

Безопасность и конфиденциальность данных


Одно из ключевых преимуществ Docling для корпоративного использования — способность работать полностью автономно без передачи данных на внешние серверы.

Локальное выполнение

Все компоненты Docling — парсеры, модели машинного обучения, движки OCR — выполняются на локальном оборудовании. Документы не отправляются в облако для обработки, все промежуточные результаты хранятся на диске компьютера, сетевое подключение требуется только для первоначальной загрузки моделей при установке.

Это критически важно для организаций, работающих с чувствительными данными — медицинских учреждений с историями болезней, финансовых институтов с данными клиентов, государственных структур с конфиденциальными документами или компаний в высококонкурентных отраслях, где утечка технической документации может нанести серьёзный ущерб.

Использование в изолированных средах

Docling спроектирован для работы в air-gapped окружениях — изолированных сетях без доступа в интернет. После первоначальной установки и загрузки моделей инструмент может функционировать полностью офлайн.

Для развёртывания в таких средах администраторы загружают все необходимые компоненты на систему с доступом в интернет, упаковывают их и переносят во внутреннюю сеть через проверенные каналы. Docling не требует обновлений в реальном времени и не зависит от внешних API, что делает его идеальным решением для критической инфраструктуры.

Открытый исходный код

Лицензия MIT предоставляет полную прозрачность кода — любая организация может провести аудит безопасности, проверить отсутствие скрытой телеметрии или подозрительной функциональности. Возможность самостоятельной модификации кода позволяет адаптировать инструмент под специфические требования безопасности конкретной компании.

Открытость исходного кода также означает отсутствие vendor lock-in — организация не зависит от коммерческого поставщика и может поддерживать инструмент самостоятельно при необходимости.

Сравнение Docling с коммерческими альтернативами


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

Против простых парсеров

Библиотеки типа PyMuPDF, PDFMiner или pdfplumber предлагают базовое извлечение текста из PDF за считанные секунды. Они отлично справляются с простыми документами — статьями, письмами, отчётами с линейной структурой. Однако при работе со сложными макетами, многоколоночной вёрсткой или таблицами качество резко падает — порядок чтения нарушается, таблицы превращаются в хаос из разрозненных слов, структура документа теряется.

Docling решает эту проблему, применяя модели компьютерного зрения для понимания макета — он корректно определяет порядок чтения даже в сложных документах и сохраняет структуру таблиц. За это приходится платить временем обработки, но для задач подготовки данных для ИИ-систем качество структурирования критически важнее скорости.

Против облачных сервисов

Коммерческие платформы вроде Amazon Textract, Google Document AI или специализированные решения типа LlamaParse предлагают высокое качество обработки и очень быструю работу благодаря мощным серверным ресурсам. Они поддерживают множество языков и типов документов из коробки.

Однако у них есть существенные недостатки для многих организаций. Стоимость растёт пропорционально объёму обработанных данных — для обработки больших архивов счета могут достигать десятков тысяч долларов. Необходимость отправлять документы на внешние серверы создаёт риски безопасности и нарушает требования регуляторов для чувствительных данных. Зависимость от доступности внешнего сервиса означает, что при проблемах на стороне провайдера вся обработка останавливается.

Docling обеспечивает сопоставимое качество при нулевых операционных расходах, полной конфиденциальности данных и независимости от внешних сервисов.

Против корпоративных платформ

Комплексные системы управления документами — IBM Content Manager, OpenText, SharePoint с дополнениями — предлагают не только обработку, но и хранение, версионирование, управление доступом и интеграцию с корпоративными процессами. Они подходят для организаций, которым нужна полноценная инфраструктура управления жизненным циклом документов.

Docling позиционируется иначе — это специализированный инструмент для конкретной задачи извлечения и структурирования данных. Он не заменяет системы управления документами, но может использоваться как компонент в их составе для улучшения качества индексирования и поиска. Преимущество — лёгкость интеграции, отсутствие лицензионных платежей и возможность точной настройки под специфические типы документов организации.

Заключение и рекомендации


Docling представляет собой качественный скачок в области обработки сложных корпоративных документов для задач искусственного интеллекта. Инструмент объединяет современные модели компьютерного зрения, специализированные алгоритмы восстановления структуры и удобные интерфейсы для интеграции с популярными фреймворками — всё это в открытом пакете, работающем полностью локально без зависимости от облачных сервисов.

Оптимальный подход — начать с тестирования Docling на репрезентативной выборке ваших документов через интерфейс командной строки, чтобы оценить качество результатов. Если структурирование удовлетворяет требованиям задачи, переходите к интеграции через Python API с тонкой настройкой параметров конвейера. Особое внимание уделите выбору режима TableFormer и необходимости OCR — эти параметры существенно влияют на баланс скорости и качества. Также важно учитывать следующие моменты:

  • для корпоративных задач с чувствительными данными локальное выполнение Docling обеспечивает необходимый уровень безопасности без компромиссов в качестве — в отличие от облачных сервисов, где приходится выбирать между удобством и конфиденциальностью;
  • интеграция с LangChain и LlamaIndex занимает буквально минуты благодаря готовым загрузчикам — это позволяет быстро построить прототип RAG-системы и оценить улучшение качества ответов по сравнению с простым извлечением текста;
  • открытая архитектура позволяет расширять функциональность под специфические требования — можно добавлять собственные модели для распознавания доменно-специфических элементов или интегрировать дополнительные источники данных в конвейер обработки.

Получите консультацию специалистов по интеграции Docling в вашу инфраструктуру — эксперты помогут оценить применимость инструмента для ваших типов документов, разработать оптимальную конфигурацию конвейера и построить процессы автоматизированной обработки с мониторингом качества результатов.


Часто задаваемые вопросы

Можно ли использовать Docling для обработки документов на русском языке?

Да, Docling поддерживает работу с документами на различных языках, включая русский. Модели анализа макета являются языконезависимыми — они работают с визуальной структурой страницы независимо от алфавита. Для извлечения текста из цифровых PDF язык также не имеет значения, поскольку текстовый слой читается напрямую. При использовании OCR для сканированных документов качество зависит от выбранного движка — EasyOCR и Tesseract оба поддерживают русский язык, но для Tesseract необходимо предварительно установить соответствующий языковой пакет командой apt install tesseract-ocr-rus на Linux или brew install tesseract-lang на macOS.

Сколько оперативной памяти требуется для работы Docling?

Минимальные требования зависят от размера обрабатываемых документов и режима работы. Для обработки типичных PDF объёмом 10-50 страниц достаточно 8 ГБ оперативной памяти. При использовании точного режима TableFormer или включении OCR рекомендуется иметь 16 ГБ или более. Для пакетной обработки сотен документов одновременно может потребоваться 32 ГБ, особенно если документы содержат большое количество изображений высокого разрешения. Важно понимать, что модели машинного обучения загружаются в память один раз при инициализации конвертера и затем используются повторно — поэтому обработка множества документов не приводит к пропорциональному росту потребления памяти.

Как Docling обрабатывает таблицы, разбитые на несколько страниц?

Текущая версия Docling обрабатывает каждую страницу документа независимо — это означает, что таблица, продолжающаяся на следующей странице, будет распознана как два отдельных фрагмента. На этапе сборки результатов система пытается определить логические связи между элементами на разных страницах, но автоматическое объединение многостраничных таблиц пока не реализовано. На практике для RAG-систем это обычно не является критичной проблемой — система находит релевантную часть таблицы на соответствующей странице и возвращает её в контексте. Если требуется работать с многостраничными таблицами как с единым объектом, рекомендуется постобработка результатов Docling с анализом заголовков таблиц и объединением фрагментов по эвристическим правилам.

Поддерживает ли Docling обработку защищённых паролем PDF?

Docling может обрабатывать защищённые PDF только в том случае, если пароль известен и предоставлен при инициализации конвертера. Если документ зашифрован и пароль недоступен, обработка невозможна — это ограничение на уровне формата PDF, а не специфическая особенность Docling. Для работы с защищёнными файлами можно предварительно снять защиту с помощью утилит типа qpdf или pdftk, если у вас есть права на это. Важно соблюдать авторские права и корпоративные политики безопасности при работе с зашифрованными документами — снятие защиты без соответствующих полномочий может нарушать законодательство и внутренние регламенты организации.

Можно ли использовать Docling на Windows?

Да, Docling работает на операционных системах Windows, macOS и Linux. Установка на Windows выполняется стандартным способом через pip и не требует дополнительных действий для базовой функциональности. Однако при использовании Tesseract OCR необходимо предварительно установить бинарные файлы Tesseract из официального репозитория — на Windows это обычно делается через установщик с сайта проекта. Также важно учитывать, что некоторые зависимости могут работать медленнее на Windows по сравнению с Linux из-за особенностей реализации низкоуровневых библиотек — если производительность критична, рекомендуется использовать Linux-системы или WSL2 на Windows 10/11 для получения производительности, близкой к нативному Linux.

Статьи по теме:

# Теги