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

Подробное руководство по Docling

Docling — это новый, открытый исходный код (open-source) инструментарий, разработанный IBM Research, предназначенный для эффективного преобразования сложных корпоративных документов (таких как PDF, руководства, презентации и отчеты) в специализированные структурированные данные.

Основная цель Docling — извлечь данные, хранящиеся в этих сложных форматах, и подготовить их для использования в приложениях генеративного ИИ (Gen AI), таких как крупномасштабные языковые модели (LLM) и системы дополненной генерации с извлечением (RAG).

1. Ключевые особенности и преимущества Docling

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

КатегорияОписание и особенностиИсточники
Поддерживаемые форматыDocling может обрабатывать множество форматов, включая PDF, DOCX, PPTX, XLSX, HTML, изображения (PNG, TIFF, JPEG и др.), а также аудио (WAV, MP3) и текстовые дорожки (VTT).
Продвинутый анализ PDFИнструмент превосходит базовое извлечение, понимая макет страницы, порядок чтения, структуру таблиц, код, формулы и классификацию изображений.
Качество выводаDocling преобразует неструктурированные документы в файлы JSON и Markdown, которые легко обрабатываются LLM. Он сохраняет целостность и структуру исходного документа (например, заголовки, списки, таблицы), что имеет решающее значение для качества RAG-систем.
Локальное выполнениеDocling достаточно мал, чтобы работать на стандартном ноутбуке, и может быть запущен полностью локально (local-first). Это критически важно для обработки конфиденциальных данных и использования в средах с ограниченным доступом к сети (air-gapped environments).
ИнтерфейсыПредоставляет интерфейс командной строки (CLI) и Python API.
ЛицензияРаспространяется под разрешительной лицензией MIT (MIT-licensed open-source package).
СкоростьDocling является одним из самых быстрых решений в своем классе. Обход традиционного OCR позволяет сократить количество ошибок и ускорить время получения результата в 30 раз. По бенчмаркам, он обрабатывает одну страницу за 1.26 секунды на архитектуре M3 Max.

2. Архитектура Docling: Как это работает?

Docling построен на модульной, расширяемой архитектуре, включающей конвейеры (Pipelines), бэкэнды парсеров (Parser Backends) и унифицированную модель данных (DoclingDocument).

2.1. Основные компоненты конвейера

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

  1. Бэкэнды парсеров: Начинается с низкоуровневого парсинга файла. Для PDF по умолчанию используется собственный C++ бэкэнд docling-parse (на основе qpdf) для быстрого извлечения текста и векторной графики, хотя также доступен альтернативный бэкэнд, основанный на pypdfium.
  2. Модель анализа макета (Layout Analysis Model): Используется модель компьютерного зрения, обученная распознавать и классифицировать визуальные элементы на странице. Эта модель, являющаяся детектором объектов (object-detector) и основанная на DocLayNet, предсказывает ограничивающие рамки (bounding boxes) для элементов страницы, таких как параграфы, заголовки и изображения.
  3. TableFormer: Вторая ключевая модель, предназначенная для преобразования таблиц на основе изображений в машиночитаемые форматы с распознанными строками и столбцами ячеек. TableFormer способен восстанавливать логическую структуру таблиц, включая сложные случаи с частичными или отсутствующими границами, объединением ячеек (cell spans) и иерархией.
  4. Сборка (Assembly): На этом этапе результаты, полученные со всех страниц, агрегируются, корректируется порядок чтения, сопоставляются рисунки с подписями и извлекаются метаданные (заголовок, авторы, язык документа).

2.2. DoclingDocument

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

2.3. OCR и ASR

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

Однако Docling предлагает обширную поддержку OCR для работы с отсканированными PDF и изображениями.

  • Движки OCR: Поддерживается EasyOCR (по умолчанию), Tesseract CLI (интерфейс командной строки) и TesseractOcrOptions (для связывания Tesseract), а также RapidOCR.
  • ASR: Docling также поддерживает аудиофайлы, используя модели автоматического распознавания речи (ASR).

3. Начало работы и использование

Docling можно установить как Python-пакет и использовать через API или CLI.

3.1. Установка

Docling требует Python версии 3.10, 3.11 или 3.12.

Базовая установка (CPU):

pip install docling

Для установки с поддержкой только CPU на Linux рекомендуется использовать:

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

Примечание: Для использования Tesseract OCR, его необходимо предварительно установить как системную зависимость.

3.2. Использование Python API

Для преобразования документов достаточно всего нескольких строк кода:

Простое преобразование в Markdown:

from docling.document_converter import DocumentConverter 

# Укажите путь к PDF-файлу или URL
source = "https://arxiv.org/pdf/2408.09869" 
converter = DocumentConverter() 
result = converter.convert(source) 

# Вывод структурированного Markdown
print(result.document.export_to_markdown())

3.3. Расширенная настройка преобразования

Для управления процессом используются классы DocumentConverter и PdfPipelineOptions.

Настройка OCR и режима TableFormer:

Вы можете включить OCR или выбрать более точный (но медленный) режим TableFormer:

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

pipeline_options = PipelineOptions(
    do_table_structure=True, # Включить распознавание структуры таблиц
    do_ocr=True, # Включить OCR
)

# Использование более точной, но медленной модели TableFormer
pipeline_options.table_structure_options.mode = TableFormerMode.ACCURATE 

doc_converter = DocumentConverter(pipeline_options=pipeline_options)

# Преобразование документа
# ...

.

3.4. Использование Командной строки (CLI)

Docling также предоставляет простой и удобный CLI.

