Метод «Цепочка рассуждений» (Chain of Thought, CoT)
Chain of Thought (CoT) — это техника подсказок, улучшающая способность языковых моделей (LLM) к логическим рассуждениям за счёт генерации промежуточных шагов. Это помогает модели давать более точные ответы. Её можно комбинировать с few-shot prompting (подсказками с примерами) для лучших результатов в сложных задачах, требующих логики перед ответом, так как zero-shot (без примеров) вариант цепочки рассуждений может быть сложным.
Преимущества CoT:
- Минимальные усилия, высокая эффективность — метод хорошо работает с готовыми LLM без необходимости дообучения.
- Интерпретируемость — можно анализировать ответы модели, отслеживая ход её мыслей. Если что-то пойдёт не так, ошибку будет легче выявить.
- Устойчивость — CoT улучшает согласованность работы разных версий LLM, то есть prompts с цепочками рассуждений меньше «дрейфуют» между моделями.
Конечно, есть и недостатки:
- Ответы с CoT содержат дополнительные шаги рассуждений, что увеличивает количество токенов в выводе — а значит, делает прогнозирование дороже и медленнее.
Пример без CoT (Таблица 11)
Промпт: | Когда мне было 3 года, мой партнёр был в 3 раза старше меня. Сейчас мне 20 лет. Сколько лет партнёру? |
Вывод модели: | 63 года |
Проверь свои знания в наших бесплатных тестах по ИИ! Пройди тест и узнай, насколько хорошо ты разбираешься в технологиях искусственного интеллекта!
Ошибка очевидна. LLM часто ошибаются в математических задачах, даже в простых (например, умножение чисел), так как они обучены на текстах, а не на строгих вычислениях.
Пример с CoT (Таблица 12)
Промпт: | Когда мне было 3 года, мой партнёр был в 3 раза старше меня. Сейчас мне 20 лет. Сколько лет партнёру? Давай рассуждать по шагам. |
Вывод модели: | Когда мне было 3 года, возраст партнёра: 3 * 3 = 9 лет. С тех пор прошло: 20 — 3 = 17 лет. Значит, возраст партнёра сейчас: 9 + 17 = 26 лет. |
Теперь ответ верный! Модель явно показала ход мыслей. Интересно, что она прибавила 17 лет, хотя можно было посчитать разницу возрастов (9 — 3 = 6) и добавить её к текущему возрасту: 20 + 6 = 26.
Few-shot CoT (Таблица 13)
Промпт с примером: | Вопрос: Когда моему брату было 2 года, я был вдвое старше. Сейчас мне 40. Сколько лет брату? Ответ: Когда брату было 2, мне было 2 * 2 = 4 года (разница: 2 года). Сейчас мне 40, значит, брату 40 — 2 = 38. Вопрос: Когда мне было 3 года, мой партнёр был в 3 раза старше. Сейчас мне 20. Сколько лет партнёру? |
Вывод модели: | Когда мне было 3, партнёру было 3 * 3 = 9 лет (разница: 6 лет). Сейчас мне 20, значит, партнёру 20 + 6 = 26. |
Применение CoT
Метод полезен для:
- Генерации кода — разбивка задачи на шаги и их отображение в код.
- Создания синтетических данных — например, описание продукта на основе названия «XYZ» с пояснением логики.
- Любых задач, решаемых через последовательные рассуждения.