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 | вырезать навигацию и рекламу, не потерять таблицы и код |
| 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, описания картинок или мультимодальные модели, читающие исходные страницы как изображения.