by FranxYao (community) GPT-4, Claude, PaLM, Llama
Бенчмарк и хаб для оценки сложных рассуждений LLM с использованием Chain-of-Thought промптинга. Содержит задачи, промпты и результаты для сравнения моделей. Содержит: - MATH: решение математических задач с CoT - GSM8K: школьные задачи по арифметике - MMLU: мультидисциплинарный тест знаний - BIG-Bench Hard: нестандартные задачи рассуждения - Промпты few-shot для каждой задачи - Лидерборд: GPT-4, Claude, PaLM, Llama с результатами - Шаблоны CoT-промптов для нестандартных задач
# Клонировать: 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
)
«Фэнтезийный график, изображающий цепочку звёзд в тёмную ночь с голубым небом, цифровое искусство, сверхразрешение». Midjourney V5
Авторы: Yao Fu, Litu Ou, Mingyu Chen, Yuhao Wan, Hao Peng, Tushar Khot, Wenhu Chen
Из Эдинбургского университета, Вашингтонского университета, Института ИИ Аллена, Университета Ватерлоо
В последнее время наблюдается множество достижений в области 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 |
)
* Существует явный разрыв между открытыми и закрытыми моделями.
* Большинство лучших моделей прошли RLHF.
* LLaMA 65B очень близка к code-davinci-002.
* Имеющиеся результаты сильно указывают на то, что если RLHF будет правильно проведен на LLaMA, то она может оказаться близка к ChatGPT-3.5.
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}
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
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 по умолчанию
research/complexity_based_prompting/.gsm8k/flan_t5_11b_gsm8k.ipynb для начала.Подробная дорожная карта обсуждается в нашем предыдущем блог-посте.
В общем, рецепт создания моделей с сильными способностями к рассуждению тот же, что и для универсальных LLM: предобучение, дообучение (fine-tuning), обучение с подкреплением. Здесь мы приводим список некоторых очень важных статей, которые следует рассмотреть:
Информация об этом проекте предоставлена.