Примеры команд CLI:

  • Конвертация одного файла (по умолчанию в Markdown):
    docling https://arxiv.org/pdf/2206.01062
  • Конвертация в JSON и Markdown без OCR:
    docling myfile.pdf --to json --to md --no-ocr
  • Пакетная конвертация файлов в папке:
    docling ./input/dir --from pdf --from docx --to md --to json --output ./scratch

4. Применение в AI-рабочих процессах

Docling разработан специально для подготовки данных для Gen AI.

4.1. Интеграция с RAG

Docling легко интегрируется с ведущими фреймворками LLM, такими как LangChain и LlamaIndex.

  • DoclingLoader (для LangChain): Предоставляет возможность использовать Docling для загрузки документов, облегчая сложные рабочие процессы.
  • DoclingReader и DoclingNodeParser (для LlamaIndex): Позволяет загружать документы и интеллектуально разделять структурированный JSON DoclingDocument на отдельные узлы (nodes) для текста, таблиц и других элементов, что обеспечивает более точный поиск, чем стандартное разделение текста.
  • Многомодальный RAG (Multimodal RAG): Docling используется для предварительной обработки документов, извлекая текст, таблицы и изображения. Изображения могут быть обработаны мультимодальной LLM (MLLM), такой как Granite vision, для генерации описаний, которые затем векторизуются вместе с текстовыми блоками и таблицами для использования в RAG-системе.

4.2. Чанкинг (Chunking)

Docling включает функции, такие как HybridChunker и HierarchicalChunker, которые разделяют документ с учетом его иерархии и структуры, создавая семантически связные фрагменты, оптимизированные для векторизации и RAG.

4.3. Извлечение структурированной информации (Beta)

Docling предоставляет возможность извлекать структурированные данные из неструктурированных документов, используя заданную схему данных, представленную в виде словаря (dict) или модели Pydantic.

Пример использования модели Pydantic для извлечения счета:

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

5. Области применения

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

  • Подготовка данных для Fine-Tuning LLM: Используется для извлечения информации из целевых PDF для обучения базовых моделей ИИ (например, InstructLab).
  • Корпоративное управление знаниями (Enterprise Knowledge Management): Структурирование внутренних руководств, политик и технической документации для LLM.
  • Юриспруденция и комплаенс (Legal & Compliance): Анализ юридических документов и договоров.
  • Исследования и научные работы: Извлечение таблиц, цитат и сводок из академических статей.
  • Финансовая отчетность: Обработка ежегодных отчетов и 10-K файлов.

Частые вопросы (FAQ) и ответы по Docling

1. Какие основные модели ИИ использует Docling для анализа документов?

Docling опирается на две ключевые специализированные модели ИИ, разработанные IBM Research:

  • Модель анализа макета (Layout Analysis Model): Детектор объектов, обученный на DocLayNet. Он используется для распознавания элементов страницы, таких как параграфы, заголовки и сноски.
  • TableFormer: Визуальная модель-трансформер, предназначенная для высококачественного распознавания и восстановления структуры таблиц, даже если таблицы основаны на изображениях.

2. В чем главное преимущество Docling перед традиционным OCR?

Docling старается обходить традиционное оптическое распознавание символов (OCR), когда это возможно, в пользу моделей компьютерного зрения, обученных распознавать визуальные элементы. Это позволяет уменьшить количество ошибок и увеличить скорость обработки в 30 раз. OCR (например, EasyOCR или Tesseract) используется опционально только для сканированных или нецифровых документов.

3. Насколько Docling быстрый?

Docling демонстрирует умеренную и предсказуемую скорость.

  • По результатам бенчмаркинга, Docling показал скорость 1.26 секунды на страницу на MacBook Pro M3 Max.
  • При пакетной обработке его производительность масштабируется линейно: обработка 1 страницы занимает 6.28 с, а 50 страниц — 65.12 с.

4. Как Docling сравнивается с другими парсерами, такими как PyMuPDF, Unstructured или LlamaParse?

  • Сравнение качества: Многие разработчики отмечают, что качество выходных данных Docling является лучшим среди всех открытых решений. Docling демонстрирует высокую точность извлечения текста (100% для плотных параграфов) и превосходное сохранение структуры таблиц (97.9% точности ячеек в сложных таблицах), что делает его наиболее надежным для сложных бизнес-документов.
  • Сравнение скорости: Docling часто медленнее, чем PyMuPDF (PyMuPDF может быть в 50 раз быстрее, например, 8 секунд против 8 минут для одной задачи), но Docling предлагает лучшее качество извлечения и категоризацию для структурированного вывода. LlamaParse очень быстр (около 6 секунд независимо от размера документа), но Docling превосходит его в точности и структурной целостности для сложных документов.

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

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

6. Какие форматы вывода поддерживаются?

Docling поддерживает несколько форматов вывода, включая Markdown, HTML, DocTags и JSON без потерь (lossless JSON). JSON-вывод включает богатую метаинформацию и структуру документа.

7. Какие функции планируются к добавлению в будущем?

Исследователи планируют расширить возможности Docling для обработки более сложных типов данных:

  • Математические уравнения и формулы.
  • Графики и диаграммы (Barchart, Piechart, LinePlot и т.д.).
  • Код (распознавание блоков кода).
  • Сложные химические структуры (Molecular structures).
  • Извлечение метаданных, таких как название, авторы, ссылки и язык.

8. Является ли Docling полностью открытым исходным кодом, и может ли он использоваться офлайн?

Да, Docling распространяется под лицензией MIT и спроектирован для полного локального исполнения (run entirely locally), что позволяет использовать его офлайн в частных и безопасных средах, не отправляя конфиденциальные документы сторонним облачным API.

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