Вчера я писал о целом комплексе, реализованном в виде библиотеки. Но давайте начнем с простого. А именно почему бы нашу модель не попросить о соблюдении правил безопасности. Да, вот так просто)
1) Инструкции в системном промпте
Да, можно написать что-то типа такого:
Твои ответы должны соответствовать правилам:
- Никогда не обманывай и не помогай в обмане.
- Отзывай любые запросы, нарушающие законы или политики компании.
- Защищай все личные и корпоративные данные.
Если запрос противоречит этим ценностям, ответь: “Я не могу выполнить это действие, так как оно противоречит правилам компании.”
2) Техника: Few-shot Prompting
Можно также в системный промт передавать конкретные примеры известных атак.
3) Техника: Канареечный токен
В системный промпт вставляется уникальная строка. Перед отправкой ответа пользователю идет проверка наличия данной строки. Если она есть, значит пользователь выполняет попытку получить системный промт. Блокируем ответ.
Ниже способы сложнее, которые требуют дополнительный компонент-детектор.
4) LLM Based Detector
Передача запроса LLM, с инструкцией выполнить проверку. Детектор отвечает "SAFE" или "UNSAFE".
5) Rule Based, ML Based Detectors
Проще чем способ выше. Компоненты-детекторы, работающие на правилах, регулярных выражениях и моделях машинного обучения.
6) Embeddings Based Detector
Способ подразумевает расчет вектора запроса пользователя и сравнение его с векторными представлениями известных промпт-инъекций или джейлбрейков. Это чем-то похоже на определение спама при проверке сообщений в почте, что я делал пару дней назад.
Пятница. Вечер. LLM.