Промпт-инжиниринг / Применение
Промпт-инжиниринг для бизнеса: как повысить точность GPT в 1.5 раза¶
Когда бизнес или HR-специалист пытается автоматизировать рутинную задачу, например, отбор вакансий для выпускников, на помощь приходят большие языковые модели (LLM). Но просто скопировать описание вакансии в ChatGPT часто недостаточно. Результаты могут быть неточными и непредсказуемыми. Группа исследователей в 2023 году провела практическое исследование, которое наглядно показывает: разница между базовым запросом и продуманным промптом - это пропасть между любительским и профессиональным использованием ИИ. Они взяли конкретную бизнес-задачу - классификацию, подходит ли вакансия для недавнего выпускника, - и методично протестировали на GPT-3.5 (gpt-3.5-turbo) серию техник инженерии промптов. Их выводы - готовый рецепт для повышения эффективности нейросетей в реальных проектах, будь то анализ резюме, сортировка обращений в поддержку или категоризация товаров.
Как инженерия промптов меняет результат: от 65.6 до 91.7 F1¶
Исходная задача проста: дать модели описание вакансии и получить ответ "да" или "нет" на вопрос, подходит ли она выпускнику. Наивный подход - просто задать этот вопрос - дал скромный результат в 65.6 по F1-мере (комплексный показатель точности и полноты). Это уровень, с которым уже сложно выходить в продакшн.
Однако, применяя последовательно различные модификации промпта, исследователям удалось поднять этот показатель до впечатляющих 91.7 F1. Это улучшение почти на 40% в относительном выражении. Что важно, в этом же эксперименте GPT-3.5 обошла даже специально обученную и тонко настроенную модель DeBERTa-V3, которая считается сильным базовым уровнем для задач классификации. Это доказывает, что правильно "разговаривать" с продвинутой LLM иногда эффективнее, чем строить или дообучать узкоспециализированную модель, особенно для задач, не требующих глубоких узкопрофильных знаний.
Какие техники работают, а какие - мешают: разбор модификаций¶
Исследователи тестировали множество подходов. Вот ключевые выводы, которые можно применить уже сегодня, работая с любым аналогом GPT, доступным в РФ, будь то YandexGPT, GigaChat или тот же ChatGPT через VPN.
- Zero-shot vs Few-shot (CoT): Для задач без необходимости в специальных знаниях добавление примеров (Few-shot CoT) показало худший результат, чем запрос без примеров (Zero-shot). Это контринтуитивно, но факт: в данном случае лишняя информация в промпте только мешала. Zero-CoT (просьба рассуждать пошагово) показала себя лучше простого CoT.
- Инструкции - это основа. Самое значительное улучшение принесло четкое формулирование инструкций. Лучше всего сработало разделение их на системные (описание роли модели: "Ты - HR-ассистент...") и пользовательские (конкретная задача). Этот подход (
bothinst) дал скачок с 81.4 до 87.5 F1. - Повторение и "разговорный" формат. Укрепление ключевых моментов через их повторение (
reit) и использование формата mock-диалога ("Давай обсудим вакансию...") (mock) стабильно добавляли доли процента к качеству. - Не заставляйте модель слепо следовать шаблону. Попытка жестко зафиксировать формат ответа (
strict) привела к резкому падению качества (с 89.3 до 86.3 F1), хотя соответствие формату выросло до 98%. Модель, слепо следуя правилам, теряла в сути. Более мягкое указание (loose) сработало чуть лучше, но тоже уступало свободному формату. Примечание: авторы отмечают, что в более новых тестах с GPT-4 эта проблема может быть менее выражена. - Мелкие, но важные детали. Даже такие, казалось бы, незначительные приемы, как обращение к модели по имени (
+name) или предваряющий запрос позитивный отзыв (+pos), дали небольшой, но измеримый прирост (0.6 и 0.8 пункта F1 соответственно). Это работает как "социальная" настройка взаимодействия.
Практическая таблица: что пробовать в вашем проекте¶
Вот сводная таблица протестированных модификаций и их эффекта. Используйте ее как чек-лист для улучшения своих промптов.
| Краткое название | Суть приема | Практический совет |
|---|---|---|
| Базовый | Просто вопрос по задаче. | Отправная точка, но не для продакшена. |
| Zero-CoT | Просьба рассуждать пошагово перед ответом. | Используйте для сложных задач, где нужна логика. |
| sysinst + bothinst | Инструкции в системном промпте и/или в запросе. | Обязательный прием. Четко опишите роль и задачу. Разделение роли и задачи часто оптимально. |
| mock | Использование формата диалога или обсуждения. | Помогает "разговорить" модель, сделать ответы более вдумчивыми. |
| reit | Повторение ключевых инструкций или условий. | Укрепляет важные моменты, особенно в длинных промптах. |
| strict / loose | Жесткое или мягкое требование следовать формату ответа. | Избегайте strict, если только формат не критически важен. Loose - более безопасный вариант. |
| name | Обращение к модели по имени (например, "Алекс"). | Легкий способ добавить персонализацию, может немного улучшить вовлеченность. |
| pos | Положительный фидбэк перед задачей ("Ты отлично справляешься..."). | Простой психологический прием для настройки "тона" взаимодействия. |
Итог: алгоритм для создания эффективного промпта¶
На основе этого исследования можно вывести простой алгоритм для задач текстовой классификации, адаптируемый под российский контекст (анализ отзывов, сортировка заявок, проверка резюме на соответствие требованиям):
- Начните с Zero-shot подхода. Не перегружайте промпт примерами, если задача не требует специфических знаний.
- Четко разделите инструкции. В системном сообщении задайте роль (эксперт по подбору, аналитик обратной связи). В пользовательском - конкретную задачу и критерии.
- Попросите рассуждать. Добавьте фразу вроде "Объясни свои рассуждения пошагово, прежде чем дать окончательный ответ".
- Используйте разговорный формат и повторение. Начните с "Давай проанализируем этот отзыв...", а ключевые условия (например, "ищи только упоминания о доставке") продублируйте.
- Избегайте жестких шаблонов. Не заставляйте модель выдавать ответ строго в формате "Ответ: ДА". Лучше "В итоге можно сделать вывод, что да/нет".
- Добавьте легкую персонализацию и позитив. Обращайтесь к модели по имени и давайте небольшой позитивный контекст. Это "полировка", которая может выжать последние проценты точности.
Промпт, реализующий эти принципы, может выглядеть так:
Промпт (системное сообщение):
Ты - опытный HR-ассистент в крупной российской IT-компании. Твоя задача - анализировать описания вакансий и определять, подходят ли они для кандидатов-выпускников вузов (опыт работы менее 1 года).
Промпт (пользовательское сообщение):
Алекс, привет! Ты отлично справляешься с анализом вакансий. Давай вместе разберем следующую позицию. Пожалуйста, рассуждай шаг за шагом: сначала оцени требования к опыту, затем уровень требуемых навыков и форму занятости. В конце сделай итоговый вывод: ДА (подходит выпускнику) или НЕТ (не подходит).
ОПИСАНИЕ ВАКАНСИИ:
[Текст вакансии здесь]
Помни, мы ищем вакансии именно для выпускников с минимальным опытом. Вакансии для выпускников.
Следуя этим принципам, вы сможете превратить генеративную нейросеть из интересного эксперимента в точный и надежный инструмент для автоматизации бизнес-процессов.
Нейросеть на ваших встречах, документах и переписке: отвечает со ссылкой на источник. Это ваша вторая память на базе ИИ. Данные хранятся в России, старт бесплатный.
Зарегистрироваться бесплатноENGRAM запоминает ваши встречи, документы и переписку и мгновенно находит ответ со ссылкой на источник. Ваша вторая память на базе ИИ. Данные в России, старт бесплатный.
Зарегистрироваться бесплатно