Перейти к основному содержимому

Основы

Что такое инъекция промпта?

Языковая модель не может надёжно отличить ваши инструкции от инструкций, спрятанных в контенте, который она читает, — веб-странице, документе, результате инструмента. Что такое инъекция промпта на самом деле, почему более умная модель не решает это полностью, и что ограничивает ущерб, когда это происходит.

Все разборы · Последняя проверка:

Две формы: прямая и непрямая

Прямая инъекция — это когда кто-то вводит инструкции прямо в чат, пытаясь обойти предусмотренное поведение системы: просит модель проигнорировать её инструкции, раскрыть скрытую конфигурацию или действовать за пределами предусмотренной области. Непрямая инъекция — форма с более серьёзными последствиями: инструкции, заложенные в контент, который модель читает от вашего имени, — веб-страница, письмо, файл, ответ API, — который никогда не должен был восприниматься моделью как команды, но который она не может надёжно от них отличить.

Почему более умная модель не решает это сама по себе

Проблема не в том, что моделям не хватает интеллекта, — она архитектурная. Всё, что видит модель, будь то ваш запрос или текст, полученный из ненадёжного источника, становится одним и тем же типом последовательности токенов, попав в окно контекста. Не существует отдельного, защищённого от подмены канала для «доверенных инструкций» в противовес «контенту для чтения». Более способная модель может лучше распознавать типичные формулировки инъекции, но достаточно замаскированная инструкция — разбитая по тексту, сформулированная косвенно, спрятанная в форматировании — всё равно может проскользнуть, потому что базовая архитектура не имеет жёсткой границы для соблюдения.

Риск резко возрастает, как только модель может вызывать инструменты

Чат-бот, который только генерирует текст, ограничивает инъекцию плохим или вводящим в заблуждение выводом — раздражающим, но локализованным. Как только модель может вызывать инструменты (см. как работает вызов инструментов) — отправлять письмо, выполнять команду, изменять файл, — успешная инъекция может превратиться в нежелательное реальное действие, а не просто плохое предложение. Именно поэтому системы, сочетающие просмотр веба или чтение документов с доступом к инструментам, несут заметно больший риск инъекции, чем обычный чат-бот.

Фильтрация и ограничение области снижают риск; ни то ни другое его не устраняет

Сканирование полученного контента на известные шаблоны инъекции улавливает некоторые попытки, но любой фиксированный список шаблонов можно обойти, сформулировав инструкцию иначе, — это фильтр, а не гарантия. Что надёжнее снижает реальный ущерб, так это ограничение того, что модели разрешено делать, независимо от того, что ей сказали: узко очерченный доступ к инструментам, обязательное подтверждение перед разрушительным или обращённым вовне действием, и никогда не предоставлять модели постоянные права шире конкретной стоящей перед ней задачи.

Контент, который читает модель, — ненадёжный ввод, а не нейтральный источник фактов

Любая система, позволяющая модели читать внешний контент — результат поиска, спарсенную страницу, документ, загруженный пользователем, — подвергает её инструкциям, которых никто не запрашивал. Практический вывод — обращаться с этим контентом так же, как с непроверенным пользовательским вводом в любом другом программном обеспечении: предполагать, что он может содержать что-то враждебное, и проектировать окружающую систему так, чтобы успешная инъекция имела ограниченный охват, вместо того чтобы предполагать, что инъекции не произойдёт.

Частые вопросы

Можно ли полностью предотвратить инъекцию промпта?
Нет, не с нынешними архитектурами моделей. Не существует встроенного, защищённого от подмены разделения между инструкциями пользователя и текстом, который модель читает откуда-то ещё, поэтому фильтрация и ограничение области снижают риск и ограничивают ущерб, но не могут гарантировать предотвращение.
Инъекция промпта — это то же самое, что джейлбрейк?
Они пересекаются, но не идентичны. Джейлбрейк обычно означает, что пользователь напрямую пытается заставить модель обойти собственные правила. Инъекция промпта чаще относится к инструкциям, спрятанным в контенте, который модель читает от имени пользователя, без его ведома.
Имеет ли значение инъекция промпта для чат-бота, который не может использовать инструменты?
Риск меньше — успешная инъекция может дать вводящий в заблуждение или манипулированный ответ, но не может совершить действие за пределами генерации текста. Риск существенно возрастает, как только модель может вызывать инструменты, делающие что-то за пределами разговора.
Достаточно ли сканирования контента на шаблоны инъекции для защиты?
Это улавливает известные, распознаваемые попытки, но любой фиксированный список шаблонов можно обойти переформулировкой. Настоящая защита также исходит из ограничения того, что модели разрешено делать, — узкий охват инструментов и обязательное подтверждение для значимых действий, — а не только из обнаружения.

Лучше попробовать, чем читать

Сервис исследований ClawAI сканирует полученный веб-контент на известные шаблоны инъекции промпта и скрывает похожие на секреты токены, прежде чем этот контент достигнет модели, — регистрируя обнаруженное, а не блокируя молча, поскольку ни один фиксированный список шаблонов не может уловить каждую попытку. Этот слой обнаружения — лишь часть защиты, которая также зависит от ограничения того, какие инструменты модель вообще может вызывать.