Узнайте, как предотвратить быстрые инъекции, используя нашу новую модель и набор данных с открытым исходным кодом.

ChatGPT потрясающий, HuggingChat потрясающий, Alpaca потрясающий. Однако если вы хотите использовать эти модели в приложении,например, для службы поддержки клиентов, вы можете столкнуться с новой проблемой, о которой вам следует знать: оперативные инъекции. .

В этом руководстве представлены подходы к выполнению быстрых инъекций. Он также включает краткий обзор первых общедоступных наборов данных о мгновенных инъекциях и одной из первых предварительно обученных моделей обнаружения мгновенных инъекций, доступных на Hugging Face, которые вы можете использовать для борьбы с атаками на вашу систему.

Что такое быстрые инъекции?

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

Оба типа могут представлять серьезную угрозу для организаций или отдельных лиц, пытающихся использовать генеративный ИИ:

  1. Захват цели: системы ИИ, как и любой мощный инструмент, можно использовать не по назначению. Если модель можно обманом заставить создавать вредный или неприемлемый контент, ее можно использовать как оружие против отдельных лиц или сообществ, что приведет к реальному ущербу. Организация, в которой размещается модель, может столкнуться с серьезной негативной реакцией общественности. В крайних случаях они могут даже нарушать законы.
  2. Оперативная утечка. По мере того, как оперативная инженерия превращается в новую дисциплину, компании могут потерять конкурентные преимущества, если их модель непреднамеренно приведет к утечке конфиденциальной информации. В зависимости от архитектуры системы ИИ оперативная утечка также может нарушать нормы и законы о конфиденциальности.

Как мы можем справиться с инъекциями?

Первым шагом к повышению устойчивости к внедрению подсказок является повышение надежности внутренней подсказки, которая добавляется к пользовательскому вводу. Давайте рассмотрим пример из поисковой расширенной системы ответов на вопросы:

Помещая пользовательский ввод в фигурные квадратные скобки, разделяя его дополнительными разделителями и добавляя текст после ввода, система становится более устойчивой к подсказкам. инъекции. Другие потенциальные меры безопасности согласно Perez & Ribeiro (2022) включают установку более низкой температуры и увеличение штрафа за частоту. Кроме того, поскольку сложные внедрения подсказок могут потребовать большого количества текста для предоставления контекста, простое ограничение пользовательского ввода до разумной максимальной длины делает атаки с подсказками намного сложнее.

Однако во многих случаях этих мер может быть недостаточно. Итак, что еще мы можем сделать?

Обнаружим инъекции!

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

Создание набора данных

Чтобы обучить классификатор инъекций, мы сначала собрали новый набор данных из 662 самых разных подсказок, включая 263 инъекции подсказок и 399 законных запросов. В качестве законных запросов мы включили различные вопросы и поиск по ключевым словам. Затем мы разделяем данные на обучающие и тестовые наборы данных.

Во время первого обучения модели у нас было два основных урока, которые помогли нам обогатить набор данных состязательными примерами:

  • Включая переводы. Простое переключение языка ввода подсказок может привести к обходу мер безопасности. Чтобы предотвратить это, мы включили переводы как оперативных инъекций, так и законных запросов. Мы избежали утечки, убедившись, что каждое приглашение и его соответствующий перевод всегда остаются в соответствующем обучающем или тестовом наборе.
  • Включая многоуровневые подсказки. Сначала мы могли обмануть наши первые модели, заставив их думать, что подсказка является законной, объединив в одной подсказке как допустимые подсказки, так и подсказки для внедрения. Это было особенно верно, если законной частью была подсказка, которую модель увидела во время обучения. Следовательно, мы включили враждебные примеры, случайным образом сложив законные и инъекционные подсказки в обучающем и тестовом наборе соответственно.

Набор данных доступен на Hugging Face: https://huggingface.co/datasets/deepset/prompt-injections

Обучение модели

Мы доработали популярную современную модель DeBERTa base с помощью библиотеки Трансформеры и Google Colab. Полученная модель достигает точности 99,1% на нашем тестовом наборе задержек, терпя неудачу только в одном пограничном случае.

Вы можете найти и примерить модель на Hugging Face: https://huggingface.co/deepset/deberta-v3-base-injection. Это полностью открытый исходный код.

Встраивание модели в систему ИИ

Когда у вас есть классификационная модель, вы можете запустить ее в производство несколькими способами. Например, вы можете использовать эту модель в TransformersQueryClassifier от Haystack в качестве фильтра в системе QA AI:

Заключительные замечания

Несмотря на удивительно убедительную производительность, использование модели в качестве фильтра не гарантирует, что никакие быстрые инъекции не пройдут проверку. Модель следует рассматривать как дополнительный уровень безопасности, а не как полное решение проблемы быстрого внедрения.

Также модель обучается для выбранного типа легитимных подсказок. Если ваш вариант использования требует, чтобы очень разные подсказки считались законными, вы можете просто заменить наши законные подсказки своими и точно настроить модель.

Мы надеемся, что модель и набор данных окажутся столь же ценными для ваших проектов LLM, как и для нашего!