Program of Thought
Код вместо текста
Проблема: ИИ часто ошибается в арифметике даже с Chain of Thought. Когда вычисления становятся сложными, как обеспечить точность?
Решение: Используй калькулятор, а не устный счёт
Program of Thought (PoT) заставляет ИИ писать код для решения вычислительных задач вместо попыток считать в уме. Это как использовать калькулятор вместо устного счёта — компьютер точно обрабатывает числа. Если Chain-of-Thought рассуждает текстом, то PoT рассуждает кодом для точных результатов.
Представьте это как калькулятор против устного счёта:
- 1. Читаем задачу: "Рассчитай сложный процент за 5 лет..."
- 2. Пишем код: Выражаем логику на Python/JavaScript
- 3. Выполняем: Запускаем код и получаем точный результат
- 4. Объясняем: Описываем, что делает код и какой ответ
Где это используется?
- Финансовые расчёты: Сложные проценты, платежи по кредиту, ROI
- Анализ данных: Статистические расчёты, агрегации
- Научные вычисления: Расчёты по физике, химии
- Математика дат: Дни между датами, конвертация часовых поясов
Интересный факт: Program of Thought достигает почти идеальной точности на математических текстовых задачах, где Chain of Thought даёт ~70%. Ключевое понимание: пусть ИИ делает то, в чём он хорош (логика), а компьютер — то, в чём хорош он (вычисления)!
Попробуйте сами!
Используй интерактивный пример ниже, чтобы увидеть, как генерация кода вместо прямых вычислений приводит к более точным результатам.
💻 Program of Thought — вместо текстовых рассуждений модель генерирует и выполняет код. Это устраняет ошибки вычислений и даёт точные результаты.
Если инвестировать $1000 под 5% годовых на 5 лет с ежегодной капитализацией, сколько получится?
⚠️ Неточный результат из-за округлений
Если инвестировать $1000 под 5% годовых на 5 лет с ежегодной капитализацией, сколько получится? Напиши Python код для решения этой задачи. Выведи результат.
LLM отлично генерируют код, но плохо считают в уме. Program of Thought использует сильную сторону модели (код) для компенсации слабой (арифметика). Код выполняется интерпретатором, который не ошибается.
Попробуй сам
Интерактивное демо этой техники
Вклад $10,000 под 5% годовых с ежемесячной капитализацией на 3 года. Какая итоговая сумма?
Используем формулу сложных процентов: A = P(1 + r/n)^(nt) A = 10000(1 + 0.05/12)^(12×3) A = 10000 × 1.004167^36 A ≈ $11,614.72
# Данные
principal = 10000 # начальная сумма
annual_rate = 0.05 # годовая ставка
compounds_per_year = 12 # капитализация в месяц
years = 3
# Формула сложных процентов
monthly_rate = annual_rate / compounds_per_year
total_periods = compounds_per_year * years
final_amount = principal * (1 + monthly_rate) ** total_periods
print(f"Итоговая сумма: ${final_amount:.2f}")
print(f"Заработано процентов: ${final_amount - principal:.2f}")
🖥️ ВЫПОЛНЕНИЕ: monthly_rate = 0.05 / 12 = 0.00416666... total_periods = 12 × 3 = 36 final_amount = 10000 × (1.00416666...)^36 final_amount = 10000 × 1.16161678... final_amount = 11616.17
✅ ТОЧНЫЙ ОТВЕТ: Итоговая сумма: 1,616.17
💡 Преимущество кода: точность до цента, нет ошибок округления при ручном расчёте.
Program of Thought даёт точный ответ ($11,616.17) против приблизительного ($11,614.72). Код устраняет ошибки округления.
Создайте бесплатный аккаунт для решения челленджей
3 челленджей с AI-проверкой для этого урока
Этот урок — часть структурированного курса по LLM.
Мой путь обучения