MoLE — засіб оцінювання мовних моделей Modalix
Огляд
MoLE (Modalix Language Model Evaluator) — це інструмент для оцінювання точності та продуктивності LLM і VLM, що працюють на платформі Modalix.
Для оцінювання точності на текстових завданнях використовується lm-evaluation-harness. Для оцінювання точності на зображеннях із текстом на Modalix використовується lmms-eval із повторним використанням завдань, видобування відповідей та оцінювання з upstream. В обох випадках застосовується llima-benchmark accuracy. MoLE підтримує два бекенди:
- hf — оцінювання точності на текстових завданнях на хості за допомогою HuggingFace transformers (еталонний базовий результат)
- modalix — оцінювання на платі Modalix через
llima benchmark-server
Встановлення
Встановіть MoLE в окремому віртуальному середовищі на хості або Modalix DevKit, поза контейнером SDK Docker. Для виконання на DevKit також потрібне встановлене середовище виконання LLiMa. Порядок його встановлення наведено в розділі Встановлення Neat Framework.
Встановіть MoLE за допомогою sima-cli:
host:~$ sima-cli neat install llima/mole
Ця команда встановлює MoLE у віртуальне середовище ~/sima-mole-venv.
Встановлення вручну
Якщо ви не використовуєте sima-cli, запустіть інсталятор із каталогу завантаженого пакета MoLE:
bash ./install_mole.sh --venv ~/sima-mole-venv
Для безпосереднього встановлення wheel активуйте віртуальне середовище Python 3.11–3.13 і виконайте наведені команди, замінивши назву wheel-файлу на завантажену версію:
python -m pip install './sima_lmm-<version>-py3-none-any.whl[mole]'
python -m pip install --no-deps "lmms-eval==0.7.3" "tenacity>=8.3.0"
Друга команда вмикає тестування на зображеннях, повторно використовуючи спільні залежності MoLE.
Використання
Спочатку активуйте віртуальне середовище MoLE:
host:~$ source ~/sima-mole-venv/bin/activate
Для оцінювання на Modalix із хоста потрібен параметр --board_ip. На Modalix DevKit пропустіть його, щоб використовувати локальне середовище виконання. Для запуску сервера вкажіть --board_model; журнали локального сервера зберігаються у <output_dir>/server.log. Використовуйте --no-board_start_server, щоб підключитися до наявного сервера, не запускаючи й не зупиняючи його.
MoLE надає підкоманди llima-benchmark accuracy та llima-benchmark perf. Текст ові навантаження використовують ідентифікатор моделі HuggingFace або локальний каталог токенізатора/конфігурації, що відповідає розгорнутій моделі. Навантаження із зображеннями використовують ресурси розгорнутої VLM; <model_id> є міткою запуску.
Оцінювання точності
Точність на текстових завданнях
Оцінювання якості моделі на стандартних завданнях:
(sima-mole-venv) host:~$ llima-benchmark accuracy <model_id> -b modalix \
-t <task> \
-o <output_dir> \
--max_num_tokens <max_num_tokens> \
--board_ip <board_ip> \
--board_model <model_path_on_board>
| Аргумент | Опис |
|---|---|
model_id | Ідентифікатор моделі HuggingFace або локальний каталог токенізатора/конфігурації для оцінювання на тексті; описова мітка для оцінювання на зображеннях. |
-b | Бекенд: modalix (виконання на платі) або hf (виконання на хості як еталонний базовий результат). |
-t | Обов’язковий. Одне або кілька завдань оцінювання. Приклади: hellaswag, triviaqa, piqa, winogrande, wikitext. Усі доступні завдання наведено в списку завдань. |
-o | Вихідний каталог для результатів тестування. |
--board_ip | IP-адреса або ім’я хоста віддаленої плати. Обов’язковий при запуску з хоста; для локального виконання на Modalix пропустіть. |
--board_model | Каталог скомпільованої моделі на DevKit. Обов’язковий при запуску сервера. |
--max_num_tokens | Максимальна довжина контексту. Має бути не більшою за значення, використане під час компіляції. |
-n, --num_samples | Кількість зразків для оцінювання. Якщо не вказано, виконується весь набір завдань. |
--board_ssh_user | Ім’я користувача SSH на платі Modalix. Необов’язковий; типове значення: sima. # |
--board_ssh_pass | Пароль SSH для плати Modalix. Необов’язковий. Вкажіть його для неінтерактивного автоматизованого тестування. |
Завдання, що використовують логіти або логарифмічні правдоподібності, потребують --return_logits під час компіляції. Завдання на основі генерації, зокрема оцінювання на зображеннях із текстом, цього не потребують. Див. Компіляція моделі.
У режимі -b modalix таблиці результатів позначаються як результати бекенду Modalix і містять цільову плату. HuggingFace model_id також відображається, оскільки MoLE використовує його для токенізації та метаданих завдань.
Щоб використати бекенд HuggingFace як еталонний базовий результат:
(sima-mole-venv) host:~$ llima-benchmark accuracy <model_id> -b hf -t <task> -o <output_dir>
Для перегляду всіх доступних параметрів виконайте llima-benchmark accuracy -h.
Точність на зображеннях із текстом
Засіб оцінювання встановлюється разом із MoLE та використовує рідний шаблон чату розгорнутої VLM, попередню обробку зображень і оцінювання завдань з upstream. Наведені нижче завдання перевірено з Qwen3.5-2B на Modalix:
| Завдання | Спрямування | Перевірка |
|---|---|---|
realworldqa | Реальні сцени та просторове міркування | Повний набір даних |
docvqa_val | Читання документів та OCR | Смоук-тести |
chartqa | Читання графіків і числове міркування | Смоук-тести |
mmstar | Візуальне сприйняття та мультимодальне міркування | Смоук-тест на 10 зразках |
ai2d | Розуміння наукових схем | Смоук-тест на 10 зразках |
ocrbench | Розпізнавання та розуміння тексту | Смоук-тест на 10 зразках |
textvqa_val | Запитання про текст на природних зображеннях | Смоук-тест на 10 зразках |
Інші окремі завдання lmms-eval з генерацією відповіді за зображенням можна вибрати через -t з урахуванням наведених нижче обмежень, але не всі вони перевірені.
llima-benchmark accuracy qwen3.5-2b -b modalix \
-t realworldqa docvqa_val chartqa \
--board_ip <devkit-address> --board_model <compiled-model-on-devkit> \
--max_num_tokens 4096 -o results/vlm
На DevKit пропустіть --board_ip. Ресурси моделі на хості не потрібні. Використовуйте узгоджені випуски середовища виконання та MoLE.
| Параметр оцінювання на зображеннях | Опис |
|---|---|
--max_new_tokens | Перевизначає ліміт вихідних токенів завдання; інакше зберігається типове значення з upstream. |
--enable_thinking | Вмикає рідний шаблон міркування моделі; типово вимкнено. |
--accuracy_manifest | Використовує зафіксовані ревізії наборів даних або підготовлені локальні набори, як показано нижче. |
Запускайте текстові завдання та завдання із зображеннями окремо, використовуючи індивідуальні назви завдань. Оцінювання на зображеннях підтримує звичайні VLM із жадібним декодування м. Аудіо/відео, багатокрокові діалоги, візуальні few-shot завдання та завдання з повторними запитами не підтримуються. Вхідні дані разом із лімітом виходу мають уміщуватися в запитаний і скомпільований контекст; вхідні дані не обрізаються. Кілька зображень зберігають порядок, визначений завданням. Рідний EOS зупиняє генерацію; рядки зупинки завдання обрізають повернену відповідь.
Підготовлені набори даних із зображеннями
Набори даних завантажуються автоматично. Для оцінювання із зафіксованими ревізіями або без мережі передайте --accuracy_manifest manifest.json. Наприклад, із -t chartqa:
{
"schema_version": 1,
"tasks": {
"chartqa": {
"revision": "<40-character-dataset-commit>",
"split": "test",
"local_path": "datasets/chartqa"
}
}
}
Підготуйте локальні набори даних за допомогою HuggingFace DatasetDict.save_to_disk(), зберігши стовпці, зображення та розбиття для оцінювання з upstream. Шляхи задаються відносно маніфесту, а назви завдань мають відповідати -t. Пропустіть local_path, щоб завантажити зафіксовану ревізію. Для запуску без мережі встановіть HF_HUB_OFFLINE=1 HF_DATASETS_OFFLINE=1.