0Pricing
AI Prompt Engineering · Урок

Когда использовать модели рассуждений, а когда стандартные

Типы задач, где расширенное мышление особенно полезно: математика, код и многошаговая логика.

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

Не каждой задаче нужны модели рассуждений

Модели рассуждений мощны, но дороги и медленны. Выбор подходящего типа модели для каждой задачи — одно из наиболее важных решений при проектировании систем на основе LLM.

Главный вопрос таков: действительно ли эта задача выигрывает от расширенного обдумывания? Многие задачи — нет, и использование для них модели рассуждений приводит к лишним расходам без повышения качества.

Где модели рассуждений особенно эффективны: многошаговая математика

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

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

# Multi-step math: use reasoning model
hard_math_prompt = (
    'A company has 3 factories. Factory A produces 240 units/day, '
    'Factory B produces 180 units/day, and Factory C produces 300 units/day. '
    'They operate 5 days/week. A unit sells for $47.50. Operating costs are '
    '$18,000/week for A, $14,500/week for B, and $22,000/week for C. '
    'What is the total weekly profit across all factories?'
)

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=8000,
    thinking={'type': 'enabled', 'budget_tokens': 5000},
    messages=[{'role': 'user', 'content': hard_math_prompt}]
)
print(next(b.text for b in response.content if b.type == 'text'))

Где модели рассуждений особенно эффективны: сложный код

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

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

# Complex coding: use reasoning model
code_prompt = (
    'Implement a thread-safe LRU cache in Python with these requirements:\n'
    '- O(1) get and put operations\n'
    '- Thread-safe using minimal locking\n'
    '- Support a max_size parameter\n'
    '- Include full docstrings and type hints\n'
    '- Handle edge cases: empty cache, size=1, duplicate keys'
)

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=10000,
    thinking={'type': 'enabled', 'budget_tokens': 8000},
    messages=[{'role': 'user', 'content': code_prompt}]
)
code = next(b.text for b in response.content if b.type == 'text')
print(code[:400])

Где модели рассуждений особенно эффективны: стратегическое планирование

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

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

# Strategic decision: reasoning model adds real value
strategy_prompt = (
    'We are a B2B SaaS startup with $2M ARR, 15% monthly churn, '
    '3 engineers, and $800K runway. We have two options:\n'
    'A) Raise a Series A now at a $10M valuation\n'
    'B) Cut costs, extend runway 18 months, raise at higher valuation\n\n'
    'Analyze the trade-offs and recommend a course of action with reasoning.'
)

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=10000,
    thinking={'type': 'enabled', 'budget_tokens': 8000},
    messages=[{'role': 'user', 'content': strategy_prompt}]
)
print(next(b.text for b in response.content if b.type == 'text')[:400])

Где обычные модели выигрывают: простые вопросы и ответы

Фактические вопросы с однозначными ответами не выигрывают от расширенного рассуждения. Использование o3 или Claude с расширенным рассуждением для вопроса «Какова столица Франции?» обойдётся в 20–50 раз дороже при том же результате.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

# Simple Q&A: standard model is just as good, much cheaper
simple_questions = [
    'What is the capital of France?',
    'Who wrote Hamlet?',
    'What year did the Berlin Wall fall?',
]

for q in simple_questions:
    # Use claude-haiku-4-5 — fast, cheap, equally accurate for factual recall
    r = client.messages.create(
        model='claude-haiku-4-5',
        max_tokens=50,
        messages=[{'role': 'user', 'content': q}]
    )
    print(f'Q: {q}\nA: {r.content[0].text}\n')

# Reasoning model would give the same answers at 50-100x the cost

Где обычные модели выигрывают: форматирование текста

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

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

# Text formatting tasks: standard model wins
formatting_tasks = [
    ('Summarize in 2 sentences: The Eiffel Tower was built in 1889...', 100),
    ('Translate to Spanish: Good morning, how are you?', 50),
    ('Convert to bullet points: We need to buy milk, eggs, and bread.', 50),
]

for prompt, max_tok in formatting_tasks:
    r = client.messages.create(
        model='claude-haiku-4-5',  # Fastest, cheapest
        max_tokens=max_tok,
        messages=[{'role': 'user', 'content': prompt}]
    )
    print(r.content[0].text, '\n')

# Reasoning model: same quality, 50-100x more expensive, 10-30x slower

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

Приложения, работающие в реальном времени, — чат-боты, автодополнение и интерактивная помощь — не могут допускать задержку ответа в 30–60 секунд. Обычные модели отвечают за 1–5 секунд. Используйте их для взаимодействия с пользователями в реальном времени.

import anthropic
import time

client = anthropic.Anthropic(api_key='sk-ant-...')

