Chain-of-Thought Hub

by FranxYao (community) · GPT-4, Claude, PaLM, Llama

Skill AI Assistants Open Source

Бенчмарк и хаб для оценки сложных рассуждений LLM с использованием Chain-of-Thought промптинга. Содержит задачи, промпты и результаты для сравнения моделей. Содержит: - MATH: решение математических задач с CoT - GSM8K: школьные задачи по арифметике - MMLU: мультидисциплинарный тест знаний - BIG-Bench Hard: нестандартные задачи рассуждения - Промпты few-shot для каждой задачи - Лидерборд: GPT-4, Claude, PaLM, Llama с результатами - Шаблоны CoT-промптов для нестандартных задач

Добавлен 18.06.2026 · Обновлён 18.06.2026 · AI Assistants
Установка
# Клонировать:
git clone https://github.com/FranxYao/chain-of-thought-hub

# Запуск бенчмарка:
cd chain-of-thought-hub
pip install -r requirements.txt
python run_benchmark.py --model gpt-4 --task gsm8k

# Использование промптов:
cat prompts/gsm8k/few_shot_cot.txt
переведено ИИ

Chain-of-Thought Hub: Измерение рассуждательных способностей LLM

Название) «Фэнтезийный график, изображающий цепочку звёзд в тёмную ночь с голубым небом, цифровое искусство, сверхразрешение». Midjourney V5


Авторы: Yao Fu, Litu Ou, Mingyu Chen, Yuhao Wan, Hao Peng, Tushar Khot, Wenhu Chen

Из Эдинбургского университета, Вашингтонского университета, Института ИИ Аллена, Университета Ватерлоо

[статья] [блог] [twitter]

В последнее время наблюдается множество достижений в области LLM. Многие утверждают, что малая модель размером менее 10 млрд параметров может достичь производительности, сопоставимой с GPT-3.5. Правда ли это?

В разговоре на бытовые темы разница между GPT-3.5 и GPT-4 может быть незаметна. Разница проявляется, когда сложность задачи достигает достаточного порога — GPT-4 более надежен, креативен и способен обрабатывать гораздо более тонкие инструкции, чем GPT-3.5. -- Блог-пост о выходе GPT-4

Ключевым различием является способность модели выполнять сложные задачи, как гласит старая поговорка: «Болтать дёшево, покажи рассуждение». Именно поэтому мы составили список сложных рассуждательных задач, включая математику (GSM8K), науку (MATH, TheoremQA), символику (BBH), знания (MMLU, C-Eval), программирование (HumanEval), фактологию (SummEdits) и задачи с длинным контекстом (RepoBench, Qspr, QALT, BkSS), чтобы измерить производительность моделей на сложных заданиях.

Более того, мы представляем себе, что большие языковые модели станут вычислительной платформой нового поколения и создадут экосистему новых приложений на основе LLM. Когда это произойдет, цепочка рассуждений (chain-of-thought) в инженерии промптов станет системными вызовами и скриптами оболочки следующего поколения.

Достоверность Chain-of-thought Hub основана на очень тщательно отобранных наборах данных и моделях, которые действительно могут помочь в развитии LLM. Результаты и скрипты от Chain-of-thought Hub используются и цитируются ведущими промышленными и академическими организациями в сфере больших языковых моделей. Мы разделили задачи на три категории: основные, экспериментальные и с длинным контекстом. * Основные: стабильные наборы данных, которые постоянно упоминаются в местах, где создаются LLM. * Экспериментальные: наборы данных, которые имеют потенциал для тестирования будущих возможностей LLM. * С длинным контекстом: наборы данных, требующие рассуждений на основе очень длинного контекста — важное направление для будущих LLM.

[Список рассматриваемых наборов данных]

Раздел Набор данных Описание
Основные GSM8K Математические задачи с текстом для школьного уровня
Основные MATH Математические и научные задачи соревновательного уровня
Основные MMLU Многопрофессиональные знания
Основные BBH Сложные задачи на языковое и символическое рассуждение
Основные HumanEval Программирование на Python
Основные C-Eval Китайские многопрофессиональные знания
Экспериментальные TheoremQA Доказательство теорем
Экспериментальные SummEdits Фактологическое рассуждение
Длинный контекст Qspr Ответы на вопросы по исследовательским статьям
Длинный контекст QALT Вопросы с несколькими вариантами ответа по длинным статьям и рассказам
Длинный контекст BkSS Перестановка саммари частей романов

