Основы
Что такое инъекция промпта?
Языковая модель не может надёжно отличить ваши инструкции от инструкций, спрятанных в контенте, который она читает, — веб-странице, документе, результате инструмента. Что такое инъекция промпта на самом деле, почему более умная модель не решает это полностью, и что ограничивает ущерб, когда это происходит.
Все разборы · Последняя проверка:
Две формы: прямая и непрямая
Прямая инъекция — это когда кто-то вводит инструкции прямо в чат, пытаясь обойти предусмотренное поведение системы: просит модель проигнорировать её инструкции, раскрыть скрытую конфигурацию или действовать за пределами предусмотренной области. Непрямая инъекция — форма с более серьёзными последствиями: инструкции, заложенные в контент, который модель читает от вашего имени, — веб-страница, письмо, файл, ответ API, — который никогда не должен был восприниматься моделью как команды, но который она не может надёжно от них отличить.
Почему более умная модель не решает это сама по себе
Проблема не в том, что моделям не хватает интеллекта, — она архитектурная. Всё, что видит модель, будь то ваш запрос или текст, полученный из ненадёжного источника, становится одним и тем же типом последовательности токенов, попав в окно контекста. Не существует отдельного, защищённого от подмены канала для «доверенных инструкций» в противовес «контенту для чтения». Более способная модель может лучше распознавать типичные формулировки инъекции, но достаточно замаскированная инструкция — разбитая по тексту, сформулированная косвенно, спрятанная в форматировании — всё равно может проскользнуть, потому что базовая архитектура не имеет жёсткой границы для соблюдения.
Риск резко возрастает, как только модель может вызывать инструменты
Чат-бот, который только генерирует текст, ограничивает инъекцию плохим или вводящим в заблуждение выводом — раздражающим, но локализованным. Как только модель может вызывать инструменты (см. как работает вызов инструментов) — отправлять письмо, выполнять команду, изменять файл, — успешная инъекция может превратиться в нежелательное реальное действие, а не просто плохое предложение. Именно поэтому системы, сочетающие просмотр веба или чтение документов с доступом к инструментам, несут заметно больший риск инъекции, чем обычный чат-бот.
Фильтрация и ограничение области снижают риск; ни то ни другое его не устраняет
Сканирование полученного контента на известные шаблоны инъекции улавливает некоторые попытки, но любой фиксированный список шаблонов можно обойти, сформулировав инструкцию иначе, — это фильтр, а не гарантия. Что надёжнее снижает реальный ущерб, так это ограничение того, что модели разрешено делать, независимо от того, что ей сказали: узко очерченный доступ к инструментам, обязательное подтверждение перед разрушительным или обращённым вовне действием, и никогда не предоставлять модели постоянные права шире конкретной стоящей перед ней задачи.
Контент, который читает модель, — ненадёжный ввод, а не нейтральный источник фактов
Любая система, позволяющая модели читать внешний контент — результат поиска, спарсенную страницу, документ, загруженный пользователем, — подвергает её инструкциям, которых никто не запрашивал. Практический вывод — обращаться с этим контентом так же, как с непроверенным пользовательским вводом в любом другом программном обеспечении: предполагать, что он может содержать что-то враждебное, и проектировать окружающую систему так, чтобы успешная инъекция имела ограниченный охват, вместо того чтобы предполагать, что инъекции не произойдёт.
Частые вопросы
- Можно ли полностью предотвратить инъекцию промпта?
- Нет, не с нынешними архитектурами моделей. Не существует встроенного, защищённого от подмены разделения между инструкциями пользователя и текстом, который модель читает откуда-то ещё, поэтому фильтрация и ограничение области снижают риск и ограничивают ущерб, но не могут гарантировать предотвращение.
- Инъекция промпта — это то же самое, что джейлбрейк?
- Они пересекаются, но не идентичны. Джейлбрейк обычно означает, что пользователь напрямую пытается заставить модель обойти собственные правила. Инъекция промпта чаще относится к инструкциям, спрятанным в контенте, который модель читает от имени пользователя, без его ведома.
- Имеет ли значение инъекция промпта для чат-бота, который не может использовать инструменты?
- Риск меньше — успешная инъекция может дать вводящий в заблуждение или манипулированный ответ, но не может совершить действие за пределами генерации текста. Риск существенно возрастает, как только модель может вызывать инструменты, делающие что-то за пределами разговора.
- Достаточно ли сканирования контента на шаблоны инъекции для защиты?
- Это улавливает известные, распознаваемые попытки, но любой фиксированный список шаблонов можно обойти переформулировкой. Настоящая защита также исходит из ограничения того, что модели разрешено делать, — узкий охват инструментов и обязательное подтверждение для значимых действий, — а не только из обнаружения.
Лучше попробовать, чем читать
Сервис исследований ClawAI сканирует полученный веб-контент на известные шаблоны инъекции промпта и скрывает похожие на секреты токены, прежде чем этот контент достигнет модели, — регистрируя обнаруженное, а не блокируя молча, поскольку ни один фиксированный список шаблонов не может уловить каждую попытку. Этот слой обнаружения — лишь часть защиты, которая также зависит от ограничения того, какие инструменты модель вообще может вызывать.