dataset-evaluation

$npx mdskill add awslabs/agent-plugins/dataset-evaluation

Validates dataset formatting and quality for SageMaker model fine-tuning

  • Locate and verify the full path to the dataset file.
  • Determine the selected fine-tuning strategy and base model.
  • Check file format and schema compliance with the chosen model and technique.
  • Report whether the data is ready for training or evaluation.

SKILL.md

.github/skills/dataset-evaluationView on GitHub ↗
---
name: dataset-evaluation
description: Validates dataset formatting and quality for SageMaker model fine-tuning (SFT, DPO, or RLVR). Use when the user says "is my dataset okay", "evaluate my data", "check my training data", "I have my own data", or before starting any fine-tuning job. Detects file format, checks schema compliance against the selected model and technique, and reports whether the data is ready for training or evaluation.
metadata:
  version: "1.0.0"
---

# Workflow Instruction

Follow the workflow shown below. Locate the dataset, check the file type, and resolve any issues with missing files or wrong file types. Determine the fine-tuning model and fine-tuning strategy. Run the appropriate validation based on the model family. Summarize the results: is the dataset ready for fine-tuning?

## Prerequisites

- The SDK environment has been verified (SDK version, region, execution role). If not done, activate the `sdk-getting-started` skill first.

---

## Workflow

1. **Locate Dataset**:
   - The full path may be a local file path, or an S3 URI
   - Resolve the full path to the dataset file, make sure read permissions are available, and help the user if the file is not found

2. **Determine strategy and model**:
   - File formatting depends on the currently selected fine-tuning strategy and fine-tuning base model.
   - If the strategy and model are already known from the conversation context (e.g., selected via the model-selection and finetuning-technique skills), use them.
   - If not available in context, activate the model-selection and/or finetuning-technique skills to determine them before proceeding.
   - **Exception:** If the user is validating an evaluation dataset (not a training dataset), neither model nor technique is required — the format detector can validate eval format (query/response structure) independently. Do not block on model-selection or finetuning-technique for eval dataset validation.

3. **Check File Formatting**: Run the tool format_detector.py to make sure the file conforms to formatting requirements.
   - Send the full path directly to the format_detector script as an argument
   - Do not send the model and strategy as arguments
   - Do not download data from S3
   - Do not make local copies of data

4. **Summarize Results**: Tell the user if their data is ready
   - Examine the output of format_detector and compare to the known strategy and model
   - **Important: training datasets and evaluation datasets have different format requirements.**
     - **Training datasets** must match the fine-tuning strategy format per `references/strategy_data_requirements.md`
     - **Evaluation datasets** (for model evaluation) must match one of the [SageMaker evaluation dataset formats](https://docs.aws.amazon.com/sagemaker/latest/dg/model-customize-evaluation-dataset-formats.html).
     - **Custom Scorer evaluation datasets** have scorer-specific requirements. If the dataset is intended for Custom Scorer evaluation (Prime Math, Prime Code, or Custom Lambda), read `references/custom-scorer-evaluation-dataset-formats.md` and validate against the scorer-specific schema. The scorer type should be known from conversation context (determined in the model-evaluation skill).
   - Report back to the user if their current dataset is valid for its intended purpose
   - Warn the user if their dataset is valid, but for a different strategy or model
   - Warn the user if their dataset is not valid for any strategy/model pair
   - If the user plans to finetune a model with the evaluated dataset, it needs to be uploaded to an S3 bucket in the same region as the planned training job (usually the default region). Warn the user if this is NOT the case.
   - If the dataset is NOT in the necessary format, recommend transforming it using the dataset-transformation skill, wait for user confirmation, and update the plan based on their response

## Messages to the User

- Introduction: "This skill checks the structure of your dataset for model fine-tuning."
- File types: This skill applies to files that are formatted according to the [Amazon SageMaker AI Developer Guide](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-llms-finetuning-data-format.html#autopilot-llms-finetuning-dataset-format)

# Resources

- scripts/format_detector.py is self-contained format validation script that can be run independently
- model-selection and finetuning-technique skills should have already determined the base model and fine-tuning strategy
- references/strategy_data_requirements.md contains data format requirements per strategy

## Script Details

- scripts/format_detector.py is self-contained format validation script that can be run independently:

```bash
# With the file path argument identified in workflow step 1
python scripts/format_detector.py local_path/to/dataset
```

## References

- `scripts/format_detector.py` — Self-contained format validation script
- `references/strategy_data_requirements.md` — Data format requirements per strategy

More from awslabs/agent-plugins

SkillDescription
amazon-location-serviceIntegrates Amazon Location Service APIs for AWS applications. Use this skill when users want to add maps (interactive MapLibre or static images); geocode addresses to coordinates or reverse geocode coordinates to addresses; calculate routes, travel times, or service areas; find places and businesses through text search, nearby search, or autocomplete suggestions; retrieve detailed place information including hours, contacts, and addresses; monitor geographical boundaries with geofences; or track device locations. Covers authentication, SDK integration, and all Amazon Location Service capabilities.
amplify-workflow'Build and deploy full-stack web and mobile apps with AWS Amplify Gen2
aws-architecture-diagramGenerate validated AWS architecture diagrams as draw.io XML using official AWS4 icon libraries. Use this skill whenever the user wants to create, generate, or design AWS architecture diagrams, cloud infrastructure diagrams, or system design visuals. Also triggers for requests to visualize existing infrastructure from CloudFormation, CDK, or Terraform code. Supports two modes: analyze an existing codebase to auto-generate diagrams, or brainstorm interactively from scratch. Exports .drawio files with optional PNG/SVG/PDF export via draw.io desktop CLI.
aws-lambdaDesign, build, deploy, test, and debug serverless applications with AWS Lambda. Triggers on phrases like: Lambda function, event source, serverless application, API Gateway, EventBridge, Step Functions, serverless API, event-driven architecture, Lambda trigger. For deploying non-serverless apps to AWS, use deploy-on-aws plugin instead.
aws-lambda-durable-functions>
aws-lambda-managed-instances>
aws-lambda-microvms>
aws-serverless-deploymentAWS SAM and AWS CDK deployment for serverless applications. Triggers on phrases like: use SAM, SAM template, SAM init, SAM deploy, CDK serverless, CDK Lambda construct, NodejsFunction, PythonFunction, SAM and CDK together, serverless CI/CD pipeline. For general app deployment with service selection, use deploy-on-aws plugin instead.
aws-step-functionsBuild workflows with AWS Step Functions state machines using the JSONata query language. Covers Amazon States Language (ASL) structure, state types, variables, data transformation, error handling, AWS service integration, and migrating from the JSONPath to the JSONata query language.
aws-transformMigrate, modernize, and upgrade codebases to AWS. Run analysis on repos for tech debt, security vulnerabilities, and modernization opportunities. Transforms .NET Framework to .NET 8/10, mainframe COBOL to Java, VMware VMs to EC2, SQL Server to Aurora, and upgrades Java/Python/Node.js versions and AWS SDKs. Use when the user says "migrate .NET to AWS", "upgrade Java to 17/21", "modernize COBOL", "modernize mainframe", "move VMware to EC2", "convert SQL Server to Aurora", "upgrade Python version", "migrate AWS SDK", "transform this codebase", "analyze for issues", "find tech debt", "what tech debt", "security vulnerabilities", "CVEs", "what's wrong with my code", "assess my repos", "where do I start", "find what's outdated", "analyze my repos", "AWS Transform - continuous modernization", "continuous modernization" or "continuous-modernization". Don't use for infrastructure provisioning, CI/CD pipelines, or general coding tasks.