[Призыв к участию]: мы будем рады пригласить участников сообщества: * Отправить PR, чтобы заполнить пропущенные числа в таблице. * Создать issue, чтобы предложить / обсудить новую задачу / тест, измеряющий рассуждение на основе очень длинного контекста. * Создать issue, чтобы предложить / обсудить новую задачу / тест, измеряющий сложные вызовы API и использование инструментов. * Создать issue, чтобы предложить другие хорошие задачи / тесты, которые могут четко разграничить производительность моделей. * Создать issue, чтобы предложить новую модель, которую можно добавить в таблицу.

[ОБНОВЛЕНИЕ 20231210]: * Добавлены Gemini, Yi-34B, DeepSeek 67B * Обновлен раздел длинного контекста -- в этом разделе будет больше обновлений * Предварительные результаты модели Mistral 7B8E (MoE)

Mistral 7B 8E примерно сопоставим с Yi34B / LLaMA2 70B / DeepSeek 67B

Бенчмарк Mistral 7B Dense Mistral 7Bx8E=50B Yi-34B DeepSeek-67B LLaMA2 70B
Arc-c 59.98 66.38 64.59 65.44 -
HellaSwag 83.31 86.61 85.69 87.10 -
MMLU 64.16 71.73 76.35 71.78 68.9
TruthfulQA 42.15 48.55 56.23 51.08 50.18
Winogrande 78.37 82.40 83.03 84.14 -
GSM8K 37.83 57.09 50.64 56.71 56.8

[ОБНОВЛЕНИЕ 20230620]: * Разделены основные (стабильные наборы данных, которые постоянно упоминаются в местах, где создаются LLM) и экспериментальные (наборы данных, которые имеют потенциал для тестирования будущих возможностей LLM) таблицы лидеров. * Добавлен раздел с длинным контекстом (экспериментальный)

[Предыдущие обновления]

[ОБНОВЛЕНИЕ 20230609]: Добавлены скрипты оценки для MMLU для LLaMA и Falcon

[ОБНОВЛЕНИЕ 20230601]: Добавлен SummEdits

[ОБНОВЛЕНИЕ 20230527]: Добавлены TheoremQA, Vicuna, Alpaca, InstructCodeT5.

Таблица лидеров - Основная

Модель Параметры Тип GSM8K MATH MMLU BBH HumanEval C-Eval
Gemini Ultra ? Base - 53.2 83.7 83.6 74.4 -
gpt-4 ? RLHF 92.0 42.5 86.4 - 67.0 68.7*
claude-2 ? RLHF 88 - 78.5 - 71.2 -
Gemini Pro ? Base - 32.6 71.8 75.0 67.7 -
claude-v1.3 ? RLHF 81.8* - 75.6* 67.3* - 54.2*
PaLM-2-Unicorn ? Base 80.7 34.3 78.3 78.1 - -
Mistral MoE 7Bx8E=46B Base 57.9 - 71.3 - - -
DeepSeek 67B Base 56.7 18.7 71.7 68.7 42.7 66.1
Yi 34B Base 50.6 - 76.3 54.3 - 81.4
gpt-3.5-turbo ? RLHF 74.9* - 67.3* 70.1* 48.1 54.4*
claude-instant ? RLHF 70.8* - 61.3* 66.9* - 45.9*
text-davinci-003 ? RLHF - - 64.6 70.7 - -
code-davinci-002 ? Base 66.6 19.1 64.5 73.7 47.0 -
text-davinci-002 ? SIFT 55.4 - 60.0 67.2 - -
Minerva 540B SIFT 58.8 33.6 - - - -
Flan-PaLM 540B SIFT - - 70.9 66.3 - -
Flan-U-PaLM 540B SIFT - - 69.8 64.9 - -
PaLM 540B Base 56.9 8.8 62.9 62.0 26.2 -
LLaMA-2 70B Base 56.8 - 68.9 51.2 29.9 -
LLaMA 65B Base 50.9 10.6 63.4 - 23.7 38.8*
PaLM 64B Base 52.4 4.4 49.0 42.3 - -
Falcon 40B Base - - 49.0* - - -
Vicuna 33B SIFT - - 59.2 - - -
LLaMA 33B Base 35.6 7.1 57.8 - 21.7 -
InstructCodeT5+ 16B SIFT - - - - 35.0 -
StarCoder 15B Base 8.4 15.1 33.9 - 33.6 -
Vicuna 13B SIFT - - - 52.1 - -
LLaMA 13B Base 17.8 3.9 46.9 - 15.8 -
Flan-T5 11B SIFT 16.1* - 48.6 41.4 - -
Alpaca 7B SIFT - - - - - -
LLaMA 7B Base 11.0 2.9 35.1 - 10.5 -
Flan-T5 3B SIFT 13.5* - 45.5 35.2 - -

