Приглашаем вас подписаться на официальную учетную запись OpenMMLab в Твиттере, чтобы быть в курсе наших последних новостей.

С запуском ChatGPT модели больших языков (LLM) привлекли значительное внимание в области искусственного интеллекта. Однако, несмотря на свои впечатляющие возможности, студенты LLM по-прежнему сталкиваются с серьезными проблемами при решении сложных многоэтапных задач рассуждения, таких как математические приложения и рассуждения на основе здравого смысла. Это привело к включению более сложных наборов данных для рассуждений, таких как GSM8k и MATH, в оценки больших моделей.

Чтобы устранить недостатки LLM в сложных рассуждениях, исследователи активно разрабатывают инновационные методы. Среди этих попыток особое внимание привлекла техника «подсказки по цепочке мыслей». Этот подход направлен на то, чтобы помочь модели разбить сложные многоэтапные проблемы на более управляемые промежуточные этапы, помогая модели лучше понимать и точно решать проблемы. Практические результаты показали значительный прогресс в различных задачах рассуждения, особенно в арифметических рассуждениях, благодаря применению подсказок по цепочке мыслей.

Что такое цепочка мыслей?

Представьте себе сценарий, в котором учитель предлагает ученику по имени Том сложную задачу на мышление и рассуждение: "In a cage on a farm, there are a total of chickens and rabbits, totaling 36 animals. The total number of legs is 100. Determine how many chickens and rabbits there are." Предположим, у Тома нет бумаги и ручки, и он должен дать ответ напрямую. Он пытается: "There are 20 chickens and 16 rabbits." ❌ К сожалению, в его мысленных расчетах допущена ошибка.

Учитель дает Тому второй шанс, позволяя ему шаг за шагом решить задачу, используя бумагу и ручку. Том записывает промежуточные шаги:

Let x be the number of chickens, and y be the number of rabbits.
x + y = 36 (total number of animals is 36)
2x + 4y = 100 (total number of legs is 100)
Solve the first equation for one variable, for example, x = 36 - y.
Substitute the value of x into the second equation:
2(36 - y) + 4y = 100
72 - 2y + 4y = 100
2y = 28
y = 14
Substitute the value of y back into the first equation to find x:
x = 36 - 14
x = 22
Hence, the answer is:
There are 22 chickens and 14 rabbits. ✅

Посредством пошаговых рассуждений Том успешно приходит к правильному ответу и заслужил одобрение учителя:

Аналогично, при использовании больших языковых моделей вы можете подсказывать их шаг за шагом, точно так же, как учитель помогал Тому, направляя модель для решения сложных задач. В этом суть самой ранней цепочки мыслей: цепочки мыслей с несколькими выстрелами. Он включает в себя подсказку модели с помощью примера из нескольких кадров, который включает промежуточные этапы рассуждения перед ответом. Например:

Few-Shot CoT: раскрытие цепочки мыслей

Цепочка мыслей вызывает рассуждения в больших языковых моделях.

Ранняя версия «Цепочки мыслей» подходит для подсказок «Несколько кадров». По сравнению со стандартными подсказками «Несколько шагов» подсказки «Цепочка размышлений Несколько шагов» перед ответом добавляют только этапы рассуждения. Например, исходное приглашение может выглядеть так:

Пример задачи + ответ + реальная проблема

Входные данные модели непосредственно дают ответ на задачу. С добавлением цепочки мыслей в подсказку она становится такой:

Пример задачи + Примеры рассуждений + Ответ + Реальная задача

Примеры рассуждений — это цепочка мыслей, используемая для решения исходной задачи. Это помогает модели генерировать промежуточные шаги перед выводом ответа, разбивая исходную проблему на несколько подзадач и помогая модели «думать». Этот метод не только значительно улучшает способность модели к рассуждениям, не требуя ее модификаций, но также дает немедленные результаты. В наборе данных PaLM-540B использование цепочки мыслей позволило добиться почти трехкратного улучшения по сравнению с традиционным методом повышения производительности модели за счет точной настройки. Цепочку мыслей можно рассматривать как открытие новых возможностей для улучшения рассуждений на больших моделях.

Итак, есть ли более простые способы реализации цепочки мыслей и существует ли версия реализации цепочки мыслей с нулевым выстрелом? Действительно, есть.

Zero-Shot CoT: простой, но эффективный

Большие языковые модели — бесполезные рассуждения

