Запит від найменшого до найбільшого (LtM) виводить CoT на вищу планку, спочатку розбиваючи проблему на підпроблеми, а потім розв’язуючи кожну. Це техніка, розроблена на основі реальних освітніх стратегій для дітей.
Як і з CoT, проблема, яку потрібно вирішити, розкладається на набір підпроблем, які будуються одна на одній. На другому кроці ці підпроблеми вирішуються одна за одною. Всупереч ланцюгу думок, рішення попередніх підпроблем підставляється в запит, який намагається розв'язати наступну проблему.
Діаграма запиту від найменшого до найбільшого
Поставмо дещо складне запитання про обслуговування клієнтів:
Нам це не вдалося (але ми встигаємо до терміну повернення), тому спробуймо розбити проблему на підпроблеми:
Спробуємо вирішити першу підпроблему:
Подолавши лише її, ми змогли повністю розв'язати проблему. Якби GPT-3 не відповів би одразу, ми могли б вирішити наступну підпроблему і так доти, доки він не надавав би відповідь. Зверніть увагу, що ми використовуємо Let's go step by step.
. Додавання цієї фрази не завжди є необхідним, але це допомагає для цього прикладу.
Спочатку LtM було запроваджено з використанням декількох запитів, а не чіткої інструкції розбити проблему на кілька кроків (як показано вище). Крім того, іноді це можна реалізувати за допомогою одного запиту, а не послідовності запитів. Розгляньмо проблему об’єднання останніх літер окремих слів (наприклад, задано cake, etymology
як вхідні слова, вихід має бути ey
).
Стандартний запит із прикладами на основі кількох ілюстрацій працює дуже погано, навіть із більш просунутою моделлю, такою як text-davinci-003.
Ланцюг думок працює значно краще, ніж стандартні запити. Це пов’язано з тим, що він дозволяє моделі самостійно вилучати останню літеру кожного слова, зменшуючи складність до операції групування літер, які вона збирала раніше. Однак це починає давати збій за більших розмірів.
Із запитом від найменшого до найбільшого ми розширюємо концепцію ланцюга думок, переформульовуючи окремі кроки, щоб повторити попередній зведений результат. Це спрощує кожен крок до об’єднання лише однієї нової літери. І забезпечує високу продуктивність для 12 і більше слів.
Цей підхід може здатися дуже схожим на ланцюг думок, але концептуально він сильно відрізняється. Тут на кожному кроці ми вводимо попереднє об'єднання. У випадку «think, machine, learning» замість об’єднання літер «k», «e», «g» окремо, він об’єднає «k» і «e», потім «ke» і «g». У результаті цього повторного введення попередньої роботи модель тепер може узагальнюватися на набагато довші ланцюги, оскільки вона переносить результат поступово, і їй потрібно виконувати лише невелику кількість роботи на кожному кроці.
У задачі на об’єднання останньої літери з 12 словами точність ланцюга думок становить 34%, а запиту Least to Most – 74% (у документі використовується text-davinci-002 як модель).
Бенчмарк SCAN вимагає, щоб модель перетворювала природну мову на послідовність дій. Наприклад, речення «бігти ліворуч і йти двічі» буде перекладено як «ПОВЕРНУТИ_ЛІВОРУЧ + БІГТИ + ЙТИ * 2». Мовні моделі працюють особливо погано, коли стикаються з послідовностями довшими, ніж у навчальному наборі.
Використовуючи прості стандартні запити, text-davinci-003 досягає вражаючих результатів, але все одно зазнає невдачі.
Тут ми працюємо з 2-ма різними запитами. Перший запит використовується, щоб звести задачу введення до простішої послідовності кроків. Другий запит — для зіставлення цієї спрощеної послідовності кроків з реальними діями.
Обидва досить довгі та використовують стиснуту нотацію python для дії, щоб заощадити токени.
Перший крок розбиває опис природної мови на простішу, але все ще схожу на людську. Це допоможе етапу зіставлення зрозуміти все послідовно. Наприклад, «стрибнути навколо ліворуч двічі» скорочується до «стрибнути ліворуч» -> TURN_LEFT + JUMP
і «стрибнути навколо ліворуч» -> (TURN_LEFT + JUMP) * 4
. Подібним чином крок скорочення використовується для пояснення поняття повторення (двічі, тричі тощо).
На другому кроці ми використовуємо результат скорочення та знову використовуємо досить довгий запит (14 випадків), щоб перевести скорочений опис природною мовою в послідовність дій.
Тут ми вводимо результат першого кроку:
«стрибнути навколо ліворуч двічі» можна вирішити за допомогою: «стрибнути ліворуч», «стрибнути навколо ліворуч», «стрибнути навколо ліворуч двічі». «йти навпроти ліворуч тричі» можна вирішити за допомогою: «йти навпроти ліворуч», «йти навпроти ліворуч тричі». Отже, «стрибнути навколо ліворуч двічі після йти навпроти ліворуч тричі» можна вирішити за допомогою: «стрибнути ліворуч», «стрибнути навколо ліворуч», «стрибнути навколо ліворуч двічі», «пройти навпроти ліворуч», «пройти протилежно навпроти ліворуч тричі»
у ВММ.
LtM сприяє кільком покращенням:
Стандартні запити за допомогою text-davinci-002 (модель, яка використовується в статті) призводять до 6% успішних розв’язаних проблем SCAN, тоді як запит LtM дає вражаючий показник успіху — 76%. Результати є більш значущими з code-davinci-002, де запит від найменшого до найбільшого досягає 99,7% успіху.
Zhou, D., Schärli, N., Hou, L., Wei, J., Scales, N., Wang, X., Schuurmans, D., Cui, C., Bousquet, O., Le, Q., & Chi, E. (2022). Least-to-Most Prompting Enables Complex Reasoning in Large Language Models. ↩
Wei, J., Wang, X., Schuurmans, D., Bosma, M., Ichter, B., Xia, F., Chi, E., Le, Q., & Zhou, D. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models. ↩
Lake, B. M., & Baroni, M. (2018). Generalization without Systematicity: On the Compositional Skills of Sequence-to-Sequence Recurrent Networks. https://doi.org/10.48550/arXiv.1711.00350 ↩ ↩2