Мы называем эти наборы данных "основными", поскольку они довольно стабильны и широко используются при разработке больших языковых моделей в ведущих организациях. Base означает чекпоинт предобучения. SIFT означает чекпоинт после контролируемого дообучения на инструкциях. RLHF означает чекпоинт после обучения с подкреплением на основе человеческой обратной связи. Числа, помеченные звездочкой *, получены из наших собственных запусков, в остальных случаях они взяты из различных источников, которые мы объясним ниже. Все методы измеряются по точности (accuracy), чем выше, тем лучше.

Таблица лидеров - Экспериментальная: Длинный контекст

Модель Параметры Контекст Тип Qspr QALT BkSS
Человек ? ? ? 67.7 93.5 ?
gpt-4 ? 8K RLHF 50.7 89.2 60.5
claude-v1.3 ? 8K RLHF 52.3 84.8 47.4
claude-v1.3 ? 4K RLHF 47.7 76.8 37.6
PaLM-2-Unicorn ? - Base - - -
PaLM-2-bison ? - RLHF - - -
gpt-3.5-turbo ? 4K RLHF 49.3 66.6 49.8
claude-instant ? - RLHF - - -
text-davinci-003 ? 4K RLHF 52.7 69.0 49.5
text-davinci-002 ? - SIFT - - -
LLaMA 65B - Base - - -
Falcon 40B - Base - - -
Flan-UL2 20B 8K SIFT 56.9 75.6 14.0
LLaMA 33B - Base - - -
Vicuna 13B - SIFT - - -
LLaMA 13B - Base - - -
Flan-T5 11B 8K SIFT 48.3 75.2 15.1
Flan-T5 11B 4K SIFT 46.5 70.8 16.4
T0pp 11B 8K SIFT 25.0 21.4 0.0
Alpaca 7B - SIFT - - -
LLaMA 7B - Base - - -
Flan-T5 3B 8K SIFT 46.6 69.6 2.2
  • TODO: RepoBench: бенчмаркинг систем автодополнения кода на уровне репозитория
  • Числа для Qspr, QALT и BkSS взяты из zero-scrolls
  • Почему мы выбрали эти наборы данных? См. подробную документацию)

Чем это отличается от других важных оценок?

  • HeLM использует промптинг с ответом только, мы используем пошаговый вывод (chain-of-thought)
  • HeLM оценивает всё. Мы сосредоточены на сложном рассуждении — ключевом различителе способностей LLM.
  • Open LLM Leaderboard оценивает модели с открытым исходным кодом. Мы рассматриваем большинство ведущих моделей.
  • В настоящее время производительность LLaMA 65B на Open LLM Leaderboard составляет всего 48.8, что значительно ниже 63.4, заявленных в статье. Это вызывает сомнения в сравнении между LLaMA и Falcon.
  • В нашем воспроизведении мы получили 61.4, используя официальный промпт MMLU + жадное декодирование + fp16. Наши результаты подтверждают оригинальные данные LLaMA и вызывают сомнения в результатах Open LLM Leaderboard.
  • Наш скрипт оценки довольно прост, большинство параметров установлены по умолчанию, без сложного инжиниринга промптов. Мы приглашаем сообщество попробовать наши скрипты и воспроизвести наши результаты.
  • По словам Nathan Lambert, HuggingFace в настоящее время обновляет бэкенд Open LLM Leaderboard, и результаты могут измениться (10 июня 2023).
  • Chatbot Arena оценивает модели чат-ботов, что более ориентировано на пользователя при развертывании. Наша оценка более ориентирована на разработчиков, и мы рассматриваем не только чат-боты, но и базовые модели.

