Бенчмарк · coding

DS-1000

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

DS-1000 — это бенчмарк из 1000 реальных задач по data science, собранных со Stack Overflow и охватывающих семь Python-библиотек (NumPy, Pandas, SciPy, scikit-learn, PyTorch, TensorFlow, Matplotlib); он проверяет, генерирует ли модель код, корректно решающий каждую задачу, и измеряется как точность выполнения pass@1.

Подробнее
Пример
Типичный пункт — это вопрос на естественном языке о том, как сделать что-то с конкретной библиотекой: например, отфильтровать или преобразовать Pandas DataFrame, выполнить операцию над массивом NumPy или построить график в Matplotlib — вместе с начальным кодовым контекстом, который модель должна дополнить (предлагается в форматах Completion и Insertion).
Метрика
Метрика — точность выполнения pass@1. Каждое сгенерированное решение запускается на скрытых тест-кейсах и считается решённым, только если проходит все тесты И удовлетворяет surface-form ограничениям (regex-проверки того, что используются нужные API, а запрещённые обходные пути — нет). Оценка — доля решённых из 1000 задач.
Приёмка
Приём полностью автоматический: дополненная программа выполняется в изолированной среде (sandbox), а её вывод проверяется на функциональную корректность по тест-кейсам вместе с surface-form ограничениями. Эта многокритериальная проверка спроектирована так, чтобы удерживать низкими доли ложного принятия и ложного отклонения, а задачи были модифицированы относительно оригиналов со Stack Overflow, чтобы снизить эффект запоминания.
Почему важно
Он отражает реалистичные, повседневные потребности в написании кода для data science, а не синтетические головоломки, охватывает семь широко используемых библиотек, а надёжная оценка на основе выполнения делает его общепринятым эталоном для оценки моделей генерации кода на практических DS-задачах.
Разбор примера
Задача
Задача: дан Pandas DataFrame df с числовым столбцом 'value'; получите DataFrame, содержащий только строки, где 'value' больше среднего значения столбца. <code> import pandas as pd df = pd.DataFrame({'value': [1, 5, 3, 9, 2]}) </code> BEGIN SOLUTION — присвойте ответ переменной result. (Иллюстративно, не дословный официальный пункт.)
Решение
result = df[df['value'] > df['value'].mean()]
Разбор
Булева маска оставляет строки, где 'value' превышает df['value'].mean(); харнесс запускает дополненный скрипт и сравнивает result с ожидаемым DataFrame (например, с помощью тестовых утилит pandas), а surface-form ограничения подтверждают, что это настоящее решение на Pandas. Оценивается по принципу pass/fail по результату выполнения.

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