Шаблони використання LLM - Шаблон персона
Це четверта стаття стаття із серії яка описує шаблони будування запитів до LLM систем. Інші статті в серії
Шаблон персона
Намір і контекст
У багатьох випадках користувачі бажають, щоб результат LLM завжди мав певну точку зору або перспективу. Наприклад, може бути корисно провести перевірку коду так, ніби LLM є експертом з безпеки. Намір цього шаблону полягає в тому, щоб надати LLM «особистість», яка допомагає вибирати які типи результатів генерувати та на яких деталях зосереджуватися.
Мотивація
Користувачі можуть не знати, на яких видах результатів або дрібницях важливо зосередитися LLM для досягнення поставленого завдання. Однак вони можуть знати роль або тип людини, яку вони зазвичай просять допомогти з цими речами. Шаблон Персона дозволяє користувачам висловлювати, з чим їм потрібна допомога, не знаючи подробиць очікуваних результатів.
Структура та ключові ідеї
Основні твердження для контексту:
Дій як персона X
Надайте результати, які створила б персона X
Перше твердження передає ідею про те, що LLM має діяти як конкретна персона та забезпечувати результати, як би це зробила ця персона. Цю персону можна виразити кількома способами, починаючи від опису посади, титулу, вигаданого персонажа, історичного персонажа тощо. Особа має виявляти набір атрибутів, пов’язаних із загальновідомою посадою, типом персони тощо. Майте на увазі, що персони пов’язані з живими людьми або людьми, які вважаються шкідливими, не беруться до уваги через загальні правила конфіденційності та безпеки LLM.
Другорядна ідея — забезпечити результати, які створила б персона X — пропонує можливості для конфігурації. Наприклад, учитель може надати велику різноманітність різних типів результатів, починаючи від завдань до списків для читання або лекцій. Якщо відомий більш конкретна підгруппа типів результата, користувач може вказати це в запиті.
Приклад реалізації
Зразок реалізації для перевірки коду показано нижче:
“Відтепер виконуйте функції аудітор безпеки. Звертайте пильну увагу на деталі безпеки будь-якого коду, який ми переглядаємо. Надайте результати дані щодо коду, які би зробив аудітор безпеки.”
У цьому прикладі LLM отримує вказівку надати результати, які б зробив «аудітор безпеки». Підказка також встановлює сценарій у якому код буде оцінюватися. Нарешті, користувач уточнює персону, звужуючи персону далі, описуючі вихідні дані щодо коду.
Персони також можуть представляти неживі сутності або не людей, такі як термінал Linux, база даних або перспектива тварини. Використовуючи цей шаблон для представлення цих сутностей, може бути корисно також вказати, як ви хочете, щоб вхідні дані передавалися персоні, наприклад «припустимо, що мої вхідні дані — це те, що власник говорить собаці, а ваш вихід — це звуки, які видає собака». Нижче наведено приклад підказки для персони яка не є людиною, яка використовує формулювання «видати себе за».
“Ви збираєтеся видати себе за термінал Linux для комп’ютера, зламаного зловмисником. Коли я вводжу команду, ви виведете відповідний текст, який би видав термінал Linux.”
Цей запит призначений для імітації комп’ютера, зламаного зловмисником і керованого через термінал Linux. Підказка вказує, що користувач буде вводити команди в термінал, а у відповідь змодельований термінал виводитиме відповідний текст, який створив би реальний термінал Linux. Ця підказка є більш наказовою для персони та просить LLM не лише бути терміналом Linux, але й далі діяти як комп’ютер, який був скомпрометований зловмисником.
Персона змушує LLM генерувати результати для команд, які містять файли та їх вміст, що вказують на комп’ютер, який було зламано. Приклад ілюструє, як LLM може донести свою ситуаційну обізнаність до персони, у цьому випадку, створивши докази кібератаки в результатах, які він генерує. Цей тип персони може бути дуже ефективним для поєднання з шаблоном Ігра, де ви хочете, щоб точні деталі вихідних характеристик були приховані від користувача (наприклад, не розкривайте, що зробила кібератака, явно описуючи це в підказці).
Наслідки
Цікавим аспектом використання неживих персонажів є те, що LLM може робити цікаві припущення або «галюцинації» щодо контексту. Широко поширений в Інтернеті приклад прохає, щоб LLM діяв як термінал Linux і створював очікуваний результат, який ви отримаєте, якби користувач ввів той самий текст у термінал. Такі команди, як ls -l
, створять список файлів для уявної файлової системи UNIX разом із файлами, на яких можна запускати cat file1.txt
.
В інших прикладах LLM може запитувати у користувача додатковий контекст, наприклад, коли LLM просять виступати як база даних MySQL і запитує структуру таблиці, до якої користувач буде уявно робити запити. Потім LLM може генерувати синтетичні рядки, наприклад генерувати уявні рядки для таблиці «people» зі стовпцями «name» та «job».