Как ранжируются модели

  • Если нам известен масштаб модели, мы ранжируем её по масштабу.
  • Если масштаб модели неизвестен, мы ранжируем её по GSM8K, классическому бенчмарку, измеряющему производительность математических рассуждений пошагового вывода.
  • Это определенно не единственная метрика, но хорошей интерпретацией является "насколько хорошо модель умеет решать математические задачи, сохраняя при этом другие общие способности" — что тоже очень сложно.
  • GPT-4 уже был предобучен на тренировочной выборке GSM8k, другие могли не быть. Поэтому для GPT-4 его производительность на GSM8k является обобщением внутри распределения (in-distribution), в то время как для других — обобщением вне распределения (out-of-distribution). Тем не менее, даже для FlanT5, которая тоже обучалась на GSM8k, все равно наблюдается разница в производительности.
  • В целом, строгое сравнение производительности моделей очень сложно из-за множества факторов (обучались ли они на соответствующей тренировочной выборке, обучались ли на коде, оптимизировали ли промпт и т.д.). Рассматривайте наши результаты как приблизительную справку.

Источник цифр

  • GPT-4 с его сайта и Bubeck et al., март 2023. Обратите внимание, что версия, которую использует Bubeck, — это GPT-4 Early, которая предположительно мощнее, чем GPT-4 Launch (OpenAI заплатила большой «налог за выравнивание» чтобы сделать GPT-4 безопаснее).
  • *-davinci-00* и *PaLM взяты из приложения к статье Flan-PaLM.
  • code-davinci-002 — это базовая модель семейства GPT-3.5, но, к сожалению, к ней больше нет доступа.
  • LLaMA из статьи LLaMA. ~~Обратите внимание, что промпт для LLaMA, использованный в этих задачах, не был опубликован, поэтому результаты воспроизведения могут отличаться, обсуждение см. в этой ветке Twitter.~~
  • ~~Мы выполняем собственную реализацию LLaMA на MMLU и BBH. Следите за обновлениями.~~
  • Мы воспроизвели LLaMA на MMLU, используя официальные промпты MMLU и функцию генерации HuggingFace Transformers по умолчанию, и наши результаты очень хорошо совпадают с официальными числами. Подробности см. здесь).
  • Результаты Falcon на MMLU взяты из нашего собственного скрипта здесь).
  • PaLM-2 из их технического отчета.
  • Claude из нашего собственного тестового скрипта, информацию о том, как его запустить, см. ниже.
  • Результаты HumanEval для моделей LLaMA, PaLM и StarCoder взяты из отчета HuggingFace. Производительность Code-davinci-002 на HumanEval взята из статьи CodeT5+.
  • C-Eval с их сайта.
  • TheoremQA из их github.
  • SummEdits из их github и статьи.
  • Секция с длинным контекстом взята из статьи zero-scrolls и таблицы лидеров.
  • Производительность Vicuna на MMLU взята из Chatbot Arena.

Текущие результаты

  • GPT-4 явно превосходит все остальные модели на GSM8K и MMLU.
  • **Модель LLaMA на 65B параметров очень близка к text/code-davinci-002, что означает, что на её основе, при правильном проведении SFT и RLHF, очень вероятно, что мы сможем воспроизвести ChatGPT на базе 65B LLaMA.**
  • Claude — единственное семейство моделей, которое можно сравнить с семейством GPT.
  • На GSM8K gpt-3.5-turbo превосходит text-davinci-003. Это подтверждает примечания OpenAI от 30 января 2023 года об «улучшенных математических возможностях».
  • На MMLU gpt-3.5-turbo немного лучше, чем text-davinci-003. Однако такой уровень отклонения НЕ СТАТИСТИЧЕСКИ ЗНАЧИМ.
  • Также помните, что gpt-3.5-turbo стоит в 10 раз дешевле, чем text-davinci-003.
  • Также имейте в виду, что производительность GPT-4/ 3.5 на GSM8K — это не настоящий few-shot — в отчете по GPT-4 они заявили, что смешали часть обучающего набора GSM8K для обучения модели.
  • Производительность LLaMA на MMLU взята из их статьи и, вероятно, получена не с использованием CoT, а AO. В целом на MMLU AO лучше, чем CoT, но лишь немного лучше. Поэтому цифры LLaMA по MMLU могут быть немного завышены.

Визуализация

Заголовок) * Существует явный разрыв между открытыми и закрытыми моделями. * Большинство лучших моделей прошли RLHF. * LLaMA 65B очень близка к code-davinci-002. * Имеющиеся результаты сильно указывают на то, что если RLHF будет правильно проведен на LLaMA, то она может оказаться близка к ChatGPT-3.5.

