Эта статья действительно является подсказкой по расшифровке! Мы обсудим, как писать слова-подсказки для цепочки мыслей и как писать более сложные слова. COT на самом деле является базовой логикой решений по вызову инструментов, использующих большие модели, такие как Self-ASK и ReACT. Поэтому перед главой о вызове агента у нас будет две главы, чтобы поговорить о цепочке мыслей.
Давайте сначала примем меры предосторожности. Текущие исследования COT содержат некоторые метафизические элементы. Некоторые исследования COT используют модели, которые не являются моделями SOTA, и один и тот же шаблон COT не может быть перенесен между разными моделями, и эффект COT не так хорош, как COT. сама модель сильная корреляция, эта глава просто дает вам некоторые идеи для проектирования цепочки мышления.
Суть цепочки мыслей заключается в улучшении способности модели решать сложные задачи рассуждения, включая, помимо прочего, символические рассуждения, математические задачи, планирование решений и т. д. Цепочка мыслей позволяет модели моделировать процесс человеческого мышления. мышление и рассуждения для создания промежуточных действий перед получением результатов. Применимо к следующим сценариям
Chain of Thought Prompting Elicits Reasoning in Large Language Models
Первая глава, естественно, представляет собой знаменитую работу Маленького принца COT, а также новаторскую работу COT. Если судить по количеству цитирований, она уже не имеет аналогов.
В основе статьи лежит схема с несколькими выстрелами.,Направлять процесс промежуточного рассуждения при создании модели.,и в конечном итоге улучшить способность модели решать сложные проблемы。Основная логика оченьSimple\&Naive
Давайте сначала посмотрим на эффект. См. рисунок выше. Вы можете получить несколько идей.
Давайте интуитивно рассмотрим конструкцию шаблона COT из нескольких фрагментов и ее влияние на декодирование. Здесь мы используем образец математической инструкции COT Белль для выборки 10, чтобы построить набор инструкций цепочки мышления, состоящих из нескольких шагов, следующим образом:
Чтобы проверить ваши математические способности, давайте возьмем классическую задачу о столкновении автомобилей на олимпиаде начальной школы. Задача состоит в том, что две машины одновременно выехали из двух городов, находящихся на расстоянии 500 километров друг от друга, навстречу друг другу. Мотоцикл продолжает общаться между двумя автомобилями на скорости 80 километров в час. Известно, что скорости двух автомобилей равны 40 км/ч и 60 км/ч соответственно. Сколько километров проехал мотоцикл в момент встречи двух автомобилей? Вопрос не сложный 500/(40+60)*80=400 километров.
В следующем примере используются ChatGPT и ChatGLM для декодирования в режиме жадного поиска, соответственно задавая вопросы напрямую и добавляя несколько шагов перед тем, как задавать вопросы.
prompt | chatgpt | chatglm-6b |
---|---|---|
прямой вопрос | Предположим, что время встречи двух автомобилей равно $t$ часов, тогда расстояние до встречи двух автомобилей равно $(40+60)t=100t$ километров. Мотоцикл продолжает двигаться вперед и назад в течение этих $t$ часов, что эквивалентно проезду $2\x 80t=160t$ километров туда и обратно между двумя автомобилями. Таким образом, мотоцикл проехал в общей сложности 160 тысяч километров. По смыслу вопроса расстояние до встречи двух автомобилей равно 500 километрам, поэтому $t=\frac{500}{100}=5$ часов. Можно обнаружить, что мотоцикл проехал в общей сложности $160\x5=\boxed{800}$ километров. | Предположим, что мотоцикл проехал $x$ часов, когда две машины встретились. По смыслу вопроса два автомобиля движутся навстречу друг другу, и их относительная скорость равна $40+60=100$ километров/час. Следовательно, когда две машины встречаются, сумма пройденных ими расстояний равна: $500\times(100+40)=50000$ Поскольку в момент встречи двух машин мотоцикл ехал, расстояние, пройденное мотоциклом, равно расстояние, пройденное мотоциклом при встрече двух автомобилей. Сумма пройденного расстояния: $x\times80=50000$. Решение: $x=4000$. Следовательно, когда две машины встретились, мотоцикл проехал в общей сложности $4000$. километров. |
few-shot COT | Предположим, что мотоцикл проехал в общей сложности x километров, тогда при встрече двух автомобилей количество поездок туда и обратно составит x/500. За каждый рейс туда и обратно расстояние, пройденное мотоциклом, составляет 80 километров, поэтому общее расстояние, пройденное мотоциклом, равно: x = (80 километров) × (x/500) = 0,16x километров. Когда встречаются два автомобиля, они получают общее расстояние. составляет 500 километров, поэтому время, необходимое для их встречи, равно: t = 500 километров/(40 километров/час + 60 километров/час) = 5 часов. В зависимости от скорости и времени движения мотоцикла получим: x. = 80 км/ч × 5 часов = 400 км. Таким образом, мотоцикл проехал всего 400 км. | Предположим, что мотоцикл проехал $x$ часов, когда две машины встретились. Из смысла вопроса видно, что когда две машины встретились, они уже проехали 500 километров, поэтому имеем: $40x + 60x = 500$. Решение $x=50/9$, т. е. когда две машины встретились, мотоцикл проехал 50/9 часов. Следовательно, мотоцикл проехал в общей сложности: $80\раз (50/9) = 400$. |
После присоединения к COT и Chatgpt, и Chatglm ответили правильно. Хотя здесь была удача, процесс рассуждения казался немного замедленным. Но вы обнаружите, что без добавления модели COT с несколькими кадрами она все равно будет выполнять вывод и затем давать ответ вместо модели, приведенной в статье, которая дает ответ напрямую, без каких-либо рассуждений. Причина в том, что в статье используется text-davinci-002, старая версия модели, не проходившая RLHF. Мы также протестировали некоторые вопросы с несколькими вариантами ответов, требующие рассуждения. Независимо от того, используем ли мы COT с несколькими предложениями или добавляем примеры инструкций COT для точной настройки, это действительно может в определенной степени улучшить наши рассуждения/математические способности.
В документе также были проведены некоторые эксперименты по абляции, в том числе
В статье была опробована часть с несколькими выстрелами, и только добавление формул не смогло существенно улучшить эффект. Лично я считаю, что этот эксперимент по абляции не очень завершен.,Потому что многие сложные модели проблем MWP трудно сопоставить с одной формулой.,Сначала разложите задачу, а затем постепенно отобразите ее в промежуточную формулу.,В нашем сценарии эффект можно улучшить。Вот два рекомендуемых набора данных:APE210KиMath23K分别да猿辅导и腾讯开源的数学世界问题转化成公式的数据集,Вы можете попробовать это сами
В статье опробован шаблон подсказки, который сначала дает ответы, а затем делает выводы, и обнаружил, что эффект был значительно хуже. Это показывает, что COT с несколькими выстрелами активирует модель только для получения вывода, а сам процесс вывода является основой улучшения эффекта модели. Мы также обнаружили, что в некоторых вопросах с несколькими вариантами ответов, требующих рассуждения, сначала рассуждение, а затем ответ на варианты, значительно более эффективно, чем сначала ответить на варианты, а затем приводить процесс рассуждения.
Large Language Models are Zero-Shot Reasoners
В дополнение к использованию образцов Few-shot-COT, позволяющих модели обеспечить процесс рассуждения, простое использование инструкций также может позволить модели обеспечить цепочку мышления, что может еще больше улучшить способность модели к рассуждению для сложных проблем. Самая эффективная команда для активации цепочки мышления в статье — «Давайте думать шаг за шагом», ха-ха-ха. Когда я увидел эту часть статьи, у меня возникло ощущение, будто воздух застыл.
Zero-shot-COT требует двух этапов декодирования в статье. Первый шаг — использовать «Давайте подумаем шаг за шагом», чтобы позволить модели представить процесс рассуждения. Второй шаг — ввести в модель процесс рассуждения и вопрос. пусть модель даст результат. Но при реальном использовании вы обнаружите, что в основном модель декодирования первого шага дает результат в конце вывода, и если входные данные с результатом вводятся в модель, существует высокая вероятность того, что модель второго шага будет дайте тот же ответ, поэтому на самом деле COT с нулевым выстрелом также можно выполнить за один шаг.
Наше основное внимание сосредоточено на вопросе о встрече, или о встрече мотоцикла и грузовика. Давайте зададим его еще раз, используя несколько разных наборов активирующих слов.
слово активации | chatgpt | chatglm |
---|---|---|
Пожалуйста, используйте пошаговые рассуждения и анализ для решения следующих задач. | Предположим, что время встречи двух автомобилей равно t часов, тогда расстояние до встречи двух автомобилей равно (40+60)t=100t километров. Поскольку два автомобиля движутся навстречу друг другу, их относительная скорость равна 40+60=100 км/ч. Следовательно, расстояние туда и обратно мотоцикла за t часов составит 2×80t=160t километров. По смыслу вопроса мотоцикл остановился при встрече двух автомобилей, следовательно, общий пройденный мотоциклом путь составил 160т километров. Объединив два приведенных выше уравнения, мы получаем t=2,5 часа. Следовательно, общий пробег мотоцикла составит 160×2,5=400 километров. | Предположим, что мотоцикл проехал $x$ часов, когда две машины встретились. По смыслу вопроса два автомобиля движутся навстречу друг другу, и их относительная скорость равна $40+60=100$ километров/час. Следовательно, при встрече двух автомобилей расстояние между ними составляет $500-x$ километров. Согласно вопросу, мотоцикл движется вперед и назад между двумя автомобилями со скоростью $80$ километров в час. Следовательно, каждый раз, когда мотоцикл проедет $x$ часов, он проедет $80x$ километров, когда две машины встретятся. Следовательно, уравнение можно записать: $80x = 500-x$ Решая уравнение получаем: $x = 50$ Следовательно, когда две машины встретились, мотоцикл проехал в общей сложности $80x=3000$ километров. |
Пожалуйста, ответьте на вопрос поэтапно | настраивать Когда встречаются две машинымеждуtЧас,Тогда расстояние встречи двух автомобилей будет (40+60)t=100ткм по смыслу вопроса.,Мотоцикл продолжает двигаться вперед и назад между двумя автомобилями со скоростью 80 км/ч.,Следовательно, расстояние туда и обратно, пройденное мотоциклом за t часов, равно 2×80×t=160 ткм.,Мотоцикл проехал в общей сложности 160ткм. Приравняем два уравнения.,Получить: 100t=500t=5это,Когда встречаются две машины,Мотоциклы ехали вместе160×5=<<160*5=800>>800км. | Предположим, что мотоцикл проехал $x$ часов, когда две машины встретились. По смыслу вопроса две машины движутся навстречу друг другу, поэтому время их встречи можно рассчитать по следующему уравнению: $t = \frac{500}{40 + 60} = 10$ Поскольку мотоцикл имеет ехал, когда две машины встретились, поэтому время в пути на мотоцикле также составит $x$ часов. По смыслу вопроса скорость мотоцикла равна $80$ километров в час, поэтому расстояние, пройденное мотоциклом, можно рассчитать по следующему уравнению: $x \times 80 = 500 - t$ Подставив значение $ t$ в приведенное выше уравнение, мы получаем: $x \times 80 = 500 - 10 = 490$. Таким образом, когда две машины встретились, мотоцикл проехал в общей сложности 490$ километров. |
Существует 2 набора слов-подсказок, и только первый набор позволил чату дать правильный ответ. В целом, эффект слов-подсказок очень метафизический. Мы пробовали много разных решений для разных вопросов, таких как множественный выбор и математические вычисления. , но ничего не найдено. Автор статьи также попробовал разные слова инструкций, чтобы проверить степень зависимости нулевого выстрела-COT от слов инструкций, как показано в таблице ниже. В целом, пока слова инструкции имеют смысл, направляя модель на пошаговые рассуждения, эффект модели будет улучшаться. Лично я только видел это и чувствовал, что COT с нулевым выстрелом действительно может быть разумным, потому что приведенная выше семантика, обеспечиваемая инструкциями, действительно имеет определенную корреляцию с семантикой декодирования модельных рассуждений.
С точки зрения эффекта в статье он сравнивается с алгоритмом с несколькими выстрелами на MultiArith и GSM8k. В целом он немного хуже, чем с несколькими выстрелами, но значительно превосходит базовый уровень, в котором используются только инструкции. Однако следует отметить, что оценочной моделью здесь по-прежнему является text-davinci-002. Это версия, которая не прошла через RLHF и сделана только SFT. Таким образом, эффект улучшения следующий. картинка будет значимой, когда ее поставят на скидку GPT4. В конце концов, точность GPT-4 при использовании COT с несколькими выстрелами на GSM8k достигла 90%+. Что касается размера модели, COT с нулевым выстрелом также имеет эффект масштаба, и только на больших моделях он демонстрирует эффекты, выходящие за рамки обычных инструкций.
Независимо от вышеупомянутого COT с несколькими или нулевыми шагами, процесс рассуждения по-прежнему основан на самой модели, и люди не будут слишком сильно вмешиваться в процесс рассуждения. При расширенном использовании в процессе рассуждения будет производиться дальнейшее ручное вмешательство для управления этапами декодирования и дальнейшего повышения точности декодирования, а следующие расширенные решения могут использоваться в комбинации.
SELF-CONSISTENCY IMPROVES CHAIN OF THOUGHT REASONING IN LANGUAGE MODELS
Самосогласованность — это стратегия декодирования, которая использует Ensemble вместо жадного поиска на основе нескольких шагов для повышения точности декодирования. В статье показано, что добавление самосогласованности может еще больше улучшить эффект мыслительной цепочки GSM8K (+17,9%). ).
При использовании больших моделей для ответа на фиксированные вопросы, такие как вопросы с множественным выбором и математические вопросы, мы часто используем жадный поиск для декодирования, чтобы гарантировать, что декодирование модели дает фиксированные результаты. В противном случае используется случайное декодирование. Модель выбрала ABCD. один раз, так модель ответила на этот вопрос правильно или неправильно? ? Однако локальная оптимальная схема декодирования, которая выбирает верхний токен на каждом этапе, очевидно, не является глобальной оптимальной. Самосогласованность на самом деле обеспечивает неконтролируемую схему ансамбля для «голосования» за множественные ответы, генерируемые случайным декодированием модели. более точный ответ, как показано ниже
Основное предположение о самосогласованности очень гуманно: разные люди будут предлагать разные решения одной и той же проблемы, но правильные решения приведут к одному и тому же правильному ответу разными путями. Используя эту модель аналогии для декодирования, различные случайные декодирования одного и того же вопроса приведут к разным процессам рассуждения в цепочке мышления. Ответ с наибольшей ожидаемой вероятностью будет иметь наибольшую точность. Затем ядром становится то, как агрегировать ответы для нескольких выходных данных декодирования. В статье сравниваются следующие варианты
Дана командная строка и вопрос-вопрос,Модель генерирует наборa_1,a_2,...a_m Ответить кандидатам,И соответствующий путь цепочки мышленияr_1,r_2,...r_m . Две схемы агрегирования с лучшими результатами:
Некоторые тесты были также проведены на бумаге с параметрами декодирования.
LEAST-TO-MOST PROMPTING ENABLES COMPLEX REASONING IN LARGE LANGUAGE MODELS
Если вышеописанная Самосогласованность несколько жестока и творит чудеса, то От Наименее к Наибольшему, очевидно, более элегантен. Идея очень проста. При решении сложных задач первый шаг — помочь модели разделить проблему на подвопросы, второй шаг — ответить на подвопросы один за другим и использовать ответы на подвопросы; вопросы в качестве ответа на следующий вопрос до тех пор, пока не будет дан окончательный ответ. Ответ фокусируется на пошаговом решении проблемы. Это также можно понимать как использование нескольких шагов, чтобы помочь модели дать более разумные и последовательные идеи рассуждения, а затем решить проблему на основе этой идеи.
Идея дизайна очень хорошая,Но больше всего меня интересует, как написать COT с несколькими кадрами.,Только таким образом можно обеспечить разумную оптимизацию модели для различных сценариев. Здесь мы еще рассмотрим, как построить несколько выстрелов для математических задач.,в газетеfew-shot-promptдаПолностью рукописный и произведенный,Здесь я использую Chatgpt для генерации, а затем вручную настраиваю. Случайно выбранные 3 вопроса от APE21K,Будьте осторожны, не будьте слишком простыми,Уже есть документы, подтверждающие,Чем больше шагов вывода для выборок COT с несколькими выстрелами, тем лучше эффект. Подсказка (не настроенная) для моего разбора задачи здесь: «Решение задач для следующих математических задач».ы, разделенные на несколько необходимых промежуточных шагов решения проблемы и заданные соответствующие вопросы, Вопрос: ", чтобы позволить ChatGPT генерировать промежуточные шаги решения проблем в виде шаблона с несколькими выстрелами.
По-прежнему возникает та же проблема, через подсказку «Уменьшить», вывод ChatGPT: сколько километров проехал мотоцикл в общей сложности? Нам необходимо ответить на следующие вопросы: «Сколько времени встретится две машины?», «Сколько километров проехал мотоцикл за это время?»
Приведенный выше анализ проблемы не очень стабилен. Иногда он включает в себя финальную задачу, а иногда только промежуточные этапы решения проблемы. На всякий случай вы можете добавить исходную задачу после анализируемой проблемы.
Разберите подвопросы шага «Сокращение», введите «chatgpt» по порядку и сначала ответьте на первый подвопрос.
Затем соедините первый подвопрос и ответ, как указано выше. Здесь вы также можете использовать историю разговора. Объединение предназначено только для визуального отображения.
Самое важное в методе Least-to-Most — это идея разделения проблем, которая широко использовалась в будущем. Например, как разделить каждый этап вызова агента и как сначала подумать, а затем сгенерировать. Следующее действие В этих решениях Вы можете увидеть тень от наименьшего к большинству.
Если вы хотите увидеть более полный обзор статей, связанных с большими моделями, данными и платформами точной настройки и предварительного обучения, а также приложениями AIGC, перейдите на Github. >> DecryptPropmt