# 键错误：数据集未找到分割 'validation'。可用分割：['train', 'test']

- **ID:** `huggingface/dataset-split-key-error`
- **领域:** huggingface
- **类别:** data_error
- **验证级别:** ai_generated
- **修复率:** 95%

## 根因

请求的数据集分割名称（如 'validation'）在数据集配置中不存在；数据集可能使用不同的命名约定，如 'val' 或 'test'。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| datasets>=2.14.0 | active | — | — |
| transformers>=4.30.0 | active | — | — |
| Python>=3.8 | active | — | — |

## 解决方案

1. ```
   Check available splits before loading and use the correct name:
from datasets import get_dataset_split_names
splits = get_dataset_split_names('org/dataset')
print(splits)  # e.g., ['train', 'test']
# Then use the correct split:
dataset = load_dataset('org/dataset', split='test')
   ```
2. ```
   If no validation split exists, create one from the training data:
from datasets import load_dataset
dataset = load_dataset('org/dataset', split='train')
train_val = dataset.train_test_split(test_size=0.1, seed=42)
train_dataset = train_val['train']
val_dataset = train_val['test']
   ```

## 无效尝试

- **** — Using split='all' to load all data and then manually splitting may cause data leakage if the dataset has predefined splits. (60% 失败率)
- **** — Renaming the split after loading with rename_column does not create a new split; it only renames a column. (90% 失败率)