Больше о задачах

  • GSM8K: 8k задач начальной школы по математике. -- Улучшение показателей на этом наборе данных напрямую транслируется в способность при взаимодействии с LLM в повседневной математике.
  • MMLU: 15k задач по 57 предметам, школьные и университетские знания.
  • MATH (Сложно!): 12k задач в 7 категориях, очень сложная математика и естественные науки. Все текущие модели с трудом справляются.
  • BBH: 6.5k задач в 23 подмножествах, символьное и текстовое рассуждение.
  • HumanEval: классический рукописный набор данных из 164 задач на Python для оценки способности к программированию.
  • C-Eval: набор из 13k вопросов с выбором ответа, охватывающих 52 дисциплины теста знаний на китайском языке.
  • TheoremQA (Сложно!): 800 пар вопрос-ответ, охватывающих 350+ теорем из математики, электротехники и информатики, физики и финансов.
  • SummEdits: 6.3k задач на фактическую согласованность рассуждений в 10 областях.

Запуск

MMLU

cd MMLU
mkdir outputs
API_KEY=<ваш_api_ключ>
# GPT-3.5-Turbo
python run_mmlu_gpt_3.5_turbo.py --api_key=${API_KEY}
# Claude-v1.3
python run_mmlu_claude.py --api_key=${API_KEY} --engine=claude-v1.3

# LLaMA
LLAMA_CKPT_DIR=<путь_к_проверочным_точкам_модели>
PARAM_SIZE=65 # 7, 13, 33, 65
MODEL_TYPE=llama # ["llama", "falcon"] 
python run_mmlu_open_source.py --ckpt_dir ${LLAMA_CKPT_DIR} --param_size ${PARAM_SIZE} --model_type ${MODEL_TYPE}

GSM8k

cd gsm8k 
mkdir outputs

# запустить gpt-3.5
# codex_gsm8k_complex.ipynb         -- code-davinci-002 + сложный промпт
# gpt3.5turbo_gsm8k_complex.ipynb   -- gpt-3.5-turbo + сложный промпт

# запустить claude
python run_gsm8k_claude.py\
  --anthropic_key=${API_KEY}\
  --prompt_file=lib_prompt/prompt_original.txt\
  --engine=claude-v1.3\
  --output_file=outputs/gsm8k_claude_v1.3_original_test.txt

# запустить FlanT5
# flan_t5_11b_gsm8k.ipynb

BBH

cd BBH
mkdir outputs
# затем запустите jupyter notebook, чтобы увидеть пример набора данных penguins
cd penguins
# gpt3.5trubo_penguins_original.ipynb

# Или запустите скрипт для всех наборов данных
API_KEY=<ваш_api_ключ>
TASK=<all | multiple_choice | free_form>
python run_bbh_gpt_3.5_turbo.py --api_key=${API_KEY} --task=${TASK} # task=all по умолчанию
python run_bbh_claude_v1.3.py --api_key=${API_KEY} --model_index=claude-v1.3 --task=${TASK} # task=all по умолчанию

Часто задаваемые вопросы (FAQ)

  • Чувствительность результатов к промптам очень высока.
  • К сожалению, это характерная черта LLM. Мы ведем работу по стандартизации промптов (см. начальный прогресс здесь) и обновим информацию по мере продвижения.
  • Какие промпты используются в статье о complexity-based prompting?
  • Смотрите research/complexity_based_prompting/.
  • Я хочу попробовать какую-нибудь открытую модель.
  • Смотрите gsm8k/flan_t5_11b_gsm8k.ipynb для начала.
  • В некоторых промптах есть неправильные ответы.
  • Да, но мы оставляем их как есть, поскольку они использовались в оригинальных статьях.
  • В целом модели могут быть устойчивы к возмущениям в промпте: даже если иногда в промпте есть ошибки, при условии, что формат промпта соответствует соответствующей задаче, модель, как правило, смотрит только на формат, игнорирует ошибку в промпте и делает собственный прогноз.
  • Подробнее о том, как модель может игнорировать ошибки в промпте, смотрите https://arxiv.org/abs/2202.12837 и https://arxiv.org/abs/2212.10001.

Я хочу узнать больше о создании LLM для задач рассуждения

Подробная дорожная карта обсуждается в нашем предыдущем блог-посте.

В общем, рецепт создания моделей с сильными способностями к рассуждению тот же, что и для универсальных LLM: предобучение, дообучение (fine-tuning), обучение с подкреплением. Здесь мы приводим список некоторых очень важных статей, которые следует рассмотреть:

Предобучение/ Дополнительное обучение

Дообучение (Fine-tuning)

Обучение с подкреплением (Reinforcement Learning)

В разработке

Японский (Japanese)

Информация об этом проекте предоставлена.

Комментарии
Войдите, чтобы оставить комментарий