Оглавление
Техники промптинга
Большие языковые модели (LLM) настроены на выполнение инструкций и обучены на огромных объемах данных, чтобы понимать промпт и генерировать ответ. Однако LLM не идеальны: чем четче ваш промпт, тем лучше модель сможет предсказать следующий фрагмент текста. Кроме того, специальные техники, учитывающие принципы обучения и работы LLM, помогут получить более релевантные результаты.
Теперь, когда мы разобрались, что такое инженерия промптов и какие навыки для нее нужны, давайте рассмотрим примеры самых важных техник промптинга.
Общий промптинг / Zero-shot (без примеров)
Промпт типа zero-shot — это самый простой вид промпта. Он содержит только описание задачи и небольшой текст, с которого модель начинает работу. Это может быть вопрос, начало истории или инструкция. Название zero-shot означает «без примеров».
Давайте воспользуемся Vertex AI Studio (для языка) в Vertex AI, который предоставляет площадку для тестирования промптов. В Таблице 1 вы увидите пример zero-shot промпта для классификации отзывов на фильмы.
Формат таблицы, использованный ниже, — отличный способ документирования промптов. Ваши промпты, скорее всего, пройдут множество итераций, прежде чем попадут в код, поэтому важно систематически и структурированно фиксировать процесс инженерии промптов. Подробнее об этом формате, важности отслеживания работы с промптами и процессе их разработки — в разделе «Лучшие практики» далее в этой главе («Фиксируйте различные варианты промптов»).
Температуру модели следует установить на низкое значение, так как творчество здесь не требуется, а параметры top-K и top-P оставлены по умолчанию для gemini-pro, что фактически отключает их влияние (см. раздел «Настройка вывода LLM» выше). Обратите внимание на сгенерированный вывод. Слова disturbing (тревожный) и masterpiece (шедевр) немного усложняют предсказание, так как используются в одном предложении.
Название | 1_1_movie_classification |
---|---|
Цель | Классифицировать отзывы на фильмы как положительные, нейтральные или отрицательные. |
Модель | gemini-pro |
Температура | 0.1 |
Лимит токенов | 5 |
Top-K | N/A |
Top-P | 1 |
Промпт | Классифицируйте отзывы на фильмы как ПОЛОЖИТЕЛЬНЫЕ, НЕЙТРАЛЬНЫЕ или ОТРИЦАТЕЛЬНЫЕ. Отзыв: «Она» — это тревожное исследование, показывающее, в каком направлении движется человечество, если ИИ продолжит развиваться бесконтрольно. Хотелось бы, чтобы было больше таких шедевров. |
Вывод | ПОЛОЖИТЕЛЬНОЕ |
Таблица 1. Пример zero-shot промптинга
Если zero-shot не срабатывает, можно добавить демонстрации или примеры в промпт — это приведет к техникам «one-shot» (один пример) и «few-shot» (несколько примеров).


One-shot и few-shot промптинг
Проверь свои знания в наших бесплатных тестах по ИИ! Пройди тест и узнай, насколько хорошо ты разбираешься в технологиях искусственного интеллекта!
При создании промптов для ИИ-моделей полезно предоставлять примеры. Они помогают модели лучше понять, что от нее требуется. Примеры особенно важны, когда нужно направить модель к определенной структуре или шаблону вывода.
One-shot промптинг включает один пример (отсюда и название one-shot). Идея в том, что модель получает образец, на основе которого может выполнить задачу.
Few-shot промптинг предоставляет модели несколько примеров. Этот подход демонстрирует шаблон, которому модель должна следовать. Логика аналогична one-shot, но большее количество примеров увеличивает вероятность, что модель воспроизведет нужный паттерн.
Количество примеров для few-shot промптинга зависит от:
- Сложности задачи,
- Качества примеров,
- Возможностей используемой генеративной ИИ-модели.
Общее правило: используйте 3–5 примеров для few-shot. Однако для сложных задач может потребоваться больше, а ограничения длины ввода модели — сократить это число.
В Таблице 2 показан пример few-shot промпта. Настройки модели gemini-pro остаются прежними, кроме увеличения лимита токенов для более длинного ответа.
Название | Разбор заказов на пиццу в JSON |
---|---|
Цель | Преобразовать заказ пиццы в JSON |
Модель | gemini-pro |
Температура | 0.1 |
Лимит токенов | 250 |
Top-K | N/A |
Top-P | 1 |
Промпт | Преобразуйте заказ клиента в валидный JSON: EXAMPLE: I want a small pizza with cheese, tomato sauce, and pepperoni. JSON Response: { "size": "small", "type": "normal", "ingredients": [["cheese", "tomato sauce", "peperoni"]] } EXAMPLE: Can I get a large pizza with tomato sauce, basil and mozzarella { «size»: «large», «type»: «normal», «ingredients»: [[«tomato sauce», «bazel», «mozzarella»]] } Now, I would like a large pizza, with the first half cheese and mozzarella. And the other tomato sauce, ham and pineapple. JSON Response: |
Вывод | { "size": "large", "type": "half-half", "ingredients": [["cheese", "mozzarella"], ["tomato sauce", "ham", "pineapple"]] } |
Таблица 2. Пример few-shot промптинга
Как выбирать примеры:
- Используйте релевантные для задачи примеры.
- Они должны быть разнообразными, качественными и четко составленными. Даже небольшая ошибка может сбить модель с толку.
- Для устойчивости к разным вводам включайте крайние случаи (*edge cases*) — нестандартные или неожиданные запросы, которые модель всё равно должна обрабатывать.