Бенчмарк · coding
Aider Polyglot
Aider Polyglot — бенчмарк редактирования кода из инструмента Aider, который проверяет, насколько хорошо LLM редактирует существующий код на многих языках программирования. Оценка — это доля задач, в которых правки дают корректный код, проходящий тесты задачи.
Подробнее
- Пример
- Типичный пункт — упражнение по программированию в стиле Exercism на одном из нескольких языков (Python, Rust, Go, Java, JavaScript или C++), где модель должна отредактировать предоставленные исходные файлы, чтобы реализовать нужную функцию и пройти её тесты.
- Метрика
- Метрика — процент решённых задач: задача засчитывается, только если отредактированный код проходит все автоматические тесты. Aider также отслеживает, как часто правки приходят в корректном, применимом формате.
- Приёмка
- Результаты проверяются автоматически: отредактированные файлы прогоняются через набор модульных тестов упражнения, и задача считается пройденной, только если проходят все тесты — без человеческих голосов и сравнения на точное совпадение.
- Почему важно
- Он отражает реальную работу разработчика — редактирование существующих файлов на многих языках, а не написание фрагментов с нуля, — поэтому это практический сигнал того, насколько модель полезна как помощник по программированию.
Разбор примера
Задача
Aider Polyglot берёт задачи из Exercism на 6 языках: модель получает описание задачи и файл-заготовку (например,
acronym.py с def abbreviate(words): ...) и должна отредактировать его так, чтобы прошёл скрытый набор тестов pytest. Пример задания: преобразовать фразу в её аббревиатуру — 'Portable Network Graphics' → 'PNG', считая пробелы, дефисы и подчёркивания разделителями и игнорируя прочую пунктуацию.Решение
import re
def abbreviate(words):
return "".join(w[0].upper() for w in re.findall(r"[A-Za-z']+", words))
Разбор
Регулярное выражение выделяет словесные токены (буквы плюс апострофы внутри слова), берёт первую букву каждого токена, переводит её в верхний регистр и склеивает, так что 'Portable Network Graphics' → 'PNG'. При проверке запускаются скрытые модульные тесты упражнения; пункт засчитывается, только если проходят все тесты (aider сообщает pass@2 по всему набору).