def latency_comparison(question):
    # Standard model: fast for real-time use
    start = time.time()
    r1 = client.messages.create(
        model='claude-haiku-4-5',
        max_tokens=200,
        messages=[{'role': 'user', 'content': question}]
    )
    t_standard = time.time() - start

    # Reasoning model: accurate but slow
    start = time.time()
    r2 = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=5000,
        thinking={'type': 'enabled', 'budget_tokens': 3000},
        messages=[{'role': 'user', 'content': question}]
    )
    t_reasoning = time.time() - start

    print(f'Standard: {t_standard:.1f}s | Reasoning: {t_reasoning:.1f}s')

latency_comparison('What does API stand for?')

Неоднозначные задачи на рассуждение

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

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

# Ambiguous reasoning: reasoning model handles this much better
ambiguous_prompt = (
    'Alice, Bob, and Carol are in a room. Alice says Bob is lying. '
    'Bob says Carol is lying. Carol says both Alice and Bob are lying. '
    'Who, if anyone, is telling the truth? '
    'Explain all possible consistent interpretations.'
)

# Reasoning model explores the logical space
response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=8000,
    thinking={'type': 'enabled', 'budget_tokens': 6000},
    messages=[{'role': 'user', 'content': ambiguous_prompt}]
)
print(next(b.text for b in response.content if b.type == 'text')[:400])

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

Практическое дерево решений для выбора между обычными моделями и моделями рассуждений:

  • Задача математически сложна или требует многошаговой логики? → Рассуждения
  • Нужно оценить компромиссы с учётом множества переменных? → Рассуждения
  • Это воспроизведение фактов, составление краткого содержания или перевод? → Обычная модель
  • Нужно отвечать менее чем за 2 секунды? → Обычная модель
  • Критична стоимость одного запроса при большом масштабе? → Обычная модель (если только разрыв в качестве не велик)
  • Критична правильность в сложных крайних случаях (медицина, право, финансы)? → Модель рассуждений

Гибридная маршрутизация: лучшее из двух подходов

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

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

def classify_complexity(query):
    prompt = (
        f'Classify this query as SIMPLE or COMPLEX:\n'
        f'SIMPLE: factual, formatting, translation, short Q&A\n'
        f'COMPLEX: multi-step reasoning, analysis, code design, math\n\n'
        f'Query: {query}\n\n'
        f'Reply with only SIMPLE or COMPLEX.'
    )
    r = client.messages.create(
        model='claude-haiku-4-5',
        max_tokens=10,
        messages=[{'role': 'user', 'content': prompt}]
    )
    return r.content[0].text.strip()

def smart_query(query):
    complexity = classify_complexity(query)
    if complexity == 'SIMPLE':
        model, thinking = 'claude-haiku-4-5', None
    else:
        model = 'claude-opus-4-5'
        thinking = {'type': 'enabled', 'budget_tokens': 8000}

    kwargs = {'model': model, 'max_tokens': 2048, 'messages': [{'role': 'user', 'content': query}]}
    if thinking:
        kwargs['thinking'] = thinking
        kwargs['max_tokens'] = 10000

    r = client.messages.create(**kwargs)
    print(f'Used: {model} ({complexity})')
    return r.content[-1].text

Оценка пользы рассуждений

Не предполагайте, что рассуждение всегда помогает. Измеряйте это. Сравнивайте точность обычной модели и модели рассуждений на конкретном типе задач с помощью размеченного набора для оценки.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

def compare_models_on_task(task_examples, metric_fn):
    results = {'standard': [], 'reasoning': []}

    for ex in task_examples:
        # Standard model
        r_std = client.messages.create(
            model='claude-haiku-4-5',
            max_tokens=200,
            messages=[{'role': 'user', 'content': ex.question}]
        )
        results['standard'].append(
            metric_fn(ex.answer, r_std.content[0].text)
        )

        # Reasoning model
        r_rsn = client.messages.create(
            model='claude-opus-4-5',
            max_tokens=8000,
            thinking={'type': 'enabled', 'budget_tokens': 5000},
            messages=[{'role': 'user', 'content': ex.question}]
        )
        ans = next(b.text for b in r_rsn.content if b.type == 'text')
        results['reasoning'].append(metric_fn(ex.answer, ans))

    for model, scores in results.items():
        avg = sum(scores) / len(scores)
        print(f'{model}: {avg:.1%}')
    return results

Проверка знаний: маршрутизация задач

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

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

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

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

Урок «Когда использовать модели рассуждений, а когда стандартные» бесплатный?

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

Чему я научусь в уроке «Когда использовать модели рассуждений, а когда стандартные»?

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

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

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

Сколько времени занимает урок «Когда использовать модели рассуждений, а когда стандартные»?

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

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

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

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

  1. Чем отличаются модели рассуждений
  2. Эффективные запросы для расширенного мышления
  3. Когда использовать модели рассуждений, а когда стандартные
  4. Компромиссы между стоимостью и задержкой
← Назад к AI Prompt Engineering