Бенчмарк · coding
HumanEval
HumanEval оценивает способность модели писать корректный код на Python по описанию на естественном языке; метрика — pass@1, доля задач, решённых с первой попытки.
Подробнее
- Пример
- Типичное задание даёт сигнатуру функции и её docstring — например, «вернуть список всех простых чисел меньше n» — а модель должна написать тело функции.
- Метрика
- Метрика — pass@1: каждое сгенерированное решение прогоняется через скрытые unit-тесты, а оценка — это процент из 164 задач, чьё решение проходит все свои тесты.
- Приёмка
- Полностью автоматически: решение считается верным, только если проходит все скрытые unit-тесты этой задачи — ни человеческой оценки, ни точного совпадения строк.
- Почему важно
- Это один из первых широко используемых бенчмарков генерации кода, ставший стандартным ориентиром навыков программирования, хотя сильнейшие модели набирают на нём так много, что он фактически насыщен и почти не различает их.
Разбор примера
Задача
Дополните тело этой Python-функции так, чтобы оно прошло скрытые модульные тесты:
```python
from typing import List
def below_zero(operations: List[int]) -> bool:
"""You're given a list of deposit and withdrawal operations on a bank account starting at zero balance. Detect whether the balance ever drops below zero and return True at that point; otherwise return False.
>>> below_zero([1, 2, 3])
False
>>> below_zero([1, 2, -4, 5])
True
"""
```
Решение
from typing import List
def below_zero(operations: List[int]) -> bool:
balance = 0
for op in operations:
balance += op
if balance < 0:
return True
return False
Разбор
Ведём текущий баланс, по порядку прибавляем каждую операцию и возвращаем True в момент, когда он становится отрицательным; если цикл завершился, баланс ни разу не ушёл в минус, поэтому возвращаем False. HumanEval оценивает так: дописывает завершение модели к промпту и прогоняет его на скрытых модульных тестах (pass@k) — задача засчитывается, только если проходят все assert.
| Дата | Модель | Результат | Источник |
|---|---|---|---|
| 2026-07-16 | Granite 4.0 3B | 83.5% | IBM открыла исходные коды CodeAlchemy — масштабного синтетического набора данных высококачественного кода |
| 2024-07-15 | Qwen2-72B | 64.6% | Технический отчет Qwen2 представляет плотные и MoE модели до 72B |
| 2024-07-15 | Qwen2-72B | 64.6% | Команда Qwen выпустила серию Qwen2 с моделями на 72B (плотными и MoE) |
| 2024-06-20 | Claude 3.5 Sonnet | 92.0% | Anthropic выпустила дополнение к Claude 3.5 Sonnet с улучшенными показателями в задачах программирования и зрения |
| 2024-06-20 | Claude 3.5 Sonnet | 92.0% | Anthropic |
| 2024-05-13 | GPT-4o | 90.2% | OpenAI |
| 2024-03-28 | Grok-1.5 | 74.1% | xAI выпустила Grok-1.5 с улучшенным рассуждением и контекстом 128K |
| 2023-03-14 | GPT-4 | 67.0% | OpenAI |