Слайды за пятнадцать минут
Кажется, никто не любит собирать слайды. Я точно не люблю. Это всегда выглядит примерно одинаково: содержание готово, выводы есть, данные собраны — и тут нужно всё это перенести в PowerPoint, выровнять, подобрать шрифт, сдвинуть таблицу на три пикселя влево. Час уходит не на мысли, а на вёрстку.
Какое-то время я пытался обойти это через vibe-coding — накидывал презентацию на vanilla HTML, CSS, немного JS для переходов. Работало, выглядело неплохо. Но каждый раз это был новый файл с нуля, стили ехали, таблицы верстались руками, и к третьей презентации стало понятно, что это тупик.
Я хотел другого: один исходный документ — и на выходе готовая презентация. Без вёрстки, без позиционирования, без того чтобы думать о шрифтах. Просто содержание — и результат.
Так я нашёл Marp.
Marp собирает PDF прямо из markdown-файла. И здесь есть кое-что важное: сегодня почти у всех базы знаний уже в Markdown — документация, внутренние вики, отчёты. Языковые модели тоже отдают результат в нём по умолчанию. А ещё они знают синтаксис Marp — можно попросить модель собрать структуру презентации и сразу получить готовый файл, который компилируется без правок. Это меняет процесс: ты работаешь с содержанием, а не с формой.
Момент, когда я это оценил по-настоящему, был такой. Мы заканчивали пилотный проект с клиентом — RAG-ассистент, январь 2026, результаты собраны, выводы есть. Всё уже было в markdown. Отчёт, таблицы, куски конфигов. Переносить это в PowerPoint руками — потерять час на форматирование того, что уже написано.
Вместо этого я собрал вот такой файл:
---
marp: true
theme: default
paginate: true
footer: 'RAG Pilot · Январь 2026'
---
# RAG-ассистент: результаты пилотного проекта
Команда · Январь 2026
---
## Что тестировали
- Корпус: 12 000 внутренних документов
- Период: 3 недели, 500 реальных запросов от сотрудников
- Модель: Qwen3 A3B 30B + векторный поиск по chunks размером 512 токенов
- Оценка: ручная разметка 500 ответов по трём критериям
---
## Метрики качества
| Метрика | Результат |
|--------------------------|-----------|
| Точность ответов | 71% |
| Полнота (recall) | 68% |
| TTFT (медиана) | 4.8с |
| Покрытие базы знаний | 83% |
| Доля отказов («не знаю») | 14% |
---
## Где теряем точность
- Редкие доменные термины — модель не знает внутреннего сленга
- Документы старше 2022 года — устаревшие данные в корпусе
- Составные вопросы с несколькими условиями — retrieval вытаскивает не тот chunk
---
## Рекомендации
- Расширить корпус в двух категориях: HR-политики и технические регламенты
- Добавить re-ranking на топ-5 чанков перед генерацией
- Запустить A/B на размере chunk: 512 vs 256 токенов
---
## Вывод
Ассистент работает на реальных запросах, но требует доработки корпуса.
Основные потери — решаемы итерацией retrieval-пайплайна.
Рекомендуем продолжать.
Клиент получил PDF через полчаса после того, как я мог бы открыть PowerPoint.
Собрать PDF — одна команда:
npx @marp-team/marp-cli presentation.md -o presentation.pdf --no-stdin
Node.js нужен, Marp глобально ставить не надо — npx подтянет сам. Поставить Node.js просто:
macOS:
brew install node
Windows:
winget install OpenJS.NodeJS
Debian/Ubuntu:
sudo apt install nodejs npm
Если у вас более экзотический Linux-билд — вы и сами знаете, что делать.
Под капотом используется Chrome для рендеринга, поэтому при первом запуске чуть подождёт. Если на слайдах есть картинки с диска — добавь --allow-local-files, иначе не подхватит.
Презентация живёт в гите как обычный файл. В PR виден дифф, можно ревьюить как код. Никаких бинарников, никакого «пришли последнюю версию».
Есть расширение для VS Code и Cursor — Marp for VS Code. Ставишь — рядом с редактором появляется превью в реальном времени. Удобно, если хочешь видеть результат без сборки.
Для сложных корпоративных презентаций с брендингом и анимациями — не сюда. Но если нужно быстро и по делу — Marp закрывает задачу раньше, чем PowerPoint успевает загрузиться.