Markdown как формат для LLM

Материал из llmdocs — справочник разработчика
Markdown как формат для LLM
Рольформат входа (документы, промпты) и выхода (ответы) LLM
Преимуществамало служебной разметки, явная структура, родной для моделей
КонвертерыMarkItDown, Docling, Pandoc, Jina Reader, Trafilatura
Связанные соглашенияllms.txt, .md-версии страниц, AGENTS.md
АльтернативыXML-теги, JSON, YAML, обычный текст

Markdown как формат для LLM — практика подготовки текстов для языковых моделей в разметке Markdown: документация, базы знаний и веб-страницы конвертируются из HTML, PDF и DOCX в .md, прежде чем попасть в промпт, индекс RAG или инструменты агентов. Модели и сами по умолчанию отвечают в Markdown. Формат стал фактическим стандартом обмена текстом между людьми, программами и LLM; на нём построены соглашение llms.txt и файлы инструкций для агентов.[1]

Почему Markdown

  • Экономия токенов. HTML-страница документации содержит навигацию, скрипты, атрибуты и вложенные div; полезный текст нередко занимает меньше трети. Та же страница в Markdown в несколько раз короче — меньше стоимость, меньше шума, больше места в контекстном окне (см. Токен и токенизация).
  • Сохранение структуры. Заголовки, списки, таблицы, блоки кода и ссылки остаются явными — в отличие от «плоского» текста, извлечённого из PDF.
  • Знакомость модели. В обучающих данных огромное количество Markdown — README, документация, форумы, — и модели хорошо понимают его соглашения.
  • Удобство разбиения. Заголовки задают естественные границы для чанкинга, а путь заголовков даёт чанку контекст.
  • Читаемость человеком. Один и тот же файл годится и для модели, и для ревьюера, и для рендеринга в HTML.

Конвертация

Источник Инструменты Трудности
HTML Trafilatura, Readability, Jina Reader, html2text вырезать навигацию и рекламу, не потерять таблицы и код
PDF Docling, Marker, MinerU колонки, колонтитулы, формулы, таблицы, сканы
DOCX, PPTX, XLSX MarkItDown, Pandoc стили вместо заголовков, вложенные таблицы

MarkItDown от Microsoft и Docling от IBM — популярные открытые конвертеры, разработанные именно для подготовки документов к LLM.[2][3]

pip install 'markitdown[all]'
markitdown report.pdf > report.md

pandoc manual.docx -t gfm -o manual.md      # GitHub-flavored Markdown

Как писать Markdown для моделей

  • Один #-заголовок на документ и последовательная иерархия ##, ### — без пропуска уровней.
  • Информативные заголовки: «Настройка TLS в nginx» лучше, чем «Настройка» — заголовок часто попадает в чанк без окружения.
  • Самодостаточные разделы: избегать «как сказано выше»; раздел может быть найден поиском отдельно.
  • Блоки кода с указанием языка (```python) — модель точнее понимает и воспроизводит код.
  • Таблицы — для коротких фактов; длинные таблицы с десятками колонок модели читают хуже, чем списки «ключ: значение».[6]
  • Ссылки с осмысленным текстом, абсолютные URL — относительные теряют смысл вне сайта.
  • Метаданные во frontmatter (YAML в начале файла): заголовок, дата обновления, версия продукта.
  • Без HTML-вставок там, где можно обойтись разметкой.

Markdown в промптах

В самих промптах Markdown удобен для структуры инструкций — заголовки разделов, нумерованные шаги, примеры в блоках кода (см. Промпт-инжиниринг). Для разделения данных и инструкций многие предпочитают XML-подобные теги (<document>, <example>): их границы однозначны, и они не конфликтуют с Markdown внутри документа.[4] Часто используют комбинацию: документ в Markdown, обёрнутый в тег.

На сайтах документации

Распространённая практика — отдавать каждую страницу также в виде .md по тому же адресу с расширением (/docs/tls → /docs/tls.md), публиковать индекс llms.txt и полный дамп llms-full.txt. Генераторы статических сайтов создают это при сборке, поскольку исходники и так написаны в Markdown. Подробнее — в статье Документация для ИИ: как подготовить.

Ограничения

Markdown не стандартизирован до конца: CommonMark и GitHub-flavored Markdown различаются в таблицах, сносках и расширениях.[5] Сложные документы — формулы, диаграммы, многоуровневые таблицы — теряют часть информации; для них используют LaTeX внутри Markdown, описания картинок или мультимодальные модели, читающие исходные страницы как изображения.

См. также

Источники

  1. llms.txt — proposal
  2. Microsoft — MarkItDown
  3. Docling — документация
  4. Anthropic — Use XML tags to structure your prompts
  5. CommonMark Spec
  6. Sui et al. — Table Meets LLM: Can Large Language Models Understand Structured Table Data? (2024)