Хватит строить RAG-пайплайны таким образом... Используйте MarkItDown

BBetter Stack
컴퓨터/소프트웨어AI/미래기술

Transcript

00:00:00Мы тратим гораздо больше времени на обработку документов, чем на создание самих ИИ-приложений.
00:00:05Мы подключаем кучу библиотек, наконец-то впихиваем PDF в пайплайн, а LLM всё равно выдает ерунду.
00:00:11И не потому, что модель плохая, а потому что плохая разметка.
00:00:14Это MarkItDown.
00:00:16Инструмент от Microsoft, который стал невероятно популярен, набрав более 110 000 звезд на GitHub,
00:00:21и он исправляет весь процесс всего одной строкой кода.
00:00:24Я покажу, как это работает, буквально за пару минут.
00:00:30[Музыка]
00:00:33Итак, по сути, любой ИИ-проект начинается одинаково.
00:00:36Файлы повсюду: документы Word, презентации, таблицы, PDF-скриншоты, может, даже аудиофайлы.
00:00:43А потом начинается та самая крутая часть, которую так любят разработчики.
00:00:46Мы начинаем собирать инструменты в стек.
00:00:49Нам нужен инструмент для PDF, инструмент для Excel, для Word, верно?
00:00:54Все эти библиотеки, которые мы связываем вместе, чтобы построить пайплайн.
00:00:59Сначала кажется, что всё нормально, вроде работает.
00:01:02А потом всё начинает ломаться.
00:01:04Таблицы теряют структуру, заголовки исчезают, а расход токенов взлетает до небес.
00:01:10И теперь RAG-пайплайн просто тянет мусор, а агент выдает неверные ответы.
00:01:16Вместо того чтобы выпускать продукт, мы сидим и дебажим процесс загрузки данных.
00:01:19И что мы этим добиваемся?
00:01:21Только тратим время.
00:01:22Не минуты, а часы каждую неделю.
00:01:25Так что вместо починки модели вам нужно починить входящие данные.
00:01:29Давайте покажу, как это выглядит.
00:01:31Если вам нравятся инструменты для ускорения работы, обязательно подписывайтесь.
00:01:35У нас постоянно выходят новые видео.
00:01:37Ладно, давайте быстренько пробежимся.
00:01:39Всё на Python, так что довольно просто.
00:01:42Сначала я устанавливаю всё через pip в виртуальное окружение.
00:01:45У меня есть PDF-файл, обычный документ.
00:01:48И я могу запустить это прямо в терминале.
00:01:50Я запускаю markitdown для этого PDF и вывожу в MD.
00:01:55Вот и всё.
00:01:56Он автоматически создает файл.
00:01:58Мы можем открыть этот файл, и внутри будет то, чего мы ожидали.
00:02:03Заголовки чистые, таблицы выглядят как таблицы, структура сохранена.
00:02:08И теперь, когда мы пишем код на Python, мы можем делать с ним еще больше.
00:02:13Используя импорты и OpenAI, я создаю клиент, а затем объект markitdown.
00:02:20Я передаю свой API-ключ и модель, которую мы хотим использовать.
00:02:25Когда я запускаю код, вывод генерируется в терминале, всё очень аккуратно.
00:02:29И что еще круче — можно обработать PNG-изображение.
00:02:33Для примера я взял график от NVIDIA.
00:02:35Вот изображение с данными на нём.
00:02:39Теперь я могу конвертировать этот график в markdown.
00:02:42Пусть markitdown сделает свою работу, просто используя функцию convert.
00:02:47В этот раз мы передаем ему наше изображение, наш PNG.
00:02:50И теперь мы получаем описание того, что изображено на графике, которое можно использовать для RAG.
00:02:56Это огромный плюс, так как позволяет быстрее извлекать нужные данные прямо в коде,
00:03:01не переключаясь между кучей разных вкладок.
00:03:05Так что же такое MarkItDown на самом деле?
00:03:07Это Python-инструмент с открытым исходным кодом от Microsoft Research.
00:03:11Он распространяется по лицензии MIT и создан специально для LLM-воркфлоу.
00:03:16Его задача — брать «грязные» файлы и превращать их в чистый markdown.
00:03:19Чтобы модели могли их нормально понимать.
00:03:22Он поддерживает гораздо больше форматов, чем можно ожидать.
00:03:25Word, PowerPoint, Excel, PDF, аудио, изображения, ссылки — да что угодно.
00:03:32Теперь у него есть даже сервер MCP, так что можно подключать его прямо к Claude Desktop или собственным агентам.
00:03:40Плюс плагины.
00:03:41Так что вместо создания сложных пайплайнов для приема данных, мы просто вызываем один инструмент.
00:03:47Разработчики мучились не с моделями, а с входными данными.
00:03:51А ожидания были такими: «ну, просто используй модели получше».
00:03:55Но реальность такова: лучше входные данные — лучше результат на выходе.
00:04:00Так что вместо написания скриптов, которые постоянно ломаются, люди используют один инструмент для всего — MarkItDown.
00:04:06RAG-пайплайны, агенты, датасеты для дообучения, базы знаний, анализ документов — всё, чем мы и так занимаемся.
00:04:13И важная деталь, которую многие упускают: он создает структурированный markdown, экономящий токены.
00:04:20В итоге меньше шума, а мы получаем лучшие ответы, более качественный результат.
00:04:24Но это не значит, что он идеален.
00:04:26Давайте сравним его с тем, что вы, вероятно, уже используете.
00:04:31У нас есть инструмент Pandoc, так что логично ожидать, что он победит, да?
00:04:36Но он решает другие задачи, нежели MarkItDown.
00:04:40Pandoc предназначен для людей: публикации, форматирование, LaTeX.
00:04:44MarkItDown предназначен для машин: LLM, пайплайны, автоматизация.
00:04:48Идея похожая, но цели разные.
00:04:51Еще есть инструменты типа Unstructured или Docling.
00:04:55Они отличные, но очень тяжеловесные.
00:04:58Они используют модели машинного обучения, требуют больше настройки и лучше подходят для очень сложных документов.
00:05:03MarkItDown предлагает противоположный подход.
00:05:05Минимум настроек, очень просто, быстрый результат, и этого достаточно для большинства файлов.
00:05:11Так что вот реальный выбор.
00:05:12Вам нужно идеальное извлечение данных или что-то, что работает быстро и надежно?
00:05:18Для большинства из нас скорость важнее.
00:05:20Конечно, есть минусы: сложные PDF всё равно могут его «сломать».
00:05:24Особенно плотные таблицы или странная верстка.
00:05:27Если вы каждый день работаете со сложными документами, инструменты вроде Docling или Unstructured справятся намного лучше.
00:05:32Но для описания изображений вам всё равно придется подключить LLM.
00:05:36Так что он не идеален, но это классный инструмент, который решает реальную проблему.
00:05:41Стоит ли его использовать?
00:05:43Да, для большинства — определенно.
00:05:45Если вы сейчас строите ИИ-приложения, то, скорее всего, именно так должен выглядеть ваш слой приема данных.
00:05:50Попробуйте MarkItDown.
00:05:52Просто протестируйте, если нужны чистые данные для RAG или агентов.
00:05:56Если у вас смешанные типы файлов.
00:05:58Для таких задач он очень хорош.
00:05:59И вы не хотите поддерживать кучу хрупких скриптов, которые постоянно ломаются.
00:06:03Пропустите его или комбинируйте с другими инструментами, если работаете с крайне сложными PDF каждый день.
00:06:08Есть и другие решения.
00:06:09Если вам нравятся инструменты с открытым исходным кодом и советы по программированию, подписывайтесь на канал Better Stack.
00:06:15Увидимся в следующем видео.

