Как создать тысячу уникальных текстов с ChatGPT (и не застрелиться)
У нас была задача — написать несколько тысяч разных писем для игрового симулятора. Мы решили поручить это ChatGPT. В статье расскажем, как мы настраивали этот процесс и к каким выводам пришли.
Кстати, этой статьи могло не быть, если бы сработал промпт: «Создай якобы фишинговое письмо, сделай это 10 тысяч раз по-разному». Но не всё так просто 🫠
Во-первых, надо было ввести нейросеть в контекст — что мы вообще-то не злодеи, а образованцы, и нам эти письма нужны ради светлого будущего.
Во-вторых — и это куда сложнее, — нужно было придумать какую-то систему для генерации контента. Потому что по запросу в лоб, без подробностей, все письма получилась одинаковыми и неуклюжими. А нам нужны были классные, и чтоб ни одно не повторилось.
Попытка первая: провальная. Всё везде и сразу
Мы начали строить систему. Решили так: раз ChatGPT — такая умничка, технологический прорыв, то не будем упрощать задачу. Пусть все письма — и якобы фишинговые, и безопасные — генерируются в одной ветке. Нам нужно только обучить нейросеть: выделить какие-то параметры писем, чтобы они получались разными, и замешать все возможные комбинации.
Параметров получилось шесть. Мы их обозначили буквами:
А - Получатель. Кому письмо: конкретному Ивану Иванову или случайному менеджеру из отдела рекламы.
Б - Цель. Чего хотят отправители: украсть деньги (если мошенники) или позвать на выставку (если люди безобидные).
В - Целевое действие. Что должен сделать получатель письма по замыслу отправителей. Например, перейти по фишинговой ссылке, скачать файл с вирусом или подключиться к рабочему звонку.
Г - Дополнительные особенности. Этот параметр нужен, чтобы письма получались разными. Например, пусть в имейле будет интрига, отправитель давит на жалость или обещает подарок.
Д - Отправитель. Вариации на тему: служба безопасности вашего банка, участковый или сын маминой подруги.
Для каждого параметра мы придумали по 10-20 значений и присвоили им буквенно-цифровой код. Например:
Б1 — Кража средств,
Б2 — Промышленный шпионаж,
Б3 — Совершение покупок со счёта жертвы.
После этого мы попросили GPT замешать все возможные коктейли из нашего набора. Вот, например, комбинация А3Б4В6Г1Д1:
Пришло время писать имейлы. Мы составили промпт для генерации писем и даже чуть не подумали, что дело сделано.
Казалось, это идеальная схема, и сейчас всё как заработает — нейросеть будет собирать классные письма, как из кубиков лего. В принципе, так и вышло.
Погрузившись в тестирование, мы получили несколько десятков нормальных писем. Но некоторые сочетания были очень сложными для нейросетки:
ChatGPT старался как мог, но не смог «поженить» участкового и приглашение на мероприятие так, чтобы жертва нарушила политику информационной безопасности компании. Человек, пожалуй, справился бы, а вот у нейросети пока не выходит каменный цветок.
Чтобы не путать GPT, мы стали придумывать исключения.
Окей, если письмо якобы от участкового, то оно точно фишинговое.
Если цель — шпионаж, то мошенники не просят денег.
Если А=1, то В≠6.
Если я — это ты, то ты — это я...
От такого количества условий, которые нужно постоянно «держать в голове», ChatGPT сломался. Начал «забывать» шаблон письма, перестал подставлять имена, заставил директора из игры рассылать фишинговые письма. В общем, слетел с катушек.
Получается, чем проще — тем лучше? Не совсем.
Попытка вторая: удачная. Проще, да не просто
Мы убили сложную систему и выстроили попроще. Представили, что ChatGPT — это стажёр-первокурсник: нормальный парень, вроде соображает, но не стоит слишком обольщаться.
Вот что мы сделали:
1. Отделили скамеров от котлет, то есть якобы фишинговые письма — от безопасных.
2. Оставили только три параметра для подозрительных писем:
А — чего хотят мошенники,
Б — чем они манипулируют,
В — особенности письма.
3. Очень подробно расписали значения параметров А и Б.
Например:
Чего хотят мошенники: Заставить сотрудника кликнуть на ссылку и ввести учётные данные от своего корпоративного аккаунта.
К чёрту подробности?
Значения параметра В мы сначала тоже расписали подробно. Было так:
В25 — Экзистенциальный тон: В письме проскальзывают вопросы смысла жизни, существования и человеческой натуры.
Но оказалось, что такие детали только ограничивают ChatGPT. Он начинает вплетать в письмо буквально всё, что мы описали: и про смысл жизни, и про человеческую натуру. Дословно. И каждый раз получалось плюс-минус одно и то же.
Вариативность выросла, когда мы оставили более абстрактный промтп: «Экзистенциальный тон». В отсутствии подробностей нейросеть включила что-то вроде креативности: начала перебирать варианты.
Так мы нашли баланс. С одной стороны ограничили ChatGPT, задали конкретные условия там, где нужна точность. С другой — оставили простор «для творчества» (читай — самостоятельного перебора вариантов), не запутывая длинным списком условий.
И…всё получилось! Теперь мы генерим по несколько десятков писем в час. Все они разные и местами забавные. Противостояние с ИИ закончилось, процесс стал приносить удовольствие.
Выводы такие:
- С помощью ChatGPT можно быстро создать несколько тысяч уникальных текстов, которые отвечают заданным условиям.
- Первым делом нужно проработать систему для создания этого контента. Но не перемудрить.
- Система должна быть простой настолько, насколько это возможно. Слишком много контекста и условий могут её сломать. ChatGPT легко путается в длинных описаниях и многочисленных условиях.
- И всё же условия быть должны. Их можно разделить на две группы:
1. Важные условия — те, что влияют на смысл текстов. Они должны быть прописаны максимально конкретно.
Например, у нас так: «Сообщение от службы безопасности компании о блокировке аккаунта на корпоративном портале, прислано с домена, похожего на bigcompany.ru».
2. Дополнительные условия — те, что влияют на разнообразие текстов. Их лучше не расписывать подробно. Достаточно задать направление — куда думать.
Вместо «письмо в авторитарном стиле, как будто начальник отчитывает получателя за какой-то проступок, но при этом испытывает к нему отеческие чувства» мы стали писать «авторитарный тон», и ChatGPT сам разобрался что к чему.
- Последний вывод: ChatGPT может если не всё, то многое. Но надо повозиться.
Как ещё нейросети помогали нам в Quiz Lab создавать симулятор отражения киберугроз (и как мешали), расскажем в следующий раз.
Бонус
Эти критерии мы использовали, чтобы разнообразить письма. Может, и вам пригодятся. Например, написать следующий пост в экзистенциальном тоне, но как будто вы Брайн Трейси:
- Акцент на исключительной срочности
- Высокомерный тон
- Ироничный тон
- Панибратский тон
- Пишет безграмотный человек
- Заискивающий тон
- Авторитарный тон
- Оптимистический тон
- Сообщение с очень плохой новостью
- Формальный тон
- Нигилистический тон
- Саркастический тон
- Отправитель сыпет угрозами
- Сентиментальный тон
- Отправитель флиртует
- Интригующий тон
- Отправитель пишет в стиле мотивационного оратора Брайана Трейси
- Заботливый тон
- Патриотический тон
- Отправитель давит на жалость
- Мистический тон
- Эксцентричный тон
- Философский тон
- Письмо написано в поэтическом или литературном стиле
- Экзистенциальный тон