Выбор параметров для вашего сценария
Рекомендуемые настройки для фактологических вопросов и ответов, творческого письма, кода и чата.
«Выбор параметров для вашего сценария» — бесплатный урок AI Prompt Engineering на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Prompt Engineering, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Prompt Engineering содержит 4 уроков всего.
Система выбора параметров
Выбор параметров выборки — это не гадание: он подчиняется логике, основанной на требованиях Вашей задачи. Правильную конфигурацию определяют два ключевых измерения:
- Точность вывода: насколько важно, чтобы результат был правильным и предсказуемым?
- Разнообразие вывода: насколько важно, чтобы результаты различались и охватывали новые варианты?
Высокая точность → низкая температура. Высокое разнообразие → высокая температура. Большинство задач находится где-то между этими крайностями.
Фактические вопросы и ответы: точность превыше всего
Для ответов на фактические вопросы обычно существует один правильный ответ. Любая случайность повышает вероятность ошибки. Используйте:
- температура = 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 — локальная установка не требуется.
Все уроки этого курса
- Что такое температура в LLM
- Выборка по ядру top-p
- Выборка top-k
- Выбор параметров для вашего сценария