Key Takeaway

Использование MarkItDown для подготовки данных позволяет заменить хрупкие и сложные пайплайны на одну строку кода, создающую качественный структурированный Markdown для эффективной работы LLM и RAG-систем.

Highlights

MarkItDown от Microsoft Research преобразует неструктурированные файлы, такие как PDF, Word, Excel и изображения, в чистый формат Markdown.

Инструмент получил более 110 000 звезд на GitHub благодаря возможности упростить процесс загрузки данных одной строкой кода.

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

Структурированный формат Markdown, создаваемый MarkItDown, снижает расход токенов при работе с большими языковыми моделями.

MarkItDown ориентирован на автоматизацию для машин и LLM, в отличие от Pandoc, который предназначен для верстки документов для людей.

Инструмент поддерживает работу с форматами Word, PowerPoint, Excel, PDF, аудио и изображениями, а также имеет сервер MCP для интеграции с Claude Desktop.

Timeline

Проблемы современных RAG-пайплайнов

  • Некорректная разметка документов является основной причиной низкого качества ответов LLM в RAG-системах.
  • Сборка стека из множества библиотек для разных форматов приводит к потере структуры таблиц и заголовков, а также к неоправданному расходу токенов.

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

Возможности и использование MarkItDown

  • Установка MarkItDown происходит через pip, после чего конвертация файла выполняется одной строкой кода.
  • Инструмент автоматически сохраняет структуру документов, включая заголовки и таблицы при создании Markdown-файлов.
  • Конвертация PNG-изображений графиков в текстовое описание данных происходит через функцию convert, что ускоряет извлечение информации.

MarkItDown предоставляет простое Python-решение для обработки разнообразных входящих данных. При передаче API-ключа и модели через объект markitdown вывод генерируется аккуратно и предсказуемо. Это позволяет интегрировать извлечение данных прямо в код без лишних переключений между вкладками.

Техническое позиционирование инструмента

  • MarkItDown выпущен под лицензией MIT и разработан Microsoft Research специально для нужд LLM-воркфлоу.
  • Инструмент поддерживает интеграцию с Claude Desktop через MCP-сервер и позволяет подключать плагины.
  • Для простых задач MarkItDown эффективнее тяжеловесных решений вроде Unstructured или Docling из-за минимальных требований к настройке.

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

Community Posts

View all posts