Skip to content
Back to skills

Model Development

ASecurity

"Configure and extend VLMEvalKit model wrappers, API providers,

  • 247 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 9, 2026
toolsgoapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 9, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill model-development --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Model Development?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Model Development
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-model-development-arex-skill/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-model-development-arex-skill)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: model-development
description: "Configure and extend VLMEvalKit model wrappers, API providers,
  registries, and prompt adapters."
metadata:
  disco-role: operating
disable-model-invocation: true
license: Apache 2.0
---

# VLMEvalKit model development

Use this sub-skill when the task is to configure an existing VLMEvalKit model name, add or adapt a local VLM wrapper, use LiteLLM/LMDeploy/OpenAI-compatible APIs, register model aliases, or implement dataset-aware prompt adapters. VLMEvalKit is the distribution/import package `vlmeval`; its main evaluation CLI is `run.py`, and the console helper is `vlmutil`.

## Route here when

- A user needs to choose between an existing `supported_VLM` name, JSON model config, `--base-url`, or a new wrapper/adapter.
- A wrapper must satisfy `BaseModel.generate()` / `generate_inner()` / optional `chat_inner()` contracts.
- An API provider must satisfy `BaseAPI.generate()` / `generate_inner()` ret-code contracts.
- A LiteLLM, LMDeploy, OpenAI-compatible, or custom prompt-adapter setup fails before or during model invocation.
- A model-specific prompt, image/video conversion, device split, dependency version, or thinking-output issue must be diagnosed.

## Route elsewhere

- Running evaluation jobs, reuse/resume behavior, output files, `status.json`, scans, and summaries: [evaluation](../evaluation/SKILL.md).
- Dataset/benchmark authoring, TSV/video formats, prompt construction on the dataset side, metrics, judges, and converters: [benchmark-authoring](../benchmark-authoring/SKILL.md).

## First decision: configure or implement?

1. **Existing registry name:** discover names with `vlmutil mlist all` or narrower categories, then use the exact key from `vlmeval/config.py`.
2. **JSON config:** use `run.py --config` when the user needs local aliases or per-model kwargs without editing package files.
3. **OpenAI-compatible endpoint:** use `run.py --base-url` when a local/remote service already exposes a chat-completions-compatible endpoint; this route constructs `LMDeployAPI` without editing `config.py`.
4. **New wrapper or adapter:** implement the smallest contract in `vlmeval/vlm/`, `vlmeval/api/`, or `vlmeval/api/adapters/`, then register it in `vlmeval/config.py` or a JSON config.

## Reference map

- [API reference](references/api-reference.md): `BaseModel`, `BaseAPI`, LiteLLM, LMDeploy/OpenAI-compatible invocation contracts.
- [Model registry](references/model-registry.md): `supported_VLM`, `model_groups`, `vlmutil mlist`, JSON config, and `--base-url` selection rules.
- [Prompt adapters](references/prompt-adapters.md): adapter registry, `use_custom_prompt`, `process_inputs`, `process_payload`, `postprocess`, and thinking split patterns.
- [Troubleshooting](references/troubleshooting.md): missing deps/keys, bad base URLs, media formats, custom prompt mismatches, device/WORLD_SIZE issues, compatibility notes, and thinking-output failures.

## Validation checklist

Before routing a model-development change back to evaluation:

- Confirm the chosen model name appears in `supported_VLM` or is defined in the JSON `model` section, unless `--base-url` is intentionally used.
- Confirm wrappers accept VLMEvalKit message lists with allowed types `text`, `image`, and when supported `video`.
- Confirm local VLM wrappers implement `generate_inner(message, dataset=None)`; only add `chat_inner` when multi-turn chat is supported.
- Confirm API wrappers return `(ret_code, answer, log)` from `generate_inner` and let `BaseAPI.generate()` handle retry/failure behavior.
- Confirm prompt adapters are registered and selected by name when using `--custom-prompt` or `custom_prompt` kwargs.
- Treat CUDA, live provider calls, dataset downloads, Gradio services, and large model evaluations as unverified unless the current task explicitly verifies them.

## Source evidence distilled

Primary evidence: `docs/en/Development.md`, `docs/en/Quickstart.md`, `docs/en/EvalByLMDeploy.md`, `docs/en/ConfigSystem.md`, `README.md`, `run.py`, `vlmeval/vlm/base.py`, `vlmeval/vlm/__init__.py`, `vlmeval/api/base.py`, `vlmeval/api/litellm_api.py`, `vlmeval/api/lmdeploy.py`, `vlmeval/api/openai_sdk.py`, `vlmeval/api/adapters/base.py`, `vlmeval/api/adapters/internvl2.py`, `vlmeval/api/adapters/internvl3.py`, `vlmeval/api/adapters/interns1_1.py`, `vlmeval/api/__init__.py`, `vlmeval/config.py`, and `tests/test_litellm_api.py`.

Files in this skill

  • SKILL.md4.3 KB
  • references/api-reference.md11 KB
  • references/model-registry.md7.2 KB
  • references/prompt-adapters.md8.1 KB
  • references/troubleshooting.md8.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…