Вдохновленный 🤗 Открытая таблица лидеров LLM и 🤗 Открытая таблица лидеров LLM-Perf 🏋️Мы сравниваем производительность базовых моделей генерации многоязычного кода на HumanEval эталон и MultiPL-E. Мы также измеряем производительность и предоставляем информацию о моделях. Мы сравниваем только открытые предварительно обученные многоязычные модели кода, которые люди могут использовать в качестве базовых моделей для своих тренировок.

Что такое Big Code Models Leaderboard

Растущее число моделей кода, выпускаемых сообществом, требует всесторонней оценки для надежного определения их возможностей. Как и в случае с 🤗 Открытая таблица лидеров LLMМы выбрали два общих бенчмарка для оценки Code LLM на нескольких языках программирования:

  • HumanEval - Эталон для измерения функциональной корректности при синтезе программ из документальных строк. Он состоит из 164 задач по программированию на языке Python.
  • MultiPL-E - Перевод HumanEval на 18 языков программирования.
  • Измерение пропускной способности - В дополнение к этим бенчмаркам мы также измеряем пропускную способность моделей на партиях размером 1 и 50, чтобы сравнить скорость их вычислений.

Контрольные задания и подсказки

  • HumanEval-Python сообщает о проходе@1 на HumanEval; остальные результаты получены на бенчмарке MultiPL-E.
  • Для всех языков мы используем оригинальные подсказки benchamrk для всех моделей, кроме HumanEval-Python, где мы разделяем базовые и инструктивные модели. Мы используем оригинальные подсказки завершения кода для HumanEval для всех базовых моделей, но для моделей с инструкциями мы используем инструктивную версию HumanEval в HumanEvalSynthesize разграничены токенами/текстом, рекомендованными авторами каждой модели (мы также используем максимальную длину генерации 2048 вместо 512).

На рисунке ниже показан пример запроса OctoCoder vs Base HumanEval, вы можете найти и другие запросы здесь.

OctoCoder в сравнении с базовой подсказкой HumanEval

- Исключение составляют модели Phind. Кажется, что они лучше следуют базовым подсказкам, чем версии с инструкциями. Поэтому, следуя рекомендации авторов, мы используем базовые подсказки HumanEval, не убирая из них последнюю новую строку. - Также отметим, что для WizardCoder-Python-34B-V1.0 и WizardCoder-Python-13B-V1.0 (на базе CodeLLaMa) мы используем подсказку инструкции HumanEval-Python, которую авторы использовали при постпроцессинге (вместо HumanEvalSynthesize), код доступен [здесь](https://github.com/bigcode-project/bigcode-evaluation-harness/pull/133)).

Параметры оценки

  • Все модели были оценены с помощью bigcode-evaluation-harness с top-p=0.95, температурой=0.2, max_length_generation 512 и n_samples=50.

Пропускная способность и использование памяти

Подсчет очков и рейтинг

  • Средний балл - это средний проход@1 по всем языкам. Для показателя Win Rate мы находим ранг модели для каждого языка и вычисляем num_models - (rank -1)затем усредните этот результат по всем языкам.

Разное

  • В столбце #Languages указано количество языков программирования, включенных в предварительное обучение. UNK означает, что количество языков неизвестно.

Как отправить модели/результаты в таблицу лидеров?

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

1 - Оценка бега

Мы написали подробное руководство по проведению оценки на вашей модели. Вы можете найти его в bigcode-evaluation-harness/leaderboard. В дополнение к необработанным генерациям и метрическим файлам будет сгенерирован json-файл с кратким описанием результатов.

2- Представление результатов 🚀

Чтобы отправить свои результаты, создайте Pull Request на вкладке "Сообщество", чтобы добавить их под папка community_results в этом хранилище:

  • Создайте папку с именем ORG_MODELNAME_USERNAME например bigcode_starcoder_loubnabnl
  • Поместите в него json-файл со сгруппированными оценками из руководства, а также папку generations и папку metrics.

Название PR должно быть следующим [Community Submission] Модель: org/model, Имя пользователя: your_usernameзамените слова org и model на те, которые соответствуют модели, которую вы оценивали.