"Configure and run LLM Foundry offline and in-training ICL
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill evaluation --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Evaluation?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-evaluation-3f3516cd)More formats (shields.io, HTML) on the badges page.
---
name: evaluation
description: "Configure and run LLM Foundry offline and in-training ICL
evaluation, custom tasks, Eval Gauntlet aggregation, API-wrapper evaluation,
and result interpretation."
disable-model-invocation: true
metadata:
disco-role: operating
license: Apache 2.0
---
# evaluation
Use this sub-skill when the user wants to evaluate an LLM Foundry model with in-context-learning (ICL) tasks, add ICL evaluation hooks to training, build custom JSONL eval datasets, aggregate Eval Gauntlet scores, evaluate API-wrapper models, or interpret evaluation output.
## Route
- **In scope:** the public `llmfoundry eval YAML_PATH [overrides...]` CLI; offline eval YAMLs; `EvalConfig` required and optional fields; ICL task schemas; custom task JSONL validation; Eval Gauntlet categories and composite-score math; OpenAI/FMAPI API-wrapper evaluation; result tables and metric names.
- **Route to `../training-finetuning/`:** full training-loop YAML design, optimizer/scheduler/checkpointing choices, or training runtime debugging beyond the eval hook keys listed here.
- **Route to `../inference-conversion/`:** standalone Hugging Face generation/chat scripts, checkpoint export, ONNX/FasterTransformer conversion, and non-eval inference serving.
- **Route to `../package-apis-configuration/`:** model registry internals, creating new registry entries, MPT/HF model class configuration internals, and package extension mechanics.
## Start here
1. Identify the eval mode: offline installed CLI, in-training ICL hooks, custom task/schema work, Eval Gauntlet aggregation, or API-wrapper eval.
2. Read [references/workflows.md](references/workflows.md) for the matching workflow and minimal YAML shapes.
3. For custom or modified task configs, read [references/task-schemas.md](references/task-schemas.md) before running anything.
4. Run the bundled static linter before launching models:
```bash
python scripts/llmfoundry_eval_config_lint.py path/to/eval.yaml
```
The linter parses YAML and optional local task/Gauntlet files, checks required fields and likely metric/task mismatches, and never loads models or downloads data.
5. Launch offline evaluation only after the config, local data paths, credentials, and model/cache situation are known:
```bash
llmfoundry eval path/to/eval.yaml key=value another.nested.key=value
```
## Operating rules
- Canonical offline `EvalConfig` requires `models`, `max_seq_len`, and `device_eval_batch_size`. Use a `models:` list with per-model `model_name`, `model`, optional `load_path`, and `tokenizer` blocks.
- Important optional eval fields include `icl_tasks`, `eval_gauntlet`, `loggers`, `callbacks`, `fsdp_config`, `precision`, `seed`, `eval_subset_num_batches`, and `icl_subset_num_batches`. If someone says “subsets”, map that request to the explicit subset fields; do not invent a generic `subsets` key unless their installed version documents it.
- `device_eval_batch_size` must be an integer for ICL tasks. Lower it first for OOMs; MC/schema tasks expand each logical example into one row per choice/context option.
- Supported task families for this sub-skill are `generation_task_with_answers`, `language_modeling`, `multiple_choice`, and `schema`; their JSONL row contracts and metrics are in [references/task-schemas.md](references/task-schemas.md).
- `metric_names` in ICL task YAMLs normally use class-style names such as `InContextLearningMultipleChoiceAccuracy`, not lower-case registry aliases.
- Use `has_categories: true` only when every task row has a `category` field. Category subtasks are partitioned and then averaged in result tables.
- Eval Gauntlet only aggregates benchmarks whose `(label, num_fewshot)` exactly match completed ICL evaluators. A missing benchmark removes that category from composite scores.
- API-wrapper eval requires credentials or a configured custom endpoint. Never ask users to place secrets in YAML; use environment variables or platform secret mechanisms.
- Full Eval Gauntlet and large model evals can download models/datasets and consume substantial GPU/API budget. Prefer a tiny custom task or `icl_subset_num_batches` smoke before full runs.
## Bundled references and script
- [references/task-schemas.md](references/task-schemas.md) — `EvalConfig`, ICL task rows, delimiters, categories, metrics, installed signatures.
- [references/workflows.md](references/workflows.md) — offline CLI, overrides, in-training hooks, API-wrapper eval, custom task assembly, result interpretation.
- [references/eval-gauntlet.md](references/eval-gauntlet.md) — categories, random baselines, weighting/rescale/subtract math, averages, custom Gauntlet configs.
- [references/troubleshooting.md](references/troubleshooting.md) — malformed rows, metric mismatches, path/cache/credential/max length/OOM/subset failures.
- [scripts/llmfoundry_eval_config_lint.py](scripts/llmfoundry_eval_config_lint.py) — safe static linter for eval YAML and local task/Gauntlet files.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!