Суть теста: от документации к исполняемому файлу
В отличие от стандартных задач на генерацию кода, MultiLangBench требует от модели создать полноценное программное решение. Модель получает документацию SQLite версии 3.40.1 и должна написать исполняемый файл на указанном языке программирования. Этот файл должен принимать путь к базе данных как аргумент командной строки и SQL-запрос через stdin, возвращая результат выполнения.
Ключевое ограничение: модели запрещено использовать интернет и любые предустановленные копии SQLite. Это проверяет чистоту знаний модели и её способность генерировать код с нуля, а не полагаться на внешние библиотеки.
Метрика успеха: стоимость и точность
Результат оценки формируется как кортеж из двух параметров: (api_cost, test_pass_rate). Это означает, что важна не только правильность кода, но и его экономическая эффективность. Если модель использует не тот язык программирования или смешивает языки, результат автоматически обнуляется.
Всего в наборе данных 24 000 преобразованных тестов из оригинального TCL-набора SQLite. Для ускорения оценки рекомендуется использовать подмножество из 272 тестов (с префиксами 00, 01, 02), однако для высокой точности на лучших моделях допускается запуск полного набора.
Как проходит валидация
Проверка работы модели происходит в изолированной среде. Алгоритм следующий:
- В среду загружается тестовая база данных (
input.db). - Запускается сгенерированный моделью исполняемый файл с запросом из stdin.
- Полученный результат (
output.db) сравнивается с эталоном. - Эталонный результат генерируется с помощью оригинального бинарника SQLite 3.40.1.
Тест считается проваленным, если результат не совпадает, код упал с ошибкой или превысил лимит в 60 секунд.
Почему это важно для индустрии
Ранние бенчмарки часто фокусировались на популярных языках (Python, JavaScript) или простых задачах. MultiLangBench смещает акцент на:
- Редкие языки: Проверка способности LLM работать с менее распространенными экосистемами.
- Системное программирование: Реализация сложного ПО (SQLite) требует глубокого понимания архитектуры, а не просто синтаксиса.
- Экономику AI: Включение
api_costв метрику заставляет разработчиков оптимизировать не только качество, но и стоимость инференса.
| Параметр | Значение / Описание |
|---|---|
| Версия SQLite | 3.40.1 |
| Общее число тестов | 24 000 (из 51k исходных TCL-тестов) |
| Рекомендуемое подмножество | 272 теста (префиксы 00, 01, 02) |
| Лимит времени на тест | 60 секунд |
| Лицензия | Apache License, Version 2.0 |
Источник: Github ↗