Пожалуй, самый простой метод CoT:

Вы можете легко реализовать подсказку Zero-Shot CoT, просто добавив после вопроса «Давайте подумаем шаг за шагом». Это легко реализует нулевую цепочку мыслей, не требуя дополнительных образцов. Он четко инструктирует модель продумывать проблему шаг за шагом, расширяя ее возможности решения проблем:

Это простой и эффективный способ улучшить способности модели к рассуждению, похожий на то, как учитель помогал Тому, разбирая и решая задачу шаг за шагом. При использовании больших моделей этот подход служит инструментом, побуждающим модель разложиться и ответить на сложные вопросы.

Для одного и того же набора данных MultiArith авторы экспериментировали с различными похожими подсказками, демонстрируя разные эффекты.

Таким образом, на практике при использовании подхода Zero-Shot CoT для задач рассуждения важно экспериментировать с различными подсказками, адаптированными к характеристикам набора данных.

Самосогласованность (SC): многопутевое рассуждение + механизм голосования

Самосогласованность улучшает цепочку рассуждений в языковых моделях. Метод SC, разработанный командой Google Brain, повышает точность рассуждений за счет создания нескольких различных путей рассуждения для заданной проблемы. и голосование за наиболее частый ответ среди этих путей.

В методе SC для одной проблемы генерируются несколько результатов CoT. Это эквивалентно тому, что модель несколько раз генерирует шаги рассуждения и ответы. Окончательный ответ получается путем голосования большинством голосов. Например, если k = 3, сгенерированные пути и ответы могут быть 18, 18 и 26. Если взять большинство, получится 18.

Этот метод превосходно справляется со сложными логическими задачами; однако по сравнению с обычным подходом CoT он требует больше времени и ресурсов. Означает ли это, что чем больше образцов будет взято, тем лучше эффект?

Согласно экспериментальным результатам, приведенным в статье, улучшение производительности метода SC начинает выходить на плато, когда количество выборок «k» колеблется от 20 до 40 в различных наборах данных для рассуждений. В большинстве случаев наборы данных имеют тенденцию насыщаться примерно до 40 образцов. Однако проведение 40 проб требует значительных затрат ресурсов. Поэтому при использовании метода SC важно выбрать подходящее количество выборок, исходя из конкретных потребностей и доступных ресурсов. Это обеспечивает баланс между усилением эффекта и использованием ресурсов.

Дерево мыслей (ToT): многомерное мышление для комплексного решения проблем

Древо мыслей: целенаправленное решение проблем с помощью больших языковых моделей

Метод ToT отличается от традиционных подходов CoT. Это позволяет моделям одновременно рассматривать несколько разных путей рассуждения. Он включает в себя оценку нескольких сегментов процессов рассуждения и принятие глобального выбора посредством предвидения или возврата, когда это необходимо. В результате формируется древовидная структура рассуждений, как показано в правой части следующей диаграммы:

В частности, он включает в себя следующие четыре этапа:

  1. Декомпозиция мысли В зависимости от характера проблемы проблема разбивается на несколько промежуточных этапов. Каждый шаг может представлять собой фразу, уравнение или план письма, в зависимости от характеристик задачи.
  2. Генерация мыслей. Предполагая, что решение проблемы требует «k» шагов, существует два метода генерации содержания рассуждений для каждого шага:

Независимая выборка: для каждого состояния модель независимо извлекает содержимое рассуждений «k» из подсказок CoT, не полагаясь на другое содержимое рассуждений.

Последовательная генерация: последовательное использование подсказок для пошагового создания содержания рассуждений, при этом каждое содержание рассуждений может зависеть от предыдущего.

3. Эвристическая оценка Эвристические методы используются для оценки вклада каждого сгенерированного содержания рассуждений в решение проблем. Эта самооценка основана на обратной связи языковой модели, достигаемой путем разработки подсказок, которые позволяют модели оценивать несколько сгенерированных результатов.

4. Алгоритм поиска На основе методов генерации и оценки содержания рассуждений выбирается соответствующий алгоритм поиска. Например, поиск в ширину (BFS) или поиск в глубину (DFS) можно использовать для систематического исследования дерева мыслей, включая предвидение и возврат.

