Бенчмарк · coding

BigCodeBench

0 результатов 0 моделей

BigCodeBench — бенчмарк генерации кода на Python из 1140 реальных задач программирования, каждая из которых требует комбинировать вызовы нескольких библиотек; оценивается через исполняемый Pass@1 — долю задач, чьё сгенерированное решение проходит все юнит-тесты.

Подробнее
Пример
Типичная задача даёт сигнатуру функции и подробный docstring — например, «загрузить CSV, посчитать сводную статистику по группам с помощью pandas, затем построить столбчатую диаграмму через matplotlib» — и просит модель написать тело, корректно связывающее несколько вызовов библиотек.
Метрика
Метрика — калиброванный Pass@1, обычно с жадным декодированием: каждая сгенерированная программа выполняется против юнит-тестов задачи в песочнице, задача считается решённой только если проходят все тесты, а итог — процент решённых задач. Публикуются два среза — Complete (дописать функцию по docstring) и Instruct (только инструкция на естественном языке) — плюс усложнённый набор Hard из 148 задач.
Приёмка
Приём — исключительно по исполнению: решение должно пройти все написанные вручную юнит-тесты задачи (в среднем 5,6 на задачу, при ~99% среднем покрытии ветвей) при запуске в изолированной среде. Нет ни частичного зачёта, ни сверки с эталонным текстом.
Почему важно
В отличие от коротких однофункциональных бенчмарков вроде HumanEval, BigCodeBench проверяет, способна ли модель следовать сложным инструкциям и правильно использовать разнообразные реальные API из 139 библиотек и 7 доменов, что лучше отражает практическую работу с кодом; срез Instruct и набор Hard дополнительно нагружают следование инструкциям и композицию инструментов.
Разбор примера
Задача
```python import pandas as pd import numpy as np def task_func(df, column): """ Стандартизировать заданный числовой столбец DataFrame к нулевому среднему и единичной дисперсии и вернуть изменённый DataFrame. Требования: - pandas - numpy Параметры: df (pd.DataFrame): Входные данные. column (str): Имя числового столбца для стандартизации. Возвращает: pd.DataFrame: DataFrame со стандартизированным столбцом. Пример: >>> df = pd.DataFrame({'a': [1, 2, 3, 4, 5]}) >>> round(task_func(df, 'a')['a'].mean(), 5) 0.0 """ ```
Решение
```python
    df[column] = (df[column] - np.mean(df[column])) / np.std(df[column])
    return df
```
Разбор
Вычитание среднего по столбцу и деление на стандартное отклонение генеральной совокупности (np.std, ddof=0) масштабирует значения к среднему 0 и единичной дисперсии, удовлетворяя docstring и его doctest (среднее округляется до 0.0), и задействует обе требуемые библиотеки. Оценка основана на исполнении: BigCodeBench запускает завершённую функцию на скрытых юнит-тестах задачи и присуждает Pass@1, только если проходят все тесты.

По этому бенчмарку пока нет проверенных результатов.