Системные промпты: полный гайд по видам и использованию

Авторы статьи: Шаров Михаил, Кожевников Владимир, Еклашева Ольга

Введение

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

Правильно составленный системный промпт – ключ к получению точных и релевантных ответов от LLM. В этой статье мы разберем различные виды системных промптов, их особенности и примеры использования с популярными LLM, такими как GPT-4o, Claude 3.5 Sonnet, Gemini 1.5 Pro и другими. Мы также углубимся в нюансы комбинирования промптов для решения сложных задач и предложим рекомендации по созданию идеальных промптов для ваших проектов.

Виды системных промптов: Подробный разбор и примеры

  1. Zero-Shot Prompting

2. Few-Shot Prompting

3. Chain-of-Thought Prompting

4. Role Prompting

5. Instruction Prompting

Комбинации промптов

Важно отметить, что различные виды системных промптов могут комбинироваться для достижения более сложных целей. Например, можно использовать Few-Shot промпты для предоставления модели примеров, а затем применить Chain-of-Thought промпты для получения последовательного и логичного ответа. Или совместить Role Prompting с Instruction Prompting, чтобы модель выполнила задачу от лица определенного персонажа.

К примеру, создадим комбинированный системный промпт включающий элементы Few-Shot и Chain-of-Thought. Это может быть полезным для задач, требующих как контекста, так и последовательного анализа. Например для AI ассистента CEO, который занимается деловой перепиской:

Ты — виртуальный ассистент CEO, специалист по деловой переписке. Твоя задача — создавать профессиональные и убедительные деловые письма. Используй приведенные примеры как ориентир для стиля и структуры письма. Следуй логической цепочке шагов, чтобы обеспечить полный и качественный ответ.

Пример 1:
Запрос: Написать письмо потенциальному партнеру с предложением о сотрудничестве.
Ответ:
1. Приветствие и представление компании.
2. Краткое описание цели письма.
3. Описание преимуществ сотрудничества.
4. Приглашение к обсуждению деталей.
5. Заключение с благодарностью и контактной информацией.

Пример 2:
Запрос: Ответить на жалобу клиента.
Ответ:
1. Признание проблемы и извинение за неудобства.
2. Описание причин проблемы (если известно).
3. Обещание предпринять меры для исправления ситуации.
4. Описание шагов, которые уже приняты или будут приняты.
5. Заключение с благодарностью за обратную связь и приглашением к дальнейшему сотрудничеству.

Пошаговая инструкция для анализа нового запроса:
1. Определи цель письма и ключевые моменты, которые должны быть включены.
2. Используй соответствующий тон и стиль, ориентируясь на тип деловой переписки.
3. Структурируй письмо, разделяя его на логические части, обеспечивая их взаимосвязь.
4. Убедись, что все ключевые аспекты запроса учтены и изложены последовательно и четко.
5. Проверь итоговый текст на корректность и соответствие бизнес-целям CEO.
Пример запроса для обработки: Напиши письмо существующему клиенту с предложением новых условий контракта.

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

Лучшие практики для каждого типа промптов:

Будущие тенденции в области промптинга:

● Персонализация промптов: Модели, которые будут адаптироваться под индивидуальные стили и потребности пользователей.
● Интеграция с внешними данными: Модели, которые будут использовать внешние данные для более точных ответов.
● Ко-создание контента: Модели, которые будут сотрудничать с пользователями для совместного создания контента.
● Этические аспекты: Развитие этических норм и стандартов для промптинга.

Рекомендации по составлению системных промптов

Общие рекомендации

● Ясность и Конкретность: Промпты должны быть ясными и конкретными. Избегайте неоднозначностей и общего языка.
● Контекст: Убедитесь, что промпт содержит достаточный контекст, чтобы модель могла понять задачу.
● Примеры: Для сложных задач используйте примеры, чтобы помочь модели лучше понять, что от нее требуется.
● Форматирование: Ясное форматирование, такое как маркированные списки или четкие разделения между различными частями промпта, могут помочь модели лучше воспринимать задачу.

Советы по созданию идеальных промптов

