executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
evaluationConfigure and run LLM Foundry offline and in-training ICL evaluation, custom tasks, Eval Gauntlet aggregation, API-wrapper evaluation, and result interpretation.
Independent GitHub snapshot · Automated classification · Original documentation governs
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.
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.../training-finetuning/: full training-loop YAML design, optimizer/scheduler/checkpointing choices, or training runtime debugging beyond the eval hook keys listed here.../inference-conversion/: standalone Hugging Face generation/chat scripts, checkpoint export, ONNX/FasterTransformer conversion, and non-eval inference serving.../package-apis-configuration/: model registry internals, creating new registry entries, MPT/HF model class configuration internals, and package extension mechanics.Identify the eval mode: offline installed CLI, in-training ICL hooks, custom task/schema work, Eval Gauntlet aggregation, or API-wrapper eval.
Read references/workflows.md for the matching workflow and minimal YAML shapes.
For custom or modified task configs, read references/task-schemas.md before running anything.
Run the bundled static linter before launching models:
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.
Launch offline evaluation only after the config, local data paths, credentials, and model/cache situation are known:
llmfoundry eval path/to/eval.yaml key=value another.nested.key=value
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.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.generation_task_with_answers, language_modeling, multiple_choice, and schema; their JSONL row contracts and metrics are in references/task-schemas.md.metric_names in ICL task YAMLs normally use class-style names such as InContextLearningMultipleChoiceAccuracy, not lower-case registry aliases.has_categories: true only when every task row has a category field. Category subtasks are partitioned and then averaged in result tables.(label, num_fewshot) exactly match completed ICL evaluators. A missing benchmark removes that category from composite scores.icl_subset_num_batches smoke before full runs.EvalConfig, ICL task rows, delimiters, categories, metrics, installed signatures.