AI Prompt Engineering · Урок

Выбор параметров для вашего сценария

Рекомендуемые настройки для фактологических вопросов и ответов, творческого письма, кода и чата.

Урок 4 из 413 шагов

«Выбор параметров для вашего сценария» — бесплатный урок AI Prompt Engineering на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Prompt Engineering, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Prompt Engineering содержит 4 уроков всего.

Система выбора параметров

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

  1. Точность вывода: насколько важно, чтобы результат был правильным и предсказуемым?
  2. Разнообразие вывода: насколько важно, чтобы результаты различались и охватывали новые варианты?

Высокая точность → низкая температура. Высокое разнообразие → высокая температура. Большинство задач находится где-то между этими крайностями.

Фактические вопросы и ответы: точность превыше всего

Для ответов на фактические вопросы обычно существует один правильный ответ. Любая случайность повышает вероятность ошибки. Используйте:

  • температура = 0: жадное декодирование, полностью детерминированный режим
  • p = 1,0: оставить без ограничений; при температуре = 0 ограничение по p не влияет на результат

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

import openai
client = openai.OpenAI(api_key='sk-...')

# Factual Q&A configuration
def factual_qa(question):
    resp = client.chat.completions.create(
        model='gpt-4o',
        messages=[
            {'role': 'system', 'content': 'Answer factual questions concisely and accurately.'},
            {'role': 'user', 'content': question}
        ],
        temperature=0,
        top_p=1.0
    )
    return resp.choices[0].message.content

answer = factual_qa('What is the boiling point of water at sea level?')
print(answer)  # Always: '100 degrees Celsius (212 degrees Fahrenheit).'

Генерация кода: почти жадный режим

Код должен быть синтаксически корректным и семантически точным. Случайность приводит к синтаксическим ошибкам, неправильным именам переменных или ошибочной логике. Используйте:

  • температура = 0–0,2: почти жадный режим — допускает небольшие вариации, но отдаёт явное предпочтение правильному выбору токенов
  • p = 0,95: исключает токены из крайнего хвоста, которые могут привести к синтаксическим ошибкам
# Code generation configuration
def generate_code(task):
    resp = client.chat.completions.create(
        model='gpt-4o',
        messages=[
            {'role': 'system', 'content': 'You are an expert Python programmer. Write clean, correct code.'},
            {'role': 'user', 'content': task}
        ],
        temperature=0.1,
        top_p=0.95
    )
    return resp.choices[0].message.content

code = generate_code('Write a Python function that merges two sorted lists.')
print(code)

Суммирование: умеренные настройки

Суммирование требует точности (нельзя искажать факты), но выигрывает от небольших вариаций (разные запуски могут выделять разные аспекты). Используйте:

  • температура = 0,3–0,5: небольшая доля случайности сохраняет естественность формулировок
  • p = 1,0: при низкой температуре ограничивать ядро не требуется
# Summarization configuration
def summarize(text):
    resp = client.chat.completions.create(
        model='gpt-4o',
        messages=[
            {'role': 'system', 'content': 'Summarize the following text in 3 sentences.'},
            {'role': 'user', 'content': text}
        ],
        temperature=0.4,
        top_p=1.0
    )
    return resp.choices[0].message.content

summary = summarize(long_article)
print(summary)

Разговорный чат: естественные вариации

Ответы в чате выигрывают от естественных вариаций: один и тот же вопрос не должен всегда получать абсолютно одинаковую формулировку. Слишком высокая случайность делает ответы бессвязными. Используйте:

  • температура = 0,7–0,9: естественный и разнообразный разговор
  • p = 0,9–0,95: исключает маловероятные токены из хвоста, которые приводят к неестественным формулировкам
# Chat configuration
def chat_response(user_message, history):
    messages = history + [{'role': 'user', 'content': user_message}]
    resp = client.chat.completions.create(
        model='gpt-4o',
        messages=[
            {'role': 'system', 'content': 'You are a friendly, helpful assistant.'},
            *messages
        ],
        temperature=0.8,
        top_p=0.9
    )
    reply = resp.choices[0].message.content
    history.append({'role': 'user', 'content': user_message})
    history.append({'role': 'assistant', 'content': reply})
    return reply, history

Творческое письмо: высокое разнообразие

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

  • температура = 0,9–1,2: разнообразная лексика, неочевидный выбор слов
  • p = 0,95: предотвращает появление бессвязных токенов из хвоста, сохраняя возможность широкого поиска вариантов
# Creative writing configuration
def write_story_opening(prompt):
    resp = client.chat.completions.create(
        model='gpt-4o',
        messages=[
            {'role': 'system', 'content': 'You are a creative fiction writer. Write vivid, original prose.'},
            {'role': 'user', 'content': f'Write a story opening for: {prompt}'}
        ],
        temperature=1.1,
        top_p=0.95
    )
    return resp.choices[0].message.content

opening = write_story_opening('A detective discovers her partner is the killer.')
print(opening)

Мозговой штурм и генерация идей

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

  • температура = 1,0–1,5: широкий поиск в пространстве идей
  • p = 0,95–1,0: минимальные ограничения

Запустите генерацию несколько раз и соберите все результаты, а затем вручную отберите лучшие идеи. Запросы для мозгового штурма выигрывают от явной просьбы о разнообразии: «Приведите 10 разных подходов, включая необычные».