● Понимание Цели: Определите, какую именно информацию вы хотите получить и на каком уровне детализации.
● Использование Примеров: Включите несколько примеров, чтобы продемонстрировать модель, как именно следует формировать ответ.
● Шаги и Процесс: Для сложных задач предоставьте пошаговые инструкции, чтобы модель могла следовать логической цепочке.
● Роль и Стиль: Учитывайте, какую роль модель должна играть, и настройте промпт в соответствии с этим.

Рекомендуемые методы тестирования

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

● Тестирование точности: Оцените, насколько правильно модель отвечает на запросы, используя эталонные ответы.
● Оценка полноты: Проверьте, охватывает ли модель все ключевые аспекты вопроса.
● Измерение релевантности: Определите, насколько ответ модели соответствует запросу и ожиданиям пользователя.

Эти методы помогут определить, какие типы промптов наиболее эффективны для каждой модели, и позволят оптимизировать взаимодействие с LLM в зависимости от конкретных задач. Оценка модели может быть осуществлена как человеком-экспертом, так и с помощью других подходов. К примеру для оценки качества ответа модели в RAG-системе и его зависимости от системного промпта
можно предложить следующие два основных подхода: LLM-as-Judge и RAGAS — система, разработанная для автоматизированной оценки эффективности RAG (ссылка на гитхаб). Хороший туториал про использование RAGAS.

LLM-as-Judge. Данный подход предполагает, что для оценки одной LLM используется другая сильная LLM, что с одной стороны сильно удешевляет оценку модели по сравнению с человеческой оценкой, и с другой стороны при хорошей реализации сильно коррелирует с человеческой оценкой. Некоторые особенности использования представлены в статье.

Советы из данной статьи для лучшего результата от LLM-as-Judge:

● Используйте парные сравнения, чем просить оценить модель по некоторой шкале оценок
● Контролируйте предвзятость позиции: порядок вариантов может повлиять на решение LLM.
● Разрешите ничьи: в некоторых случаях оба варианта могут быть одинаково хороши.
● Используйте Chain-of-Thought: попросите LLM объяснить свое решения, прежде чем дать окончательное предпочтение. Это может увеличить надежность оценки.
● Контролируйте длину ответа: LLM склонны предпочитать более длинные ответы. Чтобы снизить влияние этого фактора, убедитесь, что пары ответов похожи по длине.

RAGAS — система, разработанная для автоматизированной оценки эффективности RAG (ссылка на гитхаб). Хороший туториал про использование.


Метрики оценки в RAGAS

Faithfulness
Оценивает, насколько ответы языковой модели точно отражают информацию, содержащуюся в источниках данных. Это важно для обеспечения того, чтобы модель не искажала или не изменяла информацию при представлении.

Answer Relevancy
Показывает, насколько ответы соответствуют заданным вопросам. Это ключевой аспект, поскольку даже технически правильный ответ может быть бесполезным, если он не отвечает на конкретный вопрос пользователя.

Context Recall и Context Precision
Эти метрики оценивают, насколько хорошо модель использует контекст вопроса при формировании ответа. "Context Recall" оценивает, сколько информации из контекста использовано в ответе, в то время как "Context Precision" оценивает, насколько точно и релевантно контекстная информация использована.

Answer Semantic Similarity
Измеряет, насколько семантически близок ответ модели к эталонному ответу. Это помогает понять, насколько естественно и точно модель может воспроизводить человеческий язык.

Answer Correctness
Оценка правильности ответа. Это финальная проверка на то, предоставляет ли модель точную и достоверную информацию в ответе.

Заключение

Системные промпты являются важным инструментом для управления выходными данными языковых моделей и их точностью. Разные виды промптов – Zero-Shot, Few-Shot, Chain-of-Thought, Role и Instruction – обладают своими особенностями и применяются в зависимости от задачи. Каждая модель имеет свои сильные и слабые стороны при обработке различных типов промптов.

Для достижения наилучших результатов важно внимательно подходить к составлению промптов, учитывать специфику модели и проводить тестирование для оценки точности, полноты и релевантности ответов. В дальнейшем, разработка более сложных и адаптивных промптов поможет улучшить взаимодействие с языковыми моделями и повысить их эффективность в различных приложениях.
Made on
Tilda