TL;DR
Если попросить модель оценить весь документ на соответствие большому стандарту сразу — она путается и даёт поверхностный, размытый ответ. Вместо этого документ и стандарт нужно разбить на отдельные пункты и гонять их через модель по одному: один пункт правила — один вердикт "соответствует / не соответствует" с объяснением.
Исследователи проверяли, можно ли автоматизировать аудит политик информационной безопасности (например, на соответствие ISO 27002) с помощью небольших LLM без GPU. Оказалось: даже слабые модели неплохо справляются, если не заваливать их всем стандартом целиком, а идти по чек-листу пункт за пунктом. Второй важный вывод — многие модели уже неплохо "знают" популярные стандарты из своего обучения, поэтому не всегда нужно вставлять весь текст стандарта в промпт — можно опереться на её собственные знания и сильно сэкономить место в контексте.
Метод простой: документ дробится на смысловые куски, для каждого требования стандарта модель получает релевантный фрагмент документа и один конкретный пункт правила, и должна вынести один узкий вердикт с обоснованием. Так собирается итоговый отчёт о пробелах — пункт за пунктом, а не одним общим суждением.
Схема метода
ШАГ 1: Разбить документ на смысловые фрагменты (главы, разделы, абзацы)
ШАГ 2: Взять список требований/пунктов стандарта — по одному
ШАГ 3: Для каждого требования найти релевантный фрагмент документа
(можно вручную, можно попросить саму модель найти)
ШАГ 4 (отдельный запрос на каждый пункт):
"Соответствует ли документ этому требованию?" → Да/Нет/Частично + цитата + объяснение
ШАГ 5: Собрать все ответы в единый отчёт о пробелах
Шаги 3-4 выполняются отдельным запросом на каждый пункт стандарта — это не один промпт, а серия однотипных запросов.
Пример применения
Задача: Владелец небольшой компании готовит регламент работы с персональными данными перед проверкой на соответствие 152-ФЗ и хочет заранее найти пробелы, не платя за дорогой аудит.
Промпт (повторяется для каждого требования из чек-листа):
Ты — аудитор по защите персональных данных.
Вот фрагмент внутреннего регламента компании:
{фрагмент_документа}
Вот конкретное требование закона/стандарта:
{текст_требования}
Оцени только это требование:
1. Документ соответствует ему полностью, частично или не соответствует?
2. Процитируй фрагмент документа, на основании которого сделан вывод.
3. Если не соответствует — укажи, какую формулировку нужно добавить в регламент.
Отвечай только по этому пункту, не смешивай с другими требованиями.
Результат: По каждому пункту закона — короткий вердикт (соответствует/частично/нет), цитата из документа и конкретная рекомендация, что дописать. Если прогнать так весь чек-лист требований, в конце получится таблица-отчёт: какие пункты закрыты, какие нет и что именно исправить.
Почему это работает
Модель плохо держит в голове много критериев одновременно. Если дать ей весь стандарт (десятки пунктов) и весь документ разом, она невольно обобщает: где-то смешивает требования, где-то теряет детали, где-то просто отвечает поверхностно "в целом соответствует".
Зато модель отлично справляется с узкой, однозначной задачей: сравнить один конкретный текст с одним конкретным правилом и дать бинарный ответ с обоснованием. Это простая операция сопоставления, а не жонглирование десятками условий сразу.
Метод превращает одну большую нечёткую задачу в много маленьких чётких вопросов. У модели просто не остаётся пространства для "размывания" — на каждом шаге она видит только один пункт и один кусок текста.
Рычаги управления: - Формат вывода — можно расширить: попросить не просто "да/нет", а оценку риска (низкий/средний/критичный) для каждого пробела - Опора на знания модели vs вставка текста стандарта — если стандарт популярный (ISO 27001, GDPR, 152-ФЗ), можно не копировать его текст полностью, а просто назвать пункт — модель часто помнит формулировку сама. Экономит место в разговоре - Гранулярность разбивки — чем короче кусок правила, тем точнее вердикт, но тем больше запросов придётся сделать
🚀 Быстрый старт — вставь в чат:
Вот шаблон поточечной проверки документа на соответствие стандарту. Адаптируй под мою задачу: {твоя задача — например, проверка регламента компании на соответствие 152-ФЗ}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит, какой у тебя документ и какой стандарт/чек-лист использовать — потому что без этого не получится разбить проверку на отдельные пункты.
Ограничения
⚠️ Только документальное покрытие: метод проверяет, есть ли в тексте документа упоминание нужной меры — но не проверяет, реально ли эта мера работает на практике. Это подтверждают и сами авторы: их "соответствие" означает только "написано в документе", не "внедрено и работает".
⚠️ Зависит от точности нарезки: если релевантный кусок документа не попал в промпт для конкретного требования, модель ошибочно скажет "не соответствует", хотя нужный текст просто есть в другом месте документа.
⚠️ Много запросов: для стандарта с десятками пунктов (в исследовании — 93 контроля ISO 27002) нужно столько же отдельных проверок. Это медленно и расходует много сообщений в диалоге.
⚠️ Не для творческих или субъективных оценок: метод хорош там, где есть чёткий чек-лист с формальными критериями. Для более размытых задач (оценить "качество" или "стиль" документа) поточечная проверка не даёт выигрыша.
Ресурсы
ReCon: A Resource-Constrained Benchmark for LLM-Based Cybersecurity Compliance Across Ingestion and Retrieval Pipelines — Rohit Negi, Rishik Jain, Soumyo V Chakarborty, Amit Negi, Sandeep K Shukla (IIT Kanpur, IIIT Hyderabad). Стандарт: ISO/IEC 27002:2022. Инструменты в исследовании: Ollama, ChromaDB, tiktoken.