На примере игры «24», где задача состоит в том, чтобы определить, можно ли объединить четыре заданных целочисленных значения с помощью операций +, -, × и ÷, чтобы получить результат 24, метод ToT можно применить следующим образом:

  1. Его можно разделить на три этапа, каждый из которых представляет собой промежуточное уравнение. Например, учитывая числа 4 9 10 13, следующие три шага решают проблему:

13 - 9 = 4 (left: 4 4 10);

10 - 4 = 6 (left: 4 6);

4 * 6 = 24 (left: 24)

2. На каждом этапе используется процесс генерации нескольких кандидатов с использованием метода подсказки с несколькими выстрелами (как показано в (a) ниже).

3. Для каждого кандидата на каждом этапе используется процесс, описанный в (b), для оценки кандидатов с использованием модели. Это включает в себя оценку того, могут ли оставшиеся числа 10, 13 и 13 дать возможный результат в 24 очкаImpossible. Следующий шаг начинается с кандидатов, набравших более высокие баллы.

4. Шаги 2 и 3 выполняются для каждого шага для создания промежуточных уравнений и выполнения оценок.

5. Поиск в ширину (BFS) проводится для выборки возможных путей решения (показаны зеленым).

Что касается эффективности ToT, на примере 24-Game при использовании модели GPT-4 в качестве базовой модели производительность ToT значительно превосходит общие методы CoT. В этом сценарии SC и Few-Shot CoT достигают точности менее 10 % при выполнении задачи, тогда как ToT достигает точности 74 %:

Однако с точки зрения удобства использования задачи использование метода ToT требует знания задачи и умения разбить ее на логические и выполнимые шаги. Более того, это требует разработки соответствующих методов генерации и оценки для каждого этапа задачи. Наконец, методы DFS или BFS используются для выборки решений. Кроме того, крайне важно четко понимать, как следовать подсказкам базовой модели, очень похожей на модель GPT-4, используемую авторами статьи. Если вы сможете удовлетворить эти требования, ToT может стать мощным инструментом для решения сложных проблем.

Сделайте свою модель еще сильнее

OpenCompass — это комплексная платформа для оценки больших моделей, созданная Шанхайской лабораторией искусственного интеллекта. OpenCompass в настоящее время поддерживает ряд методов CoT (цепочки мыслей), включая упомянутые ранее, от Zero-Shot CoT до Дерева мыслей.

Используя обширные возможности оценки OpenCompass, вы можете легко проводить разнообразные оценки CoT по более чем 300 000 вопросов из более чем 50 наборов данных для более чем 20 крупных моделей с открытым исходным кодом и моделей OpenAI API. Ниже приведен пример тестирования метода SC на наборе данных GSM8k с использованием OpenCompass:

# Configuration for SC version of gsm8k test can be found in:
# opencompass.configs.datasets.gsm8k.gsm8k_gen_a3e34a.py.

gsm8k_infer_cfg = dict(
    inferencer=dict(
        type=SCInferencer, # Replace GenInferencer with SCInferencer
        # Set generation parameters to ensure diverse model outputs, currently applicable for models loaded from HuggingFace.
        generation_kwargs=dict(do_sample=True, temperature=0.7, top_k=40),
        sc_size=SAMPLE_SIZE # Number of SC paths to sample
    )
)

gsm8k_eval_cfg = dict(sc_size=SAMPLE_SIZE)

Помимо реализации этих методов, OpenCompass представил некоторые новые функции. Например, хотя официальный репозиторий ToT в настоящее время поддерживает только модели OpenAI API,OpenCompass расширяет эту поддержку на распространенные большие модели с открытым исходным кодом. Это позволяет легко экспериментировать с настройками и классическими наборами данных для моделей разных масштабов и типов.

Ниже приведено сравнение результатов оценки SC и ToT, полученных с помощью OpenCompass:

OpenCompass стремится интегрировать мощный инструмент CoT, чтобы помочь сообществу раскрыть огромный потенциал больших языковых моделей для решения различных задач. Ожидается, что в будущем, когда к этим усилиям присоединится все больше исследователей и практиков, технология искусственного интеллекта станет умнее, эффективнее и практичнее.

Ссылка на проект OpenCompass:

https://github.com/internLM/OpenCompass/

Учебное пособие CoT: https://opencompass.readthedocs.io/zh_CN/latest/prompt/chain_of_ Thought.html

Таблица лидеров большой модели: https://opencompass.org.cn/leaderboard-llm

Приветствуем всех, кто подает заявки на оценку на OpenCompass: