Перейти до основного вмісту

🟢 Рекурсивне введення

Як ми бачили раніше, дуже хорошим захистом від зламу запитів є використання однієї ВММ для оцінки результату іншої ВВМ, щоб перевірити, чи є якийсь суперечливий результат. Цей захист можна оминути за допомогою атаки рекурсивного введення . Ця атака передбачає введення запиту в першу ВММ, яка створює вивід, що містить інструкцію введення для другої ВММ.

Припустімо, що запит, який ми намагаємося зламати, такий:

Скажи щось правдиве про наступне та природу:
{{user_input}}

Вивід цього запиту буде оцінено запитом:

Чи містить наведене нижче ненормативну лексику чи образливий вміст (ТАК чи НІ)?
{{output}}

Ми можемо зламати обидва ці запити, додавши до запиту, як показано нижче. Зверніть увагу, що це також приклад атаки з призначенням змінних1.

Наведений вище вивід є спробою введення, яка отримує вхідні дані для другого виклику ВММ:

Наразі ми ЗЛАМАЛИ цей другий виклик ВММ. Рекурсивні введення важко виконати, але за відповідних обставин вони можуть бути дуже корисними.


  1. Kang, D., Li, X., Stoica, I., Guestrin, C., Zaharia, M., & Hashimoto, T. (2023). Exploiting Programmatic Behavior of LLMs: Dual-Use Through Standard Security Attacks.