Дизайн подсказок для ИИ: ключевые советы по написанию для вакансий инженеров по подсказкам ИИ

Источник: 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

Подсказка:

Write a Facebook post to advertise my company's new product. My company is called Alpha, and the product is called Beta, a new ultra-fast hairdryer.

Вывод GPT-4:

Dear Netizens, I am delighted to introduce you to Alpha's newly launched product—the Beta Super Fast Hair Dryer! Beta is not just a hair dryer; it is our unique interpretation of beauty and speed. This product utilizes cutting-edge technology to dry your hair at lightning speed. Not to mention, Beta achieves rapid drying while protecting your strands from heat damage. Our design philosophy for Beta combines speed and comfort, and we believe that by using Beta, you will also enjoy this special experience. Whether during your busy morning schedule or when you're rushing out the door, Beta will be your best companion. At Alpha, we always adhere to a customer satisfaction-centered service philosophy, and Beta is a realization of that commitment. So, give it a try and let our Beta Super Fast Hair Dryer bring more convenience and joy to your life. We look forward to your feedback as we collectively experience Alpha's customer-centric service. #Alpha #BetaSuperFastHairDryer

2. Используя CO-STAR

Подсказка:

CONTEXT: I want to advertise my company's new product. My company's name is Alpha, and the product is called Beta, a new type of super-fast hair dryer. OBJECTIVE: Create a Facebook post for me aimed at getting people to click on the product link to make a purchase. STYLE: Follow the writing style of successful companies advertising similar products, such as Dyson. TONE: Persuasive. AUDIENCE: My company's audience on Facebook is generally older adults. Tailor your post to target what these audiences typically look for in hair products. RESPONSE:** The post on Facebook should be concise and impactful.

Вывод GPT-4:

**[Alpha Company New Product Launch]** Dear friends, we are excited to introduce our next-generation product—the Beta Super Fast Hair Dryer! Following Dyson's tradition of excellence, the Beta hair dryer combines speed, efficiency, and gentleness—all packed into a beautifully designed tool. Are you tired of waiting for your hair to dry? Are you looking for a hair dryer that can dry your hair quickly while caring for it and preventing damage? Beta is the answer you've been searching for! It dries quickly, achieving optimal results in the shortest time possible. More importantly, our exclusive temperature control technology ensures that the temperature remains just right, preventing damage to your hair and discomfort to your scalp. Step into the crowd, radiating confidence as the person who stands out! Click the link below to purchase our Beta Super Fast Hair Dryer now, stay ahead of the trends, and bring convenience to your daily life! With Alpha, beauty has never been so easy! [Product Link] Take action now, and let’s enjoy happiness, beauty, and life together!

Можно увидеть, что вывод подсказки с использованием CO-STAR более целенаправленный, специфический и эффективный.

II. Сегментация подсказок с помощью разделителей

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

Распространенные разделители могут быть ###, ===, <<<>>> и т. д. Кроме того, для разделения подсказок также могут использоваться теги XML.

Например:

Classify the sentiment of each conversation in <<<CONVERSATIONS>>> as 'Positive' or 'Negative'. Give the sentiment classifications without any other preamble text. ### EXAMPLE CONVERSATIONS [Agent]: Good morning, how can I assist you today?[Customer]: This product is terrible, nothing like what was advertised![Customer]: I'm extremely disappointed and expect a full refund. [Agent]: Good morning, how can I help you today?[Customer]: Hi, I just wanted to say that I'm really impressed with yourproduct. It exceeded my expectations! ### EXAMPLE OUTPUTS Negative Positive ### <<<[Agent]: Hello! Welcome to our support. How can I help you today? [Customer]: Hi there! I just wanted to let you know I received my order, andit's fantastic! [Agent]: That's great to hear! We're thrilled you're happy with your purchase.Is there anything else I can assist you with? [Customer]: No, that's it. Just wanted to give some positive feedback. Thanksfor your excellent service! [Agent]: Hello, thank you for reaching out. How can I assist you today? [Customer]: I'm very disappointed with my recent purchase. It's not what I expected at all. [Agent]: I'm sorry to hear that. Could you please provide more details so I can help? [Customer]: The product is of poor quality and it arrived late. I'm reallyunhappy with this experience.>>>

Этот пример использует ### для сегментации разделов и различает ПРИМЕРЫ БЕСЕД и ПРИМЕРЫ ВЫВОДОВ, используя заглавные буквы. В начале подсказки указывается, что беседы, которые необходимо классифицировать, будут отделены <<< БЕСЕДЫ >>>. Эти беседы затем предоставляются 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. Настройка системы и ввод инструкций по задаче:

Системная подсказка:

I want you to act as a data scientist to analyze datasets. Donot make up information that isnotin the dataset. Foreach analysis I ask for, provide me with the exact and definitive answer anddonot provide me with code or instructions todo the analysis on other platforms.

Пользовательская подсказка:

# CONTEXT #I sell wine. I have a dataset of information on my customers: [year of birth, marital status, income, number of children, days since last purchase, amount spent]. ############# # OBJECTIVE #I want you use the dataset to cluster my customers into groups and then give me ideas on how to target my marketing efforts towards each group. Use this step-by-step process and do not use code: 1. CLUSTERS: Use the columns of the dataset to cluster the rows of the dataset, such that customers within the same cluster have similar column values while customers in different clusters have distinctly different column values. Ensure that each row only belongs to 1 cluster. For each cluster found,2. CLUSTER_INFORMATION: Describe the cluster in terms of the dataset columns.3. CLUSTER_NAME: Interpret [CLUSTER_INFORMATION] to obtain a short name for the customer group in this cluster.4. MARKETING_IDEAS: Generate ideas to market my product to this customer group.5. RATIONALE: Explain why [MARKETING_IDEAS] is relevant and effective for this customer group. ############# # STYLE #Business analytics report ############# # TONE #Professional, technical ############# # AUDIENCE #My business partners. Convince them that your marketing strategy is well thought-out and fully backed by data. ############# # RESPONSE: MARKDOWN REPORT #<For each cluster in [CLUSTERS]>— Customer Group: [CLUSTER_NAME]— Profile: [CLUSTER_INFORMATION]— Marketing Ideas: [MARKETING_IDEAS]— Rationale: [RATIONALE] <Annex>Give a table of the list of row numbers belonging to each cluster, in order to back up your analysis. Use these table headers: [[CLUSTER_NAME], List of Rows]. ############# # START ANALYSIS #If you understand, ask me for my dataset.

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 даст точные результаты. Например:

Use this step-by-step process anddonotuse code: 1. CLUSTERS: Use the columnsof the dataset to cluster the rowsof the dataset, such that customers within the same cluster have similar columnvalueswhile customers in different clusters have distinctly different column values. Ensure that eachrowonly belongs to1 cluster.Foreach cluster found,2. CLUSTER_INFORMATION: Describe the cluster in terms of the dataset columns.3. CLUSTER_NAME: Interpret [CLUSTER_INFORMATION] to obtain a shortnamefor the customer groupin this cluster.4. MARKETING_IDEAS: Generate ideas to market my product to this customer group.5. RATIONALE: Explain why [MARKETING_IDEAS] is relevant and effective for this customer group

2. Ссылка на промежуточные результаты каждого шага от LLM.

При предоставлении каждого шага LLM присвойте каждому промежуточному результату имя переменной в верхнем регистре, такое как CLUSTERS, CLUSTER_INFORMATION, CLUSTER_NAME, MARKETING_IDEAS и RATIONALE.

Использование заглавных букв предназначено для того, чтобы отличить эти имена переменных от основных инструкций. Эти промежуточные результаты можно будет ссылаться позже, используя скобки, как [VARIABLE_NAME].

3. Форматируйте ответ LLM здесь: ответ LLM в формате отчетного документа markdown. Кроме того, использование имен переменных из промежуточных результатов для структурирования отчета также очень удобно.

# RESPONSE: MARKDOWN REPORT #<For each cluster in [CLUSTERS]>— Customer Group: [CLUSTER_NAME]— Profile: [CLUSTER_INFORMATION]— Marketing Ideas: [MARKETING_IDEAS]— Rationale: [RATIONALE] <Annex>Give a table of the list of row numbers belonging to each cluster, in order to back up your analysis. Use these table headers: [[CLUSTER_NAME], List of Rows].

4. Отделите инструкции по задачам от набора данных.

Набор данных никогда не предоставлялся LLM в первоначальной подсказке. Вместо этого в подсказке была лишь описана задача для анализа данных и включены следующие:

Дизайн подсказок для ИИ: ключевые советы по написанию для вакансий инженеров по подсказкам ИИ

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

Дизайн подсказок для ИИ: ключевые советы по написанию для вакансий инженеров по подсказкам ИИ
Начать дискуссию