Chain-of-Thought Prompting
Промптинг с цепочкой рассуждений (CoT) предлагает языковой модели изложить промежуточные шаги рассуждения перед ответом, повышая точность решения многоэтапных задач.
Промптинг с цепочкой рассуждений (CoT) — это методика проектирования промптов, при которой большая языковая модель (LLM) записывает промежуточные шаги рассуждения перед тем, как дать окончательный ответ. Вместо того чтобы сразу ответить «9» на вопрос, модель пишет «23 - 20 = 3, а 3 + 6 = 9», а затем формулирует ответ. Джейсон Вэй и его коллеги из Google представили эту методику в статье 2022 года «Промптинг с цепочкой рассуждений побуждает большие языковые модели рассуждать». С восемью решенными примерами в промпте PaLM 540B повысила результат на GSM8K с 17,9% до 56,9%. Этот бенчмарк содержит текстовые задачи по математике для школьников; результат превзошел предыдущий лучший показатель — 55%, полученный с помощью дообученной GPT-3 и отдельно обученного проверяющего модуля.
Как работает промптинг с цепочкой рассуждений#
LLM генерирует текст по одному токену за раз, и каждый токен проходит через одно и то же фиксированное число слоев сети. Если ответ на вопрос зависит от нескольких шагов, модель должна выполнить всю эту работу до того, как выдаст первый токен ответа. Когда модель записывает шаги, каждый промежуточный результат попадает в контекстное окно и влияет на каждый последующий токен, поэтому для более сложных задач перед появлением ответа генерируется больше токенов, а значит, выполняется больше вычислений.
При CoT с несколькими примерами в промпт добавляют несколько образцов, каждый из которых содержит вопрос и пошаговое решение. Модель копирует этот формат при ответе на новый вопрос — это пример обучения на нескольких примерах непосредственно из промпта. Этот фрагмент из рисунка 1 статьи Вэя и его коллег демонстрирует формат. Первый ответ — пример, включенный в промпт, а второй — ответ модели:
Q: Roger has 5 tennis balls. He buys 2 more cans of tennis balls. Each can has 3 tennis balls. How many tennis balls does he have now?
A: Roger started with 5 balls. 2 cans of 3 tennis balls each is 6 tennis balls. 5 + 6 = 11. The answer is 11.
Q: The cafeteria had 23 apples. If they used 20 to make lunch and bought 6 more, how many apples do they have?
A: The cafeteria had 23 apples originally. They used 20 to make lunch. So they had 23 - 20 = 3. They bought 6 more apples, so they have 3 + 6 = 9. The answer is 9.Если сократить тот же пример до «Ответ — 11», модель ответила «Ответ — 27» на вопрос о столовой.
Для CoT с нулевым числом примеров образцы не нужны. Такэси Кодзима и его коллеги выяснили, что для запуска цепочки рассуждений достаточно добавить к вопросу фразу «Давай подумаем шаг за шагом»: на бенчмарке MultiArith она повысила точность zero-shot с 17,7% до 78,7%, а на GSM8K — с 10,4% до 40,7%, как сообщается в статье «Большие языковые модели умеют рассуждать без примеров».
Когда помогает цепочка рассуждений#
Эффект зависит от размера модели и задачи. Вэй и его коллеги описывают CoT как эмерджентную способность, возникающую при масштабировании: улучшения наблюдались только у моделей примерно со 100 миллиардами параметров, тогда как модели поменьше «выдавали связные, но нелогичные цепочки рассуждений» и показывали результаты хуже стандартного промптинга. Наибольший прирост наблюдался в задачах с несколькими шагами по арифметике, здравому смыслу и символьному рассуждению. На SingleOp — наборе арифметических задач с одним шагом — улучшение было отрицательным или очень небольшим.
Выборка нескольких цепочек дает лучший результат, чем выборка одной цепочки. При использовании самосогласованности Сюэчжи Ван и его коллеги генерируют разнообразные цепочки рассуждений, применяя сэмплирование по ядру или сэмплирование с температурой, и выбирают ответ, к которому приходит большинство цепочек; это повысило точность на GSM8K на 17,9 процентного пункта по сравнению с одной жадной цепочкой. Каждая дополнительная цепочка увеличивает число сгенерированных токенов, поэтому CoT и самосогласованность повышают точность ценой задержки инференса и затрат.
Визуально-языковые конвейеры применяют тот же подход к данным изображений. В агентах Ultralytics Platform блок LLM получает изображение вместе с результатами детекции YOLO26 из предыдущих этапов, поэтому промпт с цепочкой рассуждений может направить визуально-языковую модель на поочередный разбор обнаруженных объектов перед тем, как она вынесет вердикт о сцене.
Модели рассуждения и достоверность#
Модели рассуждения, например o1 от OpenAI, выпущенная в сентябре 2024 года, обучаются с помощью обучения с подкреплением выдавать длинную цепочку рассуждений перед каждым ответом, поэтому такое поведение больше не зависит от промпта. В рекомендациях OpenAI по моделям рассуждения разработчикам советуют не давать таким моделям инструкций «думай шаг за шагом»: подобные промпты могут не помочь, а иногда даже ухудшить результат.
Записанная цепочка выглядит как объяснение ответа, поэтому ее легко принять за объяснимый ИИ. Майлз Тёрпин и его коллеги показали, что цепочка может неверно представлять настоящую причину ответа, в статье «Языковые модели не всегда говорят, что думают»: когда примеры с несколькими вариантами ответа переставили так, чтобы правильным всегда был вариант «(A)», GPT-3.5 и Claude 1.0 стали чаще выбирать «(A)» и писали цепочки, обосновывающие выбор, не упоминая порядок вариантов. Такие смещающие признаки снижали точность вплоть до 36% на 13 задачах BIG-Bench Hard. Правдоподобные, но неверные цепочки — один из источников галлюцинаций в LLM.
Цепочка рассуждений и смежные методики#
- Цепочка промптов: разделяет задачу на несколько вызовов модели, а код передает выход каждого вызова в следующий промпт. CoT происходит внутри одного вызова.
- Дерево мыслей (ToT): На каждом шаге генерирует несколько возможных вариантов, оценивает их и исследует получившееся дерево с возвратом к предыдущим узлам, тогда как CoT следует по единственному пути.
- Промптинг ReAct: Чередует этапы рассуждения с действиями, например поиском или вызовами инструментов, и передаёт результаты обратно в цепочку.
- Цепочка проверки (CoVe): Предлагает модели подготовить ответ, задать себе вопросы для проверки, независимо ответить на них и доработать черновик.
- Латентное рассуждение: Выполняет промежуточные рассуждения в скрытых состояниях модели, а не в текстовых токенах, поэтому видимая цепочка рассуждений отсутствует.










