Вдохновленный 🤗 Открытая таблица лидеров 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, вы можете найти и другие запросы здесь.

- Исключение составляют модели 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.
Пропускная способность и использование памяти
- Пропускная способность и пиковое использование памяти измеряются с помощью Оптимальный вариант какие силы Открытая таблица лидеров LLM-Perf. (0 пропускной способности соответствует OOM).
Подсчет очков и рейтинг
- Средний балл - это средний проход@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 на те, которые соответствуют модели, которую вы оценивали.