Дизайн подсказок для ИИ: ключевые советы по написанию для вакансий инженеров по подсказкам ИИ
Источник: Joyland.ai-Your Free AI Character Chat Bot
По мере того как генеративный ИИ продолжает играть все более важную роль в различных отраслях, проектирование подсказок стало важным аспектом грамотности в области ИИ. Умение четко и точно формулировать запросы напрямую влияет на эффективность и результативность ИИ-систем. Уровень внимания, уделяемого дизайну подсказок, определяет, насколько хорошо ИИ может справляться со сложными задачами и предоставлять нюансированные, содержательные ответы. Поэтому овладение искусством создания эффективных подсказок является ключом к раскрытию полного потенциала ИИ.
Этот блог поделится несколькими советами по написанию подсказок и проанализирует несколько конкретных примеров.
Содержание разделено на четыре части:
[Основы] I. Написание подсказок с использованием фреймворка CO-STAR
[Основы] II. Сегментация подсказок с помощью разделителей
[Расширенные] III. Создание системных подсказок с использованием защитных мер LLM
[Расширенные] IV. Анализ наборов данных только с помощью LLM, без плагинов или кодирования (пример: анализ реального набора данных Kaggle с помощью GPT-4)
Итак, начнем!
I. Написание подсказок с использованием фреймворка CO-STAR
1.1 Значение CO-STAR
CO-STAR — это акроним, представляющий шесть ключевых элементов структурированного шаблона подсказки:
(C) Context / Контекст - Фоновая информация: Предоставьте контекст для задачи. Предоставляя большой языковой модели (LLM) подробную фоновую информацию, вы помогаете ей точно понять конкретный сценарий, что обеспечивает актуальность обратной связи.
(O) Objective / Цель - Определите цель: Четко укажите, что вы хотите, чтобы LLM достигла. Определение цели задачи помогает LLM сосредоточить свой ответ на достижении этой конкретной цели.
(S) Style / Стиль - Укажите стиль написания: Укажите желаемый стиль написания. Вы можете указать стиль известной личности или эксперта в отрасли, например, бизнес-аналитика или CEO, что направляет LLM использовать соответствующий тон и словарный запас.
(T) Tone / Тон - Установите эмоциональный тон: Определите эмоциональный тон ответа. Определение тона гарантирует, что ответ LLM соответствует ожидаемому эмоциональному или аттитюдному фону. Возможные тона включают формальный, юмористический, эмпатический и т. д.
(A) Audience / Аудитория - Определите целевую аудиторию: Настройте ответ для конкретной аудитории. Будь то эксперты, начинающие или дети, индивидуализация ответа LLM для целевой аудитории гарантирует, что содержание будет подходящим и понятным в данном контексте.
(R) Response / Ответ - Определите формат вывода: Укажите формат вывода. Установив формат вывода, вы гарантируете, что LLM генерирует ответы, соответствующие вашим конкретным потребностям, что упрощает последующие задачи. Распространенные форматы включают списки, данные JSON или профессиональные отчеты. Формат JSON идеален для приложений, которые требуют программной обработки вывода LLM.
1.2 Сравнение конкретных примеров
Сценарий: Предположим, вы менеджер по социальным медиа, и вам нужна помощь в составлении поста на Facebook для продвижения нового продукта вашей компании.
1. Без использования CO-STAR
Подсказка:
Вывод GPT-4:
2. Используя CO-STAR
Подсказка:
Вывод GPT-4:
Можно увидеть, что вывод подсказки с использованием CO-STAR более целенаправленный, специфический и эффективный.
II. Сегментация подсказок с помощью разделителей
Эффективное использование разделителей помогает большим языковым моделям лучше понимать содержание подсказки. Чем сложнее подсказка, тем важнее становится роль разделителей. Вы можете разработать собственные разделители, но они не должны совпадать с знаками препинания, чтобы избежать неоднозначности.
Распространенные разделители могут быть ###, ===, <<<>>> и т. д. Кроме того, для разделения подсказок также могут использоваться теги XML.
Например:
Этот пример использует ### для сегментации разделов и различает ПРИМЕРЫ БЕСЕД и ПРИМЕРЫ ВЫВОДОВ, используя заглавные буквы. В начале подсказки указывается, что беседы, которые необходимо классифицировать, будут отделены <<< БЕСЕДЫ >>>. Эти беседы затем предоставляются LLM в нижней части подсказки. Хотя explanatory текст отсутствует, LLM может понять, что это беседы, которые она должна классифицировать, благодаря наличию разделителей <<< and >>>.
III. Создание системных подсказок с использованием защитных мер LLM
Из-за ограниченной емкости памяти крупных моделей инструкции, которые нужно задавать повторно, могут быть настроены с помощью Системной подсказки в OpenAI. Эти подсказки объединяются с Пользовательской подсказкой и передаются в большую модель каждый раз, что уменьшает проблемы с потерей памяти и громоздкими подсказками. В общем, можно установить следующие категории:
Определение задачи: Это позволяет LLM всегда помнить, что ей нужно делать на протяжении всего чата.
Формат вывода: Это гарантирует, что LLM всегда будет помнить, как она должна отвечать.
Ограничения: Это помогает LLM всегда помнить, как она не должна отвечать. Ограничения относятся к границам конфигурации, в пределах которых LLM разрешено работать. Например, некоторые защитные инструкции для предотвращения атак на подсказки.
Например:
Кроме того, такие библиотеки, как NeMo Guardrails, могут использоваться для динамического управления ограничениями, позволяя вносить изменения в зависимости от текущей ситуации.
IV. Анализ наборов данных только с помощью LLM, без плагинов или кодирования
Большие модели не подходят для точных математических вычислений или сложной обработки задач на основе правил. Однако они прекрасно распознают шаблоны и проводят анализ тенденций. Эта способность происходит от их обширного обучения на разнообразных данных, что позволяет им выявлять сложные паттерны, которые могут быть неочевидны. Это делает их особенно подходящими для задач, связанных с нахождением шаблонов в наборах данных, обеспечивая лучшие результаты за более короткое время, чем кодирование.
Например:
- Обнаружение аномалий: Идентификация аномальных данных, отклоняющихся от нормы на основе одного или нескольких значений столбцов.
- Кластеризация: Группировка данных с похожими характеристиками в разные кластеры.
- Взаимосвязи между столбцами: Идентификация комбинаторных тенденций между столбцами.
- Анализ текста (для текстовых столбцов): Классификация на основе тем или настроений.
- Анализ тенденций (для наборов данных с временным аспектом): Распознавание паттернов, сезонных изменений или тенденций за определенные временные периоды в столбцах.
Пример: "Анализ наборов данных Kaggle, используя только LLM." Реальный набор данных Kaggle подготовлен для анализа личности клиентов, с целью сегментации клиентской базы для лучшего понимания.
Чтобы облегчить проверку результатов анализа LLM, этот набор данных разделен на 50 строк, при этом остаются только наиболее актуальные столбцы. Ниже представлен набор данных, используемый для анализа, где каждая строка представляет клиента, а столбцы указывают на информацию о клиенте:
Цель состоит в том, чтобы использовать набор данных о клиентах для управления маркетинговыми усилиями. Это можно разбить на две задачи: 1) Сформировать значимые сегменты клиентов с использованием набора данных. 2) Предложить оптимальные маркетинговые стратегии для каждого сегмента. Это практическая бизнес-проблема, где способности LLM к распознаванию паттернов (для Шага 1) могут действительно проявиться. Ниже приведены подсказки, созданные с использованием четырех техник проектирования подсказок:
- Разбить сложные задачи на простые шаги.
- Ссылаться на промежуточные результаты для каждого шага.
- Форматировать ответы LLM.
- Отделять инструкции от набора данных.
Конкретная процедура:
1. Настройка системы и ввод инструкций по задаче:
Системная подсказка:
Пользовательская подсказка:
2. Ответ GPT и данные, предоставленные пользователем для анализа
3. GPT генерирует отчет об анализе
Проверка точности анализа LLM
Выберите два сегмента клиентов, созданных LLM для проверки — например, Молодые семьи и Умные энтузиасты.
Молодые семьи
- Профиль пользователя, созданный LLM: Родились после 1980 года, женаты или живут вместе, с низким или средним доходом, имеют детей и часто совершают мелкие покупки.
- LLM группирует эти строки в эту категорию: 3, 4, 7, 10, 16, 20
Проверьте фактический набор данных:
Это полностью соответствует профилю пользователя, определенному LLM. Он даже может группировать записи с отсутствующими значениями без предварительной обработки!
Умные энтузиасты
- Профиль пользователя, созданный LLM: Широкий возрастной диапазон, любой семейный статус, высокий доход, разнообразный статус родителей и высокие расходы на покупки.
- LLM группирует следующие записи в эту категорию: 2, 5, 18, 29, 34, 36
Проверьте фактический набор данных:
Это очень хорошо согласуется с характеристиками, определенными LLM!
Тем временем автор не смог заставить плагин для анализа данных работать должным образом.
В этом случае были специально использованы следующие техники проектирования подсказок:
1. Разбиение сложной задачи на простые шаги: LLM прекрасно справляются с простыми задачами, но испытывают трудности с комплексными. Поэтому для сложных задач, таких как эта, важно разбить задачу на простые пошаговые инструкции, которые большая языковая модель сможет выполнить. В отличие от того, чтобы просто дать общую задачу LLM, такую как инструкция: «Сгруппируйте клиентов, а затем предложите маркетинговые стратегии для каждой группы», предоставление пошаговых инструкций увеличивает вероятность того, что LLM даст точные результаты. Например:
2. Ссылка на промежуточные результаты каждого шага от LLM.
При предоставлении каждого шага LLM присвойте каждому промежуточному результату имя переменной в верхнем регистре, такое как CLUSTERS, CLUSTER_INFORMATION, CLUSTER_NAME, MARKETING_IDEAS и RATIONALE.
Использование заглавных букв предназначено для того, чтобы отличить эти имена переменных от основных инструкций. Эти промежуточные результаты можно будет ссылаться позже, используя скобки, как [VARIABLE_NAME].
3. Форматируйте ответ LLM здесь: ответ LLM в формате отчетного документа markdown. Кроме того, использование имен переменных из промежуточных результатов для структурирования отчета также очень удобно.
4. Отделите инструкции по задачам от набора данных.
Набор данных никогда не предоставлялся LLM в первоначальной подсказке. Вместо этого в подсказке была лишь описана задача для анализа данных и включены следующие:
Преимущество такого подхода заключается в том, что он помогает LLM лучше понять каждую инструкцию, снижая вероятность упущения информации, особенно в сложных задачах с длинными инструкциями, как в этом случае. Сначала получив инструкции, а затем набор данных, к которому эти инструкции относятся, LLM может усвоить, что ей нужно сделать, прежде чем выполнять это на предоставленном наборе данных.