Написание эффективных промптов для моделей больших языков
Требует некоторого экспериментирования, но
Есть ещё несколько общепринятых подходов к написанию хороших промптов, чтобы LLM не запуталась, пытаясь понять, чего вы хотите от неё.
Как улучшить производительность языковых моделей с помощью техник инжиниринга промптов
Инжиниринг промптов — это мощная техника, используемая в обработке естественного языка (NLP), которая помогает улучшить производительность языковых моделей за счёт предоставления им дополнительного контекста, инструкций и информации о задаче. В этой статье мы расскажем о различных методах создания эффективных промптов, которые помогут вашей NLP-модели генерировать более точные, релевантные и разнообразные результаты.
Создание эффективных промптов
1. Будьте ясны и кратки
- Цель: Убедитесь, что ваш промпт легко понятен языковой модели.
- Реализация: Избегайте использования жаргона или технических терминов, которые могут запутать модель. Держитесь простых и ясных инструкций.
2. Используйте конкретные примеры
- Цель: Помогите модели лучше понять, какой результат ожидается.
- Реализация: Включите конкретные примеры в ваш промпт, например, настройки, персонажи или детали сюжета для задач генерации историй.
3. Разнообразьте промпты
- Цель: Позвольте модели лучше изучить задачу и создавать разнообразные результаты.
- Реализация: Экспериментируйте с различными стилями, тональностью и форматами, чтобы увидеть, как реагирует модель.
4. Тестируйте и уточняйте
- Цель: Проверьте эффективность промптов и вносите необходимые корректировки.
- Реализация: После создания набора промптов протестируйте их на вашей языковой модели. Проанализируйте результаты и уточните промпты на основе обратной связи или метрик производительности.
5. Используйте обратную связь
- Цель: Постоянно улучшайте качество и релевантность ваших промптов.
- Реализация: Включайте обратную связь от пользователей или инсайты из других источников, чтобы улучшать эффективность промптов со временем.
Ясные инструкции для лучшего результата
Пример:
- Промпт: Объясните мне последние достижения в крупных языковых моделях.
- Инструкции: Всегда указывайте источники, не старше 2020 года.
Стилизация для начальных классов
Объяснение: Представьте сложные концепции простым языком и с примерами, подходящими для образовательных сетей для детей.
Рекомендации по оформлению
Пример:
{
"role": "sentiment_classifier",
"instructions": [
"Для каждого сообщения укажите процент положительного, нейтрального и отрицательного настроения.",
"Примеры: 'Я его полюбил' -> 70% положительное, 30% нейтральное; 'Могло бы быть лучше' -> 0% положительное, 50% нейтральное, 50% отрицательное"
],
"examples": [
{
"message": "Я думал, что это было нормально",
"sentiment": [25%, 50%, 25%]
},
{
"message": "Я его обожаю!",
"sentiment": [100%, 0%, 0%]
}
]
}
Промпты на основе ролей
Пример:
- Промпт: Вы виртуальный гид, который сейчас прогуливается с туристами вокруг Эйфелевой башни на ночной экскурсии. Опишите Эйфелеву башню вашей аудитории, затронув её историю, количество посетителей в год, время, необходимое для полного обхода, и почему так много людей посещают это место ежегодно.
Техника цепочки мышления
Пример:
- Промпт: Вы виртуальный гид с 1901 года. Ваши туристы посещают Эйфелеву башню.
- Зачем она была построена?
- Сколько времени заняло её строительство?
- Откуда были закуплены материалы для её строительства?
- Какое количество посетителей ежегодно в 1900-х годах?
- Сколько времени занимает полный обход, и почему так много людей посещают это место каждый год?
Самосогласованность
Пример:
- Промпт: Джон обнаружил, что среднее из 15 чисел равно 40. Если к каждому числу прибавить 10, какое будет новое среднее?
- Инструкции: Выполните промпт несколько раз и выберите наиболее часто возвращаемое значение в качестве ответа.
Генерация с поддержкой поиска
Пример:
Учитывая следующую информацию о температурах в Менлопарке:
-
2023-12-11: 52 градуса по Фаренгейту
-
2023-12-12: 51 градус по Фаренгейту
-
2023-12-13: 55 градусов по Фаренгейту
-
Промпт: Какая была температура в Менлопарке 12 декабря 2023 года?
Языковые модели с поддержкой программ
Пример:
- Промпт: Вычислите: ((-5 + 93 * 4 - 0) * (4^4 + -7 + 0 * 5))
Ограничение избыточных токенов
Пример:
- Промпт: Вы робот, который выводит только JSON.
- Инструкции: Ваш ответ должен включать поле ‘zip_code’.
- Пример вопроса: Какой почтовый индекс у Менлопарка?
- Ожидаемый ответ: {“zip_code”: “94025”}
Снижение галлюцинаций
Пример 1:
- Промпт: Объясните концепцию квантового вычисления школьнику.
- Инструкции: Предоставьте простые объяснения и избегайте сложного жаргона.
Пример 2:
- Промпт: Напишите письмо своему начальнику с просьбой о встрече по поводу прогресса проекта.
- Инструкции: Используйте профессиональный язык, сохраняйте формальный тон и включайте конкретные детали о статусе проекта.
Пример 3:
- Промпт: Сгенерируйте стихотворение о природе.
- Инструкции: Сосредоточьтесь на описательном языке и образах, связанных с природными элементами.
Заключение
Следуя этим рекомендациям по инжинирингу промптов, вы можете значительно улучшить производительность ваших NLP-моделей. Независимо от того, используете ли вы чёткие инструкции, конкретные примеры или промпты на основе ролей, каждая техника играет важную роль в направлении модели к более точным и релевантным результатам.
Полезные ссылки
- Тест: как Ollama использует производительность процессора Intel и эффективные ядра
- Как Ollama обрабатывает параллельные запросы
- Сравнение скорости LLM
- Сравнение способности LLM к суммаризации
- Обнаружение логических ошибок с помощью LLM
- Meta / llama3: https://llama.meta.com/docs/overview
- Перемещение папки с моделями Ollama в другое место
- Сравнение LLM: Mistral Small, Gemma 2, Qwen 2.5, Mistral Nemo, LLama3 и Phi
- Справочник по Conda
- Справочник по Ollama
- Справочник по Docker
- Справочник по Markdown