# Brainstorming: run multiple times for variety
def brainstorm(topic, n_runs=5):
    ideas = []
    for _ in range(n_runs):
        resp = client.chat.completions.create(
            model='gpt-4o',
            messages=[
                {'role': 'system', 'content': 'Generate creative, diverse ideas. Include unusual approaches.'},
                {'role': 'user', 'content': f'Give me 3 ideas for: {topic}'}
            ],
            temperature=1.3,
            top_p=0.95
        )
        ideas.append(resp.choices[0].message.content)
    return ideas

all_ideas = brainstorm('reducing customer churn')

Проверка чувствительности параметров

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

def sensitivity_test(prompt, evaluator, temperatures, n_samples=5):
    results = {}
    for temp in temperatures:
        scores = []
        for _ in range(n_samples):
            resp = client.chat.completions.create(
                model='gpt-4o',
                messages=[{'role': 'user', 'content': prompt}],
                temperature=temp
            )
            score = evaluator(resp.choices[0].message.content)
            scores.append(score)
        results[temp] = sum(scores) / len(scores)

    for temp, score in sorted(results.items()):
        print(f'T={temp}: avg score = {score:.2f}')
    best_temp = max(results, key=results.get)
    print(f'Best temperature: {best_temp}')
    return best_temp

Когда стоит оставить значения по умолчанию

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

  • вариант использования — обычный чат: температура по умолчанию (1,0 для большинства программных интерфейсов) хорошо настроена
  • Вы создаёте прототип и ещё не знаете, какие настройки подходят
  • задача находится посередине между точностью и творчеством (например, составление электронных писем)

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

# Defaults are often correct
default_resp = client.chat.completions.create(
    model='gpt-4o',
    messages=[{'role': 'user', 'content': 'Draft a professional email declining a meeting.'}]
    # No temperature or top_p specified — API defaults apply
    # OpenAI default: temperature=1, top_p=1
)
print(default_resp.choices[0].message.content)

Краткая памятка

Сводная таблица рекомендуемых настроек для разных вариантов использования:

PARAMETER_PRESETS = {
    # task: (temperature, top_p, notes)
    'factual_qa':        (0.0, 1.0, 'greedy, max accuracy'),
    'classification':    (0.0, 1.0, 'deterministic labels'),
    'code_generation':   (0.1, 0.95, 'near-greedy, avoid tail tokens'),
    'data_extraction':   (0.2, 1.0, 'slight variation for robustness'),
    'summarization':     (0.4, 1.0, 'preserve facts, vary phrasing'),
    'translation':       (0.3, 1.0, 'accurate but natural'),
    'chat':              (0.8, 0.9, 'natural conversation'),
    'email_drafting':    (0.7, 0.9, 'professional but varied'),
    'creative_writing':  (1.1, 0.95, 'vivid, original'),
    'brainstorming':     (1.3, 0.95, 'maximum diversity'),
}

for task, (temp, top_p, notes) in PARAMETER_PRESETS.items():
    print(f'{task:22} temp={temp}, top_p={top_p} | {notes}')

Штрафы за частотность и наличие

Температуру и топ-p дополняют ещё два параметра:

  • штраф за частотность (0–2): уменьшает вероятность токенов пропорционально тому, как часто они уже встречались в текущем выводе, — предотвращает повторение слов
  • штраф за наличие (0–2): уменьшает вероятность любого токена, который уже встречался хотя бы один раз, — способствует разнообразию тем

Для творческого письма добавьте штраф за частотность = 0,5, чтобы сократить повторение выбранных слов, не изменяя температуру.

resp = client.chat.completions.create(
    model='gpt-4o',
    messages=[{'role': 'user', 'content': 'Write a paragraph about coffee.'}],
    temperature=1.0,
    top_p=0.95,
    frequency_penalty=0.5,  # discourage repeating the same words
    presence_penalty=0.3    # encourage introducing new topics/aspects
)
print(resp.choices[0].message.content)

Проверка знаний

Какая конфигурация параметров наиболее уместна для задачи, которая создаёт код на Python, предназначенный для выполнения в производственной среде?

Повторение: выбор параметров выборки

Сопоставляйте параметры с Вашими потребностями в точности и разнообразии:

  • Фактические ответы и код: температура = 0–0,2, p = 0,95 — точность прежде всего
  • Суммирование: температура = 0,3–0,5 — баланс
  • Чат: температура = 0,7–0,9, p = 0,9 — естественные вариации
  • Творческие задачи: температура = 0,9–1,2, p = 0,95 — разнообразие
  • Мозговой штурм: температура = 1,3, p = 0,95 — максимальный поиск вариантов

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

Можно начать бесплатно

Изучай AI Prompt Engineering с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
53
Уроки
199

Часто задаваемые вопросы

Урок «Выбор параметров для вашего сценария» бесплатный?

Да — полный текст урока «Выбор параметров для вашего сценария» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Prompt Engineering, подпишись на CoddyKit PRO. Курс AI Prompt Engineering содержит 4 уроков всего.

Чему я научусь в уроке «Выбор параметров для вашего сценария»?

Рекомендуемые настройки для фактологических вопросов и ответов, творческого письма, кода и чата. Ты практикуешь AI Prompt Engineering с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать AI Prompt Engineering?

Предыдущий опыт не требуется. AI Prompt Engineering на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Выбор параметров для вашего сценария»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке AI Prompt Engineering?

Да. Каждый урок AI Prompt Engineering включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Что такое температура в LLM
  2. Выборка по ядру top-p
  3. Выборка top-k
  4. Выбор параметров для вашего сценария
← Назад к AI Prompt Engineering