Self-Consistency

"Self-Consistency" переводится дословно на русский как "Самосогласованность"

Одним из более продвинутых техник промпт-инжиниринга является метод самосогласованности. Предложенный в Wang et al. (2022), техника самосогласованности стремится "заменить простую жадную декодировку, используемую в методе few-shot CoT". Идея заключается в выборе нескольких различных вариантов ответа через метод few-shot CoT, а затем использование процесса генерации для выбора наиболее подходящего и логичного ответа. Это помогает улучшить производительность CoT-метода в задачах, связанных с арифметикой и логикой.

Давайте попробуем следующий пример для арифметического рассуждения:

Промпт:

Когда мне было 6 лет, моя сестра была в два раза моложе меня. Сейчас мне 70 лет. Сколько лет моей сестре?

Результат:

35

Ответ неверный! Как можно улучшить результат с помощью метода самосогласованности? Давайте попробуем. Мы будем использовать примеры с малым количеством данных из работы Wang et al. (2022) (Таблица 17):

Промпт:

Вопрос: В роще есть 15 деревьев. Сегодня работники рощи будут сажать деревья в роще. После того, как они закончат, в роще будет 21 дерево. Сколько деревьев посадили сегодня работники рощи? Ответ: Мы начинаем с 15 деревьев. Позже у нас будет 21 дерево. Разница должна быть в количестве посаженных деревьев. Таким образом, они должны были посадить 21 - 15 = 6 деревьев. Ответ: 6. Вопрос: Если на стоянке 3 автомобиля, а приехало еще 2 автомобиля, то сколько автомобилей находится на стоянке? Ответ: На стоянке уже стоят 3 машины. Прибывают еще 2. Теперь там 3 + 2 = 5 машин. Ответ: 5. Вопрос: У Лии было 32 шоколадки, а у ее сестры - 42. Если они съели по 35, то сколько кусочков у них осталось в общей сложности? Ответ: У Лии было 32 шоколадки, а у ее сестры - 42. Это означает, что первоначально было 32 + 42 = 74 шоколадок. 35 конфет было съедено. Значит, всего у них осталось 74 - 35 = 39 шоколадок. Ответ: 39. Вопрос: У Джейсона было 20 леденцов. Он дал Денни несколько леденцов. Теперь у Джейсона 12 леденцов. Сколько леденцов Джейсон отдал Денни? Ответ: У Джейсона было 20 леденцов. Поскольку теперь у него только 12, он должен был отдать остальные Денни. Количество леденцов леденцов, которые он отдал Денни, должно быть 20 - 12 = 8 леденцов. Ответ: 8. Вопрос: У Шона есть пять игрушек. На Рождество он получил по две игрушки от мамы и папы. Сколько игрушек у него сейчас у него сейчас? Ответ: У него 5 игрушек. Две он получил от мамы, так что после этого у него стало 5 + 2 = 7 игрушек. Затем он получил еще 2 игрушки от папы, так что всего у него 7 + 2 = 9 игрушек. Ответ: 9. Вопрос: В серверной комнате было девять компьютеров. Каждый день с понедельника по четверг устанавливались еще пять компьютеров. Сколько компьютеров сейчас находится в серверной комнате? Ответ: Существует 4 дня с понедельника по четверг. В каждый день добавлялось по 5 компьютеров. Это означает, что в общей сложности 4 * 5 = 20 компьютеров. Вначале было 9 компьютеров, теперь их 9 + 20 = 29. Ответ: 29. Вопрос: У Майкла было 58 мячей для гольфа. Во вторник он потерял 23 мяча для гольфа. В среду он потерял еще 2 мяча. Сколько мячей для гольфа у него было в конце среды? Ответ: Изначально у Майкла было 58 мячей. Во вторник он потерял 23 мяча, поэтому после этого у него осталось 58 - 23 = 35 мячей. В среду он потерял еще 2 мяча, поэтому теперь у него осталось 35 - 2 = 33 мяча. Ответ: 33. Вопрос: У Оливии есть $23. Она купила пять бубликов по $3 каждый. Сколько денег у нее осталось? Ответ: Она купила 5 бубликов по $3 каждый. Это означает, что она потратила 5 * 3 = $15. Остаток денег у неё составляет $23 - $15 = $8. Вопрос: Когда мне было 6 лет, моя сестра была в два раза моложе меня. Сейчас мне 70 лет. Сколько лет моей сестре? Ответ:

Результат 1:

Когда мне было 6 лет, моя сестра была вдвое моложе меня, так что ей было 3 года. Сейчас мне 70 лет, поэтому ей 70 - 3 = 67 лет. Ответ: 67.

Результат 2:

Когда рассказчику было 6 лет, его сестра была вдвое моложе его, т.е. 3. Теперь, когда рассказчику 70 лет, его сестре было бы 70 - 3 = 67 лет. Ответ: 67.

Результат 3:

Когда мне было 6 лет, моя сестра была вдвое моложе меня, значит ей было 3 года. Сейчас мне 70 лет, так что ей 70/2 = 35 лет. Ответ: 35.

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

Last updated